# Path: pymorphy/py3k.py
# PY3 = sys.version_info[0] == 3
# 
# Path: pymorphy/contrib/scan.py
# def get_graminfo_scan(morph, word, standard=False):
#     ''' Вернуть грам. информацию, считая, что текст - после сканирования. '''
# 
#     # Сначала пытаемся найти слово по словарю, без предсказателя,
#     # пробуя различные характерные для отсканированных документов замены.
# 
#     gram = []
#     word = word.replace('0', 'О')  # заменяем всегда
#     forms = morph.get_graminfo(word, standard, False, predict_hyphenated=False)
#     if forms:
#         return forms
# 
#     replaces = [('4', 'А'), ('Ф', 'О'), ('J', 'А'), ('Ы', 'А')]
#     # сначала пробуем найти все в словаре после замен
#     for bad, good in replaces:
#         if bad in word:
#             forms = morph.get_graminfo(word.replace(bad, good), standard, False, predict_hyphenated=False)
#             gram.extend(forms)
#     if gram:
#         return gram
#     # если найти не удалось, то пробуем уже эвристику
#     for bad, good in replaces:
#         if bad in word:
#             forms = morph.get_graminfo(word.replace(bad, good), standard, False, predict_hyphenated=True)
#             gram.extend(forms)
#     if gram:
#         return gram
#     # если это не помогло, включаем предсказатель и ищем по старинке
#     return morph.get_graminfo(word, standard)


    from django.utils import unittest as unittest2
from pymorphy.py3k import PY3
from .dicts import morph_en, morph_ru
from pymorphy.morph import GramForm
from pymorphy.contrib.scan import get_graminfo_scan
        import unittest2
        import unittest as unittest2
        self.assertNormal('ТРИЖДЫЧЕРЕЗПИЛЮЛЮОКНАМИ', ['ТРИЖДЫЧЕРЕЗПИЛЮЛЮОКНА'])
        self.assertNormal('РАЗКВАКАЛИСЬ',['РАЗКВАКАТЬСЯ'])
        self.assertNormal('КАШИВАРНЕЕ', ['КАШИВАРНЫЙ'])
        self.assertNormal('ДЕПЫРТАМЕНТОВ',['ДЕПЫРТАМЕНТ'])
        self.assertNormal('ИЗМОХРАТИЛСЯ',['ИЗМОХРАТИТЬСЯ'])

    def test_no_prod_classes_in_prediction(self):
        self.assertNormal('БУТЯВКОЙ',['БУТЯВКА']) # и никаких местоимений!
        self.assertNormal('САПАЮТ',['САПАТЬ']) # и никаких местоимений!

    def test_female(self):
        self.assertNormal('КЛЮЕВУ', ['КЛЮЕВ'])
        self.assertNormal('КЛЮЕВА', ['КЛЮЕВ'])

    def test_verbs(self):
        self.assertNormal('ГУЛЯЛ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЛА', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЕТ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЮТ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЛИ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯТЬ', ['ГУЛЯТЬ'])

    def test_verb_products(self):
        self.assertNormal('ГУЛЯЮЩИЙ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯВШИ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЯ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЮЩАЯ', ['ГУЛЯТЬ'])
        self.assertNormal('ЗАГУЛЯВШИЙ', ['ЗАГУЛЯТЬ'])

    def test_drop_gender(self):

# Path: pymorphy/py3k.py
# PY3 = sys.version_info[0] == 3
# 
# Path: pymorphy/contrib/scan.py
# def get_graminfo_scan(morph, word, standard=False):
#     ''' Вернуть грам. информацию, считая, что текст - после сканирования. '''
# 
#     # Сначала пытаемся найти слово по словарю, без предсказателя,
#     # пробуя различные характерные для отсканированных документов замены.
# 
#     gram = []
#     word = word.replace('0', 'О')  # заменяем всегда
#     forms = morph.get_graminfo(word, standard, False, predict_hyphenated=False)
#     if forms:
#         return forms
# 
#     replaces = [('4', 'А'), ('Ф', 'О'), ('J', 'А'), ('Ы', 'А')]
#     # сначала пробуем найти все в словаре после замен
#     for bad, good in replaces:
#         if bad in word:
#             forms = morph.get_graminfo(word.replace(bad, good), standard, False, predict_hyphenated=False)
#             gram.extend(forms)
#     if gram:
#         return gram
#     # если найти не удалось, то пробуем уже эвристику
#     for bad, good in replaces:
#         if bad in word:
#             forms = morph.get_graminfo(word.replace(bad, good), standard, False, predict_hyphenated=True)
#             gram.extend(forms)
#     if gram:
#         return gram
#     # если это не помогло, включаем предсказатель и ищем по старинке
#     return morph.get_graminfo(word, standard)


# Path: pymorphy/morph_tests/base.py
    from django.utils import unittest as unittest2
from pymorphy.py3k import PY3
from .dicts import morph_en, morph_ru
from pymorphy.morph import GramForm
from pymorphy.contrib.scan import get_graminfo_scan
        import unittest2
        import unittest as unittest2

        self.assertNormal('ТРИЖДЫЧЕРЕЗПИЛЮЛЮОКНАМИ', ['ТРИЖДЫЧЕРЕЗПИЛЮЛЮОКНА'])
        self.assertNormal('РАЗКВАКАЛИСЬ',['РАЗКВАКАТЬСЯ'])
        self.assertNormal('КАШИВАРНЕЕ', ['КАШИВАРНЫЙ'])
        self.assertNormal('ДЕПЫРТАМЕНТОВ',['ДЕПЫРТАМЕНТ'])
        self.assertNormal('ИЗМОХРАТИЛСЯ',['ИЗМОХРАТИТЬСЯ'])

    def test_no_prod_classes_in_prediction(self):
        self.assertNormal('БУТЯВКОЙ',['БУТЯВКА']) # и никаких местоимений!
        self.assertNormal('САПАЮТ',['САПАТЬ']) # и никаких местоимений!

    def test_female(self):
        self.assertNormal('КЛЮЕВУ', ['КЛЮЕВ'])
        self.assertNormal('КЛЮЕВА', ['КЛЮЕВ'])

    def test_verbs(self):
        self.assertNormal('ГУЛЯЛ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЛА', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЕТ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЮТ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЛИ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯТЬ', ['ГУЛЯТЬ'])

    def test_verb_products(self):
        self.assertNormal('ГУЛЯЮЩИЙ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯВШИ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЯ', ['ГУЛЯТЬ'])
        self.assertNormal('ГУЛЯЮЩАЯ', ['ГУЛЯТЬ'])
        self.assertNormal('ЗАГУЛЯВШИЙ', ['ЗАГУЛЯТЬ'])

    def test_drop_gender(self):

        self.assertNormal('КРАСИВЫЙ', ['КРАСИВЫЙ'])