11package bytes
22
33import (
4+ "math"
45 "testing"
56
67 "github.com/stretchr/testify/assert"
78)
89
910func TestBytesFormat (t * testing.T ) {
1011 // B
11- b := Format (515 )
12+ b := Format (0 )
13+ assert .Equal (t , "0" , b )
14+ // B
15+ b = Format (515 )
1216 assert .Equal (t , "515B" , b )
1317
1418 // KB
@@ -30,16 +34,63 @@ func TestBytesFormat(t *testing.T) {
3034 // PB
3135 b = Format (9923232398434432 )
3236 assert .Equal (t , "8.81PB" , b )
37+
38+ // EB
39+ b = Format (math .MaxInt64 )
40+ assert .Equal (t , "8.00EB" , b )
41+ }
42+
43+ func TestBytesParseErrors (t * testing.T ) {
44+ _ , err := Parse ("B999" )
45+ if assert .Error (t , err ) {
46+ assert .EqualError (t , err , "error parsing value=B999" )
47+ }
48+ }
49+
50+ func TestFloats (t * testing.T ) {
51+ // From string:
52+ str := "12.25KB"
53+ value , err := Parse (str )
54+ assert .NoError (t , err )
55+ assert .Equal (t , int64 (12544 ), value )
56+
57+ str2 := Format (value )
58+ assert .Equal (t , str , str2 )
59+
60+ // To string:
61+ val := int64 (13233029 )
62+ str = Format (val )
63+ assert .Equal (t , "12.62MB" , str )
64+
65+ val2 , err := Parse (str )
66+ assert .NoError (t , err )
67+ assert .Equal (t , val , val2 )
3368}
3469
3570func TestBytesParse (t * testing.T ) {
3671 // B
37- b , err := Parse ("515B" )
72+ b , err := Parse ("999" )
73+ if assert .NoError (t , err ) {
74+ assert .Equal (t , int64 (999 ), b )
75+ }
76+ b , err = Parse ("-100" )
77+ if assert .NoError (t , err ) {
78+ assert .Equal (t , int64 (- 100 ), b )
79+ }
80+ b , err = Parse ("100.1" )
81+ if assert .NoError (t , err ) {
82+ assert .Equal (t , int64 (100 ), b )
83+ }
84+ b , err = Parse ("515B" )
3885 if assert .NoError (t , err ) {
3986 assert .Equal (t , int64 (515 ), b )
4087 }
4188
4289 // KB
90+ b , err = Parse ("12.25KB" )
91+ if assert .NoError (t , err ) {
92+ assert .Equal (t , int64 (12544 ), b )
93+ }
4394 b , err = Parse ("12KB" )
4495 if assert .NoError (t , err ) {
4596 assert .Equal (t , int64 (12288 ), b )
@@ -88,4 +139,14 @@ func TestBytesParse(t *testing.T) {
88139 if assert .NoError (t , err ) {
89140 assert .Equal (t , int64 (10133099161583616 ), b )
90141 }
142+
143+ // EB
144+ b , err = Parse ("8EB" )
145+ if assert .NoError (t , err ) {
146+ assert .True (t , math .MaxInt64 == b - 1 )
147+ }
148+ b , err = Parse ("8E" )
149+ if assert .NoError (t , err ) {
150+ assert .True (t , math .MaxInt64 == b - 1 )
151+ }
91152}
0 commit comments