def test_hmm_2States_3Sym_1Char(self): hmm = HMM(2, 3, False) hmm.emission_matrix = [[0.1, 0.5, 0.2, 0.2], [0, 0, 0.5, 0.5]] hmm.initial_matrix = [0.2, 0.8] hmm.transition_matrix = [[0.8, 0.2], [0.8, 0.2]] self.assertAlmostEqual(hmm.calc_probability([0]), 0.0052, 7) self.assertAlmostEqual(hmm.calc_probability([1]), 0.026, 7) self.assertAlmostEqual(hmm.calc_probability([2]), 0.1144, 7) self.assertAlmostEqual(hmm.calc_probability([]), 0.44, 7)
def test_hmm_3States_2Sym_1Char(self): hmm = HMM(3, 2, False) hmm.emission_matrix = [[0.5, 0.3, 0.2], [0, 1, 0], [0.1, 0.1, 0.8]] hmm.initial_matrix = [0.1, 0.2, 0.7] hmm.transition_matrix = [[0, 1, 0], [0.85, 0.1, 0.05], [0.3, 0.2, 0.5]] self.assertAlmostEqual(hmm.calc_probability([0]), 0.0322, 7)