60 lines
1005 B
Go
60 lines
1005 B
Go
|
/*
|
|||
|
* SPDX-FileCopyrightText: 2012–2015 Dustin Sallings <dustin@spy.net>
|
|||
|
* SPDX-License-Identifier: MIT
|
|||
|
*/
|
|||
|
|
|||
|
package template
|
|||
|
|
|||
|
import "testing"
|
|||
|
|
|||
|
func testHumanizeBytes(t *testing.T, in int64, exp string) {
|
|||
|
if actual := humanizeBytes(in); actual != exp {
|
|||
|
t.Errorf("humanizeBytes(%d) got %v expected %v", in, actual, exp)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
func TestBytes(t *testing.T) {
|
|||
|
const (
|
|||
|
IByte = 1 << (iota * 10)
|
|||
|
KiByte
|
|||
|
MiByte
|
|||
|
GiByte
|
|||
|
TiByte
|
|||
|
PiByte
|
|||
|
EiByte
|
|||
|
)
|
|||
|
|
|||
|
tests := []struct {
|
|||
|
in int64
|
|||
|
exp string
|
|||
|
}{
|
|||
|
{0, "0 B"},
|
|||
|
{1, "1 B"},
|
|||
|
{803, "803 B"},
|
|||
|
{1023, "1023 B"},
|
|||
|
|
|||
|
{1024, "1.0 KiB"},
|
|||
|
{MiByte - IByte, "1024 KiB"},
|
|||
|
|
|||
|
{1024 * 1024, "1.0 MiB"},
|
|||
|
{GiByte - KiByte, "1024 MiB"},
|
|||
|
|
|||
|
{GiByte, "1.0 GiB"},
|
|||
|
{TiByte - MiByte, "1024 GiB"},
|
|||
|
|
|||
|
{TiByte, "1.0 TiB"},
|
|||
|
{PiByte - TiByte, "1023 TiB"},
|
|||
|
|
|||
|
{PiByte, "1.0 PiB"},
|
|||
|
{EiByte - PiByte, "1023 PiB"},
|
|||
|
|
|||
|
{EiByte, "1.0 EiB"},
|
|||
|
|
|||
|
{5.5 * GiByte, "5.5 GiB"},
|
|||
|
}
|
|||
|
|
|||
|
for _, tt := range tests {
|
|||
|
testHumanizeBytes(t, tt.in, tt.exp)
|
|||
|
}
|
|||
|
}
|