11"""
22Test the ColumnTransformer.
33"""
4+ import re
45
56import numpy as np
67from scipy import sparse
@@ -596,7 +597,8 @@ def test_column_transformer_get_set_params():
596597 'trans2__with_mean' : True ,
597598 'trans2__with_std' : True ,
598599 'transformers' : ct .transformers ,
599- 'transformer_weights' : None }
600+ 'transformer_weights' : None ,
601+ 'verbose' : False }
600602
601603 assert_dict_equal (ct .get_params (), exp )
602604
@@ -613,7 +615,8 @@ def test_column_transformer_get_set_params():
613615 'trans2__with_mean' : True ,
614616 'trans2__with_std' : True ,
615617 'transformers' : ct .transformers ,
616- 'transformer_weights' : None }
618+ 'transformer_weights' : None ,
619+ 'verbose' : False }
617620
618621 assert_dict_equal (ct .get_params (), exp )
619622
@@ -944,7 +947,8 @@ def test_column_transformer_get_set_params_with_remainder():
944947 'trans1__with_mean' : True ,
945948 'trans1__with_std' : True ,
946949 'transformers' : ct .transformers ,
947- 'transformer_weights' : None }
950+ 'transformer_weights' : None ,
951+ 'verbose' : False }
948952
949953 assert ct .get_params () == exp
950954
@@ -960,7 +964,8 @@ def test_column_transformer_get_set_params_with_remainder():
960964 'sparse_threshold' : 0.3 ,
961965 'trans1' : 'passthrough' ,
962966 'transformers' : ct .transformers ,
963- 'transformer_weights' : None }
967+ 'transformer_weights' : None ,
968+ 'verbose' : False }
964969
965970 assert ct .get_params () == exp
966971
@@ -981,6 +986,56 @@ def test_column_transformer_no_estimators():
981986 assert ct .transformers_ [- 1 ][2 ] == [0 , 1 , 2 ]
982987
983988
989+ @pytest .mark .parametrize (
990+ ['est' , 'pattern' ],
991+ [(ColumnTransformer ([('trans1' , Trans (), [0 ]), ('trans2' , Trans (), [1 ])],
992+ remainder = DoubleTrans ()),
993+ (r'\[ColumnTransformer\].*\(1 of 3\) Processing trans1.* total=.*\n'
994+ r'\[ColumnTransformer\].*\(2 of 3\) Processing trans2.* total=.*\n'
995+ r'\[ColumnTransformer\].*\(3 of 3\) Processing remainder.* total=.*\n$'
996+ )),
997+ (ColumnTransformer ([('trans1' , Trans (), [0 ]), ('trans2' , Trans (), [1 ])],
998+ remainder = 'passthrough' ),
999+ (r'\[ColumnTransformer\].*\(1 of 3\) Processing trans1.* total=.*\n'
1000+ r'\[ColumnTransformer\].*\(2 of 3\) Processing trans2.* total=.*\n'
1001+ r'\[ColumnTransformer\].*\(3 of 3\) Processing remainder.* total=.*\n$'
1002+ )),
1003+ (ColumnTransformer ([('trans1' , Trans (), [0 ]), ('trans2' , 'drop' , [1 ])],
1004+ remainder = 'passthrough' ),
1005+ (r'\[ColumnTransformer\].*\(1 of 2\) Processing trans1.* total=.*\n'
1006+ r'\[ColumnTransformer\].*\(2 of 2\) Processing remainder.* total=.*\n$'
1007+ )),
1008+ (ColumnTransformer ([('trans1' , Trans (), [0 ]),
1009+ ('trans2' , 'passthrough' , [1 ])],
1010+ remainder = 'passthrough' ),
1011+ (r'\[ColumnTransformer\].*\(1 of 3\) Processing trans1.* total=.*\n'
1012+ r'\[ColumnTransformer\].*\(2 of 3\) Processing trans2.* total=.*\n'
1013+ r'\[ColumnTransformer\].*\(3 of 3\) Processing remainder.* total=.*\n$'
1014+ )),
1015+ (ColumnTransformer ([('trans1' , Trans (), [0 ])], remainder = 'passthrough' ),
1016+ (r'\[ColumnTransformer\].*\(1 of 2\) Processing trans1.* total=.*\n'
1017+ r'\[ColumnTransformer\].*\(2 of 2\) Processing remainder.* total=.*\n$'
1018+ )),
1019+ (ColumnTransformer ([('trans1' , Trans (), [0 ]), ('trans2' , Trans (), [1 ])],
1020+ remainder = 'drop' ),
1021+ (r'\[ColumnTransformer\].*\(1 of 2\) Processing trans1.* total=.*\n'
1022+ r'\[ColumnTransformer\].*\(2 of 2\) Processing trans2.* total=.*\n$' )),
1023+ (ColumnTransformer ([('trans1' , Trans (), [0 ])], remainder = 'drop' ),
1024+ (r'\[ColumnTransformer\].*\(1 of 1\) Processing trans1.* total=.*\n$' ))])
1025+ @pytest .mark .parametrize ('method' , ['fit' , 'fit_transform' ])
1026+ def test_column_transformer_verbose (est , pattern , method , capsys ):
1027+ X_array = np .array ([[0 , 1 , 2 ], [2 , 4 , 6 ], [8 , 6 , 4 ]]).T
1028+
1029+ func = getattr (est , method )
1030+ est .set_params (verbose = False )
1031+ func (X_array )
1032+ assert not capsys .readouterr ().out , 'Got output for verbose=False'
1033+
1034+ est .set_params (verbose = True )
1035+ func (X_array )
1036+ assert re .match (pattern , capsys .readouterr ()[0 ])
1037+
1038+
9841039def test_column_transformer_no_estimators_set_params ():
9851040 ct = ColumnTransformer ([]).set_params (n_jobs = 2 )
9861041 assert ct .n_jobs == 2
0 commit comments