* Update matcher tests

This commit is contained in:
Matthew Honnibal 2015-08-06 14:33:35 +02:00
parent 5737115e1e
commit faf75dfcb9

View File

@ -10,18 +10,18 @@ from spacy.vocab import Vocab
@pytest.fixture @pytest.fixture
def matcher(EN): def matcher(EN):
specs = [] patterns = {
for string in ['JavaScript', 'Google Now', 'Java']: 'Javascript': ['PRODUCT', {}, [{'ORTH': 'JavaScript'}]],
spec = [] 'GoogleNow': ['PRODUCT', {}, [{'ORTH': 'Google'}, {'ORTH': 'Now'}]],
for orth_ in string.split(): 'Java': ['PRODUCT', {}, [{'ORTH': 'Java'}]],
spec.append([(ORTH, EN.vocab.strings[orth_])]) }
specs.append((spec, EN.vocab.strings['product'])) return Matcher(EN.vocab, patterns)
return Matcher(specs)
def test_compile(matcher): def test_compile(matcher):
assert matcher.n_patterns == 3 assert matcher.n_patterns == 3
def test_no_match(matcher, EN): def test_no_match(matcher, EN):
tokens = EN('I like cheese') tokens = EN('I like cheese')
assert matcher(tokens) == [] assert matcher(tokens) == []
@ -29,23 +29,24 @@ def test_no_match(matcher, EN):
def test_match_start(matcher, EN): def test_match_start(matcher, EN):
tokens = EN('JavaScript is good') tokens = EN('JavaScript is good')
assert matcher(tokens) == [(EN.vocab.strings['product'], 0, 1)] assert matcher(tokens) == [(EN.vocab.strings['PRODUCT'], 0, 1)]
def test_match_end(matcher, EN): def test_match_end(matcher, EN):
tokens = EN('I like Java') tokens = EN('I like Java')
assert matcher(tokens) == [(EN.vocab.strings['product'], 2, 3)] assert matcher(tokens) == [(EN.vocab.strings['PRODUCT'], 2, 3)]
def test_match_middle(matcher, EN): def test_match_middle(matcher, EN):
tokens = EN('I like Google Now best') tokens = EN('I like Google Now best')
assert matcher(tokens) == [(EN.vocab.strings['product'], 2, 4)] assert matcher(tokens) == [(EN.vocab.strings['PRODUCT'], 2, 4)]
def test_match_multi(matcher, EN): def test_match_multi(matcher, EN):
tokens = EN('I like Google Now and Java best') tokens = EN('I like Google Now and Java best')
assert matcher(tokens) == [(EN.vocab.strings['product'], 2, 4), assert matcher(tokens) == [(EN.vocab.strings['PRODUCT'], 2, 4),
(EN.vocab.strings['product'], 5, 6)] (EN.vocab.strings['PRODUCT'], 5, 6)]
def test_match_preserved(matcher, EN): def test_match_preserved(matcher, EN):
doc = EN.tokenizer('I like Java') doc = EN.tokenizer('I like Java')