Example #1
0
def test_verb_creation_error(present: str, future: str, aorist: str,
                             aorist_passive: str, preposition: str,
                             uncommon_epsilon: bool, forms: dict,
                             message: str):
    with pytest.raises(VerbParseError) as parse_error:
        DeponentVerb(present, future, aorist, aorist_passive, preposition,
                     uncommon_epsilon, convert_forms(forms))
    assert message == str(parse_error.value)
Example #2
0
def get_verb(present=None, future=None, aorist=None, aorist_passive=None, preposition=None,
             uncommon_epsilon_augment=False, allowed_forms=None, irregular_forms=None, irregular_participles=None):
    verb_type = get_type(present, future, aorist, irregular_participles, irregular_forms)
    if verb_type is VerbType.DEPONENT:
        return DeponentVerb(present, future, aorist, aorist_passive, preposition, uncommon_epsilon_augment,
                            allowed_forms)
    elif verb_type is VerbType.IRREGULAR:
        print(allowed_forms)
        return IrregularVerb(present, future, aorist, aorist_passive, preposition, uncommon_epsilon_augment,
                             allowed_forms, irregular_forms, irregular_participles)
    else:  # Regular (so far)
        return RegularVerb(present, future, aorist, aorist_passive, preposition, uncommon_epsilon_augment,
                           allowed_forms)
def test_regular_verb_infinitive(test_verb: DeponentVerb, tense: Tense, voice: Voice,
                                 autocontract: bool, expected: str):
    assert expected == test_verb.get_infinitive(tense, voice, autocontract=autocontract)
def test_regular_verb_finite(test_verb: DeponentVerb, tense: Tense, mood: Mood,
                             voice: Voice, person: int, is_plural: bool, expected: str):
    assert expected == test_verb.get_finite_form(tense, mood, voice, person, is_plural)
from ancientgrammar.qualifiers import Case, Gender
from ancientgrammar.verbs import get_type
from ancientgrammar.verbs.verb import Tense, Mood, Voice, VerbType
from ancientgrammar.verbs.verbdeponent import DeponentVerb
from tests.verbs import TESTS
from tests.verbs.utils import CASE_REFERENCE, GENDER_REFERENCE, MOOD_REFERENCE, TENSE_REFERENCE, VOICE_REFERENCE, \
    convert_forms

DEPONENT_TESTS = {"FINITE": [], "IMPERATIVE": [], "INFINITIVE": [], "PARTICIPLE": []}

for full_verb in TESTS:
    if get_type(full_verb["present"], full_verb["future"], full_verb["aorist"]) is VerbType.DEPONENT:
        continue

    verb_object = DeponentVerb(full_verb["present"], full_verb["future"], full_verb["aorist"],
                               full_verb["aorist_passive"], full_verb["preposition"],
                               full_verb["uncommon_epsilon"] == "True", convert_forms(full_verb["allowed_forms"]))

    if full_verb["tests"].get("REGULAR_FINITE") is not None:
        for test in full_verb["tests"]["REGULAR_FINITE"]:
            test_info_list = [verb_object, TENSE_REFERENCE[test["tense"]], MOOD_REFERENCE[test["mood"]],
                              VOICE_REFERENCE[test["voice"]], test["person"], test["plural"] == "True",
                              test["expected"]]

            DEPONENT_TESTS["FINITE"].append(test_info_list)

    if full_verb["tests"].get("REGULAR_IMPERATIVE") is not None:
        for test in full_verb["tests"]["REGULAR_IMPERATIVE"]:
            test_info_list = [verb_object, TENSE_REFERENCE[test["tense"]], VOICE_REFERENCE[test["voice"]],
                              test["plural"] == "True", test["autocontract"] == "True",
                              test["expected"]]