Skip to content

Commit 1f43c1e

Browse files
prabhahvishr
authored andcommitted
Fixed error on lowercase multiple parse (#35)
bug: for example, 6gb or 6g will return 6.
1 parent d700b06 commit 1f43c1e

File tree

2 files changed

+17
-1
lines changed

2 files changed

+17
-1
lines changed

bytes/bytes.go

+2-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"fmt"
55
"regexp"
66
"strconv"
7+
"strings"
78
)
89

910
type (
@@ -73,7 +74,7 @@ func (*Bytes) Parse(value string) (i int64, err error) {
7374
return 0, fmt.Errorf("error parsing value=%s", value)
7475
}
7576
bytesString := parts[1]
76-
multiple := parts[2]
77+
multiple := strings.ToUpper(parts[2])
7778
bytes, err := strconv.ParseFloat(bytesString, 64)
7879
if err != nil {
7980
return

bytes/bytes_test.go

+15
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,21 @@ func TestBytesParse(t *testing.T) {
106106
assert.Equal(t, int64(12288), b)
107107
}
108108

109+
// kb, lowercase multiple test
110+
b, err = Parse("12.25kb")
111+
if assert.NoError(t, err) {
112+
assert.Equal(t, int64(12544), b)
113+
}
114+
b, err = Parse("12kb")
115+
if assert.NoError(t, err) {
116+
assert.Equal(t, int64(12288), b)
117+
}
118+
b, err = Parse("12k")
119+
if assert.NoError(t, err) {
120+
assert.Equal(t, int64(12288), b)
121+
}
122+
123+
109124
// KB with space
110125
b, err = Parse("12.25 KB")
111126
if assert.NoError(t, err) {

0 commit comments

Comments
 (0)