mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 01:48:04 +03:00 
			
		
		
		
	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
					
				
							
								
								
									
										11
									
								
								spacy/tests/hu/conftest.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								spacy/tests/hu/conftest.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
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', '.']),
 | 
			
		||||
    ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
 | 
			
		||||
    ('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...', ['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.', ['Egy', '-nak', '.']),
 | 
			
		||||
    ('Egy bel-.', ['Egy', 'bel-', '.']),
 | 
			
		||||
| 
						 | 
				
			
			@ -39,9 +41,11 @@ _HYPHEN_TESTS = [
 | 
			
		|||
    ('A 7-es.', ['A', '7-es', '.']),
 | 
			
		||||
    ('Ez (lakik)-e?', ['Ez', '(', 'lakik', ')', '-e', '?']),
 | 
			
		||||
    ('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.', ['A', '2b', '.']),
 | 
			
		||||
    ('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 TU–154 van.', ['A', 'TU–154', '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', '.']),
 | 
			
		||||
    ('Az "Ime, hat".', ['Az', '"', 'Ime', ',', 'hat', '"', '.']),
 | 
			
		||||
    ('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', '.']),
 | 
			
		||||
    ('Az egy.ketto pelda.', ['Az', 'egy.ketto', 'pelda', '.']),
 | 
			
		||||
    ('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...', ['Valami', '...']),
 | 
			
		||||
    ('Valami ...', ['Valami', '...']),
 | 
			
		||||
              ('Valami ... más.', ['Valami', '...', 'más', '.'])]
 | 
			
		||||
    ('Valami ... más.', ['Valami', '...', 'más', '.'])
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="session")
 | 
			
		||||
def HU():
 | 
			
		||||
    return Hungarian()
 | 
			
		||||
TESTCASES = DEFAULT_TESTS + HYPHEN_TESTS + NUMBER_TESTS + DOT_TESTS + QUOTE_TESTS
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="module")
 | 
			
		||||
def hu_tokenizer(HU):
 | 
			
		||||
    return HU.tokenizer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@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]
 | 
			
		||||
@pytest.mark.parametrize('text,expected_tokens', TESTCASES)
 | 
			
		||||
def test_tokenizer_handles_testcases(hu_tokenizer, text, expected_tokens):
 | 
			
		||||
    tokens = hu_tokenizer(text)
 | 
			
		||||
    token_list = [token.text for token in tokens if not token.is_space]
 | 
			
		||||
    assert expected_tokens == token_list
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user