# 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 .base import MorphTestCase, unittest2
        self.assertHasInfo('РАСШИФР0ВКИ', 'РАСШИФРОВКА', 'С', scan=True)

    def test_junky_variants_bug(self):
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='pl')
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='pl', scan=True)

        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='sg', has_info=False)
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='sg', has_info=False, scan=True)


class HyphenScanTest(MorphTestCase):

    def test_scan(self):
        self.assertHasInfo('ИНТЕРНЕТ-МАГJЗИНА', 'ИНТЕРНЕТ-МАГАЗИН', 'С', 'hyphen-prefix', True)
        self.assertHasInfo('PDF-ДФКУМЕНТ0В', 'PDF-ДОКУМЕНТ', 'С', 'hyphen-prefix', True)
        self.assertHasInfo('АММИАЧНФ-СЕЛИТР0ВФГО', 'АММИАЧНО-СЕЛИТРОВЫЙ', 'П', 'hyphen-prefix', True)
        self.assertHasInfo('БЫСТРО-БЫСТРФ', 'БЫСТРО-БЫСТРО', 'Н', 'word-formation', True)

    def test_scan_dict(self):
        self.assertHasInfo('САНКТ-ПЕТЕРБУРГ4', 'САНКТ-ПЕТЕРБУРГ', 'С', 'lemma(С).suffix(АНКТ-ПЕТЕРБУРГА)', True)
        self.assertHasInfo('КJКИХ-ТО', 'КАКОЙ-ТО', 'МС-П', 'suffix(ИХ-ТО)', True)

    def test_scan_error_in_left(self):
        self.assertHasInfo('КОМJНД-УЧАСТНИЦ', 'КОМАНДА-УЧАСТНИЦА', 'С', 'word-formation', True)

    @unittest2.expectedFailure
    def test_scan_no_error(self):
        self.assertHasInfo('ФЕСТИВАЛЬ-КОНКУРС', 'ФЕСТИВАЛЬ-КОНКУРС', 'С', 'word-formation', True)
        self.assertNormal('ФИЗИКО-ХИМИЯ', 'ФИЗИКО-ХИМИЯ', scan=True)


# 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/dirty.py
from .base import MorphTestCase, unittest2

        self.assertHasInfo('РАСШИФР0ВКИ', 'РАСШИФРОВКА', 'С', scan=True)

    def test_junky_variants_bug(self):
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='pl')
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='pl', scan=True)

        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='sg', has_info=False)
        self.assertStandard('КАБИНЕТЫ', 'КАБИНЕТ', 'S', form='sg', has_info=False, scan=True)


class HyphenScanTest(MorphTestCase):

    def test_scan(self):
        self.assertHasInfo('ИНТЕРНЕТ-МАГJЗИНА', 'ИНТЕРНЕТ-МАГАЗИН', 'С', 'hyphen-prefix', True)
        self.assertHasInfo('PDF-ДФКУМЕНТ0В', 'PDF-ДОКУМЕНТ', 'С', 'hyphen-prefix', True)
        self.assertHasInfo('АММИАЧНФ-СЕЛИТР0ВФГО', 'АММИАЧНО-СЕЛИТРОВЫЙ', 'П', 'hyphen-prefix', True)
        self.assertHasInfo('БЫСТРО-БЫСТРФ', 'БЫСТРО-БЫСТРО', 'Н', 'word-formation', True)

    def test_scan_dict(self):
        self.assertHasInfo('САНКТ-ПЕТЕРБУРГ4', 'САНКТ-ПЕТЕРБУРГ', 'С', 'lemma(С).suffix(АНКТ-ПЕТЕРБУРГА)', True)
        self.assertHasInfo('КJКИХ-ТО', 'КАКОЙ-ТО', 'МС-П', 'suffix(ИХ-ТО)', True)

    def test_scan_error_in_left(self):
        self.assertHasInfo('КОМJНД-УЧАСТНИЦ', 'КОМАНДА-УЧАСТНИЦА', 'С', 'word-formation', True)

    @unittest2.expectedFailure
    def test_scan_no_error(self):
        self.assertHasInfo('ФЕСТИВАЛЬ-КОНКУРС', 'ФЕСТИВАЛЬ-КОНКУРС', 'С', 'word-formation', True)
        self.assertNormal('ФИЗИКО-ХИМИЯ', 'ФИЗИКО-ХИМИЯ', scan=True)


    @unittest2.expectedFailure