コード例 #1
0
    def test_diff(self):
        """
        Makes sure the IntColumn Diff() works appropriately.
        """
        data = [2, 'not an int', 6, 4]
        df = pd.Series(data).apply(str)
        profiler1 = IntColumn("Int")
        profiler1.update(df)

        data = [1, 15]
        df = pd.Series(data).apply(str)
        profiler2 = IntColumn("Int")
        profiler2.update(df)

        # Assert the difference report is correct
        expected_diff = {
            'max': -9.0,
            'mean': -4.0,
            'min': 1.0,
            'stddev': -7.899494936611665,
            'sum': -4.0,
            'variance': -94.0,
            'median': -4,
            'mode': [[2, 6, 4], [], [1, 15]],
            'median_absolute_deviation': -5,
            't-test': {
                't-statistic': -0.5638091828819275,
                'conservative': {
                    'df': 1,
                    'p-value': 0.6731699660830497
                },
                'welch': {
                    'df': 1.0547717074524683,
                    'p-value': 0.6691886269547123
                }
            }
        }
        profile_diff = profiler1.diff(profiler2)
        self.assertAlmostEqual(expected_diff.pop('median'),
                               profile_diff.pop('median'),
                               places=2)
        expected_diff_mode = expected_diff.pop('mode')
        diff_mode = profile_diff.pop('mode')
        for i in range(len(expected_diff_mode)):
            np.testing.assert_almost_equal(sorted(expected_diff_mode[i]),
                                           sorted(diff_mode[i]), 2)
        self.assertAlmostEqual(expected_diff.pop('median_absolute_deviation'),
                               profile_diff.pop('median_absolute_deviation'),
                               places=2)
        self.assertDictEqual(expected_diff, profile_diff)

        # Assert type error is properly called
        with self.assertRaises(TypeError) as exc:
            profiler1.diff("Inproper input")
        self.assertEqual(
            str(exc.exception),
            "Unsupported operand type(s) for diff: 'IntColumn' and"
            " 'str'")
コード例 #2
0
    def test_diff(self):
        """
        Makes sure the IntColumn Diff() works appropriately.
        """
        data = [2, "not an int", 6, 4]
        df = pd.Series(data).apply(str)
        profiler1 = IntColumn("Int")
        profiler1.update(df)

        data = [1, 15]
        df = pd.Series(data).apply(str)
        profiler2 = IntColumn("Int")
        profiler2.update(df)

        # Assert the difference report is correct
        expected_diff = {
            "max": -9.0,
            "mean": -4.0,
            "min": 1.0,
            "stddev": -7.899494936611665,
            "sum": -4.0,
            "variance": -94.0,
            "median": -4,
            "mode": [[2, 6, 4], [], [1, 15]],
            "median_absolute_deviation": -5,
            "t-test": {
                "t-statistic": -0.5638091828819275,
                "conservative": {
                    "df": 1,
                    "p-value": 0.6731699660830497
                },
                "welch": {
                    "df": 1.0547717074524683,
                    "p-value": 0.6691886269547123
                },
            },
        }
        profile_diff = profiler1.diff(profiler2)
        try:
            json.dumps(profile_diff)
        except TypeError as e:
            self.fail("JSON Serializing issue with the profile diff. "
                      "Exception raised: {}".format(str(e)))
        self.assertAlmostEqual(expected_diff.pop("median"),
                               profile_diff.pop("median"),
                               places=2)
        expected_diff_mode = expected_diff.pop("mode")
        diff_mode = profile_diff.pop("mode")
        for i in range(len(expected_diff_mode)):
            np.testing.assert_almost_equal(sorted(expected_diff_mode[i]),
                                           sorted(diff_mode[i]), 2)
        self.assertAlmostEqual(
            expected_diff.pop("median_absolute_deviation"),
            profile_diff.pop("median_absolute_deviation"),
            places=2,
        )
        self.assertDictEqual(expected_diff, profile_diff)

        # Assert type error is properly called
        with self.assertRaises(TypeError) as exc:
            profiler1.diff("Inproper input")
        self.assertEqual(
            str(exc.exception),
            "Unsupported operand type(s) for diff: 'IntColumn' and"
            " 'str'",
        )