U
    d                     @   sl   d dl mZ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ZG dd deZdS )	    )	workspacecrf)CNNModelHelper)crf_update_predictions)TestCaseN)givensettingsc                   @   s:   e Zd Zeeddedddedddd Zd	S )
TestCrfDecode         )num_tags	num_wordsi  )deadlinec                 C   s   t dd}tj||tj}tjjdd|d |d fdtj}|jdd\}}t	
t|| t	
t|| t|||}t|||}	||}
t	|j t	|j t	t|	}	t	t|
}
tjj|	|
d	d	d
d d S )NZexternal)name   r
   )lowhighsizepredictionsZcrf_transitionsg-C6?zMismatch in CRF predictions)ZatolZrtolerr_msg)r   nprandomZrandnZastypeZfloat32uniformnetZAddExternalInputsr   ZFeedBlobstrr   ZCRFWithLossr   Zupdate_predictionsZ
RunNetOnceZparam_init_netZ	FetchBlobZtestingZassert_allclose)selfr   r   modelr   ZtransitionsZpredictions_blobZtransitions_blobZ	crf_layerZupdated_predictionsZref_predictions r   B/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/crf_viterbi_test.pytest_crf_viterbi   s>    
    
  zTestCrfDecode.test_crf_viterbiN)__name__
__module____qualname__r   stZintegersr   r!   r   r   r   r    r	      s   r	   )Zcaffe2.pythonr   r   Zcaffe2.python.cnnr   Zcaffe2.python.crf_predictr   Zcaffe2.python.test_utilr   Zhypothesis.strategiesZ
strategiesr%   Z
hypothesisr   r   Znumpyr   r	   r   r   r   r    <module>   s   