def _needs_third_person(sentence: Sentence): verb_index = sentence.get_verb() subject_index = sentence.get_subject() if verb_index == -1 or subject_index == -1: return False subject = sentence.get(subject_index) first_person = (Pronoun.I, Pronoun.ME, CapitalPronoun.I, CapitalPronoun.ME) if isinstance(subject, (Noun, AbstractPronoun)) and subject not in first_person: return not subject.has_tags(WordTag.PLURAL) return False
def test_sentence_get_verb_returns_first_instance_of_be_verb(self): sentence = Sentence([BeVerb.WERE_NOT, Verb('go'), BeVerb.WERE]) self.assertEqual(sentence.get_verb(), 0)
def test_sentence_get_verb_be_verb(self): sentence = Sentence([BasicWord('I'), BeVerb.AM.past_tense().negative()]) self.assertEqual(sentence.get_verb(), 1)
def test_sentence_get_verb_two_verbs_returns_first_verb(self): sentence = Sentence([Verb('go'), Verb('play')]) self.assertEqual(sentence.get_verb(), 0)
def test_sentence_get_verb_with_verb(self): sentence = Sentence([BasicWord('Bob'), Verb('go').third_person(), BasicWord('home')]) self.assertEqual(sentence.get_verb(), 1)
def test_sentence_get_verb_no_verb(self): sentence = Sentence([BasicWord('Hello'), BasicWord('world')]) self.assertEqual(sentence.get_verb(), -1)