mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 18:07:26 +03:00 
			
		
		
		
	Add tests
This commit is contained in:
		
							parent
							
								
									53abf759ad
								
							
						
					
					
						commit
						87168eb81f
					
				| 
						 | 
				
			
			@ -262,6 +262,11 @@ def tt_tokenizer():
 | 
			
		|||
    return get_lang_class("tt").Defaults.create_tokenizer()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="session")
 | 
			
		||||
def ky_tokenizer():
 | 
			
		||||
    return get_lang_class("ky").Defaults.create_tokenizer()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.fixture(scope="session")
 | 
			
		||||
def uk_tokenizer():
 | 
			
		||||
    pytest.importorskip("pymorphy2")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										0
									
								
								spacy/tests/lang/ky/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										0
									
								
								spacy/tests/lang/ky/__init__.py
									
									
									
									
									
										Normal file
									
								
							
							
								
								
									
										91
									
								
								spacy/tests/lang/ky/test_tokenizer.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								spacy/tests/lang/ky/test_tokenizer.py
									
									
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,91 @@
 | 
			
		|||
# coding: utf8
 | 
			
		||||
from __future__ import unicode_literals
 | 
			
		||||
 | 
			
		||||
import pytest
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
INFIX_HYPHEN_TESTS = [
 | 
			
		||||
    ("Бала-чака жакшыбы?", "Бала-чака жакшыбы ?".split()),
 | 
			
		||||
    ("Кыз-келиндер кийими.", "Кыз-келиндер кийими .".split()),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
PUNC_INSIDE_WORDS_TESTS = [
 | 
			
		||||
    (
 | 
			
		||||
        "Пассажир саны - 2,13 млн — киши/күнүнө (2010), 783,9 млн. киши/жылына.",
 | 
			
		||||
        "Пассажир саны - 2,13 млн — киши / күнүнө ( 2010 ) ,"
 | 
			
		||||
        " 783,9 млн. киши / жылына .".split(),
 | 
			
		||||
    ),
 | 
			
		||||
    ('То"кой', 'То " кой'.split()),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
MIXED_ORDINAL_NUMS_TESTS = [
 | 
			
		||||
    ("Эртең 22-январь...", "Эртең 22 - январь ...".split())
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
ABBREV_TESTS = [
 | 
			
		||||
    ("Маселе б-ча эртең келет", "Маселе б-ча эртең келет".split()),
 | 
			
		||||
    ("Ахунбаев көч. турат.", "Ахунбаев көч. турат .".split()),
 | 
			
		||||
    ("«3-жылы (б.з.ч.) туулган", "« 3 - жылы ( б.з.ч. ) туулган".split()),
 | 
			
		||||
    ("Жүгөрү ж.б. дандар колдонулат", "Жүгөрү ж.б. дандар колдонулат".split()),
 | 
			
		||||
    ("3-4 кк. курулган.", "3 - 4 кк. курулган .".split()),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
NAME_ABBREV_TESTS = [
 | 
			
		||||
    ("М.Жумаш", "М.Жумаш".split()),
 | 
			
		||||
    ("М.жумаш", "М.жумаш".split()),
 | 
			
		||||
    ("м.Жумаш", "м . Жумаш".split()),
 | 
			
		||||
    ("Жумаш М.Н.", "Жумаш М.Н.".split()),
 | 
			
		||||
    ("Жумаш.", "Жумаш .".split()),
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
TYPOS_IN_PUNC_TESTS = [
 | 
			
		||||
    ("«3-жылда , туулган", "« 3 - жылда , туулган".split()),
 | 
			
		||||
    ("«3-жылда,туулган", "« 3 - жылда , туулган".split()),
 | 
			
		||||
    ("«3-жылда,туулган.", "« 3 - жылда , туулган .".split()),
 | 
			
		||||
    ("Ал иштейт(качан?)", "Ал иштейт ( качан ? )".split()),
 | 
			
		||||
    ("Ал (качан?)иштейт", "Ал ( качан ?) иштейт".split()),  # "?)" => "?)" or "? )"
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
LONG_TEXTS_TESTS = [
 | 
			
		||||
    (
 | 
			
		||||
        "Алыскы өлкөлөргө аздыр-көптүр татаалыраак жүрүштөргө чыккандар "
 | 
			
		||||
        "азыраак: ал бир топ кымбат жана логистика маселесинин айынан "
 | 
			
		||||
        "кыйла татаал. Мисалы, январдагы майрамдарда Мароккого үчүнчү "
 | 
			
		||||
        "категориядагы маршрутка (100 чакырымдан кем эмес) барып "
 | 
			
		||||
        "келгенге аракет кылдык.",
 | 
			
		||||
        "Алыскы өлкөлөргө аздыр-көптүр татаалыраак жүрүштөргө чыккандар "
 | 
			
		||||
        "азыраак : ал бир топ кымбат жана логистика маселесинин айынан "
 | 
			
		||||
        "кыйла татаал . Мисалы , январдагы майрамдарда Мароккого үчүнчү "
 | 
			
		||||
        "категориядагы маршрутка ( 100 чакырымдан кем эмес ) барып "
 | 
			
		||||
        "келгенге аракет кылдык .".split(),
 | 
			
		||||
    )
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
TESTCASES = (
 | 
			
		||||
    INFIX_HYPHEN_TESTS
 | 
			
		||||
    + PUNC_INSIDE_WORDS_TESTS
 | 
			
		||||
    + MIXED_ORDINAL_NUMS_TESTS
 | 
			
		||||
    + ABBREV_TESTS
 | 
			
		||||
    + NAME_ABBREV_TESTS
 | 
			
		||||
    + LONG_TEXTS_TESTS
 | 
			
		||||
    + TYPOS_IN_PUNC_TESTS
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
NORM_TESTCASES = [
 | 
			
		||||
    (
 | 
			
		||||
        "ит, мышык ж.б.у.с. үй жаныбарлары.",
 | 
			
		||||
        ["ит", ",", "мышык", "жана башка ушул сыяктуу", "үй", "жаныбарлары", "."],
 | 
			
		||||
    )
 | 
			
		||||
]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.parametrize("text,expected_tokens", TESTCASES)
 | 
			
		||||
def test_ky_tokenizer_handles_testcases(ky_tokenizer, text, expected_tokens):
 | 
			
		||||
    tokens = [token.text for token in ky_tokenizer(text) if not token.is_space]
 | 
			
		||||
    assert expected_tokens == tokens
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@pytest.mark.parametrize("text,norms", NORM_TESTCASES)
 | 
			
		||||
def test_ky_tokenizer_handles_norm_exceptions(ky_tokenizer, text, norms):
 | 
			
		||||
    tokens = ky_tokenizer(text)
 | 
			
		||||
    assert [token.norm_ for token in tokens] == norms
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user