@@ -40,25 +40,29 @@ def test_over_single(constructor: Constructor) -> None:
4040 "a" : ["a" , "a" , "b" , "b" , "b" ],
4141 "b" : [1 , 2 , 3 , 5 , 3 ],
4242 "c" : [5 , 4 , 3 , 2 , 1 ],
43+ "i" : list (range (5 )),
4344 "c_max" : [5 , 5 , 3 , 3 , 3 ],
4445 }
4546
46- result = df .with_columns (c_max = nw .col ("c" ).max ().over ("a" )).sort ("i" ). drop ( "i" )
47+ result = df .with_columns (c_max = nw .col ("c" ).max ().over ("a" )).sort ("i" )
4748 assert_equal_data (result , expected )
48- result = df .with_columns (c_max = nw .col ("c" ).max ().over (["a" ])).sort ("i" ). drop ( "i" )
49+ result = df .with_columns (c_max = nw .col ("c" ).max ().over (["a" ])).sort ("i" )
4950 assert_equal_data (result , expected )
5051
5152
5253def test_over_std_var (request : pytest .FixtureRequest , constructor : Constructor ) -> None :
5354 if "cudf" in str (constructor ):
5455 # https://github.com/rapidsai/cudf/issues/18159
5556 request .applymarker (pytest .mark .xfail )
57+ if "duckdb" in str (constructor ) and DUCKDB_VERSION < (1 , 3 ):
58+ pytest .skip ()
5659
5760 df = nw .from_native (constructor (data ))
5861 expected = {
5962 "a" : ["a" , "a" , "b" , "b" , "b" ],
6063 "b" : [1 , 2 , 3 , 5 , 3 ],
6164 "c" : [5 , 4 , 3 , 2 , 1 ],
65+ "i" : list (range (5 )),
6266 "c_std0" : [0.5 , 0.5 , 0.816496580927726 , 0.816496580927726 , 0.816496580927726 ],
6367 "c_std1" : [0.7071067811865476 , 0.7071067811865476 , 1.0 , 1.0 , 1.0 ],
6468 "c_var0" : [
@@ -71,16 +75,12 @@ def test_over_std_var(request: pytest.FixtureRequest, constructor: Constructor)
7175 "c_var1" : [0.5 , 0.5 , 1.0 , 1.0 , 1.0 ],
7276 }
7377
74- result = (
75- df .with_columns (
76- c_std0 = nw .col ("c" ).std (ddof = 0 ).over ("a" ),
77- c_std1 = nw .col ("c" ).std (ddof = 1 ).over ("a" ),
78- c_var0 = nw .col ("c" ).var (ddof = 0 ).over ("a" ),
79- c_var1 = nw .col ("c" ).var (ddof = 1 ).over ("a" ),
80- )
81- .sort ("i" )
82- .drop ("i" )
83- )
78+ result = df .with_columns (
79+ c_std0 = nw .col ("c" ).std (ddof = 0 ).over ("a" ),
80+ c_std1 = nw .col ("c" ).std (ddof = 1 ).over ("a" ),
81+ c_var0 = nw .col ("c" ).var (ddof = 0 ).over ("a" ),
82+ c_var1 = nw .col ("c" ).var (ddof = 1 ).over ("a" ),
83+ ).sort ("i" )
8484 assert_equal_data (result , expected )
8585
8686
@@ -92,6 +92,7 @@ def test_over_multiple(constructor: Constructor) -> None:
9292 "a" : ["a" , "a" , "b" , "b" , "b" ],
9393 "b" : [1 , 2 , 3 , 3 , 5 ],
9494 "c" : [5 , 4 , 3 , 1 , 2 ],
95+ "i" : list (range (5 )),
9596 "c_min" : [5 , 4 , 1 , 1 , 2 ],
9697 }
9798 expected = {
@@ -100,7 +101,7 @@ def test_over_multiple(constructor: Constructor) -> None:
100101 "c" : [5 , 4 , 3 , 2 , 1 ],
101102 }
102103
103- result = df .with_columns (c_min = nw .col ("c" ).min ().over ("a" , "b" )).sort ("i" ). drop ( "i" )
104+ result = df .with_columns (c_min = nw .col ("c" ).min ().over ("a" , "b" )).sort ("i" )
104105 assert_equal_data (result , expected )
105106
106107
0 commit comments