-
Notifications
You must be signed in to change notification settings - Fork 12
/
Copy pathfunction_test.go
122 lines (111 loc) · 2.26 KB
/
function_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
117
118
119
120
121
122
package fuego
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestMax(t *testing.T) {
tt := map[string]struct {
max func() interface{}
want interface{}
}{
"Max(-1,3)": {
max: func() interface{} { return Max(-1, 3) },
want: 3,
},
"Max(3,-1)": {
max: func() interface{} { return Max(3, -1) },
want: 3,
},
"Max(-1.2,3.4)": {
max: func() interface{} { return Max(-1.2, 3.4) },
want: 3.4,
},
"Max(3.4,-1.2)": {
max: func() interface{} { return Max(3.4, -1.2) },
want: 3.4,
},
`Max("abc","zyx")`: {
max: func() interface{} { return Max("abc", "zyx") },
want: "zyx",
},
`Max("zyx","abc")`: {
max: func() interface{} { return Max("zyx", "abc") },
want: "zyx",
},
}
for name, tc := range tt {
tc := tc
t.Run(name, func(t *testing.T) {
got := tc.max()
assert.Equal(t, tc.want, got)
})
}
}
func TestMin(t *testing.T) {
tt := map[string]struct {
min func() interface{}
want interface{}
}{
"Min(-1,3)": {
min: func() interface{} { return Min(-1, 3) },
want: -1,
},
"Min(3,-1)": {
min: func() interface{} { return Min(3, -1) },
want: -1,
},
"Min(-1.2,3.4)": {
min: func() interface{} { return Min(-1.2, 3.4) },
want: -1.2,
},
"Min(3.4,-1.2)": {
min: func() interface{} { return Min(3.4, -1.2) },
want: -1.2,
},
`Min("abc","zyx")`: {
min: func() interface{} { return Min("abc", "zyx") },
want: "abc",
},
`Min("zyx","abc")`: {
min: func() interface{} { return Min("zyx", "abc") },
want: "abc",
},
}
for name, tc := range tt {
tc := tc
t.Run(name, func(t *testing.T) {
got := tc.min()
assert.Equal(t, tc.want, got)
})
}
}
func TestSum(t *testing.T) {
tt := map[string]struct {
sum func() interface{}
want interface{}
}{
"Sum(-1,3)": {
sum: func() interface{} { return Sum(-1, 3) },
want: 2,
},
"Sum(3,-1)": {
sum: func() interface{} { return Sum(3, -1) },
want: 2,
},
"Sum(-1.2,3.4)": {
sum: func() interface{} { return Sum(-1.2, 3.4) },
want: 2.2,
},
"Sum(3.4,-1.2)": {
sum: func() interface{} { return Sum(3.4, -1.2) },
want: 2.2,
},
}
for name, tc := range tt {
tc := tc
t.Run(name, func(t *testing.T) {
got := tc.sum()
assert.Equal(t, tc.want, got)
})
}
}