B
    .(b
                 @   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lmZ d d	lmZmZ d d
lmZ ejdd Zejdd Zdd Zdd Zdd Zdd Zejdedfedfgdd ZdS )    )unicode_literalsN)Adam)NumpyOps)NORM)	GoldParse)Vocab)Doc)DependencyParserEntityRecognizer)fix_random_seedc               C   s   t tdd idS )Nc             S   s   | S )N )sr   r   P/home/dcms/DCMS/lib/python3.7/site-packages/spacy/tests/parser/test_add_label.py<lambda>       zvocab.<locals>.<lambda>)Zlex_attr_getters)r   r   r   r   r   r   vocab   s    r   c             C   s   t | }|S )N)r	   )r   parserr   r   r   r      s    r   c             C   s   d S )Nr   )r   r   r   r   test_init_parser   s    r   c             C   s   t d | d | jg f| j tt d}x^tdD ]R}i }t| jddddgd	}t	|ddd
d
gddddgd}| j
|g|g||d q8W | S )N   leftgMbP?   abcd)words   ROOT)headsdeps)sgdlosses)r   	add_labelbegin_trainingcfgr   r   ranger   r   r   update)r   r    ir!   docgoldr   r   r   _train_parser   s    
r*   c             C   s   t | } | d tt d}x^tdD ]R}i }t| jddddgd}t|d	d	d
d
gddddgd}| j|g|g||d q(W t| jddddgd}| |}|d j	dkst
|d j	dkst
d S )NrightgMbP?
   r   r   r   r   )r   r   r   r   r   )r   r   )r    r!   r      )r*   r"   r   r   r%   r   r   r   r&   Zdep_AssertionError)r   r    r'   r!   r(   r)   r   r   r   test_add_label,   s    
r/   c              C   s   t t } | d | d | d | g  t t |  }| jj|jjksZtx0t	| jjD ] }| j
||j
|kshtqhW d S )NCBA)r
   r   r"   r#   
from_bytesto_bytesmovesn_movesr.   r%   Zget_class_name)Zner1Zner2r'   r   r   r   %test_add_label_deserializes_correctly=   s    




r7   zpipe_cls,n_movesr      c             C   sd   dddg}| t  }x|D ]}|| qW t|jt|| ksFttt|j}||ks`tdS )zTest that added labels are returned correctly. This test was added to
    test for a bug in DependencyParser.labels that'd cause it to fail when
    splitting the move names.
    r2   r1   r0   N)r   r"   lenZ
move_namesr.   sortedlistlabels)Zpipe_clsr6   r<   pipelabelZpipe_labelsr   r   r   test_add_label_get_labelI   s    


r?   )
__future__r   ZpytestZthinc.neural.optimizersr   Zthinc.neural.opsr   Zspacy.attrsr   Z
spacy.goldr   Zspacy.vocabr   Zspacy.tokensr   Zspacy.pipeliner	   r
   Z
spacy.utilr   Zfixturer   r   r   r*   r/   r7   markZparametrizer?   r   r   r   r   <module>   s"   