def test_probabilities(self): m = Markov(2) m.scan(['bacon', 'fish', 'bacon', 'lung', 'bacon', 'lung', 'bacon', 'lung', '.']) result = m.compute_probabilities(3) self.assertEquals(len(result), 3) # least likely to most self.assertEquals(result[0]['word'], 'fish') self.assertEquals(result[0]['chance'], 1.0/8.0 * (1.0 / 0.5)) self.assertEquals(result[1]['word'], 'lung') self.assertEquals(result[1]['chance'], 3.0/8.0 * (1.0 / 0.5)) self.assertEquals(result[2]['word'], 'bacon') self.assertEquals(result[2]['chance'], 0.5 * (1.0 / 0.5))