44from skrub import TableReport , config_context , get_config , set_config
55from skrub ._config import _parse_env_bool
66from skrub ._data_ops ._evaluation import evaluate
7- from skrub .datasets import fetch_employee_salaries
7+ from skrub .conftest import polars_installed_without_pyarrow
88
99
1010def _use_table_report (obj ):
1111 return "SkrubTableReport" in obj ._repr_html_ ()
1212
1313
14+ @pytest .fixture
15+ def simple_df (df_module ):
16+ return df_module .make_dataframe (
17+ {
18+ "A" : [1 , 2 , 3 , 4 , 5 ],
19+ "B" : ["a" , "b" , "a" , "b" , "c" ],
20+ }
21+ )
22+
23+
24+ @pytest .fixture
25+ def simple_series (df_module ):
26+ return df_module .make_column (name = "A" , values = [1 , 2 , 3 , 4 , 5 ])
27+
28+
1429def test_config_context ():
1530 assert get_config () == {
1631 "use_table_report" : False ,
@@ -28,54 +43,54 @@ def test_config_context():
2843 assert get_config ()["use_table_report" ] is False
2944
3045
31- def test_use_table_report_data_ops ():
32- X = skrub .X (fetch_employee_salaries ().X )
33-
46+ def test_use_table_report_data_ops (simple_df ):
47+ X = skrub .X (simple_df )
3448 with config_context (use_table_report_data_ops = True ):
3549 assert _use_table_report (X )
3650 with config_context (use_table_report_data_ops = False ):
3751 assert not _use_table_report (X )
3852
3953
40- def test_use_table_report ():
41- X = fetch_employee_salaries (). X
42- assert not _use_table_report (X )
54+ @ polars_installed_without_pyarrow
55+ def test_use_table_report ( simple_df ):
56+ assert not _use_table_report (simple_df )
4357 with config_context (use_table_report = True ):
44- assert _use_table_report (X )
58+ assert _use_table_report (simple_df )
4559 with config_context (use_table_report = False ):
46- assert not _use_table_report (X )
60+ assert not _use_table_report (simple_df )
4761
4862
49- def test_max_plot_columns ():
50- X = fetch_employee_salaries (). X
51- report = TableReport (X )
63+ @ polars_installed_without_pyarrow
64+ def test_max_plot_columns ( simple_df ):
65+ report = TableReport (simple_df )
5266 assert report .max_association_columns == 30
5367 assert report .max_plot_columns == 30
5468
5569 # Set default to 1
5670 with config_context (max_plot_columns = 1 ):
57- report = TableReport (X )
71+ report = TableReport (simple_df )
5872 assert report .max_association_columns == 30
5973 assert report .max_plot_columns == 1
6074
6175 # Argument takes precedence over default configuration
62- report = TableReport (X , max_association_columns = "all" , max_plot_columns = "all" )
76+ report = TableReport (
77+ simple_df , max_association_columns = "all" , max_plot_columns = "all"
78+ )
6379 assert report .max_association_columns == "all"
6480 assert report .max_plot_columns == "all"
6581
6682 # Check that max_plot_columns can be set after patching the TableReport
6783 # repr_html.
6884 with config_context (use_table_report = True ):
6985 with config_context (max_plot_columns = 3 ):
70- "Plotting was skipped" in X ._repr_html_ ()
86+ "Plotting was skipped" in simple_df ._repr_html_ ()
7187
7288
73- def test_enable_subsampling ():
74- X = fetch_employee_salaries ().X
75- dataop = skrub .X (X )
89+ def test_enable_subsampling (simple_df ):
90+ dataop = skrub .X (simple_df )
7691
7792 # No subsampling by default with fit_transform mode
78- assert dataop .skb .subsample (n = 3 ).skb .eval ().shape [0 ] == X .shape [0 ]
93+ assert dataop .skb .subsample (n = 3 ).skb .eval ().shape [0 ] == simple_df .shape [0 ]
7994 assert dataop .skb .subsample (n = 3 ).skb .eval (keep_subsampling = True ).shape [0 ] == 3
8095
8196 # Force subsampling during fit_transform
@@ -87,24 +102,24 @@ def test_enable_subsampling():
87102
88103 with config_context (enable_subsampling = "disable" ):
89104 assert (
90- evaluate (dataop .skb .subsample (n = 3 ), mode = "preview" ).shape [0 ] == X .shape [0 ]
105+ evaluate (dataop .skb .subsample (n = 3 ), mode = "preview" ).shape [0 ]
106+ == simple_df .shape [0 ]
91107 )
92108 with config_context (enable_subsampling = "default" ):
93109 assert evaluate (dataop .skb .subsample (n = 3 ), mode = "preview" ).shape [0 ] == 3
94110
95111
96- def test_float_precision ():
97- y = fetch_employee_salaries ().y
98-
112+ @polars_installed_without_pyarrow
113+ def test_float_precision (simple_series ):
99114 # Default config: float_precision set to 3
100- report = TableReport (y )
115+ report = TableReport (simple_series )
101116 mean = f"{ report ._summary ['columns' ][0 ]['mean' ]:#.3g} "
102117 html = report ._repr_html_ ()
103118 assert mean in html
104119
105120 # Float precision set to 2
106121 with config_context (float_precision = 2 ):
107- report_2 = TableReport (y )
122+ report_2 = TableReport (simple_series )
108123 mean_2 = f"{ report_2 ._summary ['columns' ][0 ]['mean' ]:#.2g} "
109124 html_2 = report_2 ._repr_html_ ()
110125 assert mean_2 in html_2
@@ -131,25 +146,24 @@ def test_error(params):
131146 set_config (** params )
132147
133148
134- def test_subsampling_seed ():
135- X = fetch_employee_salaries ().X
136- data_op = skrub .X (X )
149+ def test_subsampling_seed (simple_df ):
150+ data_op = skrub .X (simple_df )
137151
138152 with config_context (subsampling_seed = 0 ):
139- index = evaluate (
140- data_op . skb . subsample ( n = 3 , how = "random" ), mode = "preview "
141- ). index . tolist ()
142- index_identical = evaluate (
153+ col_a = evaluate (data_op . skb . subsample ( n = 3 , how = "random" ), mode = "preview" )[
154+ "A "
155+ ]. to_list ()
156+ col_a_identical = evaluate (
143157 data_op .skb .subsample (n = 3 , how = "random" ), mode = "preview"
144- ). index . tolist ()
158+ )[ "A" ]. to_list ()
145159
146160 with config_context (subsampling_seed = 1 ):
147- index_different = evaluate (
161+ col_a_different = evaluate (
148162 data_op .skb .subsample (n = 3 , how = "random" ), mode = "preview"
149- ). index . tolist ()
163+ )[ "A" ]. to_list ()
150164
151- assert index == index_identical
152- assert index != index_different
165+ assert col_a == col_a_identical
166+ assert col_a != col_a_different
153167
154168
155169def test_parsing (monkeypatch ):
0 commit comments