...
1
2
3
4
5
6
7
8
9
10
11
12
13
14 package timechaos
15
16 import (
17 "testing"
18 "time"
19
20 . "github.com/onsi/gomega"
21 )
22
23 type SecAndNSecFromDurationTestCase struct {
24 Duration time.Duration
25 Sec int64
26 NSec int64
27 }
28
29 func TestSecAndNSecFromDuration(t *testing.T) {
30 g := NewGomegaWithT(t)
31 cases := []SecAndNSecFromDurationTestCase{
32 {time.Second * 100, 100, 0},
33 {time.Second * -100, -100, 0},
34 {time.Second*-100 + time.Microsecond*-20, -100, -20000},
35 {time.Second*-100 + time.Microsecond*20, -99, -999980000},
36 {time.Second*100 + time.Microsecond*20, 100, 20000},
37 {time.Second*100 + time.Microsecond*-20, 99, 999980000},
38 }
39
40 for _, c := range cases {
41 sec, nsec := secAndNSecFromDuration(c.Duration)
42 g.Expect(sec).Should(Equal(c.Sec))
43 g.Expect(nsec).Should(Equal(c.NSec))
44 }
45 }
46