mirror of
				https://github.com/explosion/spaCy.git
				synced 2025-11-04 18:07:26 +03:00 
			
		
		
		
	* Remove unicode declarations * Remove Python 3.5 and 2.7 from CI * Don't require pathlib * Replace compat helpers * Remove OrderedDict * Use f-strings * Set Cython compiler language level * Fix typo * Re-add OrderedDict for Table * Update setup.cfg * Revert CONTRIBUTING.md * Revert lookups.md * Revert top-level.md * Small adjustments and docs [ci skip]
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import pytest
 | 
						|
from spacy.attrs import intify_attrs, ORTH, NORM, LEMMA, IS_ALPHA
 | 
						|
from spacy.lang.lex_attrs import is_punct, is_ascii, is_currency, like_url, word_shape
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize("text", ["dog"])
 | 
						|
def test_attrs_key(text):
 | 
						|
    assert intify_attrs({"ORTH": text}) == {ORTH: text}
 | 
						|
    assert intify_attrs({"NORM": text}) == {NORM: text}
 | 
						|
    assert intify_attrs({"lemma": text}, strings_map={text: 10}) == {LEMMA: 10}
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize("text", ["dog"])
 | 
						|
def test_attrs_idempotence(text):
 | 
						|
    int_attrs = intify_attrs({"lemma": text, "is_alpha": True}, strings_map={text: 10})
 | 
						|
    assert intify_attrs(int_attrs) == {LEMMA: 10, IS_ALPHA: True}
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize("text", ["dog"])
 | 
						|
def test_attrs_do_deprecated(text):
 | 
						|
    int_attrs = intify_attrs(
 | 
						|
        {"F": text, "is_alpha": True}, strings_map={text: 10}, _do_deprecated=True
 | 
						|
    )
 | 
						|
    assert int_attrs == {ORTH: 10, IS_ALPHA: True}
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize("text,match", [(",", True), (" ", False), ("a", False)])
 | 
						|
def test_lex_attrs_is_punct(text, match):
 | 
						|
    assert is_punct(text) == match
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize("text,match", [(",", True), ("£", False), ("♥", False)])
 | 
						|
def test_lex_attrs_is_ascii(text, match):
 | 
						|
    assert is_ascii(text) == match
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize(
 | 
						|
    "text,match",
 | 
						|
    [
 | 
						|
        ("$", True),
 | 
						|
        ("£", True),
 | 
						|
        ("♥", False),
 | 
						|
        ("€", True),
 | 
						|
        ("¥", True),
 | 
						|
        ("¢", True),
 | 
						|
        ("a", False),
 | 
						|
        ("www.google.com", False),
 | 
						|
        ("dog", False),
 | 
						|
    ],
 | 
						|
)
 | 
						|
def test_lex_attrs_is_currency(text, match):
 | 
						|
    assert is_currency(text) == match
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize(
 | 
						|
    "text,match",
 | 
						|
    [
 | 
						|
        ("www.google.com", True),
 | 
						|
        ("google.com", True),
 | 
						|
        ("sydney.com", True),
 | 
						|
        ("2girls1cup.org", True),
 | 
						|
        ("http://stupid", True),
 | 
						|
        ("www.hi", True),
 | 
						|
        ("dog", False),
 | 
						|
        ("1.2", False),
 | 
						|
        ("1.a", False),
 | 
						|
        ("hello.There", False),
 | 
						|
    ],
 | 
						|
)
 | 
						|
def test_lex_attrs_like_url(text, match):
 | 
						|
    assert like_url(text) == match
 | 
						|
 | 
						|
 | 
						|
@pytest.mark.parametrize(
 | 
						|
    "text,shape",
 | 
						|
    [
 | 
						|
        ("Nasa", "Xxxx"),
 | 
						|
        ("capitalized", "xxxx"),
 | 
						|
        ("999999999", "dddd"),
 | 
						|
        ("C3P0", "XdXd"),
 | 
						|
        (",", ","),
 | 
						|
        ("\n", "\n"),
 | 
						|
        ("``,-", "``,-"),
 | 
						|
    ],
 | 
						|
)
 | 
						|
def test_lex_attrs_word_shape(text, shape):
 | 
						|
    assert word_shape(text) == shape
 |