a
    ==icî	  ã                   @   s¤   d dl mZmZmZmZmZ 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 d dlmZ d d	lmZ d d
lZd d
lZG dd„ deƒZd
S )é    )ÚStructÚFetchRecordÚ	NewRecordÚ
FeedRecordÚInitEmptyRecord)ÚcoreÚ	workspace)ÚLocalSession)ÚDataset)Úpipe)ÚQueue)Ú	TaskGroup)ÚTestCase)ÚopsNc                   @   s   e Zd Zdd„ ZdS )ÚTestPipelinec                    sÞ  t  d¡}d}d}tdt t|ƒ¡fddt t|ƒ¡ fƒ}tddt t|ƒ¡ fdt |dg ¡fƒ}t  d¡< t||ƒ}t|| 	¡ ƒ}| 
d	¡‰| 
d
¡‰ W d   ƒ n1 s´0    Y  dd„ }‡ ‡fdd„}	t|ƒ}
t|ƒ}tƒ D}t|
 ¡ td|d|d}t||	d}t|| ¡ ƒ W d   ƒ n1 s60    Y  tj ¡ }t|||ƒ t|ƒ}| |¡ | |¡ t||d}|jtˆƒ  ¡ }|  |tt t|ƒ| ¡ƒ¡ t | !¡ | !¡ ƒD ]\}}tj" #||¡ qÀd S )NÚinité   é   ÚuidÚvaluegš™™™™™¹?é   g        r   é   c                 S   sj   t  d¡ tt| ƒ}W d   ƒ n1 s*0    Y  t |  ¡ |  ¡ g| ¡ g¡ |jj|  ¡ dd |S )NÚproc1T©ZblobÚunsafe)r   Ú	NameScoper   r   ÚAddr   r   Úset©ZrecÚout© r    úl/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/pipeline_test.pyr   &   s
    (z-TestPipeline.test_dequeue_many.<locals>.proc1c                    s|   t  d¡ tt| ƒ}W d   ƒ n1 s*0    Y  |jj|  ¡ dd t |  ¡ |  ¡ g| ¡ g¡ t ˆˆ gˆg¡ |S )NÚproc2Tr   )	r   r   r   r   r   r   ÚSubr   r   r   ©ZONEÚcounterr    r!   r"   -   s    (z-TestPipeline.test_dequeue_many.<locals>.proc2é   )ÚcapacityZnum_dequeue_records)ÚoutputÚ	processor)r)   )Úws)$r   ZNetr   ÚnpÚarrayÚranger   r   r   Zclone_schemaZConstr
   r   r   Úreaderr   Úwriterr   ÚCZ	Workspacer   r	   Úrunr   ZblobsÚstrÚfetchZassertEqualsÚintÚmathÚceilÚfloatÚzipZfield_blobsÚtestingZassert_array_equal)ÚselfZinit_netÚNZNUM_DEQUEUE_RECORDSZ
src_valuesZexpected_dstZ	src_blobsZ	dst_blobsr   r"   Zsrc_dsZdst_dsÚtgZout1Zout2r*   Úsessionr(   Znum_dequeuesÚaÚbr    r$   r!   Útest_dequeue_many   sT    
þþ

(ÿü.


ÿzTestPipeline.test_dequeue_manyN)Ú__name__Ú
__module__Ú__qualname__r@   r    r    r    r!   r      s   r   )Zcaffe2.python.schemar   r   r   r   r   Zcaffe2.pythonr   r   Zcaffe2.python.sessionr	   Zcaffe2.python.datasetr
   Zcaffe2.python.pipeliner   Zcaffe2.python.queue_utilr   Zcaffe2.python.taskr   Zcaffe2.python.test_utilr   Zcaffe2.python.net_builderr   Únumpyr+   r5   r   r    r    r    r!   Ú<module>   s   