@@ -8,16 +8,26 @@ import (
88)
99
1010func TestPrettyDuration_String (t * testing.T ) {
11- require .Equal (t , "0s" , PrettyDuration (0 ).String ())
12- require .Equal (t , "1ns" , PrettyDuration (time .Nanosecond ).String ())
13- require .Equal (t , "1µs" , PrettyDuration (time .Microsecond ).String ())
14- require .Equal (t , "1ms" , PrettyDuration (time .Millisecond ).String ())
15- require .Equal (t , "1s" , PrettyDuration (time .Second ).String ())
16- require .Equal (t , "1.000s" , PrettyDuration (time .Second + time .Microsecond + time .Nanosecond ).String ())
17- require .Equal (t , "1.001s" , PrettyDuration (time .Second + time .Millisecond + time .Microsecond + time .Nanosecond ).String ())
18- require .Equal (t , "1m1.001s" , PrettyDuration (time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond ).String ())
19- require .Equal (t , "1h1m1.001s" , PrettyDuration (time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond ).String ())
20- require .Equal (t , "1d1h1m" , PrettyDuration (24 * time .Hour + time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond ).String ())
21- require .Equal (t , "1mo1d1h" , PrettyDuration (30 * 24 * time .Hour + 24 * time .Hour + time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond ).String ())
22- require .Equal (t , "1y4mo3w" , PrettyDuration (503.123456789 * 24 * float64 (time .Hour )).String ())
11+ for _ , testcase := range []struct {
12+ str string
13+ val time.Duration
14+ }{
15+ {"0s" , 0 },
16+ {"1ns" , time .Nanosecond },
17+ {"1µs" , time .Microsecond },
18+ {"1ms" , time .Millisecond },
19+ {"1s" , time .Second },
20+ {"1.000s" , time .Second + time .Microsecond + time .Nanosecond },
21+ {"1.001s" , time .Second + time .Millisecond + time .Microsecond + time .Nanosecond },
22+ {"1m1.001s" , time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond },
23+ {"1h1m1.001s" , time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond },
24+ {"1d1h1m" , 24 * time .Hour + time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond },
25+ {"1mo1d1h" , 30 * 24 * time .Hour + 24 * time .Hour + time .Hour + time .Minute + time .Second + time .Millisecond + time .Microsecond + time .Nanosecond },
26+ {"26y4mo3w" , time .Duration (9503.123456789 * 24 * float64 (time .Hour ))},
27+ } {
28+ require .Equal (t , testcase .str , PrettyDuration (testcase .val ).String ())
29+ if testcase .val > 0 {
30+ require .Equal (t , "-" + testcase .str , PrettyDuration (- testcase .val ).String ())
31+ }
32+ }
2333}
0 commit comments