Exemplo n.º 1
0
 def test_efficiency(self):
     "efficiency method should return the proper values"
     self.assertEqual(self.sources["iid5"].efficiency(), 1)
     self.assertEqual(self.sources["ird4"].efficiency(), 1.75/log2(4))
     self.assertEqual(self.sources["ird5"].efficiency(), 2/log2(5))
     self.assertAlmostEqual(self.sources["ird5_2"].efficiency(),
                            1.9609640474436814/log2(5))
Exemplo n.º 2
0
 def test_entropy(self):
     "entropy method should return the proper values"
     self.assertEqual(self.sources["iid5"].entropy(), log2(5))
     self.assertEqual(self.sources["ird4"].entropy(), 1.75)
     self.assertEqual(self.sources["ird5"].entropy(), 2)
     self.assertAlmostEqual(self.sources["ird5_2"].entropy(),
                            1.9609640474436814)
Exemplo n.º 3
0
 def testEntropy(self):
     "entropy method should return the proper values"
     self.assertEqual(self.sources["iid5"].entropy(), log2(5))
     self.assertEqual(self.sources["ird4"].entropy(), 1.75)
     self.assertEqual(self.sources["ird5"].entropy(), 2)
Exemplo n.º 4
0
 def information(self):
     return [(sym, log2(1/p)) for sym, p in zip(self.symbols, self.distribution)]
Exemplo n.º 5
0
 def entropy(self):
     return sum([p*log2(1/p) for p in self.distribution])
Exemplo n.º 6
0
 def max_entropy(self):
     return log2(self.n)
Exemplo n.º 7
0
 def information(self, ndigits=3):
     return [(sym, round(log2(1/p), ndigits))
             for sym, p in zip(self.symbols, self.distribution)]