Beispiel #1
0
 def test_is_valid_false_if_two_emptynodes_has_the_same_sub_index(self):
     sentence = Sentence([
         EmptyNode(main_index=0, sub_index=1),
         EmptyNode(main_index=0, sub_index=1),
         Word(index=1),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #2
0
 def test_is_valid_false_on_sentence_with_invalid_elements(self):
     sentence = Sentence([
         Multiword(first_index=1, last_index=1),  # invalid first == last
         Word(index=1),
         Word(index=2),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #3
0
 def test_is_valid_true_if_first_element_is_emptynode_with_index_0(self):
     sentence = Sentence([
         EmptyNode(main_index=0, sub_index=1),
         # first word also included to prevent other validations to fail
         Word(index=1)
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #4
0
 def test_is_valid_false_if_an_emptynode_sub_index_is_skipped(self):
     sentence = Sentence([
         EmptyNode(main_index=0, sub_index=1),
         # sub_index 2 missing
         EmptyNode(main_index=0, sub_index=3),
         Word(index=1),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #5
0
 def test_is_valid_false_if_a_word_index_is_skipped(self):
     sentence = Sentence([
         Word(index=1),
         Word(index=2),
         # index 3 missing
         Word(index=4),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #6
0
 def test_is_valid_false_if_consecutive_multiwords_overlap(self):
     sentence = Sentence([
         Multiword(first_index=1, last_index=2),
         Multiword(first_index=1, last_index=2),
         Word(index=1),
         Word(index=2)
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #7
0
 def test_is_valid_false_if_an_emptynode_main_index_has_no_word_index(self):
     sentence = Sentence([
         Word(index=1),
         # there is no word with index 2
         EmptyNode(main_index=2, sub_index=1),
         EmptyNode(main_index=2, sub_index=2)
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #8
0
 def test_is_valid_true_if_first_element_is_multiword_with_index_1(self):
     sentence = Sentence([
         Multiword(first_index=1, last_index=2),
         # words also included to prevent other validations to fail
         Word(index=1),
         Word(index=2),
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #9
0
 def test_is_valid_false_if_multiword_last_index_is_too_big(self):
     sentence = Sentence([
         Word(index=1),
         Multiword(first_index=2, last_index=4),  # there is no word w/ ID 4
         Word(index=2),
         Word(index=3),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #10
0
 def test_is_valid_false_if_multiword_index_is_skipped(self):
     sentence = Sentence([
         Word(index=1),
         # index 2 missing
         Multiword(first_index=3, last_index=4),
         Word(index=3),
         Word(index=4),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #11
0
 def test_is_valid_false_if_consecutive_emptynodes_have_different_main_id(
         self):
     sentence = Sentence([
         Word(index=1),
         EmptyNode(main_index=1, sub_index=1),
         # word with index 2 missing
         EmptyNode(main_index=2, sub_index=2)
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #12
0
 def test_is_valid_true_if_multiword_index_range_is_within_sentence_bounds(
         self):
     sentence = Sentence([
         Word(index=1),
         Multiword(first_index=2, last_index=3),
         Word(index=2),
         Word(index=3)
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #13
0
 def test_is_valid_true_if_emptynodes_indexes_are_valid(self):
     sentence = Sentence([
         EmptyNode(main_index=0, sub_index=1),
         EmptyNode(main_index=0, sub_index=2),
         Word(index=1),
         Word(index=2),
         EmptyNode(main_index=2, sub_index=1),
         EmptyNode(main_index=2, sub_index=2),
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #14
0
 def test_is_valid_false_if_multiwords_are_placed_incorrectly(self):
     sentence = Sentence([
         Multiword(first_index=1, last_index=2),
         Multiword(first_index=3, last_index=4),  # should be before word 3
         Word(index=1),
         Word(index=2),
         Word(index=3),
         Word(index=4)
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #15
0
    def test_is_valid_on_a_sentence_with_foreign_elements(self):
        class Foo(BaseSentenceElement):
            pass

        sentence = Sentence([
            Word(index=1, head=2),
            Foo(form='Bar'),
            Word(index=2, head=0),
            Foo(form='Baz'),
        ])
        self.assertTrue(sentence.is_valid())
Beispiel #16
0
 def test_is_valid_false_on_empty_sentence(self):
     sentence = Sentence()
     self.assertFalse(sentence.is_valid())
Beispiel #17
0
 def test_is_valid_true_if_a_word_has_head_equals_to_index(self):
     sentence = Sentence([Word(index=1, head=1)])
     self.assertTrue(sentence.is_valid())
Beispiel #18
0
 def test_is_valid_true_with_word_heads_within_sentence_bounds(self):
     sentence = Sentence([
         Word(index=1, head=2),
         Word(index=2, head=0),
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #19
0
 def test_is_valid_false_if_a_word_has_head_beyond_last_word_index(self):
     sentence = Sentence([
         Word(index=1, head=2),  # there is no word with index 2
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #20
0
 def test_is_valid_true_if_a_word_has_head_zero(self):
     sentence = Sentence([Word(index=1, head=0)])
     self.assertTrue(sentence.is_valid())
Beispiel #21
0
 def test_is_valid_false_if_first_element_is_word_with_index_not_1(self):
     sentence = Sentence([Word(index=2)])
     self.assertFalse(sentence.is_valid())
Beispiel #22
0
 def test_is_valid_false_if_a_word_has_head_less_than_zero(self):
     sentence = Sentence([
         Word(index=1, head=-1),
     ])
     self.assertFalse(sentence.is_valid())
Beispiel #23
0
 def test_is_valid_true_if_first_element_is_word_with_index_1(self):
     sentence = Sentence([Word(index=1)])
     self.assertTrue(sentence.is_valid())
Beispiel #24
0
 def test_is_valid_false_if_first_element_is_multiword_with_index_not_1(
         self):
     sentence = Sentence([Multiword(first_index=2, last_index=5)])
     self.assertFalse(sentence.is_valid())
Beispiel #25
0
 def test_is_valid_false_if_first_element_is_emptynode_with_index_not_0(
         self):
     sentence = Sentence([EmptyNode(main_index=1, sub_index=1)])
     self.assertFalse(sentence.is_valid())
Beispiel #26
0
 def test_is_valid_true_with_two_consecutive_word_indexes(self):
     sentence = Sentence([
         Word(index=1),
         Word(index=2),
     ])
     self.assertTrue(sentence.is_valid())
Beispiel #27
0
 def test_is_valid_false_on_sentence_without_word_elements(self):
     sentence = Sentence([
         EmptyNode(main_index=0, sub_index=1),
         Multiword(first_index=1, last_index=2)
     ])
     self.assertFalse(sentence.is_valid())