1
- from typing import Type
1
+ from typing import Type , Container
2
2
3
3
import unittest
4
4
@@ -41,31 +41,29 @@ def test_default_boston(self):
41
41
Regressor = self .module
42
42
)
43
43
44
+ score = sklearn .metrics .r2_score (y_true = targets , y_pred = predictions )
45
+
46
+ # Special treatment for Gaussian Process Regression
44
47
if "default_boston_le_ge" in self .res :
45
- # Special treatment for Gaussian Process Regression
46
- self .assertLessEqual (
47
- sklearn .metrics .r2_score (y_true = targets , y_pred = predictions ),
48
- self .res ["default_boston_le_ge" ][0 ]
49
- )
50
- self .assertGreaterEqual (
51
- sklearn .metrics .r2_score (y_true = targets , y_pred = predictions ),
52
- self .res ["default_boston_le_ge" ][1 ]
53
- )
48
+ upper , lower = self .res ["default_boston_le_ge" ]
49
+ assert lower <= score <= upper
50
+
54
51
else :
55
- score = sklearn .metrics .r2_score (targets , predictions )
56
52
fixture = self .res ["default_boston" ]
53
+ places = self .res .get ("default_boston_places" , 7 )
54
+
57
55
if score < - 1e10 :
58
- print (f"score = { score } , fixture = { fixture } " )
59
56
score = np .log (- score )
60
57
fixture = np .log (- fixture )
61
- self .assertAlmostEqual (
62
- fixture ,
63
- score ,
64
- places = self .res .get ("default_boston_places" , 7 ),
65
- )
66
58
67
- if self .res .get ("boston_n_calls" ):
68
- self .assertEqual (self .res ["boston_n_calls" ], n_calls )
59
+ self .assertAlmostEqual (fixture , score , places )
60
+
61
+ if "boston_n_calls" in self .res :
62
+ expected = self .res ["boston_n_calls" ]
63
+ if isinstance (expected , Container ):
64
+ assert n_calls in expected
65
+ else :
66
+ assert n_calls == expected
69
67
70
68
def test_default_boston_iterative_fit (self ):
71
69
@@ -84,23 +82,28 @@ def test_default_boston_iterative_fit(self):
84
82
85
83
score = sklearn .metrics .r2_score (targets , predictions )
86
84
fixture = self .res ["default_boston_iterative" ]
85
+ places = self .res .get ("default_boston_iterative_places" , 7 )
87
86
88
87
if score < - 1e10 :
89
88
print (f"score = { score } , fixture = { fixture } " )
90
89
score = np .log (- score )
91
90
fixture = np .log (- fixture )
92
91
93
- self .assertAlmostEqual (
94
- fixture ,
95
- score ,
96
- places = self .res .get ("default_boston_iterative_places" , 7 ),
97
- )
92
+ self .assertAlmostEqual (fixture , score , places )
98
93
99
94
if self .step_hyperparameter is not None :
100
- self .assertEqual (
101
- getattr (regressor .estimator , self .step_hyperparameter ['name' ]),
102
- self .res .get ("boston_iterative_n_iter" , self .step_hyperparameter ['value' ])
103
- )
95
+ param_name = self .step_hyperparameter ['name' ]
96
+ default = self .step_hyperparameter ['value' ]
97
+
98
+ value = getattr (regressor .estimator , param_name )
99
+ expected = self .res .get ("boston_iterative_n_iter" , default )
100
+
101
+ # To currently allow for MLPRegressor which is indeterministic,
102
+ # we can have multiple values
103
+ if isinstance (expected , Container ):
104
+ assert value in expected
105
+ else :
106
+ assert value == expected
104
107
105
108
def test_default_boston_iterative_sparse_fit (self ):
106
109
0 commit comments