1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package util
- import "testing"
- func TestByteParsing(t *testing.T) {
- tests := []struct {
- in string
- exp uint64
- }{
- {"42", 42},
- {"42MB", 42000000},
- {"42MiB", 44040192},
- {"42mb", 42000000},
- {"42mib", 44040192},
- {"42MIB", 44040192},
- {"42 MB", 42000000},
- {"42 MiB", 44040192},
- {"42 mb", 42000000},
- {"42 mib", 44040192},
- {"42 MIB", 44040192},
- {"42.5MB", 42500000},
- {"42.5MiB", 44564480},
- {"42.5 MB", 42500000},
- {"42.5 MiB", 44564480},
- // No need to say B
- {"42M", 42000000},
- {"42Mi", 44040192},
- {"42m", 42000000},
- {"42mi", 44040192},
- {"42MI", 44040192},
- {"42 M", 42000000},
- {"42 Mi", 44040192},
- {"42 m", 42000000},
- {"42 mi", 44040192},
- {"42 MI", 44040192},
- {"42.5M", 42500000},
- {"42.5Mi", 44564480},
- {"42.5 M", 42500000},
- {"42.5 Mi", 44564480},
- // Bug #42
- {"1,005.03 MB", 1005030000},
- // Large testing, breaks when too much larger than
- // this.
- {"12.5 EB", uint64(12.5 * float64(EByte))},
- {"12.5 E", uint64(12.5 * float64(EByte))},
- {"12.5 EiB", uint64(12.5 * float64(EiByte))},
- }
- for _, p := range tests {
- got, err := ParseBytes(p.in)
- if err != nil {
- t.Errorf("Couldn't parse %v: %v", p.in, err)
- }
- if got != p.exp {
- t.Errorf("Expected %v for %v, got %v",
- p.exp, p.in, got)
- }
- }
- }
|