B
    .(bM                 @   s  d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ ddigd	d	fd
ddiiddigdd	fdddgd	d	fddigd	d	fdd	ddgdd	fddddidigd	d fdddddigdd fddd	ddgiidddiigdd fddd iigd	d fd!ddiigd	d fd"d#igd	d fd$d#igd	d fd!diddigd d fd%dd&d'giid(d)d*gd d fdd+d id,gd d fddigd d fdd-d.d/gd0igd d fd1d2iddd3giigd d fdd4dd5gid d6d7id8igd d fd9digd d fd:digd d fgZd;digd d fgZejd<d= Zejd>dd?iddid!dd iiggd@dA ZejdBedCdD ZejjejdBedEdF ZejdGedHdI ZdJdK ZdS )L    )unicode_literalsN)Matcher)TOKEN_PATTERN_SCHEMA)MatchPatternError)get_json_validatorvalidate_jsonXXfoo   ZIS_ALPHAz==TLIKE_NUM   $)ZIS_PUNCTOP_)z#[{"TEXT": "foo"}, {"LOWER": "bar"}]r
   r
      barIN)r	   baz2)LENGTHTEXTZLOWERtestr   3POSZVERBZVALUE   r   ZIS_DIGITZORTHZLEMMAZlovelikeZDET?)r   r   z>=)r   r   z^XZXXXZXY)ZREGEXNOT_INZNORMaZNOUNr   r   >
   )r	   r   bZIS_SENT_STARTZ
SENT_STARTZorthc               C   s   t tS )N)r   r    r#   r#   Z/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/matcher/test_pattern_validation.py	validator,   s    r%   patternyc          	   C   s4   t | dd}tt |d|g W d Q R X d S )NT)validateTEST)r   pytestraisesr   add)en_vocabr&   matcherr#   r#   r$   test_matcher_pattern_validation1   s    r/   zpattern,n_errors,_c             C   s   t || }t||kstd S )N)r   lenAssertionError)r%   r&   n_errorsr   errorsr#   r#   r$   test_pattern_validation:   s    
r4   c             C   s   t || }t||kstd S )N)r   r0   r1   )r%   r&   r2   r   r3   r#   r#   r$   test_xfail_pattern_validation@   s    
r5   zpattern,n_errors,n_min_errorsc          	   C   sP   t | }|dkr6tt |d|g W d Q R X n|dkrL|d|g d S )Nr   r)   )r   r*   r+   
ValueErrorr,   )r-   r&   r2   Zn_min_errorsr.   r#   r#   r$   test_minimal_pattern_validationG   s    r7   c          	   C   sR   t | }|ddddiigg tt |ddddiigg W d Q R X d S )NZTEST1textregexZTEST2r   r   Zxx)r   r,   r*   ZwarnsUserWarning)r-   r.   r#   r#   r$   test_pattern_warningsQ   s    r;   )
__future__r   r*   Zspacy.matcherr   Zspacy.matcher._schemasr   Zspacy.errorsr   Z
spacy.utilr   r   ZTEST_PATTERNSZXFAIL_TEST_PATTERNSZfixturer%   markZparametrizer/   r4   Zxfailr5   r7   r;   r#   r#   r#   r$   <module>   sH   ""(
