mirror of https://github.com/explosion/spaCy.git
Reformat HU tokenizer tests and adapt to general style
Improve readability of test cases and add conftest.py with fixture
This commit is contained in:
parent
bc911322b3
commit
038002d616
|
@ -0,0 +1,11 @@
|
||||||
|
# coding: utf-8
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from ...hu import Hungarian
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def hu_tokenizer():
|
||||||
|
return Hungarian.Defaults.create_tokenizer()
|
|
@ -2,9 +2,10 @@
|
||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
from spacy.hu import Hungarian
|
|
||||||
|
|
||||||
_DEFAULT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
|
||||||
|
DEFAULT_TESTS = [
|
||||||
|
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
||||||
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
||||||
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
||||||
('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']),
|
('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']),
|
||||||
|
@ -18,9 +19,10 @@ _DEFAULT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági',
|
||||||
('Valami ...van...', ['Valami', '...', 'van', '...']),
|
('Valami ...van...', ['Valami', '...', 'van', '...']),
|
||||||
('Valami...', ['Valami', '...']),
|
('Valami...', ['Valami', '...']),
|
||||||
('Valami ...', ['Valami', '...']),
|
('Valami ...', ['Valami', '...']),
|
||||||
('Valami ... más.', ['Valami', '...', 'más', '.'])]
|
('Valami ... más.', ['Valami', '...', 'más', '.'])
|
||||||
|
]
|
||||||
|
|
||||||
_HYPHEN_TESTS = [
|
HYPHEN_TESTS = [
|
||||||
('Egy -nak, -jaiért, -magyar, bel- van.', ['Egy', '-nak', ',', '-jaiért', ',', '-magyar', ',', 'bel-', 'van', '.']),
|
('Egy -nak, -jaiért, -magyar, bel- van.', ['Egy', '-nak', ',', '-jaiért', ',', '-magyar', ',', 'bel-', 'van', '.']),
|
||||||
('Egy -nak.', ['Egy', '-nak', '.']),
|
('Egy -nak.', ['Egy', '-nak', '.']),
|
||||||
('Egy bel-.', ['Egy', 'bel-', '.']),
|
('Egy bel-.', ['Egy', 'bel-', '.']),
|
||||||
|
@ -39,9 +41,11 @@ _HYPHEN_TESTS = [
|
||||||
('A 7-es.', ['A', '7-es', '.']),
|
('A 7-es.', ['A', '7-es', '.']),
|
||||||
('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']),
|
('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']),
|
||||||
('A %-sal.', ['A', '%-sal', '.']),
|
('A %-sal.', ['A', '%-sal', '.']),
|
||||||
('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.'])]
|
('A CD-ROM-okrol.', ['A', 'CD-ROM-okrol', '.'])
|
||||||
|
]
|
||||||
|
|
||||||
_NUMBER_TESTS = [('A 2b van.', ['A', '2b', 'van', '.']),
|
NUMBER_TESTS = [
|
||||||
|
('A 2b van.', ['A', '2b', 'van', '.']),
|
||||||
('A 2b-ben van.', ['A', '2b-ben', 'van', '.']),
|
('A 2b-ben van.', ['A', '2b-ben', 'van', '.']),
|
||||||
('A 2b.', ['A', '2b', '.']),
|
('A 2b.', ['A', '2b', '.']),
|
||||||
('A 2b-ben.', ['A', '2b-ben', '.']),
|
('A 2b-ben.', ['A', '2b-ben', '.']),
|
||||||
|
@ -190,15 +194,19 @@ _NUMBER_TESTS = [('A 2b van.', ['A', '2b', 'van', '.']),
|
||||||
('A III/c-ben.', ['A', 'III/c-ben', '.']),
|
('A III/c-ben.', ['A', 'III/c-ben', '.']),
|
||||||
('A TU–154 van.', ['A', 'TU–154', 'van', '.']),
|
('A TU–154 van.', ['A', 'TU–154', 'van', '.']),
|
||||||
('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']),
|
('A TU–154-ben van.', ['A', 'TU–154-ben', 'van', '.']),
|
||||||
('A TU–154-ben.', ['A', 'TU–154-ben', '.'])]
|
('A TU–154-ben.', ['A', 'TU–154-ben', '.'])
|
||||||
|
]
|
||||||
|
|
||||||
_QUOTE_TESTS = [('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
QUOTE_TESTS = [
|
||||||
|
('Az "Ime, hat"-ban irja.', ['Az', '"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
||||||
('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
('"Ime, hat"-ban irja.', ['"', 'Ime', ',', 'hat', '"', '-ban', 'irja', '.']),
|
||||||
('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']),
|
('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']),
|
||||||
('Egy 24"-os monitor.', ['Egy', '24', '"', '-os', 'monitor', '.']),
|
('Egy 24"-os monitor.', ['Egy', '24', '"', '-os', 'monitor', '.']),
|
||||||
("A don't van.", ['A', "don't", 'van', '.'])]
|
("A don't van.", ['A', "don't", 'van', '.'])
|
||||||
|
]
|
||||||
|
|
||||||
_DOT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
DOT_TESTS = [
|
||||||
|
('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'székhely', '.']),
|
||||||
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
('A .hu egy tld.', ['A', '.hu', 'egy', 'tld', '.']),
|
||||||
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
|
||||||
('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']),
|
('A pl. rovidites.', ['A', 'pl.', 'rovidites', '.']),
|
||||||
|
@ -212,22 +220,15 @@ _DOT_TESTS = [('N. kormányzósági\nszékhely.', ['N.', 'kormányzósági', 'sz
|
||||||
('Valami ...van...', ['Valami', '...', 'van', '...']),
|
('Valami ...van...', ['Valami', '...', 'van', '...']),
|
||||||
('Valami...', ['Valami', '...']),
|
('Valami...', ['Valami', '...']),
|
||||||
('Valami ...', ['Valami', '...']),
|
('Valami ...', ['Valami', '...']),
|
||||||
('Valami ... más.', ['Valami', '...', 'más', '.'])]
|
('Valami ... más.', ['Valami', '...', 'más', '.'])
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="session")
|
TESTCASES = DEFAULT_TESTS + HYPHEN_TESTS + NUMBER_TESTS + DOT_TESTS + QUOTE_TESTS
|
||||||
def HU():
|
|
||||||
return Hungarian()
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture(scope="module")
|
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
|
||||||
def hu_tokenizer(HU):
|
def test_tokenizer_handles_testcases(hu_tokenizer, text, expected_tokens):
|
||||||
return HU.tokenizer
|
tokens = hu_tokenizer(text)
|
||||||
|
token_list = [token.text for token in tokens if not token.is_space]
|
||||||
|
|
||||||
@pytest.mark.parametrize(("input", "expected_tokens"),
|
|
||||||
_DEFAULT_TESTS + _HYPHEN_TESTS + _NUMBER_TESTS + _DOT_TESTS + _QUOTE_TESTS)
|
|
||||||
def test_testcases(hu_tokenizer, input, expected_tokens):
|
|
||||||
tokens = hu_tokenizer(input)
|
|
||||||
token_list = [token.orth_ for token in tokens if not token.is_space]
|
|
||||||
assert expected_tokens == token_list
|
assert expected_tokens == token_list
|
||||||
|
|
Loading…
Reference in New Issue