1
0
mirror of https://github.com/duke-git/lancet.git synced 2026-02-04 12:52:28 +08:00
Files
lancet/formatter/byte_test.go

96 lines
2.3 KiB
Go

package formatter
import (
"testing"
"github.com/duke-git/lancet/v2/internal"
)
func TestDecimalBytes(t *testing.T) {
t.Parallel()
assert := internal.NewAssert(t, "TestDecimalBytes")
assert.Equal("1KB", DecimalBytes(1000))
assert.Equal("1.024KB", DecimalBytes(1024))
assert.Equal("1.2346MB", DecimalBytes(1234567))
assert.Equal("1.235MB", DecimalBytes(1234567, 3))
assert.Equal("1.123GB", DecimalBytes(float64(1.123*UnitGB)))
assert.Equal("2.123TB", DecimalBytes(float64(2.123*UnitTB)))
assert.Equal("3.123PB", DecimalBytes(float64(3.123*UnitPB)))
assert.Equal("4.123EB", DecimalBytes(float64(4.123*UnitEB)))
assert.Equal("1EB", DecimalBytes(float64(1000*UnitPB)))
}
func TestBinaryBytes(t *testing.T) {
t.Parallel()
assert := internal.NewAssert(t, "TestBinaryBytes")
assert.Equal("1KiB", BinaryBytes(1024))
assert.Equal("1MiB", BinaryBytes(1024*1024))
assert.Equal("1.1774MiB", BinaryBytes(1234567))
assert.Equal("1.18MiB", BinaryBytes(1234567, 2))
}
func TestParseDecimalBytes(t *testing.T) {
t.Parallel()
assert := internal.NewAssert(t, "TestParseDecimalBytes")
cases := map[string]uint64{
"12": uint64(12),
"12 k": uint64(12000),
"12 kb": uint64(12000),
"12kb": uint64(12000),
"12k": uint64(12000),
"12K": uint64(12000),
"12KB": uint64(12000),
"12 K": uint64(12000),
"12 KB": uint64(12000),
"12 Kb": uint64(12000),
"12 kB": uint64(12000),
"12.2 KB": uint64(12200),
}
for k, v := range cases {
result, err := ParseDecimalBytes(k)
assert.Equal(v, result)
assert.IsNil(err)
}
_, err := ParseDecimalBytes("12 AB")
assert.IsNotNil(err)
}
func TestParseBinaryBytes(t *testing.T) {
t.Parallel()
assert := internal.NewAssert(t, "TestParseBinaryBytes")
cases := map[string]uint64{
"12": uint64(12),
"12 ki": uint64(12288),
"12 kib": uint64(12288),
"12kib": uint64(12288),
"12ki": uint64(12288),
"12KI": uint64(12288),
"12KIB": uint64(12288),
"12KiB": uint64(12288),
"12 Ki": uint64(12288),
"12 KiB": uint64(12288),
"12 Kib": uint64(12288),
"12 kiB": uint64(12288),
"12.2 KiB": uint64(12492),
}
for k, v := range cases {
result, err := ParseBinaryBytes(k)
assert.Equal(v, result)
assert.IsNil(err)
}
_, err := ParseDecimalBytes("12 AB")
assert.IsNotNil(err)
}