B
      ›\B  ã               @   sº   d Z ddlmZ ddlmZ ddlmZmZ ddl	m
Z
 ddlmZ ddlmZ eƒ Ze d	¡ eƒ Ze d
¡ 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.
é    )Úprint_functionN)Úcompile_isolatedÚFlags)Ú	PYVERSION)Útypesé   )ÚTestCaseZenable_pyobjectZforce_pyobjectc               @   s   e Zd ZdS )ÚCN)Ú__name__Ú
__module__Ú__qualname__© r   r   ú7lib/python3.7/site-packages/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 )N)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	   Z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 d Q R X d S )N)r   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 d Q R X d S )N)r   r   )	r   r   r   r   r   r	   r   r    r!   )r   r   r   r   r   r   r   r   r   Útest_delattr4   s    zTestAttributes.test_delattrc          	   C   s@   t }t|tjf|d}|j}|  t¡ |tƒ ƒ W d Q R X d S )N)r   )r   r   r   r   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
__future__r   Znumba.unittest_supportZunittest_supportZunittestZnumba.compilerr   r   Znumba.utilsr   Znumbar   Zsupportr   r&   ÚsetZforce_pyobj_flagsZno_pyobj_flagsr"   r	   r   r   r   r
   Úmainr   r   r   r   Ú<module>   s"   

%