B
    .(b5                 @   s   d dl mZ d dl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 d dlmZ d dlmZ d	d
lmZmZ ejjdd Zdd Zdd Zdd Zdd Zdd Zejddddgdd Zdd Zdd  Zd!d" ZdS )#    )unicode_literalsN)Doc)Matcher)render)iob_to_biluo)Italian)English   )add_vecs_to_vocabget_docc              C   s"   t  } | d}t|dkstdS )zRTest that checks that a dot followed by a quote is handled
    appropriately.
    z.First sentence."A quoted sentence" he said ...   N)r   lenAssertionError)nlpdoc r   Y/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/regression/test_issue2001-2500.pytest_issue2070   s    r   c              C   s|   t  } | d}|d | | |   t  }||d ||   d|djksdt	|dj
dksxt	dS )zGTest that spurious 'extra_labels' aren't created when initializing NER.nerCITIZENSHIPZextra_labels)r   N)r   create_pipeZ	add_labeladd_pipeZbegin_training
from_bytesto_bytesZget_pipecfgr   labels)r   r   Znlp2r   r   r   test_issue2179   s    


r   c       	         s   dddg}dddg}dddg} fd	d
|D } fdd
|D }t  |d}|dtj|dd |dtj|dd dd
 |D |kstdd
 |D |kst|ddg}t |j|dddg|}dd
 |D |kstdd
 |D |kstdS )z5Test that lemmas are set correctly in doc.from_array.Iz'llZsurviveZPRPZMDZVBz-PRON-Zwillc                s   g | ]} j |qS r   )stringsadd).0tag)en_vocabr   r   
<listcomp>0   s    z"test_issue2203.<locals>.<listcomp>c                s   g | ]} j |qS r   )r   r   )r    Zlemma)r"   r   r   r#   1   s    )wordsZTAGZuint64)dtypeZLEMMAc             S   s   g | ]
}|j qS r   )tag_)r    tr   r   r   r#   6   s    c             S   s   g | ]
}|j qS r   )lemma_)r    r'   r   r   r   r#   7   s    c             S   s   g | ]
}|j qS r   )r&   )r    r'   r   r   r   r#   ;   s    c             S   s   g | ]
}|j qS r   )r(   )r    r'   r   r   r   r#   <   s    N)r   Z
from_arraynumpyarrayr   Zto_arrayZvocab)	r"   r$   tagsZlemmasZtag_idsZ	lemma_idsr   Z	doc_arrayZnew_docr   )r"   r   test_issue2203+   s    


r,   c             C   sr   ddddgfddddgfg}t | | |\\}}\}}t| ||gd	}|d
 |d |d |d
 ksntd S )Na   r	      letter         )r$   r   )r
   r   Z
similarityr   )r"   ZvectorsZword1Zvec1Zword2Zvec2r   r   r   r   test_issue2219?   s
    
r4   c             C   s>   d}| d}d|_ d|_t|}x|D ]}||ks&tq&W d S )N)z&lt;z&gt;z&amp;z&quot;z< > & " T)Z	is_parsedZ	is_taggedr   r   )Zde_tokenizercharsr   htmlcharr   r   r   test_issue2361G   s    
r8   c              C   sR   d} t | dddgkstd}t |dddgks4td	}t |d
ddgksNtdS )z9Test that IOB tags are correctly converted to BILUO tags.)z	B-BRAWLERz	I-BRAWLERz	I-BRAWLERz	B-BRAWLERz	I-BRAWLERz	L-BRAWLER)zI-ORGzI-ORGzB-ORGzB-ORGzL-ORGzU-ORG)zB-PERSONzI-PERSONzB-PERSONzB-PERSONzL-PERSONzU-PERSONN)r   r   )Ztags1Ztags2Ztags3r   r   r   test_issue2385Q   s    r9   r+   )zB-ORGzL-ORG)zB-PERSONzI-PERSONzL-PERSON)z	U-BRAWLERz	U-BRAWLERc             C   s   t | t| kstdS )z0Test that BILUO-compatible tags aren't modified.N)r   listr   )r+   r   r   r   test_issue2385_biluo^   s    
r;   c             C   s   ddddddg}dddd	d
d
g}t jddddddgddddddgddddddgddddddgddddddgddddddggt jd}t| ||d}|d d  }| |k st| |k std S )NZShecreatedr-   testforZspacyr.   r   r	   r/   r1   r2   )r%   )r$   heads)r)   r*   int32r   Zget_lca_matrixallr   )r"   r$   rA   Zmatrixr   spanr   r   r   test_issue2396k   s    
rE   c             C   sN   t | }t| ddgd}|dddiddigg ||}t|dksJtdS )	zITest problem with successive ?. This is the same bug, so putting it here.r-   b)r$   4OP?r/   N)r   r   r   r   r   )r"   Zmatcherr   matchesr   r   r   test_issue2464   s
    rK   c              C   s.   t  } | | d |  }t  | dS )zBTest we can serialize and deserialize a blank NER or parser model.r   N)r   r   r   r   r   )r   rF   r   r   r   test_issue2482   s    rL   ) 
__future__r   Zpytestr)   Zspacy.tokensr   Zspacy.matcherr   Zspacy.displacyr   Z
spacy.goldr   Zspacy.lang.itr   Zspacy.lang.enr   utilr
   r   markZxfailr   r   r,   r4   r8   r9   Zparametrizer;   rE   rK   rL   r   r   r   r   <module>   s.   
	