def test_complex_filter_table(): t = pa.table({ "a": [1, 2, 3, 4, 5, 6, 6], "b": [10, 20, 30, 40, 50, 60, 61] }) result = ep._filter_table( t, ((pc.bit_wise_and(pc.field("a"), pc.scalar(1)) == pc.scalar(0)) & (pc.multiply(pc.field("a"), pc.scalar(10)) == pc.field("b")))) assert result == pa.table({ "a": [2, 4, 6], # second six must be omitted because 6*10 != 61 "b": [20, 40, 60] })
def test_arithmetic_multiply(): left = pa.array([1, 2, 3, 4, 5]) right = pa.array([0, -1, 1, 2, 3]) result = pc.multiply(left, right) expected = pa.array([0, -2, 3, 8, 15]) assert result.equals(expected)
def my_string_length(arr, **kwargs): # arr is a pyarrow.StringArray return pc.cast(pc.multiply(pc.utf8_length(arr), 2), target_type='int64')