# Path: pymorphy/morph_tests/base.py
# class MorphTestCase(unittest2.TestCase):
# class TestMorph(MorphTestCase):
# class TestGramInfo(unittest2.TestCase):
#     def _msg(self, fmt, w1, w2):
#     def assertEqualRu(self, word1, word2):
#     def assertNotEqualRu(self, word1, word2):
#     def assertNormal(self, input, output):
#     def assertNormalEn(self, input, output):
#     def assertPlural(self, word, plural, *args, **kwargs):
#     def assertInflected(self, word, form, result, *args, **kwargs):
#     def assertHasInfo(self, word, norm=None, cls=None, method=None, scan=False, form=None, standard=False, has_info=True):
#         def is_correct(frm):
#     def assertStandard(self, word, norm, cls=None, form=None, has_info=True, scan=False):
#     def test_normalize(self):
#     def test_global_prefix_normalize(self):
#     def test_rule_prefix_normalize(self):
#     def test_prefix_predict(self):
#     def test_EE_bug(self):
#     def test_pronouns(self):
#     def test_no_base(self):
#     def test_predict(self):
#     def test_no_prod_classes_in_prediction(self):
#     def test_female(self):
#     def test_verbs(self):
#     def test_verb_products(self):
#     def test_drop_gender(self):
#     def test_encoding_bugs(self):
#     def test_lemma_graminfo(self):


from .dicts import morph_ru
from .base import MorphTestCase, unittest2

    def test_loc2(self):
        self.assertInflected('ЛЕС', 'пр', 'ЛЕСЕ')  # о лесе
        self.assertInflected('ЛЕС', 'пр,2', 'ЛЕСУ') # в лесу

        # о велосипеде
        self.assertInflected('ВЕЛОСИПЕД', 'пр', 'ВЕЛОСИПЕДЕ')

        # а тут второго предложного нет, в велосипеде
        self.assertInflected('ВЕЛОСИПЕД', 'пр,2', 'ВЕЛОСИПЕДЕ')

    def test_decline_bug(self):
        self.assertInflected('ОРЕЛ', 'рд', 'ОРЛА')

    def test_improper_guess(self):
        self.assertInflected('ОСТРОВА', 'дт', 'ОСТРОВАМ')

    def test_improper_guess2(self):
        self.assertInflected('КИЕВ', 'пр', 'КИЕВЕ')

    def test_animacy(self):
        self.assertInflected('СЛАБЫЙ', 'мр,вн,но', 'СЛАБЫЙ')
        self.assertInflected('СЛАБЫЙ', 'мр,вн,од', 'СЛАБОГО')
        self.assertInflected('СЛАБЫЙ', 'мр,ед,вн,но', 'СЛАБЫЙ')
        self.assertInflected('СЛАБЫЙ', 'мр,ед,вн,од', 'СЛАБОГО')

    def test_comparative(self):
        self.assertInflected('БЫСТРЫЙ', 'сравн', 'БЫСТРЕЕ')
        self.assertInflected('ХОРОШАЯ', 'сравн', 'ЛУЧШЕ')


# Path: pymorphy/morph_tests/base.py
# class MorphTestCase(unittest2.TestCase):
# class TestMorph(MorphTestCase):
# class TestGramInfo(unittest2.TestCase):
#     def _msg(self, fmt, w1, w2):
#     def assertEqualRu(self, word1, word2):
#     def assertNotEqualRu(self, word1, word2):
#     def assertNormal(self, input, output):
#     def assertNormalEn(self, input, output):
#     def assertPlural(self, word, plural, *args, **kwargs):
#     def assertInflected(self, word, form, result, *args, **kwargs):
#     def assertHasInfo(self, word, norm=None, cls=None, method=None, scan=False, form=None, standard=False, has_info=True):
#         def is_correct(frm):
#     def assertStandard(self, word, norm, cls=None, form=None, has_info=True, scan=False):
#     def test_normalize(self):
#     def test_global_prefix_normalize(self):
#     def test_rule_prefix_normalize(self):
#     def test_prefix_predict(self):
#     def test_EE_bug(self):
#     def test_pronouns(self):
#     def test_no_base(self):
#     def test_predict(self):
#     def test_no_prod_classes_in_prediction(self):
#     def test_female(self):
#     def test_verbs(self):
#     def test_verb_products(self):
#     def test_drop_gender(self):
#     def test_encoding_bugs(self):
#     def test_lemma_graminfo(self):


# Path: pymorphy/morph_tests/utilities.py
from .dicts import morph_ru
from .base import MorphTestCase, unittest2


    def test_loc2(self):
        self.assertInflected('ЛЕС', 'пр', 'ЛЕСЕ')  # о лесе
        self.assertInflected('ЛЕС', 'пр,2', 'ЛЕСУ') # в лесу

        # о велосипеде
        self.assertInflected('ВЕЛОСИПЕД', 'пр', 'ВЕЛОСИПЕДЕ')

        # а тут второго предложного нет, в велосипеде
        self.assertInflected('ВЕЛОСИПЕД', 'пр,2', 'ВЕЛОСИПЕДЕ')

    def test_decline_bug(self):
        self.assertInflected('ОРЕЛ', 'рд', 'ОРЛА')

    def test_improper_guess(self):
        self.assertInflected('ОСТРОВА', 'дт', 'ОСТРОВАМ')

    def test_improper_guess2(self):
        self.assertInflected('КИЕВ', 'пр', 'КИЕВЕ')

    def test_animacy(self):
        self.assertInflected('СЛАБЫЙ', 'мр,вн,но', 'СЛАБЫЙ')
        self.assertInflected('СЛАБЫЙ', 'мр,вн,од', 'СЛАБОГО')
        self.assertInflected('СЛАБЫЙ', 'мр,ед,вн,но', 'СЛАБЫЙ')
        self.assertInflected('СЛАБЫЙ', 'мр,ед,вн,од', 'СЛАБОГО')

    def test_comparative(self):
        self.assertInflected('БЫСТРЫЙ', 'сравн', 'БЫСТРЕЕ')
        self.assertInflected('ХОРОШАЯ', 'сравн', 'ЛУЧШЕ')


class TestPluralizeInflected(MorphTestCase):