def test_save(self, json_mock): """Save stores the internal dictionary as a json in a file.""" # Setup instance = GaussianMultivariate() data = pd.read_csv('data/iris.data.csv') instance.fit(data) covariance = [[ 1.006711409395973, -0.11010327176239865, 0.8776048563471857, 0.823443255069628 ], [ -0.11010327176239865, 1.006711409395972, -0.4233383520816991, -0.3589370029669186 ], [ 0.8776048563471857, -0.4233383520816991, 1.006711409395973, 0.9692185540781536 ], [ 0.823443255069628, -0.3589370029669186, 0.9692185540781536, 1.0067114093959735 ]] parameters = { 'covariance': covariance, 'distribs': { 'feature_01': { 'mean': 5.843333333333334, 'std': 0.8253012917851409 }, 'feature_02': { 'mean': 3.0540000000000003, 'std': 0.4321465800705435 }, 'feature_03': { 'mean': 3.758666666666666, 'std': 1.7585291834055212 }, 'feature_04': { 'mean': 1.1986666666666668, 'std': 0.7606126185881716 } } } expected_content = parameters # Run instance.save('test.json') # Check compare_nested_dicts(json_mock.call_args[0][0], expected_content)
def test_save(self, json_mock, open_mock): """Save stores the internal dictionary as a json in a file.""" # Setup instance = GaussianMultivariate( distribution='copulas.univariate.gaussian.GaussianUnivariate') data = pd.read_csv('data/iris.data.csv') instance.fit(data) covariance = [[ 1.006711409395973, -0.11010327176239865, 0.8776048563471857, 0.823443255069628 ], [ -0.11010327176239865, 1.006711409395972, -0.4233383520816991, -0.3589370029669186 ], [ 0.8776048563471857, -0.4233383520816991, 1.006711409395973, 0.9692185540781536 ], [ 0.823443255069628, -0.3589370029669186, 0.9692185540781536, 1.0067114093959735 ]] expected_content = { 'covariance': covariance, 'fitted': True, 'type': 'copulas.multivariate.gaussian.GaussianMultivariate', 'distribution': 'copulas.univariate.gaussian.GaussianUnivariate', 'columns': ['feature_01', 'feature_02', 'feature_03', 'feature_04'], 'univariates': [{ 'type': 'copulas.univariate.gaussian.GaussianUnivariate', 'mean': 5.843333333333334, 'std': 0.8253012917851409, 'fitted': True, }, { 'type': 'copulas.univariate.gaussian.GaussianUnivariate', 'mean': 3.0540000000000003, 'std': 0.4321465800705435, 'fitted': True, }, { 'type': 'copulas.univariate.gaussian.GaussianUnivariate', 'mean': 3.758666666666666, 'std': 1.7585291834055212, 'fitted': True, }, { 'type': 'copulas.univariate.gaussian.GaussianUnivariate', 'mean': 1.1986666666666668, 'std': 0.7606126185881716, 'fitted': True, }] } # Run instance.save('test.json') # Check assert open_mock.called_once_with('test.json', 'w') compare_nested_dicts(json_mock.call_args[0][0], expected_content)