예제 #1
0
    def test_definite_plural(self):
        noun = Noun('dog')
        new = noun.definite().plural()
        self.assertEqual(new, Noun('the dogs', '', 'dog',
                                   self.definite_plural))

        irregular = Noun('child', 'children')
        new = irregular.definite().plural()
        self.assertEqual(
            new, Noun('the children', 'children', 'child',
                      self.definite_plural))
예제 #2
0
 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)
예제 #3
0
    def test_definite_adds_definite_tag(self):
        tags = Tags([WordTag.PLURAL, WordTag.PAST])
        expected_tags = Tags([WordTag.PLURAL, WordTag.PAST, WordTag.DEFINITE])

        noun = Noun('x', tags=tags)
        self.assertEqual(noun.definite(),
                         Noun('the x', '', 'x', tags=expected_tags))
 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()))
예제 #5
0
    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())
예제 #6
0
    def test_definite_removes_indefinite_tag(self):
        noun = Noun('x').indefinite()
        self.assertEqual(noun.tags, self.indefinite)

        self.assertEqual(noun.definite(),
                         Noun('the a x', '', 'x', tags=self.definite))
예제 #7
0
 def test_definite_does_not_alter_definite_noun(self):
     noun = Noun('x').definite()
     self.assertEqual(noun.definite(), noun)
     self.assertEqual(noun.definite().definite().definite(), noun)