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  }