示例#1
0
 def test_Simpson(self):
     ht_sw = mm.Simpson(self.df_tessellation, "area", self.sw, "uID").series
     assert ht_sw[0] == 0.385
     quan_sw = mm.Simpson(
         self.df_tessellation,
         self.df_tessellation.area,
         self.sw,
         "uID",
         binning="quantiles",
         k=3,
     ).series
     assert quan_sw[0] == 0.395
     with pytest.raises(ValueError):
         ht_sw = mm.Simpson(self.df_tessellation,
                            "area",
                            self.sw,
                            "uID",
                            binning="nonexistent")
示例#2
0
    def test_Simpson(self):
        ht_sw = mm.Simpson(self.df_tessellation, "area", self.sw, "uID").series
        assert ht_sw[0] == 0.385
        quan_sw = mm.Simpson(
            self.df_tessellation,
            self.df_tessellation.area,
            self.sw,
            "uID",
            binning="quantiles",
            k=3,
        ).series
        assert quan_sw[0] == 0.395
        with pytest.raises(ValueError):
            ht_sw = mm.Simpson(self.df_tessellation,
                               "area",
                               self.sw,
                               "uID",
                               binning="nonexistent")
        assert (mm.Simpson(self.df_tessellation, "area", self.sw_drop,
                           "uID").series.isna().any())
        gs = mm.Simpson(self.df_tessellation,
                        "area",
                        self.sw,
                        "uID",
                        gini_simpson=True).series
        assert gs[0] == 1 - 0.385

        inv = mm.Simpson(self.df_tessellation,
                         "area",
                         self.sw,
                         "uID",
                         inverse=True).series
        assert inv[0] == 1 / 0.385

        self.df_tessellation["cat"] = list(range(8)) * 18
        cat = mm.Simpson(self.df_tessellation,
                         "cat",
                         self.sw,
                         "uID",
                         categorical=True).series
        assert cat[0] == pytest.approx(0.15)

        cat2 = mm.Simpson(
            self.df_tessellation,
            "cat",
            self.sw,
            "uID",
            categorical=True,
            categories=range(15),
        ).series
        assert cat2[0] == pytest.approx(0.15)
示例#3
0
 def time_Simpson(self, binning):
     mm.Simpson(self.df_tessellation, "area", self.sw, "uID", binning)