Skip to content

Commit

Permalink
failing tests for gh-16, gh-18 and gh-19
Browse files Browse the repository at this point in the history
  • Loading branch information
kmike committed Mar 7, 2013
1 parent a75f50a commit 5a38aa2
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 16 deletions.
1 change: 1 addition & 0 deletions pymorphy2/units/by_hyphen.py
Original file line number Diff line number Diff line change
Expand Up @@ -306,3 +306,4 @@ def _without_left_part(cls, form):
@classmethod
def _fixed_left_method_was_used(cls, left_methods):
return not isinstance(left_methods, tuple)

82 changes: 66 additions & 16 deletions tests/test_lexemes.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,61 @@
import pytest
from .utils import morph

LEXEMES = """\
кот кота коту кота котом коте коты котов котам котов котами котах
он его него ему нему его него им ним нём
он-то его-то него-то ему-то нему-то его-то него-то им-то ним-то нём-то
лжекот лжекота лжекоту лжекота лжекотом лжекоте лжекоты лжекотов лжекотам лжекотов лжекотами лжекотах
экс-лжекот экс-лжекота экс-лжекоту экс-лжекота экс-лжекотом экс-лжекоте экс-лжекоты экс-лжекотов экс-лжекотам экс-лжекотов экс-лжекотами экс-лжекотах
экслжекот экслжекота экслжекоту экслжекота экслжекотом экслжекоте экслжекоты экслжекотов экслжекотам экслжекотов экслжекотами экслжекотах
буропёс буропса буропсу буропса буропсом буропсе буропсы буропсов буропсам буропсов буропсами буропсах
кот-маг кота-мага коту-магу кота-мага котом-магом коте-маге коты-маги котов-магов котам-магам котов-магов котами-магами котах-магах
йотка йотки йотке йотку йоткой йоткою йотке йотки йоток йоткам йотки йотками йотках
кото-пёс кото-пса кото-псу кото-пса кото-псом кото-псе кото-псы кото-псов кото-псам кото-псов кото-псами кото-псах
кото-псевдопёс кото-псевдопса кото-псевдопсу кото-псевдопса кото-псевдопсом кото-псевдопсе кото-псевдопсы кото-псевдопсов кото-псевдопсам кото-псевдопсов кото-псевдопсами кото-псевдопсах
""".splitlines()
# lexemes are divided by blank lines
LEXEMES = """
кот кота коту кота котом коте
коты котов котам котов котами котах
он его него ему нему его него
им ним нём
он-то его-то него-то ему-то нему-то его-то него-то
им-то ним-то нём-то
лжекот лжекота лжекоту лжекота лжекотом лжекоте
лжекоты лжекотов лжекотам лжекотов лжекотами лжекотах
экс-лжекот экс-лжекота экс-лжекоту экс-лжекота экс-лжекотом экс-лжекоте
экс-лжекоты экс-лжекотов экс-лжекотам экс-лжекотов экс-лжекотами экс-лжекотах
экслжекот экслжекота экслжекоту экслжекота экслжекотом экслжекоте экслжекоты
экслжекотов экслжекотам экслжекотов экслжекотами экслжекотах
буропёс буропса буропсу буропса буропсом буропсе
буропсы буропсов буропсам буропсов буропсами буропсах
кот-маг кота-мага коту-магу кота-мага котом-магом коте-маге
коты-маги котов-магов котам-магам котов-магов котами-магами котах-магах
йотка йотки йотке йотку йоткой йоткою йотке
йотки йоток йоткам йотки йотками йотках
кото-пёс кото-пса кото-псу кото-пса кото-псом кото-псе
кото-псы кото-псов кото-псам кото-псов кото-псами кото-псах
кото-псевдопёс кото-псевдопса кото-псевдопсу кото-псевдопса кото-псевдопсом кото-псевдопсе
кото-псевдопсы кото-псевдопсов кото-псевдопсам кото-псевдопсов кото-псевдопсами кото-псевдопсах
команда-участница команды-участницы команде-участнице команду-участницу командой-участницей командою-участницею команде-участнице
команды-участницы команд-участниц командам-участницам команды-участниц командами-участницами командах-участницах
два двух двум два двух двумя двух
две двух двум две двух двумя двух
два двух двум два двумя двух
XFAIL: see https://github.com/kmike/pymorphy2/issues/16
по-театральному
XFAIL: see https://github.com/kmike/pymorphy2/issues/18
два-три двух-трёх двум-трем два-три двух-трёх двумя-тремя двух-трёх
две-три двух-трёх двум-трем две-три двух-трёх двумя-тремя двух-трёх
два-три двух-трёх двум-трём два-три двумя-тремя двух-трёх
XFAIL: see https://github.com/kmike/pymorphy2/issues/19
человек-гора человека-горы человеку-горе человека-гору человеком-горой человеком-горою человеке-горе
люди-горы людей-гор человек-гор людям-горам человекам-горам людей-гор людьми-горами человеками-горами людях-горах человеках-горах
""".strip().split("\n\n")


def _lexemes_for_word(word):
Expand All @@ -24,10 +66,17 @@ def _lexemes_for_word(word):
res.append(tuple(f.word for f in p.lexeme))
return res

def _parse_lexeme(lexeme):
lexeme_words = tuple(lexeme.split())
if lexeme_words[0].startswith('XFAIL'):
pytest.xfail()
return lexeme_words


@pytest.mark.parametrize("lexeme", LEXEMES)
def test_has_proper_lexemes(lexeme):
lexeme_words = tuple(lexeme.split())
lexeme_words = _parse_lexeme(lexeme)

variants = _lexemes_for_word(lexeme_words[0])
if lexeme_words not in variants:
variants_repr = "\n".join([" ".join(v) for v in variants])
Expand All @@ -36,7 +85,7 @@ def test_has_proper_lexemes(lexeme):

@pytest.mark.parametrize("lexeme", LEXEMES)
def test_lexemes_sanity(lexeme):
lexeme_words = tuple(lexeme.split())
lexeme_words = _parse_lexeme(lexeme)

for word in lexeme_words:
for p in morph.parse(word):
Expand All @@ -45,7 +94,8 @@ def test_lexemes_sanity(lexeme):

@pytest.mark.parametrize("lexeme", LEXEMES)
def test_normalized_is_first(lexeme):
lexeme_words = tuple(lexeme.split())
lexeme_words = _parse_lexeme(lexeme)

first_parse = morph.parse(lexeme_words[0])[0]
normal_form = (first_parse.word, first_parse.tag.POS)

Expand Down

0 comments on commit 5a38aa2

Please sign in to comment.