def test_entropy_rate_base_4(self):
        self.assertAlmostEqual(0.571429,
                               entropy_rate([3, 3, 3, 2, 1, 0, 0, 0, 1], 2),
                               places=6)

        self.assertAlmostEqual(0.393555,
                               entropy_rate([2, 2, 3, 3, 3, 3, 2, 1, 0], 2),
                               places=6)
    def test_entropy_rate_base_2_ensemble(self):
        xs = [[1, 1, 0, 0, 1, 0, 0, 1], [0, 0, 0, 1, 0, 0, 0, 1]]
        self.assertAlmostEqual(0.459148, entropy_rate(xs, 2), places=6)

        xs = [[1, 0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 1, 1, 1, 1, 0, 0, 0],
              [1, 0, 0, 0, 0, 0, 0, 1, 1], [1, 0, 0, 0, 0, 0, 0, 1, 1],
              [0, 0, 0, 0, 0, 1, 1, 0, 0], [0, 0, 0, 0, 1, 1, 0, 0, 0],
              [1, 1, 1, 0, 0, 0, 0, 1, 1], [0, 0, 0, 1, 1, 1, 1, 0, 0],
              [0, 0, 0, 0, 0, 0, 1, 1, 0]]
        self.assertAlmostEqual(0.610249, entropy_rate(xs, 2), places=6)
    def test_entropy_rate_base_2(self):
        self.assertAlmostEqual(0.000000,
                               entropy_rate([1, 1, 0, 0, 1, 0, 0, 1],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.000000,
                               entropy_rate([1, 0, 0, 0, 0, 0, 0, 0, 0],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.679270,
                               entropy_rate([0, 0, 1, 1, 1, 1, 0, 0, 0],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.515663,
                               entropy_rate([1, 0, 0, 0, 0, 0, 0, 1, 1],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.463587,
                               entropy_rate([0, 0, 0, 0, 0, 1, 1, 0, 0],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.463587,
                               entropy_rate([0, 0, 0, 0, 1, 1, 0, 0, 0],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.679270,
                               entropy_rate([1, 1, 1, 0, 0, 0, 0, 1, 1],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.679270,
                               entropy_rate([0, 0, 0, 1, 1, 1, 1, 0, 0],
                                            2,
                                            local=True).mean(),
                               places=6)

        self.assertAlmostEqual(0.515663,
                               entropy_rate([0, 0, 0, 0, 0, 0, 1, 1, 0],
                                            2,
                                            local=True).mean(),
                               places=6)
 def test_entropy_rate_base_4_ensemble(self):
     xs = [[3, 3, 3, 2, 1, 0, 0, 0, 1], [2, 2, 3, 3, 3, 3, 2, 1, 0],
           [0, 0, 0, 0, 1, 1, 0, 0, 0], [1, 1, 0, 0, 0, 1, 1, 2, 2]]
     self.assertAlmostEqual(0.544468, entropy_rate(xs, 2), places=6)
 def test_entropy_rate_empty(self):
     with self.assertRaises(ValueError):
         entropy_rate([], 1)
 def test_entropy_rate_negative_states(self):
     with self.assertRaises(InformError):
         entropy_rate([-1, 0, 0], k=3)
    def test_entropy_rate_long_history(self):
        with self.assertRaises(InformError):
            entropy_rate([1, 2], k=2)

        with self.assertRaises(InformError):
            entropy_rate([1, 2], k=3)
 def test_entropy_rate_zero_history(self):
     with self.assertRaises(InformError):
         entropy_rate([1, 2], k=0)
 def test_entropy_rate_short_series(self):
     with self.assertRaises(InformError):
         entropy_rate([1], k=1)
Example #10
0
 def test_entropy_rate_dimensions(self):
     with self.assertRaises(ValueError):
         entropy_rate([[[1]]], 1)