@@ -157,6 +157,24 @@ def test_repr(self, input_val, expected):
157
157
assert repr_string == expected
158
158
159
159
160
+ @pytest .mark .parametrize ("first,second,expected" , [
161
+ (expr .Constant .of (1 ), expr .Constant .of (2 ), False ),
162
+ (expr .Constant .of (1 ), expr .Constant .of (1 ), True ),
163
+ (expr .Constant .of (1 ), 1 , True ),
164
+ (expr .Constant .of (1 ), 2 , False ),
165
+ (expr .Constant .of ("1" ), 1 , False ),
166
+ (expr .Constant .of ("1" ), "1" , True ),
167
+ (expr .Constant .of (None ), expr .Constant .of (0 ), False ),
168
+ (expr .Constant .of (None ), expr .Constant .of (None ), True ),
169
+ (expr .Constant .of ([1 ,2 ,3 ]), expr .Constant .of ([1 ,2 ,3 ]), True ),
170
+ (expr .Constant .of ([1 ,2 ,3 ]), expr .Constant .of ([1 ,2 ]), False ),
171
+ (expr .Constant .of ([1 ,2 ,3 ]), [1 ,2 ,3 ], True ),
172
+ (expr .Constant .of ([1 ,2 ,3 ]), object (), False ),
173
+ ])
174
+ def test_equality (self , first , second , expected ):
175
+ assert (first == second ) is expected
176
+
177
+
160
178
class TestListOfExprs :
161
179
def test_to_pb (self ):
162
180
instance = expr .ListOfExprs ([expr .Constant (1 ), expr .Constant (2 )])
@@ -178,6 +196,20 @@ def test_repr(self):
178
196
empty_repr_string = repr (empty_instance )
179
197
assert empty_repr_string == "ListOfExprs([])"
180
198
199
+ @pytest .mark .parametrize ("first,second,expected" , [
200
+ (expr .ListOfExprs ([]), expr .ListOfExprs ([]), True ),
201
+ (expr .ListOfExprs ([]), expr .ListOfExprs ([expr .Constant (1 )]), False ),
202
+ (expr .ListOfExprs ([expr .Constant (1 )]), expr .ListOfExprs ([]), False ),
203
+ (expr .ListOfExprs ([expr .Constant (1 )]), expr .ListOfExprs ([expr .Constant (1 )]), True ),
204
+ (expr .ListOfExprs ([expr .Constant (1 )]), expr .ListOfExprs ([expr .Constant (2 )]), False ),
205
+ (expr .ListOfExprs ([expr .Constant (1 ), expr .Constant (2 )]), expr .ListOfExprs ([expr .Constant (1 ), expr .Constant (2 )]), True ),
206
+ (expr .ListOfExprs ([expr .Constant (1 )]), [expr .Constant (1 )], False ),
207
+ (expr .ListOfExprs ([expr .Constant (1 )]), [1 ], False ),
208
+ (expr .ListOfExprs ([expr .Constant (1 )]), object (), False ),
209
+ ])
210
+ def test_equality (self , first , second , expected ):
211
+ assert (first == second ) is expected
212
+
181
213
182
214
class TestSelectable :
183
215
def test_ctor (self ):
@@ -194,6 +226,13 @@ def test_value_from_selectables(self):
194
226
assert result .map_value .fields ["field1" ].field_reference_value == "field1"
195
227
assert result .map_value .fields ["field2" ].field_reference_value == "field2"
196
228
229
+ @pytest .mark .parametrize ("first,second,expected" , [
230
+ (expr .Field .of ("field1" ), expr .Field .of ("field1" ), True ),
231
+ (expr .Field .of ("field1" ), expr .Field .of ("field2" ), False ),
232
+ ])
233
+ def test_equality (self , first , second , expected ):
234
+ assert (first == second ) is expected
235
+
197
236
class TestField :
198
237
def test_repr (self ):
199
238
instance = expr .Field .of ("field1" )
@@ -217,6 +256,17 @@ def test_to_map(self):
217
256
218
257
219
258
class TestFilterCondition :
259
+
260
+ @pytest .mark .parametrize ("first,second,expected" , [
261
+ (expr .IsNaN (expr .Field .of ("field1" )), expr .IsNaN (expr .Field .of ("field1" )), True ),
262
+ (expr .IsNaN (expr .Field .of ("real" )), expr .IsNaN (expr .Field .of ("fale" )), False ),
263
+ (expr .Gt (0 , 1 ), expr .Gt (0 , 1 ), True ),
264
+ (expr .Gt (0 , 1 ), expr .Gt (1 , 0 ), False ),
265
+ (expr .Gt (0 , 1 ), expr .Lt (0 , 1 ), False ),
266
+ ])
267
+ def test_equality (self , first , second , expected ):
268
+ assert (first == second ) is expected
269
+
220
270
def test__from_query_filter_pb_composite_filter_or (self , mock_client ):
221
271
"""
222
272
test composite OR filters
0 commit comments