a
    ==ic   ã                   @   sf   d dl mZmZ d dlmZ G dd„ dejƒZG dd„ dejƒZG dd„ deƒZ	G d	d
„ d
ej
ƒZdS )é    )ÚcontextÚ	test_util)ÚThreadc                   @   s   e Zd ZdS )Ú	MyContextN©Ú__name__Ú
__module__Ú__qualname__© r
   r
   úk/home/droni/.local/share/virtualenvs/DPS-5Je3_V2c/lib/python3.9/site-packages/caffe2/python/context_test.pyr   
   s   r   c                   @   s   e Zd ZdS )ÚDefaultMyContextNr   r
   r
   r
   r   r      s   r   c                   @   s   e Zd ZdS )ÚChildMyContextNr   r
   r
   r
   r   r      s   r   c                   @   sJ   e Zd Zdd„ Zdd„ Zeƒ dd„ ƒZdd„ Zd	d
„ Zdd„ Z	dd„ Z
dS )ÚTestContextc              
   C   sŽ   zXt dƒD ]J}tƒ 0}t dƒD ]}|  t ¡ |k¡ qW d   ƒ q
1 sJ0    Y  q
W n0 tyˆ } z| j |¡ W Y d }~n
d }~0 0 d S )Néd   )Úranger   Ú
assertTrueÚcurrentÚ	ExceptionÚ_exceptionsÚappend)ÚselfÚ_ÚaÚer
   r
   r   Úuse_my_context   s    8zTestContext.use_my_contextc                 C   s\   g }g | _ tdƒD ]"}t| jd}| ¡  | |¡ q|D ]}| ¡  q:| j D ]}|‚qNd S )Né   )Útarget)r   r   r   r   Ústartr   Újoin)r   Úthreadsr   ÚthreadÚtr   r
   r
   r   ÚtestMultiThreaded   s    

zTestContext.testMultiThreadedc                 C   s   |   t ¡ ¡ d S ©N)ZassertIsNotNoner   r   ©r   r
   r
   r   ÚtestDecorator*   s    zTestContext.testDecoratorc                 C   sb   |   t¡ t ¡  W d   ƒ n1 s(0    Y  tƒ }|  tj|d|¡ |  tjdd¡ d S )N)ÚvalueF)Úrequired)ÚassertRaisesÚAssertionErrorr   r   ÚassertEqualZassertIsNone©r   Úctxr
   r
   r   ÚtestNonDefaultCurrent.   s
    &z!TestContext.testNonDefaultCurrentc                 C   s   |   t ¡ t¡ d S r#   )ZassertIsInstancer   r   r$   r
   r
   r   ÚtestDefaultCurrent7   s    zTestContext.testDefaultCurrentc              	   C   sp   t ƒ V}tƒ 0}|  t ¡ |¡ |  t  ¡ |¡ W d   ƒ n1 sD0    Y  W d   ƒ n1 sb0    Y  d S r#   )r   r   r*   r   )r   Zctx1Zctx2r
   r
   r   ÚtestNestedContexts:   s    zTestContext.testNestedContextsc                 C   sJ   t ƒ 0}|  t  ¡ |¡ |  t ¡ |¡ W d   ƒ n1 s<0    Y  d S r#   )r   r*   r   r   r+   r
   r
   r   ÚtestChildClasses@   s    zTestContext.testChildClassesN)r   r   r	   r   r"   r   r%   r-   r.   r/   r0   r
   r
   r
   r   r      s   	
	r   N)Zcaffe2.pythonr   r   Ú	threadingr   ZManagedr   ZDefaultManagedr   r   ZTestCaser   r
   r
   r
   r   Ú<module>   s
   