-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathto.bool_test.go
126 lines (118 loc) · 3.45 KB
/
to.bool_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
123
124
125
126
package cast_test
import (
"testing"
)
func TestBoolToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{true, true, nil, false},
{false, false, nil, false},
})
}
// ToBool casts an interface to a bool type.
func TestVariousToBool(t *testing.T) {
var nilInterface interface{} = nil
testSimpleCases[bool](t, []testCase{
{true, true, nil, false},
{false, false, nil, false},
{"0", false, nil, false},
{"-1", true, nil, false},
{"1.1", true, nil, false},
{"1.4", true, nil, false},
{"1.5", true, nil, false},
{"1.9", true, nil, false},
{"0.0", false, nil, false},
{"0.1", false, nil, false},
{"-1.1", true, nil, false},
{"-1.4", true, nil, false},
{"-1.1", true, nil, false},
{"-1.1", true, nil, false},
{"1,000", true, nil, false},
{"1,000,000", true, nil, false},
{'a', true, nil, false},
{'1', true, nil, false},
{'0', false, nil, false},
{nilInterface, false, nil, false},
{"Hi", false, nil, true},
})
}
func TestByteToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{byte(1), true, nil, false},
{byte(1), true, nil, false},
{byte(2), true, nil, false},
{byte(0), false, nil, false},
{'a', true, nil, false},
{'1', true, nil, false},
{'0', false, nil, false},
})
}
func TestComplexToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{complex(1, 0), true, nil, false},
{complex(1, 1), true, nil, false},
{complex(0, 0), false, nil, false},
{complex(-1, 0), true, nil, false},
{complex(-1, -1), true, nil, false},
{complex64(float32(1.1)), true, nil, false},
{complex64(float32(-1.1)), true, nil, false},
{complex64(float32(0.0)), false, nil, false},
{complex128(float32(1.1)), true, nil, false},
{complex128(float32(-1.1)), true, nil, false},
{complex128(float32(0.0)), false, nil, false},
{complex64(float64(1.1)), true, nil, false},
{complex64(float64(-1.1)), true, nil, false},
{complex64(float64(0.0)), false, nil, false},
{complex128(float64(1.1)), true, nil, false},
{complex128(float64(-1.1)), true, nil, false},
{complex128(float64(0.0)), false, nil, false},
})
}
func TestFloatToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{1.0, true, nil, false},
{1.1, true, nil, false},
{0.0, false, nil, false},
{-1.0, true, nil, false},
{-1.1, true, nil, false},
{float32(1.0), true, nil, false},
{float32(1.1), true, nil, false},
{float32(0.0), false, nil, false},
{float32(-1.0), true, nil, false},
{float32(-1.1), true, nil, false},
{float64(1.0), true, nil, false},
{float64(1.1), true, nil, false},
{float64(0.0), false, nil, false},
{float64(-1.0), true, nil, false},
{float64(-1.1), true, nil, false},
})
}
func TestIntToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{int(1), true, nil, false},
{int(0), false, nil, false},
{int(-1), true, nil, false},
{int8(1), true, nil, false},
{int8(0), false, nil, false},
{int8(-1), true, nil, false},
{int16(1), true, nil, false},
{int16(0), false, nil, false},
{int16(-1), true, nil, false},
{int32(1), true, nil, false},
{int32(0), false, nil, false},
{int32(-1), true, nil, false},
{int64(1), true, nil, false},
{int64(0), false, nil, false},
{int64(-1), true, nil, false},
})
}
func TestStringToBool(t *testing.T) {
testSimpleCases[bool](t, []testCase{
{"1", true, nil, false},
{"0", false, nil, false},
{"-1", true, nil, false},
{"Hi!", false, nil, true},
{'a', true, nil, false},
{'1', true, nil, false},
{'0', false, nil, false},
})
}