diff --git a/spacy/tests/doc/test_morphanalysis.py b/spacy/tests/doc/test_morphanalysis.py new file mode 100644 index 000000000..31c765e32 --- /dev/null +++ b/spacy/tests/doc/test_morphanalysis.py @@ -0,0 +1,30 @@ +# coding: utf-8 +from __future__ import unicode_literals + +import pytest +import numpy +from spacy.attrs import IS_ALPHA, IS_DIGIT, IS_LOWER, IS_PUNCT, IS_TITLE, IS_STOP +from spacy.symbols import VERB +from spacy.vocab import Vocab +from spacy.tokens import Doc + +@pytest.fixture +def i_has(en_tokenizer): + doc = en_tokenizer("I has") + doc[0].tag_ = "PRP" + doc[1].tag_ = "VBZ" + return doc + +def test_token_morph_id(i_has): + assert i_has[0].morph.id + assert i_has[1].morph.id != 0 + assert i_has[0].morph.id != i_has[1].morph.id + +def test_morph_props(i_has): + assert i_has[0].morph.pron_type == i_has.vocab.strings["PronType_prs"] + assert i_has[1].morph.pron_type == 0 + + +def test_morph_iter(i_has): + assert list(i_has[0].morph) == ["PronType_prs"] + assert list(i_has[1].morph) == ["Number_sing", "Person_three", "VerbForm_fin"]