1 package progress
2
3 import (
4 "testing"
5
6 "github.com/stretchr/testify/assert"
7 )
8
9 func TestFormatBytes(t *testing.T) {
10 assert.Equal(t, "1B", FormatBytes(1))
11 assert.Equal(t, "1.50KB", FormatBytes(1500))
12 assert.Equal(t, "1.50MB", FormatBytes(1500000))
13 assert.Equal(t, "1.50GB", FormatBytes(1500000000))
14 assert.Equal(t, "1.50TB", FormatBytes(1500000000000))
15 assert.Equal(t, "1.50PB", FormatBytes(1500000000000000))
16 assert.Equal(t, "1500.00PB", FormatBytes(1500000000000000000))
17 }
18
19 func TestFormatNumber(t *testing.T) {
20 assert.Equal(t, "1", FormatNumber(1))
21 assert.Equal(t, "1.50K", FormatNumber(1500))
22 assert.Equal(t, "1.50M", FormatNumber(1500000))
23 assert.Equal(t, "1.50B", FormatNumber(1500000000))
24 assert.Equal(t, "1.50T", FormatNumber(1500000000000))
25 assert.Equal(t, "1.50Q", FormatNumber(1500000000000000))
26 assert.Equal(t, "1500.00Q", FormatNumber(1500000000000000000))
27 }
28
29 func TestUnits_Sprint(t *testing.T) {
30 assert.Equal(t, "1.50K", UnitsDefault.Sprint(1500))
31 assert.Equal(t, "1.50KB", UnitsBytes.Sprint(1500))
32 assert.Equal(t, "$1.50K", UnitsCurrencyDollar.Sprint(1500))
33 assert.Equal(t, "₠1.50K", UnitsCurrencyEuro.Sprint(1500))
34 assert.Equal(t, "£1.50K", UnitsCurrencyPound.Sprint(1500))
35
36 customUnits := Units{Notation: "#"}
37 assert.Equal(t, "#1.50K", customUnits.Sprint(1500))
38 }
39
40 func TestUnits_NotationPosition(t *testing.T) {
41 afterUnits := Units{Notation: " ₽", NotationPosition: UnitsNotationPositionAfter}
42 assert.Equal(t, "1.50K ₽", afterUnits.Sprint(1500))
43
44 unknownNotationPosition := Units{Notation: "* ", NotationPosition: UnitsNotationPosition(999)}
45 assert.Equal(t, "* 1.50K", unknownNotationPosition.Sprint(1500))
46 }
47
View as plain text