package top
import (
"bytes"
"strings"
"testing"
)
func TestPrintSize(t *testing.T) {
testCases := []struct {
in int64
out string
}{
{int64(1024), "0MiB"},
{int64(10 * 1024), "0.01MiB"},
{int64(1024 * 1024), "1MiB"},
{int64(100 * 1024 * 1024), "100MiB"},
{int64((100 * 1024 * 1024) + (10 * 1024)), "100.01MiB"},
{int64((999 * 1024 * 1024) + (999 * 1024)), "999.99MiB"},
{int64(1024 * 1024 * 1024), "1GiB"},
{int64((2 * 1024 * 1024 * 1024) + (500 * 1024 * 1024)), "2.50GiB"},
}
var b bytes.Buffer
for idx, test := range testCases {
printSize(&b, test.in)
actual := strings.TrimSpace(b.String())
if actual != test.out {
t.Errorf("%d: unexpected output: got %s, expected %s", idx, actual, test.out)
}
b.Reset()
}
}