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)