o
    i'                  	   @   sx  d dl Z d dlmZ d dlmZ d dlmZ g 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igddfg dddfdddgddfdddgddfdddgddfdddgddfdddgddfdddgddfdddgddf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g d%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gdd fd0d-igdd fd+did"digd d fd1dd2d3giid4d5d6gd d fd
d7d*id8gd d fd$digd d fd"d9d:d;gd<igd d fd=d>id&dd?giigd d fdd@ddAgid*dBdCidDigd d fdEdigd d fdFd
igd d fdGd
igd d fd/dHigd d fd0dHigd d fdIdJdgd d fZe j	dKddLigd$d igd+dd*iigdMdNdOiiggdPdQ Z
e j	dRedSdT Ze j	dUedVdW ZdXdY ZdS )Z    N)MatchPatternError)Matcher)validate_token_patternXXfoo   IS_ALPHAz==TLIKE_NUM   $)IS_PUNCTOP_)z#[{"TEXT": "foo"}, {"LOWER": "bar"}]r   r   ENT_IOB)r   r
      r   z{,})TEXTr   z{,4}4z{a,3}z{a}z{,a}z{1,2,3}z{1, 3}z{-2}barIN)r   baz2)LENGTHr   LOWERtestr   )r   r
   3POSVERB   VALUE   r   IS_DIGITORTHENT_ID	ENT_KB_IDLEMMAlovelikeDET?)r   r   z>=)r	   r   z^XXXXXY)REGEXNOT_INNORMaNOUNr,   r   >
   )r   r.   borthIS_SENT_START
SENT_STARTSTRINGhaz{3}patternytextin   c                 C   sJ   t | dd}tt |d|g W d    d S 1 sw   Y  d S )NT)validateTEST)r   pytestraisesr   add)en_vocabr8   matcher rD   _/home/ubuntu/.local/lib/python3.10/site-packages/spacy/tests/matcher/test_pattern_validation.pytest_matcher_pattern_validation6   s   "rF   zpattern,n_errors,_c                 C   s   t | }t||ksJ d S )N)r   len)r8   n_errorsr   errorsrD   rD   rE   test_pattern_validation@   s   rJ   zpattern,n_errors,n_min_errorsc                 C   sl   t | }|dkr'tt |d|g W d    d S 1 s w   Y  d S |dkr4|d|g d S d S )Nr   r>   )r   r?   r@   
ValueErrorrA   )rB   r8   rH   n_min_errorsrC   rD   rD   rE   test_minimal_pattern_validationF   s   "rM   c                 C   sh   t | }|ddddiigg tt |ddddiigg W d    d S 1 s-w   Y  d S )NTEST1r:   regexTEST2r   r   xx)r   rA   r?   r@   r   )rB   rC   rD   rD   rE   test_pattern_errorsP   s
   "rR   )r?   spacy.errorsr   spacy.matcherr   spacy.schemasr   TEST_PATTERNSmarkparametrizerF   rJ   rM   rR   rD   rD   rD   rE   <module>   s    	
  !""#$%&'()-*


	