U
    ,‰d
  ã                   @   s¢   d Z ddlZddlmZ ddlmZmZ ddlmZ ddl	m
Z
 eƒ Zde_eƒ Zde_eƒ ZG dd	„ d	eƒZd
d„ Zdd„ ZG dd„ de
ƒZedkrže ¡  dS )z'
Test generic manipulation of objects.
é    N)Únjit)Úcompile_isolatedÚFlags)Útypes)ÚTestCaseTc                   @   s   e Zd ZdS )ÚCN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú</tmp/pip-unpacked-wheel-eu7e0c37/numba/tests/test_objects.pyr      s   r   c                 C   s
   || _ d S ©N©Úx)ÚoÚvr   r   r   Úsetattr_usecase   s    r   c                 C   s   | ` d S r   r   )r   r   r   r   Údelattr_usecase   s    r   c                   @   s<   e Zd Zefdd„Zefdd„Zefdd„Zefdd„Zd	S )
ÚTestAttributesc                 C   sB   t }t|tjtjf|d}|j}tƒ }||dƒ |  |jd¡ d S ©N©Úflagsé{   )	r   r   r   ÚpyobjectÚint32Úentry_pointr   ÚassertEqualr   ©Úselfr   ÚpyfuncÚcrÚcfuncÚcr   r   r   Útest_setattr!   s    
zTestAttributes.test_setattrc              	   C   sF   t }t|tjtjf|d}|j}|  t¡ |tƒ dƒ W 5 Q R X d S r   )	r   r   r   r   r   r   ÚassertRaisesÚAttributeErrorÚobject©r   r   r   r    r!   r   r   r   Útest_setattr_attribute_error)   s
    z+TestAttributes.test_setattr_attribute_errorc              	   C   sP   t }t|tjf|d}|j}tƒ }d|_||ƒ |  t¡ |j W 5 Q R X d S r   )	r   r   r   r   r   r   r   r$   r%   r   r   r   r   Útest_delattr1   s    zTestAttributes.test_delattrc              	   C   s@   t }t|tjf|d}|j}|  t¡ |tƒ ƒ W 5 Q R X d S )Nr   )r   r   r   r   r   r$   r%   r   r'   r   r   r   Útest_delattr_attribute_error;   s
    z+TestAttributes.test_delattr_attribute_errorN)r   r	   r
   Úenable_pyobj_flagsr#   r(   r)   r*   r   r   r   r   r       s   
r   Ú__main__)Ú__doc__ZunittestZnumbar   Znumba.core.compilerr   r   Z
numba.corer   Znumba.tests.supportr   r+   Zenable_pyobjectZforce_pyobj_flagsZforce_pyobjectZno_pyobj_flagsr&   r   r   r   r   r   Úmainr   r   r   r   Ú<module>   s    $