U
    ‰d  ã                   @   sP   d dl mZmZ d dlmZ d dlZd dlZG dd„ deƒZe	dkrLe 
¡  dS )é    )ÚcoreÚ	workspace)ÚTestCaseNc                   @   s   e Zd Zdd„ Zdd„ ZdS )ÚDoOpTestc              	   C   sx   dd„ }|ƒ }t  ¡  t  dt ddg¡¡ t  dt ddg¡¡ t  |¡ t  d	¡}|  t |t dd
g¡k¡¡ d S )Nc                  S   sb   t  d¡} |  ddgd¡ t  d¡}| g d¡ |jdddgd	dg|  ¡ dddgd
ddgd |S )NÚsubnetÚXÚYÚZÚnetÚWÚouter_XÚouter_YÚouter_Zr   é   é   ©r
   Úinner_blobsÚouter_blobs_idx)r   ÚNetÚAddÚCreateScopeÚDoÚProto)r   r
   © r   úA/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/test/do_op_test.pyÚmake_net   s    

ûz(DoOpTest.test_operator.<locals>.make_netr   r   r   r   é   é   r   é   )	r   ÚResetWorkspaceZFeedBlobÚnpÚasarrayÚ
RunNetOnceÚ	FetchBlobÚ
assertTrueÚall©Úselfr   r
   Zouter_Z_valr   r   r   Útest_operator   s    

zDoOpTest.test_operatorc                 C   sJ   dd„ }|ƒ }t  ¡  t  |¡ t  d¡}|  t |t dg¡k¡¡ d S )Nc                  S   s    t  d¡} | jg ddgdd | jg ddgdd t  d¡}| ddgd¡ t  d	¡}| g d
¡ |jd
d
|  ¡ g g d |jd
dd
g| ¡ dgdgdd |S )NÚparam_init_subnetr   r   )ÚshapeÚvaluer   r   r   r	   r
   r   r   r   r   T)r
   r   r   Zreuse_workspace)r   r   ZConstantFillr   r   r   r   )r)   r   r
   r   r   r   r   )   s.    


 ü ûz/DoOpTest.test_reuse_workspace.<locals>.make_netr   r   )r   r   r"   r#   r$   r    r%   r!   r&   r   r   r   Útest_reuse_workspace(   s    

zDoOpTest.test_reuse_workspaceN)Ú__name__Ú
__module__Ú__qualname__r(   r,   r   r   r   r   r      s   r   Ú__main__)Zcaffe2.pythonr   r   Zcaffe2.python.test_utilr   Znumpyr    Zunittestr   r-   Úmainr   r   r   r   Ú<module>   s   A