-
Notifications
You must be signed in to change notification settings - Fork 30
/
Copy pathpredicates_test.go
108 lines (88 loc) · 2.49 KB
/
predicates_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
package toolbox_test
import (
"github.com/stretchr/testify/assert"
"github.com/viant/toolbox"
"testing"
"time"
)
func TestWithinPredicate(t *testing.T) {
targetTime := time.Unix(1465009041, 0)
predicate := toolbox.NewWithinPredicate(targetTime, 2, "")
timeValue := time.Unix(1465009042, 0)
assert.True(t, predicate.Apply(timeValue))
timeValue = time.Unix(1465009044, 0)
assert.False(t, predicate.Apply(timeValue))
}
func TestBetweenPredicate(t *testing.T) {
predicate := toolbox.NewBetweenPredicate(10, 20)
assert.False(t, predicate.Apply(9))
assert.True(t, predicate.Apply(10))
assert.True(t, predicate.Apply(11))
assert.False(t, predicate.Apply(21))
}
func TestInPredicate(t *testing.T) {
{
predicate := toolbox.NewInPredicate("10", 20, "a")
assert.False(t, predicate.Apply(9))
assert.True(t, predicate.Apply(10))
assert.False(t, predicate.Apply(15))
assert.True(t, predicate.Apply("a"))
assert.True(t, predicate.Apply(20))
assert.False(t, predicate.Apply(21))
}
}
func TestComparablePredicate(t *testing.T) {
{
predicate := toolbox.NewComparablePredicate(">", "1")
assert.True(t, predicate.Apply(3))
assert.False(t, predicate.Apply(1))
}
{
predicate := toolbox.NewComparablePredicate("<", "1")
assert.True(t, predicate.Apply(0))
assert.False(t, predicate.Apply(3))
}
{
predicate := toolbox.NewComparablePredicate("!=", "1")
assert.True(t, predicate.Apply(0))
assert.False(t, predicate.Apply(1))
}
}
func TestNewLikePredicate(t *testing.T) {
{
predicate := toolbox.NewLikePredicate("abc%efg")
assert.False(t, predicate.Apply("abefg"))
assert.True(t, predicate.Apply("abcefg"))
}
{
predicate := toolbox.NewLikePredicate("abc%")
assert.True(t, predicate.Apply("abcfg"))
}
}
func TestNewComparablePredicate(t *testing.T) {
{
predicate := toolbox.NewComparablePredicate("=", "abc")
assert.True(t, predicate.Apply("abc"))
assert.False(t, predicate.Apply("abdc"))
}
{
predicate := toolbox.NewComparablePredicate("!=", "abc")
assert.True(t, predicate.Apply("abcc"))
assert.False(t, predicate.Apply("abc"))
}
{
predicate := toolbox.NewComparablePredicate(">=", 3)
assert.True(t, predicate.Apply(10))
assert.False(t, predicate.Apply(1))
}
{
predicate := toolbox.NewComparablePredicate("<=", 3)
assert.True(t, predicate.Apply(1))
assert.False(t, predicate.Apply(10))
}
}
func TestNewInPredicate(t *testing.T) {
predicate := toolbox.NewInPredicate(1.2, 1.5)
assert.True(t, predicate.Apply("1.2"))
assert.False(t, predicate.Apply("1.1"))
}