U
    ‰d  ã                   @   sp   d dl Z d dlZd dlmZ d dlmZ d dlmZm	Z	 e  
e	jj d¡G dd„ de jƒƒZedkrle  ¡  dS )	é    N)Úrandint)Ú
caffe2_pb2)ÚcoreÚ	workspacezNo MKLDNN support.c                   @   s<   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ ZdS )ÚCopyTestc                 C   s   t jt jdS )N)Zdevice_type)r   ZDeviceOptionZIDEEP)Úself© r   úD/tmp/pip-unpacked-wheel-ua33x9lu/caffe2/python/ideep/copy_op_test.pyÚ_get_deep_device   s    zCopyTest._get_deep_devicec                 C   s–   t  ddgdg¡}|j |  ¡ ¡ tddƒ}tddƒ}tddƒ}tddƒ}tj ||||¡ 	tj
¡}t d|¡ t |¡ t d¡}tj ||¡ d S )NÚCopyCPUToIDEEPÚXÚX_ideepé   é€   é@   ©r   ZCreateOperatorZdevice_optionZCopyFromr
   r   ÚnpÚrandomZrandZastypeZfloat32r   ZFeedBlobZRunOperatorOnceZ	FetchBlobZtestingZassert_allclose©r   ÚopÚnÚcÚhÚwr   r   r   r   r	   Útest_copy_to_ideep   s    ý





zCopyTest.test_copy_to_ideepc                 C   sx   t  ddgdg¡}|j |  ¡ ¡ d}tddƒ}tj ||¡ 	tj
¡}t d|¡ t |¡ t d¡}tj ||¡ d S )Nr   r   r   r   r   r   r   ©r   r   r   r   r   r   r   r   r	   Útest_copy_to_ideep_zero_dim#   s    ý


z$CopyTest.test_copy_to_ideep_zero_dimc                 C   sœ   t  ddgdg¡}|j |  ¡ ¡ tddƒ}tddƒ}tddƒ}tddƒ}tj ||||¡ 	tj
¡}t d||  ¡ ¡ t |¡ t d¡}tj ||¡ d S ©NÚCopyIDEEPToCPUr   r   r   r   r   r   r   r   r   r	   Útest_copy_from_ideep2   s    ý





zCopyTest.test_copy_from_ideepc                 C   s~   t  ddgdg¡}|j |  ¡ ¡ d}tddƒ}tj ||¡ 	tj
¡}t d||  ¡ ¡ t |¡ t d¡}tj ||¡ d S )Nr   r   r   r   r   r   r   r   r   r   r	   Útest_copy_from_ideep_zero_dimC   s    ý


z&CopyTest.test_copy_from_ideep_zero_dimc                 C   s–   t  ddgdg¡}|j |  ¡ ¡ tddƒ}tddƒ}tddƒ}tddƒ}tj ||||¡ 	tj
¡}t d|¡ t |¡ t d¡}tj ||¡ d S r   r   r   r   r   r	   Ú test_copy_from_ideep_fallthroughR   s    ý





z)CopyTest.test_copy_from_ideep_fallthroughN)	Ú__name__Ú
__module__Ú__qualname__r
   r   r   r   r    r!   r   r   r   r	   r      s   r   Ú__main__)ZunittestZnumpyr   r   r   Zcaffe2.protor   Zcaffe2.pythonr   r   ZskipIfÚCZ
use_mkldnnZTestCaser   r"   Úmainr   r   r   r	   Ú<module>   s   T