@@ -266,3 +266,102 @@ def test_engines_astype_timedelta(scalars_array_value: array_value.ArrayValue, e
266266 ops .AsTypeOp (to_type = bigframes .dtypes .TIMEDELTA_DTYPE ),
267267 )
268268 assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
269+
270+
271+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
272+ def test_engines_where_op (scalars_array_value : array_value .ArrayValue , engine ):
273+ arr , _ = scalars_array_value .compute_values (
274+ [
275+ ops .where_op .as_expr (
276+ expression .deref ("int64_col" ),
277+ expression .deref ("bool_col" ),
278+ expression .deref ("float64_col" ),
279+ )
280+ ]
281+ )
282+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
283+
284+
285+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
286+ def test_engines_coalesce_op (scalars_array_value : array_value .ArrayValue , engine ):
287+ arr , _ = scalars_array_value .compute_values (
288+ [
289+ ops .coalesce_op .as_expr (
290+ expression .deref ("int64_col" ),
291+ expression .deref ("float64_col" ),
292+ )
293+ ]
294+ )
295+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
296+
297+
298+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
299+ def test_engines_fillna_op (scalars_array_value : array_value .ArrayValue , engine ):
300+ arr , _ = scalars_array_value .compute_values (
301+ [
302+ ops .fillna_op .as_expr (
303+ expression .deref ("int64_col" ),
304+ expression .deref ("float64_col" ),
305+ )
306+ ]
307+ )
308+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
309+
310+
311+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
312+ def test_engines_casewhen_op_single_case (
313+ scalars_array_value : array_value .ArrayValue , engine
314+ ):
315+ arr , _ = scalars_array_value .compute_values (
316+ [
317+ ops .case_when_op .as_expr (
318+ expression .deref ("bool_col" ),
319+ expression .deref ("int64_col" ),
320+ )
321+ ]
322+ )
323+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
324+
325+
326+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
327+ def test_engines_casewhen_op_double_case (
328+ scalars_array_value : array_value .ArrayValue , engine
329+ ):
330+ arr , _ = scalars_array_value .compute_values (
331+ [
332+ ops .case_when_op .as_expr (
333+ ops .gt_op .as_expr (expression .deref ("int64_col" ), expression .const (3 )),
334+ expression .deref ("int64_col" ),
335+ ops .lt_op .as_expr (expression .deref ("int64_col" ), expression .const (- 3 )),
336+ expression .deref ("int64_too" ),
337+ )
338+ ]
339+ )
340+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
341+
342+
343+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
344+ def test_engines_isnull_op (scalars_array_value : array_value .ArrayValue , engine ):
345+ arr , _ = scalars_array_value .compute_values (
346+ [ops .isnull_op .as_expr (expression .deref ("string_col" ))]
347+ )
348+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
349+
350+
351+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
352+ def test_engines_notnull_op (scalars_array_value : array_value .ArrayValue , engine ):
353+ arr , _ = scalars_array_value .compute_values (
354+ [ops .notnull_op .as_expr (expression .deref ("string_col" ))]
355+ )
356+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
357+
358+
359+ @pytest .mark .parametrize ("engine" , ["polars" , "bq" ], indirect = True )
360+ def test_engines_invert_op (scalars_array_value : array_value .ArrayValue , engine ):
361+ arr , _ = scalars_array_value .compute_values (
362+ [
363+ ops .invert_op .as_expr (expression .deref ("bytes_col" )),
364+ ops .invert_op .as_expr (expression .deref ("bool_col" )),
365+ ]
366+ )
367+ assert_equivalence_execution (arr .node , REFERENCE_ENGINE , engine )
0 commit comments