def task(self):
        data_filename = "robot_no_momentum.data"
        hmm, d = train_hmm_from_data(data_filename)
        err_full = run_viterbi(hmm, d)

        data_filename_m = "robot_with_momentum.data"
        hmm_m, d_m = train_hmm_from_data(data_filename_m)
        err_full_m = run_viterbi(hmm_m, d_m)

        listNames = ["Without momentum", "With momentum"]
        listData = [1 - err_full, 1 - err_full_m]
        chart = {"chart": {"defaultSeriesType": "column"},
                 "xAxis": {"categories": listNames},
                 "yAxis": {"title": {"text": "Fraction Correct"}},
                 "title": {"text": "HMM performance on"
                           " inferring robot location."},
                 "series": [{"name": "Test set performance",
                             "data": listData}]}
        return chart
 def test_small_robot_dataset(self):
     data_filename = "robot_small.data"
     data_filename = normalize_filename(data_filename)
     hmm, d = train_hmm_from_data(data_filename)
     err_full = run_viterbi(hmm, d, True)
     self.assertAlmostEqual(err_full, 2.0 / 9)