@@ -23,6 +23,7 @@ def test_basics():
2323 # String query
2424 str_prop : Property = TestEntity .get_property ("str" )
2525
26+ # Case Sensitive = True
2627 query = box_test_entity .query (str_prop .equals ("bar" , case_sensitive = True )).build ()
2728 assert query .count () == 1
2829 assert query .find ()[0 ].str == "bar"
@@ -61,6 +62,46 @@ def test_basics():
6162 assert query .find ()[0 ].str == "foo"
6263 assert query .find ()[1 ].str == "bar"
6364
65+ # Case Sensitive = False
66+
67+ query = box_test_entity .query (str_prop .equals ("Bar" , case_sensitive = False )).build ()
68+ assert query .count () == 1
69+ assert query .find ()[0 ].str == "bar"
70+
71+ query = box_test_entity .query (str_prop .not_equals ("Bar" , case_sensitive = False )).build ()
72+ assert query .count () == 1
73+ assert query .find ()[0 ].str == "foo"
74+
75+ query = box_test_entity .query (str_prop .contains ("Ba" , case_sensitive = False )).build ()
76+ assert query .count () == 1
77+ assert query .find ()[0 ].str == "bar"
78+
79+ query = box_test_entity .query (str_prop .starts_with ("F" , case_sensitive = False )).build ()
80+ assert query .count () == 1
81+ assert query .find ()[0 ].str == "foo"
82+
83+ query = box_test_entity .query (str_prop .ends_with ("O" , case_sensitive = False )).build ()
84+ assert query .count () == 1
85+ assert query .find ()[0 ].str == "foo"
86+
87+ query = box_test_entity .query (str_prop .greater_than ("BAR" , case_sensitive = False )).build ()
88+ assert query .count () == 1
89+ assert query .find ()[0 ].str == "foo"
90+
91+ query = box_test_entity .query (str_prop .greater_or_equal ("BAR" , case_sensitive = False )).build ()
92+ assert query .count () == 2
93+ assert query .find ()[0 ].str == "foo"
94+ assert query .find ()[1 ].str == "bar"
95+
96+ query = box_test_entity .query (str_prop .less_than ("FOo" , case_sensitive = False )).build ()
97+ assert query .count () == 1
98+ assert query .find ()[0 ].str == "bar"
99+
100+ query = box_test_entity .query (str_prop .less_or_equal ("FoO" , case_sensitive = False )).build ()
101+ assert query .count () == 2
102+ assert query .find ()[0 ].str == "foo"
103+ assert query .find ()[1 ].str == "bar"
104+
64105 # Int queries
65106 int_prop : Property = TestEntity .get_property ("int64" )
66107
@@ -93,7 +134,7 @@ def test_basics():
93134 query = box_test_entity .query (int_prop .between (100 , 200 )).build ()
94135 assert query .count () == 1
95136 assert query .find ()[0 ].int64 == 123
96-
137+
97138 #
98139 assert query .remove () == 1
99140
@@ -106,6 +147,75 @@ def test_basics():
106147
107148 store .close ()
108149
150+ def test_integer_scalars ():
151+ store = create_test_store ()
152+
153+ box_test_entity = store .box (TestEntity )
154+ id1 = box_test_entity .put (TestEntity (int8 = 12 , int16 = 12 , int32 = 12 , int64 = 12 ))
155+ id2 = box_test_entity .put (TestEntity (int8 = 45 , int16 = 45 , int32 = 45 , int64 = 45 ))
156+
157+ props = [ "int8" , "int16" , "int32" , "int64" ]
158+ for p in props :
159+ prop = TestEntity .get_property (p )
160+
161+ query = box_test_entity .query (prop .equals (12 )).build ()
162+ assert query .count () == 1
163+ assert query .find ()[0 ].id == id1
164+
165+ query = box_test_entity .query (prop .equals (45 )).build ()
166+ assert query .count () == 1
167+ assert query .find ()[0 ].id == id2
168+
169+ query = box_test_entity .query (prop .not_equals (12 )).build ()
170+ assert query .count () == 1
171+ assert query .find ()[0 ].id == id2
172+
173+ query = box_test_entity .query (prop .greater_than (12 )).build ()
174+ assert query .count () == 1
175+ assert query .find ()[0 ].id == id2
176+
177+ query = box_test_entity .query (prop .greater_or_equal (12 )).build ()
178+ assert query .count () == 2
179+ assert query .find ()[0 ].id == id1
180+ assert query .find ()[1 ].id == id2
181+
182+ query = box_test_entity .query (prop .less_than (45 )).build ()
183+ assert query .count () == 1
184+ assert query .find ()[0 ].id == id1
185+
186+ query = box_test_entity .query (prop .less_or_equal (45 )).build ()
187+ assert query .count () == 2
188+ assert query .find ()[0 ].id == id1
189+ assert query .find ()[1 ].id == id2
190+
191+ def test_float_scalars ():
192+ store = create_test_store ()
193+
194+ box_test_entity = store .box (TestEntity )
195+ id1 = box_test_entity .put (TestEntity (float32 = 12 , float64 = 12 ))
196+ id2 = box_test_entity .put (TestEntity (float32 = 45 , float64 = 45 ))
197+
198+ props = [ "float32" , "float64" ]
199+ for p in props :
200+ prop = TestEntity .get_property (p )
201+ query = box_test_entity .query (prop .greater_or_equal (11 )).build ()
202+ assert query .count () == 2
203+ assert query .find ()[0 ].id == id1
204+ assert query .find ()[1 ].id == id2
205+ query = box_test_entity .query (prop .greater_than (12 )).build ()
206+ assert query .count () == 1
207+ assert query .find ()[0 ].id == id2
208+ query = box_test_entity .query (prop .less_than (45 )).build ()
209+ assert query .count () == 1
210+ assert query .find ()[0 ].id == id1
211+ query = box_test_entity .query (prop .less_or_equal (45 )).build ()
212+ assert query .count () == 2
213+ assert query .find ()[0 ].id == id1
214+ assert query .find ()[1 ].id == id2
215+ query = box_test_entity .query (prop .between (10 ,50 )).build ()
216+ assert query .count () == 2
217+ assert query .find ()[0 ].id == id1
218+ assert query .find ()[1 ].id == id2
109219
110220def test_flex_contains_key_value ():
111221 store = create_test_store ()
0 commit comments