コード例 #1
0
    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)
コード例 #2
0
    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)