def testModel ( self ): A = State("A") B = State("B") A.add(A, .3) or A.add(B, .7) B.add(A, .5) or B.add(B, .5) self.assertEqual(A.prob("A"), .3, "P(A->A) not 0.3") self.assertEqual(A.prob(B), .7, "P(A->B) not 0.7") self.assertEqual(B.prob("A"), .5, "P(B->A) not 0.5") self.assertEqual(B.prob(B), .5, "P(B->B) not 0.5") chain = Chain((A, B)) self.assertDictEqual( chain.transitionMatrix(), {"A": {"A": .3, "B": .7}, "B": {"A": .5, "B": .5}}, "Transition matrix incorrect")