@@ -1024,3 +1024,34 @@ def test_cast(df, python_datatype, name: str, expected):
10241024 result = df .collect ()
10251025 result = result [0 ]
10261026 assert result .column (0 ) == result .column (1 )
1027+
1028+
1029+ @pytest .mark .parametrize (
1030+ "negated, low, high, expected" ,
1031+ [
1032+ pytest .param (False , 3 , 5 , {"filtered" : [4 , 5 ]}),
1033+ pytest .param (False , 4 , 5 , {"filtered" : [4 , 5 ]}),
1034+ pytest .param (True , 3 , 5 , {"filtered" : [6 ]}),
1035+ pytest .param (True , 4 , 6 , []),
1036+ ],
1037+ )
1038+ def test_between (df , negated , low , high , expected ):
1039+ df = df .filter (column ("b" ).between (low , high , negated = negated )).select (
1040+ column ("b" ).alias ("filtered" )
1041+ )
1042+
1043+ actual = df .collect ()
1044+
1045+ if expected :
1046+ actual = actual [0 ].to_pydict ()
1047+ assert actual == expected
1048+ else :
1049+ assert len (actual ) == 0 # the rows are empty
1050+
1051+
1052+ def test_between_default (df ):
1053+ df = df .filter (column ("b" ).between (3 , 5 )).select (column ("b" ).alias ("filtered" ))
1054+ expected = {"filtered" : [4 , 5 ]}
1055+
1056+ actual = df .collect ()[0 ].to_pydict ()
1057+ assert actual == expected
0 commit comments