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)
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"]]