|
0 |
package decor
|
|
1 |
|
|
2 |
import (
|
|
3 |
"fmt"
|
|
4 |
"testing"
|
|
5 |
)
|
|
6 |
|
|
7 |
func TestSpeedKiB(t *testing.T) {
|
|
8 |
cases := map[string]struct {
|
|
9 |
value int64
|
|
10 |
verb, expected string
|
|
11 |
}{
|
|
12 |
"verb %f": {12345678, "%f", "11.773756MiB/s"},
|
|
13 |
"verb %.0f": {12345678, "%.0f", "12MiB/s"},
|
|
14 |
"verb %.1f": {12345678, "%.1f", "11.8MiB/s"},
|
|
15 |
"verb %.2f": {12345678, "%.2f", "11.77MiB/s"},
|
|
16 |
"verb %.3f": {12345678, "%.3f", "11.774MiB/s"},
|
|
17 |
|
|
18 |
"verb % f": {12345678, "% f", "11.773756 MiB/s"},
|
|
19 |
"verb % .0f": {12345678, "% .0f", "12 MiB/s"},
|
|
20 |
"verb % .1f": {12345678, "% .1f", "11.8 MiB/s"},
|
|
21 |
"verb % .2f": {12345678, "% .2f", "11.77 MiB/s"},
|
|
22 |
"verb % .3f": {12345678, "% .3f", "11.774 MiB/s"},
|
|
23 |
|
|
24 |
"verb %10.f": {12345678, "%10.f", " 12MiB/s"},
|
|
25 |
"verb %10.0f": {12345678, "%10.0f", " 12MiB/s"},
|
|
26 |
"verb %10.1f": {12345678, "%10.1f", " 11.8MiB/s"},
|
|
27 |
"verb %10.2f": {12345678, "%10.2f", "11.77MiB/s"},
|
|
28 |
"verb %10.3f": {12345678, "%10.3f", "11.774MiB/s"},
|
|
29 |
|
|
30 |
"verb % 10.f": {12345678, "% 10.f", " 12 MiB/s"},
|
|
31 |
"verb % 10.0f": {12345678, "% 10.0f", " 12 MiB/s"},
|
|
32 |
"verb % 10.1f": {12345678, "% 10.1f", "11.8 MiB/s"},
|
|
33 |
|
|
34 |
"verb %-10.f": {12345678, "%-10.f", "12MiB/s "},
|
|
35 |
"verb %-10.0f": {12345678, "%-10.0f", "12MiB/s "},
|
|
36 |
"verb %-10.1f": {12345678, "%-10.1f", "11.8MiB/s "},
|
|
37 |
"verb %-10.2f": {12345678, "%10.2f", "11.77MiB/s"},
|
|
38 |
"verb %-10.3f": {12345678, "%10.3f", "11.774MiB/s"},
|
|
39 |
|
|
40 |
"verb % -10.f": {12345678, "% -10.f", "12 MiB/s "},
|
|
41 |
"verb % -10.0f": {12345678, "% -10.0f", "12 MiB/s "},
|
|
42 |
"verb % -10.1f": {12345678, "% -10.1f", "11.8 MiB/s"},
|
|
43 |
|
|
44 |
"1000 %f": {1000, "%f", "1000b/s"},
|
|
45 |
"1000 %d": {1000, "%d", "1000b/s"},
|
|
46 |
"1000 %s": {1000, "%s", "1000b/s"},
|
|
47 |
"1024 %f": {1024, "%f", "1.000000KiB/s"},
|
|
48 |
"1024 %d": {1024, "%d", "1KiB/s"},
|
|
49 |
"1024 %.1f": {1024, "%.1f", "1.0KiB/s"},
|
|
50 |
"1024 %s": {1024, "%s", "1.0KiB/s"},
|
|
51 |
"3*MiB/s+140KiB/s %f": {3*MiB + 140*KiB, "%f", "3.136719MiB/s"},
|
|
52 |
"3*MiB/s+140KiB/s %d": {3*MiB + 140*KiB, "%d", "3MiB/s"},
|
|
53 |
"3*MiB/s+140KiB/s %.1f": {3*MiB + 140*KiB, "%.1f", "3.1MiB/s"},
|
|
54 |
"3*MiB/s+140KiB/s %s": {3*MiB + 140*KiB, "%s", "3.1MiB/s"},
|
|
55 |
"2*GiB/s %f": {2 * GiB, "%f", "2.000000GiB/s"},
|
|
56 |
"2*GiB/s %d": {2 * GiB, "%d", "2GiB/s"},
|
|
57 |
"2*GiB/s %.1f": {2 * GiB, "%.1f", "2.0GiB/s"},
|
|
58 |
"2*GiB/s %s": {2 * GiB, "%s", "2.0GiB/s"},
|
|
59 |
"4*TiB/s %f": {4 * TiB, "%f", "4.000000TiB/s"},
|
|
60 |
"4*TiB/s %d": {4 * TiB, "%d", "4TiB/s"},
|
|
61 |
"4*TiB/s %.1f": {4 * TiB, "%.1f", "4.0TiB/s"},
|
|
62 |
"4*TiB/s %s": {4 * TiB, "%s", "4.0TiB/s"},
|
|
63 |
}
|
|
64 |
for k, tc := range cases {
|
|
65 |
got := fmt.Sprintf(tc.verb, SpeedKiB(tc.value))
|
|
66 |
if got != tc.expected {
|
|
67 |
t.Errorf("%s: Expected: %q, got: %q\n", k, tc.expected, got)
|
|
68 |
}
|
|
69 |
}
|
|
70 |
}
|
|
71 |
|
|
72 |
func TestSpeedKB(t *testing.T) {
|
|
73 |
cases := map[string]struct {
|
|
74 |
value int64
|
|
75 |
verb, expected string
|
|
76 |
}{
|
|
77 |
"verb %f": {12345678, "%f", "12.345678MB/s"},
|
|
78 |
"verb %.0f": {12345678, "%.0f", "12MB/s"},
|
|
79 |
"verb %.1f": {12345678, "%.1f", "12.3MB/s"},
|
|
80 |
"verb %.2f": {12345678, "%.2f", "12.35MB/s"},
|
|
81 |
"verb %.3f": {12345678, "%.3f", "12.346MB/s"},
|
|
82 |
|
|
83 |
"verb % f": {12345678, "% f", "12.345678 MB/s"},
|
|
84 |
"verb % .0f": {12345678, "% .0f", "12 MB/s"},
|
|
85 |
"verb % .1f": {12345678, "% .1f", "12.3 MB/s"},
|
|
86 |
"verb % .2f": {12345678, "% .2f", "12.35 MB/s"},
|
|
87 |
"verb % .3f": {12345678, "% .3f", "12.346 MB/s"},
|
|
88 |
|
|
89 |
"verb %10.f": {12345678, "%10.f", " 12MB/s"},
|
|
90 |
"verb %10.0f": {12345678, "%10.0f", " 12MB/s"},
|
|
91 |
"verb %10.1f": {12345678, "%10.1f", " 12.3MB/s"},
|
|
92 |
"verb %10.2f": {12345678, "%10.2f", " 12.35MB/s"},
|
|
93 |
"verb %10.3f": {12345678, "%10.3f", "12.346MB/s"},
|
|
94 |
|
|
95 |
"verb % 10.f": {12345678, "% 10.f", " 12 MB/s"},
|
|
96 |
"verb % 10.0f": {12345678, "% 10.0f", " 12 MB/s"},
|
|
97 |
"verb % 10.1f": {12345678, "% 10.1f", " 12.3 MB/s"},
|
|
98 |
|
|
99 |
"verb %-10.f": {12345678, "%-10.f", "12MB/s "},
|
|
100 |
"verb %-10.0f": {12345678, "%-10.0f", "12MB/s "},
|
|
101 |
"verb %-10.1f": {12345678, "%-10.1f", "12.3MB/s "},
|
|
102 |
"verb %-10.2f": {12345678, "%10.2f", " 12.35MB/s"},
|
|
103 |
"verb %-10.3f": {12345678, "%10.3f", "12.346MB/s"},
|
|
104 |
|
|
105 |
"verb % -10.f": {12345678, "% -10.f", "12 MB/s "},
|
|
106 |
"verb % -10.0f": {12345678, "% -10.0f", "12 MB/s "},
|
|
107 |
"verb % -10.1f": {12345678, "% -10.1f", "12.3 MB/s "},
|
|
108 |
|
|
109 |
"1000 %f": {1000, "%f", "1.000000kB/s"},
|
|
110 |
"1000 %d": {1000, "%d", "1kB/s"},
|
|
111 |
"1000 %s": {1000, "%s", "1.0kB/s"},
|
|
112 |
"1024 %f": {1024, "%f", "1.024000kB/s"},
|
|
113 |
"1024 %d": {1024, "%d", "1kB/s"},
|
|
114 |
"1024 %.1f": {1024, "%.1f", "1.0kB/s"},
|
|
115 |
"1024 %s": {1024, "%s", "1.0kB/s"},
|
|
116 |
"3*MB/s+140*KB/s %f": {3*MB + 140*KB, "%f", "3.140000MB/s"},
|
|
117 |
"3*MB/s+140*KB/s %d": {3*MB + 140*KB, "%d", "3MB/s"},
|
|
118 |
"3*MB/s+140*KB/s %.1f": {3*MB + 140*KB, "%.1f", "3.1MB/s"},
|
|
119 |
"3*MB/s+140*KB/s %s": {3*MB + 140*KB, "%s", "3.1MB/s"},
|
|
120 |
"2*GB/s %f": {2 * GB, "%f", "2.000000GB/s"},
|
|
121 |
"2*GB/s %d": {2 * GB, "%d", "2GB/s"},
|
|
122 |
"2*GB/s %.1f": {2 * GB, "%.1f", "2.0GB/s"},
|
|
123 |
"2*GB/s %s": {2 * GB, "%s", "2.0GB/s"},
|
|
124 |
"4*TB/s %f": {4 * TB, "%f", "4.000000TB/s"},
|
|
125 |
"4*TB/s %d": {4 * TB, "%d", "4TB/s"},
|
|
126 |
"4*TB/s %.1f": {4 * TB, "%.1f", "4.0TB/s"},
|
|
127 |
"4*TB/s %s": {4 * TB, "%s", "4.0TB/s"},
|
|
128 |
}
|
|
129 |
for k, tc := range cases {
|
|
130 |
got := fmt.Sprintf(tc.verb, SpeedKB(tc.value))
|
|
131 |
if got != tc.expected {
|
|
132 |
t.Errorf("%s: Expected: %q, got: %q\n", k, tc.expected, got)
|
|
133 |
}
|
|
134 |
}
|
|
135 |
}
|