def test_intersect_spans(self):
     true_sentence = [1, 1, 0, 1, 0, 1, 1, 1, 0, 0]
     sentence = [0, 1, 1, 1, 0, 1, 1, 1, 1, 1]
     good_s, bad_s = get_spans(sentence)
     good_t, bad_t = get_spans(true_sentence)
     res_1 = intersect_spans(good_t, good_s)
     res_0 = intersect_spans(bad_t, bad_s)
     self.assertEqual(res_1, 4)
     self.assertEqual(res_0, 1)
 def test_get_spans(self):
     sentence = [1, 1, 0, 1, 0, 1, 1, 1, 0]
     good_s, bad_s = get_spans(sentence)
     # test that right spans are extracted
     self.assertItemsEqual(good_s, [(0, 2), (3, 4), (5, 8)])
     self.assertItemsEqual(bad_s, [(2, 3), (4, 5), (8, 9)])
     all_spans = sorted(good_s + bad_s)
     all_items = [t for a_list in [sentence[b:e] for (b, e) in all_spans] for t in a_list]
     # test that the extracted spans cover the whole sequence
     self.assertItemsEqual(sentence, all_items)