def test__get_model_dict(self): """_get_model_dict returns a pandas.Series with all the params to recreate a model.""" # Setup X = np.eye(3) expected_result = { 'covariance__0__0': 1.5000000000000009, 'covariance__1__0': -0.7500000000000003, 'covariance__1__1': 1.5000000000000009, 'covariance__2__0': -0.7500000000000003, 'covariance__2__1': -0.7500000000000003, 'covariance__2__2': 1.5000000000000007, 'distribs__0__mean': 0.33333333333333331, 'distribs__0__std': -0.7520386983881371, 'distribs__1__mean': 0.33333333333333331, 'distribs__1__std': -0.7520386983881371, 'distribs__2__mean': 0.33333333333333331, 'distribs__2__std': -0.7520386983881371, } data_navigator = MagicMock() modeler = Modeler(data_navigator) # Run result = modeler._get_model_dict(X) # Check assert result == expected_result
def test__get_model_dict_default_model(self, log_mock): """Test get flatten model dict with default model""" # Setup model_fitted = Mock() model_fitted.covariance = [ [1, 2, 3], [4, 5, 6], [7, 8, 9] ] distrib1 = Mock() distrib1.std = 0.2 distrib2 = Mock() distrib2.std = None distrib3 = Mock() distrib3.std = 0.5 distrib4 = Mock() distrib4.std = 0.3 model_fitted.distribs = { 'distrib1': distrib1, 'distrib2': distrib2, 'distrib3': distrib3, 'distrib4': distrib4 } # Run modeler = Mock(spec=Modeler) modeler._fit_model.return_value = model_fitted modeler._flatten_dict.return_value = 'result' data = pd.DataFrame({'data': [1, 2, 3]}) result = Modeler._get_model_dict(modeler, data) # Asserts expected_log_mock_call = [ call(0.2), call(0.5), call(0.3) ] assert result == 'result' assert sorted(log_mock.call_args_list) == sorted(expected_log_mock_call) pd.testing.assert_frame_equal( modeler._fit_model.call_args[0][0], pd.DataFrame({'data': [1, 2, 3]}) )