o
    8ήc
                     @   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rQe  dS 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-target-vg8gfxp4/lib/python/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   s\   t }t|tjtjf|d}|j}| t |t d W d    d S 1 s'w   Y  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   sf   t }t|tjf|d}|j}t }d|_|| | t |j W d    d S 1 s,w   Y  d S r   )	r   r   r   r   r   r   r   r$   r%   r   r   r   r   test_delattr1   s   "zTestAttributes.test_delattrc                 C   sV   t }t|tjf|d}|j}| t |t  W d    d S 1 s$w   Y  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__unittestnumbar   numba.core.compilerr   r   
numba.corer   numba.tests.supportr   r+   enable_pyobjectforce_pyobj_flagsforce_pyobjectno_pyobj_flagsr&   r   r   r   r   r   mainr   r   r   r   <module>   s$    $