first commit
This commit is contained in:
73
progress/format_test.go
Normal file
73
progress/format_test.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package progress
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestHumanSize(t *testing.T) {
|
||||
tests := []struct {
|
||||
n int64
|
||||
human bool
|
||||
want string
|
||||
}{
|
||||
{500, true, "500B"},
|
||||
{1536, true, "1.5KiB"},
|
||||
{1 << 20, true, "1.0MiB"},
|
||||
{5 * 1 << 20, true, "5.0MiB"},
|
||||
{20 * 1 << 20, true, "20MiB"},
|
||||
{1 << 30, true, "1.0GiB"},
|
||||
{2048, false, "2048B"},
|
||||
// abbrevSize bumps to the next unit once the quotient reaches 922, so
|
||||
// 922*1024 bytes reads as 0.9MiB rather than 922KiB.
|
||||
{922 * 1024, true, "0.9MiB"},
|
||||
{921 * 1024, true, "921KiB"},
|
||||
// The unit ladder is capped at Gi, so a terabyte overflows GiB.
|
||||
{1 << 40, true, "1024.0GiB"},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
if got := humanSize(tc.n, tc.human); got != tc.want {
|
||||
t.Errorf("humanSize(%d, %v) = %q, want %q", tc.n, tc.human, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSecfmt(t *testing.T) {
|
||||
tests := []struct {
|
||||
d time.Duration
|
||||
want string
|
||||
}{
|
||||
{0, "0s"},
|
||||
{30 * time.Second, "30s"},
|
||||
{90 * time.Second, "1m30s"},
|
||||
{120 * time.Second, "2m"},
|
||||
{3600 * time.Second, "1h"},
|
||||
{3661 * time.Second, "1h1m1s"},
|
||||
{3720 * time.Second, "1h2m"},
|
||||
{-1 * time.Second, "--"},
|
||||
}
|
||||
for _, tc := range tests {
|
||||
if got := secfmt(tc.d); got != tc.want {
|
||||
t.Errorf("secfmt(%v) = %q, want %q", tc.d, got, tc.want)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSpeedNoSuffix(t *testing.T) {
|
||||
// The DL:/UL: fields show the bare abbreviated size with no "/s".
|
||||
if got := speed(1536, true); got != "1.5KiB" {
|
||||
t.Errorf("speed(1536,true) = %q, want %q", got, "1.5KiB")
|
||||
}
|
||||
if got := speed(2048, false); got != "2048B" {
|
||||
t.Errorf("speed(2048,false) = %q, want %q", got, "2048B")
|
||||
}
|
||||
}
|
||||
|
||||
func TestPercent(t *testing.T) {
|
||||
if got := percent(50, 100); got != 50 {
|
||||
t.Errorf("percent(50,100) = %d, want 50", got)
|
||||
}
|
||||
if got := percent(1, 0); got != 0 {
|
||||
t.Errorf("percent(1,0) = %d, want 0", got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user