def test_feats_converters(): feats = "Case=dat,gen|Number=sing" feats_dict = {"Case": "dat,gen", "Number": "sing"} # simple conversions assert Morphology.dict_to_feats(feats_dict) == feats assert Morphology.feats_to_dict(feats) == feats_dict # roundtrips assert Morphology.dict_to_feats(Morphology.feats_to_dict(feats)) == feats assert Morphology.feats_to_dict(Morphology.dict_to_feats(feats_dict)) == feats_dict # unsorted input is normalized unsorted_feats = "Number=sing|Case=gen,dat" unsorted_feats_dict = {"Case": "gen,dat", "Number": "sing"} assert Morphology.feats_to_dict(unsorted_feats) == feats_dict assert Morphology.dict_to_feats(unsorted_feats_dict) == feats assert Morphology.dict_to_feats(Morphology.feats_to_dict(unsorted_feats)) == feats
def test_create(self): lemmatizer = Lemmatizer({}, {}, {}) strings = StringStore() lemmatizer = Lemmatizer({}, {}, {}) morphology = Morphology(strings, {}, lemmatizer)
def morphology(): lemmatizer = Lemmatizer(Lookups()) return Morphology(StringStore(), {}, lemmatizer)
def morphology(): morphology = Morphology(StringStore()) morphology.add("Feat1=Val1|Feat2=Val2") morphology.add("Feat3=Val3|Feat4=Val4") return morphology
def test_pickle(): morphology = Morphology(StringStore(), {}, Lemmatizer({}, {}, {})) file_ = io.BytesIO() pickle.dump(morphology, file_)
def morphology(): return Morphology(StringStore())
def morphology(): return Morphology(StringStore(), {}, Lemmatizer())