B
    .(äbÅ  ã               @   sž   d dl mZ d dlZd dlmZ d dlmZmZmZm	Z	 ddl
mZ dd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zej dddgdg¡dd„ ƒZdd„ Zdd„ ZdS )é    )Úunicode_literalsN)ÚDoc)ÚORTHÚSHAPEÚPOSÚDEPé   )Úget_docc             C   sv   t | dddgd}|jd }|j|jks,t‚| ttf¡}|d d |d d ksVt‚|d d |d d ksrt‚d S )NÚAnÚexampleÚsentence)Úwordsr   é   )r   ÚvocabÚorthÚshapeÚAssertionErrorÚto_arrayr   r   )Úen_vocabÚdocr   Úfeats_array© r   úI/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/doc/test_array.pyÚtest_doc_array_attr_of_token   s    
r   c             C   s€   t | dddgd}|jd }|j|jks,t‚| ttf¡}| d¡}|d d |d d ks`t‚|d d |d d ks|t‚d S )Nr
   r   r   )r   )r   r   r   r   )r   r   r   r   r   r   r   r   )r   r   r   r   Zfeats_array_stringyr   r   r   Ú$test_doc_stringy_array_attr_of_token   s    

r   c             C   sH   t | dddgd}|jd }|j|jks,t‚| t¡}|jdksDt‚d S )Nr
   r   r   )r   )é   )r   r   r   r   r   r   r   )r   r   r   r   r   r   r   Útest_doc_scalar_attr_of_token   s
    

r   c             C   sÜ   ddddg}ddddg}t | ||d	}|d
 j|d j  kr\|d j  kr\|d jksbn t‚| ttf¡}|d
 d |d
 jksŠt‚|d d |d jks¤t‚|d d |d jks¾t‚|d d |d jksØt‚d S )NÚAÚnicer   Ú.ZDETZADJZNOUNZPUNCT)r   Úposr   r   r   r   )r	   r    r   r   r   r   )r   r   r    r   r   r   r   r   Útest_doc_array_tag&   s    <r!   c             C   s    ddddg}ddddg}t | ||d	}| ttf¡}|d
 d |d
 jksNt‚|d d |d jksht‚|d d |d jks‚t‚|d d |d jksœt‚d S )Nr   r   r   r   ZdetZamodÚROOTÚpunct)r   Údepsr   r   r   r   )r	   r   r   r   Údepr   )r   r   r$   r   r   r   r   r   Útest_doc_array_dep2   s    r&   Úattrsr   r   ZIS_ALPHAc             C   s4   dddg}t | |d}t | |d || |¡¡ dS )z|Test that both Doc.to_array and Doc.from_array accept string attrs,
    as well as single attrs and sequences of attrs.
    r
   r   r   )r   N)r   Ú
from_arrayr   )r   r'   r   r   r   r   r   Ú#test_doc_array_to_from_string_attrs=   s    
r)   c             C   sP   dddg}t | |d d¡}|d dks,t‚|d dks<t‚|d	 d
ksLt‚dS )z7Test that Doc.to_array can retrieve token start indicesr
   r   r   )r   ZIDXr   r   r   r   é   N)r   r   r   )r   r   Úoffsetsr   r   r   Útest_doc_array_idxG   s
    
r,   c          	   C   sä   dddddg}t | |d}x|D ]}|d |_q W | dg¡}t | |d}| dg|¡ | dg¡}d	|d< t | |d}t t¡ | dg|¡ W d
Q R X | dg¡}d|d< t | |d}t t¡ | dg|¡ W d
Q R X d
S )zBTest that Doc.from_array doesn't set heads that are out of bounds.ZThisÚisÚar   r   )r   r   ÚHEADéÿÿÿÿNé   )r   Úheadr   r(   ÚpytestZraisesÚ
ValueError)r   r   r   ÚtokenZarrZdoc_from_arrayr   r   r   Ú#test_doc_from_array_heads_in_boundsP   s"    
r6   )Ú
__future__r   r3   Zspacy.tokensr   Zspacy.attrsr   r   r   r   Úutilr	   r   r   r   r!   r&   ÚmarkZparametrizer)   r,   r6   r   r   r   r   Ú<module>   s   	

	