def test_irregular_comparative(): comparative = get_adjective(["μειζων"], "33") adj = get_adjective(["αγαθος", "αγαθη", "αγαθον"], "212", comparative=comparative) assert adj.decline(Gender.MASCULINE, 0, Case.GENITIVE, Degree.COMPARATIVE) == "μειζονος"
def test_errors(): with pytest.raises(UnknownAdjectiveTypeError): adj = get_adjective(["noot"]) with pytest.raises(UnknownAdjectiveTypeError): adj = get_adjective(["noot"], "33") with pytest.raises(UnknownAdjectiveTypeError): adj = get_adjective([], "230498")
def test_irregular_superlative(): superlative = get_adjective(["αριστος", "αριστη", "αριστον"], "212") adj = get_adjective(["αγαθος", "αγαθη", "αγαθον"], "212", superlative=superlative) assert adj.decline(Gender.MASCULINE, 0, Case.GENITIVE, Degree.SUPERLATIVE) == "αριστου"
def get_participle(self, tense: Tense, voice: Voice): if tense is Tense.IMPERFECT: raise VerbComputeError("There is no imperfect participle!") if not self.can_get_form(tense, voice): raise VerbComputeError( "That form of the verb either does not exist, or was not supplied!" ) if tense is Tense.PRESENT: stem = self.present if voice is Voice.ACTIVE: return get_adjective([stem + "ων", stem + "ουσα", stem + "ον"], "313") else: stem += "ομεν" return get_adjective([stem + "ος", stem + "η", stem + "ον"], "212") elif tense is Tense.FUTURE: if voice is Voice.PASSIVE: stem = self.aorist_passive + "ησομεν" return get_adjective([stem + "ος", stem + "η", stem + "ον"], "212") stem = self.future if voice is Voice.ACTIVE: return get_adjective([stem + "ων", stem + "ουσα", stem + "ον"], "313") else: stem += "ομεν" return get_adjective([stem + "ος", stem + "η", stem + "ον"], "212") elif tense is Tense.AORIST: if voice is Voice.PASSIVE: stem = self.aorist_passive return get_adjective( [stem + "εις", stem + "εισα", stem + "εν"], "313") stem = self.aorist if voice is Voice.ACTIVE: if self.aorist_type is AoristType.WEAK: return get_adjective( [stem + "ας", stem + "ασα", stem + "αν"], "313") else: return get_adjective( [stem + "ων", stem + "ουσα", stem + "ον"], "313") else: if self.aorist_type is AoristType.WEAK: stem += "αμεν" else: stem += "ομεν" return get_adjective([stem + "ος", stem + "η", stem + "ον"], "212")
def get_participle(self, tense: Tense, voice: Voice): try: return get_adjective( *self.irregular_participles[tense.name][voice.name]) except KeyError: pass return super().get_participle(tense, voice)
def test_basic_adjective(g, n, c, d, expected): adj = get_adjective(["σοφος", "σοφη", "σοφον"]) assert adj.decline(g, n, c, d) == expected
def test_adverb_comparative(): assert get_adjective(["σοφος", "σοφη", "σοφον"]).comparative.adverb == "σοφωτερον" assert get_adjective(["σοφος", "σοφη", "σοφον"]).superlative.adverb == "σοφωτατα"
def test_33_adjective(g, n, c, d, expected): adj = get_adjective(["δυστυχης"], "33") assert adj.decline(g, n, c, d) == expected
def test_adverb_33(): assert get_adjective(["δυστυχης"], "33").adverb == "δυστυχως"
def test_adverb_22(): assert get_adjective(["αδικος", "αδικον"], "22").adverb == "αδικως"
def test_adverb_212(): assert get_adjective(["σοφος", "σοφη", "σοφον"]).adverb == "σοφως"
def test_adverb_313(): assert get_adjective(["βραδυς", "βραδεια", "βραδυ"], "313").adverb == "βραδεως"
def test_adjective_long_last_vowel(g, n, c, d, expected): adj = get_adjective(["μικρος", "μικρα", "μικρον"], "212", last_syll_long=True) assert adj.decline(g, n, c, d) == expected
def test_33_comparative(g, n, c, expected): adj = get_adjective(["μειζων"], "33") assert adj.decline(g, n, c) == expected
def test_22_adjective(g, n, c, d, expected): adj = get_adjective(["αδικος", "αδικον"], "22") assert adj.decline(g, n, c, d) == expected
def test_313_adjective(g, n, c, d, expected): adj = get_adjective(["βραδυς", "βραδεια", "βραδυ"], "313") assert adj.decline(g, n, c, d) == expected
def test_313_participle_weak(g, n, c, expected): adj = get_adjective(["παυσας", "παυσασα", "παυσαν"], "313") assert adj.decline(g, n, c) == expected