Пример #1
0
    def test_yield_correct_results(self, df_with_numeric_values):

        df = df_with_numeric_values

        base_check = Check(CheckLevel.EXCEPTION, description="a description")
        analyzers = [
            Minimum("att1"),
            Maximum("att1"),
            Mean("att1"),
            StandardDeviation("att1"),
            Sum("att1"),
            Quantile("att1", 0.5),
        ]

        engine = PandasEngine(df)
        repo = InMemoryMetadataRepository()
        context_numeric = do_analysis_run(engine, repo, analyzers)

        assert is_success(base_check.has_min("att1", lambda v: v == 1.0),
                          context_numeric)
        assert is_success(base_check.has_max("att1", lambda v: v == 6.0),
                          context_numeric)
        assert is_success(base_check.has_mean("att1", lambda v: v == 3.5),
                          context_numeric)
        assert is_success(
            base_check.has_standard_deviation("att1", lambda v: v == 1.870829),
            context_numeric,
        )
        assert is_success(base_check.has_sum("att1", lambda v: v == 21.0),
                          context_numeric)
        assert is_success(
            base_check.has_approx_quantile("att1", 0.5, lambda v: v == 4.0),
            context_numeric)
Пример #2
0
    def test_multiple_quantiles_are_computed(self, df_with_numeric_values):
        df = df_with_numeric_values
        analyzers = [
            Quantile("att1", 0.1),
            Quantile("att1", 0.5),
            Quantile("att1", 0.9),
        ]
        engine = PandasEngine(df)
        repo = InMemoryMetadataRepository()
        context_numeric = do_analysis_run(engine, repo, analyzers)
        assert len(context_numeric.metric_map) == 3

        print(context_numeric)
        base_check = Check(CheckLevel.EXCEPTION, description="a description")

        assert is_success(
            base_check.has_approx_quantile("att1", 0.5, lambda v: v == 4.0),
            context_numeric)
        assert is_success(
            base_check.has_approx_quantile("att1", 0.9, lambda v: v == 6.0),
            context_numeric)
        assert is_success(
            base_check.has_approx_quantile("att1", 0.1, lambda v: v == 1.0),
            context_numeric)