def test_find_noun_group_submission_str_irregular_plural(self): submission_str = 'I loves the feets.' base_noun = Noun('foot', 'feet') answer = find_noun_group(base_noun, submission_str) start = submission_str.find('the feets') end = start + len('the feets') self.assertEqual(answer, (start, end))
def test_find_noun_group_upper_case(self): submission_str = 'the Dogs.' word = Noun('dog') answer = find_noun_group(word, submission_str) start = 0 end = len('the Dogs') self.assertEqual(answer, (start, end))
def test_find_noun_group_submission_str_special_rule_regular_plural(self): submission_str = 'look at the cute babies.' word = Noun('baby') answer = find_noun_group(word, submission_str) start = submission_str.find('babies') end = start + len('babies') self.assertEqual(answer, (start, end))
def test_find_noun_group_all_prefixes(self): prefixes = ['a', 'A', 'an', 'An', 'the', 'The'] word = Noun('cat') for prefix in prefixes: submission_str = f'x {prefix} cat ' answer = find_noun_group(word, submission_str) start = 2 end = start + len(f'{prefix} cat') self.assertEqual(answer, (start, end))
def test_find_noun_group_all_noun_forms_simple_case(self): dogs = [ Noun('dog'), Noun('dog').plural(), Noun('dog').indefinite(), Noun('dog').definite(), Noun('dog').plural().definite() ] capital_dogs = [word.capitalize() for word in dogs] submission_str = 'go dog go.' for word in dogs + capital_dogs: answer = find_noun_group(word, submission_str) expected = (3, 6) self.assertEqual(answer, expected)
def test_find_noun_group_noun_forms_complex_case(self): dogs = [ Noun('dog'), Noun('dog').plural(), Noun('dog').indefinite(), Noun('dog').definite(), Noun('dog').plural().definite() ] capital_dogs = [word.capitalize() for word in dogs] submission_str = 'a the dogs bark.' for word in dogs + capital_dogs: answer = find_noun_group(word, submission_str) start = submission_str.find('the dogs') end = start + len('the dogs') self.assertEqual(answer, (start, end))
def test_find_noun_group_lower_case_edge_case(self): submission_str = 'The bMWs' word = Noun('BMW') self.assertIsNone(find_noun_group(word, submission_str))
def test_find_noun_group_word_not_present(self): submission_str = '' word = Noun('dog') self.assertIsNone(find_noun_group(word, submission_str))