github.com/viant/toolbox@v0.34.5/predicates_test.go (about) 1 package toolbox_test 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "github.com/viant/toolbox" 6 "testing" 7 "time" 8 ) 9 10 func TestWithinPredicate(t *testing.T) { 11 targetTime := time.Unix(1465009041, 0) 12 predicate := toolbox.NewWithinPredicate(targetTime, 2, "") 13 timeValue := time.Unix(1465009042, 0) 14 assert.True(t, predicate.Apply(timeValue)) 15 16 timeValue = time.Unix(1465009044, 0) 17 assert.False(t, predicate.Apply(timeValue)) 18 } 19 20 func TestBetweenPredicate(t *testing.T) { 21 22 predicate := toolbox.NewBetweenPredicate(10, 20) 23 24 assert.False(t, predicate.Apply(9)) 25 assert.True(t, predicate.Apply(10)) 26 assert.True(t, predicate.Apply(11)) 27 assert.False(t, predicate.Apply(21)) 28 29 } 30 31 func TestInPredicate(t *testing.T) { 32 33 { 34 predicate := toolbox.NewInPredicate("10", 20, "a") 35 assert.False(t, predicate.Apply(9)) 36 assert.True(t, predicate.Apply(10)) 37 assert.False(t, predicate.Apply(15)) 38 assert.True(t, predicate.Apply("a")) 39 assert.True(t, predicate.Apply(20)) 40 assert.False(t, predicate.Apply(21)) 41 } 42 } 43 44 func TestComparablePredicate(t *testing.T) { 45 { 46 predicate := toolbox.NewComparablePredicate(">", "1") 47 assert.True(t, predicate.Apply(3)) 48 assert.False(t, predicate.Apply(1)) 49 } 50 { 51 predicate := toolbox.NewComparablePredicate("<", "1") 52 assert.True(t, predicate.Apply(0)) 53 assert.False(t, predicate.Apply(3)) 54 } 55 { 56 predicate := toolbox.NewComparablePredicate("!=", "1") 57 assert.True(t, predicate.Apply(0)) 58 assert.False(t, predicate.Apply(1)) 59 } 60 61 } 62 63 func TestNewLikePredicate(t *testing.T) { 64 { 65 predicate := toolbox.NewLikePredicate("abc%efg") 66 assert.False(t, predicate.Apply("abefg")) 67 assert.True(t, predicate.Apply("abcefg")) 68 69 } 70 { 71 predicate := toolbox.NewLikePredicate("abc%") 72 assert.True(t, predicate.Apply("abcfg")) 73 74 } 75 } 76 77 func TestNewComparablePredicate(t *testing.T) { 78 79 { 80 predicate := toolbox.NewComparablePredicate("=", "abc") 81 assert.True(t, predicate.Apply("abc")) 82 assert.False(t, predicate.Apply("abdc")) 83 } 84 { 85 predicate := toolbox.NewComparablePredicate("!=", "abc") 86 assert.True(t, predicate.Apply("abcc")) 87 assert.False(t, predicate.Apply("abc")) 88 } 89 90 { 91 predicate := toolbox.NewComparablePredicate(">=", 3) 92 assert.True(t, predicate.Apply(10)) 93 assert.False(t, predicate.Apply(1)) 94 } 95 96 { 97 predicate := toolbox.NewComparablePredicate("<=", 3) 98 assert.True(t, predicate.Apply(1)) 99 assert.False(t, predicate.Apply(10)) 100 } 101 102 } 103 104 func TestNewInPredicate(t *testing.T) { 105 predicate := toolbox.NewInPredicate(1.2, 1.5) 106 assert.True(t, predicate.Apply("1.2")) 107 assert.False(t, predicate.Apply("1.1")) 108 }