forked from digisan/go-generics
-
Notifications
You must be signed in to change notification settings - Fork 0
/
math_test.go
116 lines (113 loc) · 1.83 KB
/
math_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
package gogenerics
import (
"reflect"
"testing"
)
func TestHasOverlap(t *testing.T) {
type args struct {
sn [][]int
}
tests := []struct {
name string
args args
want bool
}{
// TODO: Add test cases.
{
args: args{
sn: [][]int{{2, 5}, {5, 6}, {8, 10}, {10, 11}},
},
want: false,
},
{
args: args{
sn: [][]int{{8, 10}, {10, 11}, {2, 5}, {5, 9}},
},
want: true,
},
{
args: args{
sn: [][]int{{8, 10}},
},
want: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
if got := ShareOverlap(CloseOpen, tt.args.sn...); got != tt.want {
t.Errorf("HasOverlap() = %v, want %v", got, tt.want)
}
})
}
}
func TestRangeUnion(t *testing.T) {
type args struct {
s1 []int
s2 []int
rt RangeType
}
tests := []struct {
name string
args args
want []int
want1 bool
}{
// TODO: Add test cases.
{
args: args{
s1: []int{3, 6},
s2: []int{4, 9},
rt: CloseOpen,
},
want: []int{3, 9},
want1: true,
},
{
args: args{
s1: []int{3, 6},
s2: []int{7, 9},
rt: CloseOpen,
},
want: nil,
want1: false,
},
{
args: args{
s1: []int{3, 6},
s2: []int{6, 9},
rt: CloseClose,
},
want: []int{3, 9},
want1: true,
},
{
args: args{
s1: []int{3, 6},
s2: []int{6, 9},
rt: CloseOpen,
},
want: nil,
want1: false,
},
{
args: args{
s1: []int{3, 6},
s2: []int{3, 8},
rt: OpenOpen,
},
want: []int{3, 8},
want1: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, got1 := RangeUnion(tt.args.s1, tt.args.s2, tt.args.rt)
if !reflect.DeepEqual(got, tt.want) {
t.Errorf("RangeUnion() got = %v, want %v", got, tt.want)
}
if got1 != tt.want1 {
t.Errorf("RangeUnion() got1 = %v, want %v", got1, tt.want1)
}
})
}
}