File: morphy_test.py

package info (click to toggle)
python-wn 1.0.0-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,100 kB
  • sloc: python: 8,429; xml: 566; sql: 238; makefile: 12
file content (54 lines) | stat: -rw-r--r-- 2,084 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
import pytest

import wn
from wn import morphy


def test_morphy_uninitialized():
    # An unintialized Morphy isn't very bright, but it starts up
    # fast. It relies on the database to filter bad items.
    m = morphy.Morphy()
    assert m("example", "n") == {"n": {"example"}}
    assert m("examples", "n") == {"n": {"examples", "example"}}
    assert m("examples", "v") == {"v": {"examples", "example", "exampl"}}
    assert m("exemplifying", "n") == {"n": {"exemplifying"}}
    assert m("exemplifying", "v") == {"v": {"exemplifying", "exemplify", "exemplifye"}}
    assert m("data", "n") == {"n": {"data"}}
    assert m("datums", "n") == {"n": {"datums", "datum"}}  # expected false positive
    assert m("examples", None) == {
        None: {"examples"},
        "n": {"example"},
        "v": {"example", "exampl"},
    }
    assert m("exemplifying", None) == {
        None: {"exemplifying"},
        "v": {"exemplify", "exemplifye"},
    }
    assert m("data", None) == {None: {"data"}}


@pytest.mark.usefixtures("mini_db")
def test_morphy_initialized():
    w = wn.Wordnet("test-en:1")
    m = morphy.Morphy(wordnet=w)
    assert m("example", "n") == {"n": {"example"}}
    assert m("examples", "n") == {"n": {"example"}}
    assert m("examples", "v") == {}
    assert m("exemplifying", "n") == {}
    assert m("exemplifying", "v") == {"v": {"exemplify"}}
    assert m("data", "n") == {"n": {"datum"}}
    assert m("datums", "n") == {"n": {"datum"}}  # expected false positive
    assert m("examples", None) == {"n": {"example"}}
    assert m("exemplifying", None) == {"v": {"exemplify"}}
    assert m("data", None) == {"n": {"datum"}}


@pytest.mark.usefixtures("mini_db")
def test_issue_154():
    # https://github.com/goodmami/wn/issues/154
    w = wn.Wordnet("test-en:1")
    assert w.words("exemplifies") == [w.word("test-en-exemplify-v")]
    assert w.words("samples") == []
    w = wn.Wordnet("test-en:1", lemmatizer=morphy.Morphy())
    assert w.words("exemplifies") == [w.word("test-en-exemplify-v")]
    assert w.words("samples") == [w.word("test-en-sample-n")]