def test_plural_indefinite(self): noun = Noun('dog') new = noun.plural().indefinite() self.assertEqual(new, Noun('a dogs', '', 'dog', tags=self.indefinite)) irregular = Noun('child', 'children') new = irregular.plural().indefinite() self.assertEqual( new, Noun('a children', 'children', 'child', tags=self.indefinite))
def test_plural_definite(self): noun = Noun('dog') new = noun.plural().definite() self.assertEqual(new, Noun('the dogs', '', 'dog', self.definite_plural)) irregular = Noun('child', 'children') new = irregular.plural().definite() self.assertEqual( new, Noun('the children', 'children', 'child', self.definite_plural))
def test_plural_removes_uncountable_tag(self): noun = Noun('water', tags=Tags([WordTag.UNCOUNTABLE])) self.assertEqual(noun.plural(), Noun('waters', '', 'water', tags=self.plural)) definite = Noun('the water', '', 'water', tags=self.definite_uncountable) self.assertEqual( definite.plural(), Noun('the waters', '', 'water', tags=self.definite_plural))
def test_plural_adds_plural_tag(self): noun = Noun('dog', tags=Tags()) definite = Noun('the dog', '', 'dog', tags=self.definite) proper = Noun('Joe', tags=self.proper) self.assertEqual(noun.plural(), Noun('dogs', '', 'dog', tags=self.plural)) self.assertEqual( definite.plural(), Noun('the dogs', '', 'dog', tags=self.definite_plural)) self.assertEqual(proper.plural(), Noun('Joes', '', 'Joe', tags=self.plural_proper))
def test_plural_does_not_change_a_plural_noun(self): plural = Noun('dog').plural() definite_plural = Noun('dog').definite().plural() proper_plural = Noun.proper_noun('the Joneses', plural=True) self.assertEqual(plural.plural(), plural) self.assertEqual(plural.plural().plural().plural(), plural) self.assertEqual(definite_plural.plural(), definite_plural) self.assertEqual(definite_plural.plural().plural().plural(), definite_plural) self.assertEqual(proper_plural.plural(), proper_plural) self.assertEqual(proper_plural.plural().plural().plural(), proper_plural)
def test_is_countable_noun_true(self): base = Noun('dog') self.assertTrue(is_countable_noun(base)) self.assertTrue(is_countable_noun(base.plural())) self.assertTrue(is_countable_noun(base.definite())) self.assertTrue(is_countable_noun(base.indefinite())) self.assertTrue(is_countable_noun(base.capitalize().bold()))
def test_capitalize_de_capitalize_regression_test(self): for value in ('BMW', 'dog', 'Practice Book'): noun = Noun(value) plural = noun.plural() definite = noun.definite() indefinite = noun.indefinite() for test_noun in [noun, plural, definite, indefinite]: self.assertEqual(test_noun, test_noun.capitalize().de_capitalize())
def test_to_basic_noun_special_plural(self): original = Noun('bob', 'boberino') self.assertEqual(original.to_basic_noun(), original) self.assertEqual(original.plural().to_basic_noun(), original) self.assertEqual(original.bold().to_basic_noun(), original) self.assertEqual(original.indefinite().to_basic_noun(), original) self.assertEqual(original.definite().to_basic_noun(), original) self.assertEqual(original.definite().plural().to_basic_noun(), original) self.assertEqual( original.capitalize().plural().definite().to_basic_noun(), original)
def test_plural_removes_indefinite_tag(self): noun = Noun('a dog', '', 'dog', tags=self.indefinite) self.assertEqual(noun.plural(), Noun('a dogs', '', 'dog', tags=self.plural))