B
    .(bB                 @   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
 ddlmZ d	d
 Zdd Zdd Zdd Zdd Zdd Zdd ZdS )    )unicode_literalsN)displacy)DependencyRenderer)Span)Persian   )get_docc             C   sz   t | ddddddgd}t|dd	|jjd
 dg|_t|}t|tsLt	|d dks\t	|d ddd
dgksvt	dS )zGTest that named entities on a Doc are converted into displaCy's format.ButGoogleisstartingfrombehind)wordsr      ORG)labeltextz#But Google is starting from behind ents   
   )startendr   N)
r   r   vocabstringsr   r   Z
parse_ents
isinstancedictAssertionError)en_vocabdocr    r    H/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/test_displacy.pytest_displacy_parse_ents   s    
r"   c             C   s   ddddg}ddddg}dd	dd
g}ddddg}ddddg}t | |||||d}t|}t|tsht|d d|d |d dd|d |d dd|d |d dd|d |d dgkst|d dddddddddddddddgkstdS )zFTest that deps and tags on a Doc are converted into displaCy's format.Thisr   aZsentencer   r   DETVERBZNOUNZDTZVBZZNNnsubjROOTdetattr)r   headspostagsdepsr   N)Zlemmar   tagr      arcsleft)r   r   r   dirright)r   r   Z
parse_depsr   r   r   )r   r   r,   r-   r.   r/   r   r    r    r!   test_displacy_parse_deps   s"    
r6   c           	   C   sb   t  } ddddddg}dddd	d
dddd	d
g}tt | ||dg W d Q R X d S )Nr#   r&   )r   r0   r   r'   r   r   r(   r3   )r   r   r   r4   r   r*   )r   r2   )r   pytestraises
ValueErrorrender)Zrendererr   r2   r    r    r!   test_displacy_invalid_arcs.   s    r<   c             C   s\   t | ddddddgd}t|dd	|jjd
 dg|_tj|dd dd}|dsXtdS )z$Test that displaCy can render Spans.r	   r
   r   r   r   r   )r   r   r   r   )r   r   ent)stylez<divN)	r   r   r   r   r   r   r;   
startswithr   )r   r   htmlr    r    r!   test_displacy_spans9   s    rA   c          	   C   s$   t t td W d Q R X d S )Nzhello world)r8   r9   r:   r   r;   )r   r    r    r!   #test_displacy_raises_for_wrong_typeA   s    rB   c              C   s   ddddg} ddddg}d	d
d	dg}ddddg}t  }t|j| |||d}t|ddddg|_tj|ddd}d|ksztd|kstd|j	|ksttj|ddd}d|kstd|j	|kstd S )Nu   ماu
   بسیارu   کتابu   می‌خوانیمZPROZADVZN_PLZV_SUBZfoobarZbazr   r   r%   )r   r.   r,   r/   r1   TEST)r   Tdep)pager>   zdirection: rtlzdirection="rtl"z	lang="{}"r=   )
r   r   r   r   r   r   r;   r   formatlang)r   r-   r/   r,   Znlpr   r@   r    r    r!   test_displacy_rtlF   s    rI   c             C   s   dd }t | t| ddddddgd	}t|d
d|jjd dg|_t j|dd}|dsbt	|
dspt	t dd  dS )z4Test that displaCy accepts custom rendering wrapper.c             S   s   d|  d S )NrD   r    )r@   r    r    r!   wrapper\   s    z-test_displacy_render_wrapper.<locals>.wrapperr	   r
   r   r   r   r   )r   r   r   r   )r   r=   )r>   zTEST<divz	/div>TESTc             S   s   | S )Nr    )r@   r    r    r!   <lambda>f       z.test_displacy_render_wrapper.<locals>.<lambda>N)r   Zset_render_wrapperr   r   r   r   r   r;   r?   r   endswith)r   rJ   r   r@   r    r    r!   test_displacy_render_wrapperY   s    
rN   )
__future__r   r8   Zspacyr   Zspacy.displacy.renderr   Zspacy.tokensr   Zspacy.lang.far   utilr   r"   r6   r<   rA   rB   rI   rN   r    r    r    r!   <module>   s   
