o
    ۾i                     @   sL   d dl mZmZ d dlmZmZ d dlmZmZ d dl	Z
G dd deZdS )    )TestCasenumpy_support)njittypes)ListDictNc                   @   s<   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd ZdS )TestConditionsAsPredicatesc                    s   t jt jt jt jt jt jttt	t
tg}|D ]-}dD ](}|| t fdd}| | |  | | |dks<|t
u r>dnd qqtdd }d}| |||| d S )	N)   r   c                      s    rdS dS N
       r   xr   ]/home/ubuntu/.local/lib/python3.10/site-packages/numba/tests/test_conditions_as_predicates.pyfoo      z4TestConditionsAsPredicates.test_scalars.<locals>.foor	   r   r   c                 S      | rdS dS r
   r   r   r   r   r   r      r    )npint8uint16int64float32float64
complex128intfloatcomplexstrboolr   assertEqualpy_func)selfdtsdtcr   sr   r   r   test_scalars	   s   $
z'TestConditionsAsPredicates.test_scalarsc                 C   sv   t dd }ttj}| |||| | ||d |d | |||| | ||d d S )Nc                 S   r   r
   r   r   r   r   r   r   %   r   z7TestConditionsAsPredicates.test_typed_list.<locals>.foor   r	   r   )r   r   
empty_listr   r   r!   r"   appendr#   r   zr   r   r   test_typed_list$   s   

z*TestConditionsAsPredicates.test_typed_listc                 C   s   t dd }dg}| |||| | ||d t dd }| | |  | | d t dd }| | |  | | d d S )Nc                 S   r   r
   r   r   r   r   r   r   8   r   z;TestConditionsAsPredicates.test_reflected_list.<locals>.foor	   r   c                  S   s   ddg} | rdS dS Nr	      r   r   r   yr   r   r   r   D      c                  S   s4   ddg} |    |    t| dksJ | rdS dS Nr	   r/   r   r   r   poplenr0   r   r   r   r   P      r   r   r!   r"   r+   r   r   r   test_reflected_list6      



z.TestConditionsAsPredicates.test_reflected_listc                 C   s   t dd }dh}| |||| | ||d t dd }| | |  | | d t dd }| | |  | | d d S )Nc                 S   r   r
   r   r   r   r   r   r   `   r   z:TestConditionsAsPredicates.test_reflected_set.<locals>.foor	   r   c                  S   s   ddh} | rdS dS r.   r   r0   r   r   r   r   l   r2   c                  S   s4   ddh} |    |    t| dksJ | rdS dS r3   r4   r0   r   r   r   r   x   r7   r   r8   r+   r   r   r   test_reflected_set^   r:   z-TestConditionsAsPredicates.test_reflected_setc                 C   sx   t dd }ttjtj}| |||| | ||d d|d< | |||| | ||d d S )Nc                 S   r   r
   r   r   r   r   r   r      r   z7TestConditionsAsPredicates.test_typed_dict.<locals>.foor      r/   r   )r   r   emptyr   r   r!   r"   r+   r   r   r   test_typed_dict   s   
z*TestConditionsAsPredicates.test_typed_dictc                 C   s  t dd }td}| |||| | ||d td}| |||| | ||d tdggg}| |||| | ||d tdggg}| |||| | ||d td}tjdkr| t	}|| W d    n1 sw   Y  d}| 
|t|j n| |||| | ||d tdd	g}| t	}|| W d    n1 sw   Y  d
}| 
|t|j d S )Nc                 S   r   r
   r   r   r   r   r   r      r   z3TestConditionsAsPredicates.test_arrays.<locals>.foor	   r   r   r   )r/   r/   ziThe truth value of an empty array is ambiguous. Use `array.size > 0` to check that an array is not empty.r/   z[The truth value of an array with more than one element is ambiguous. Use a.any() or a.all())r   r   arrayr!   r"   r=   r   numpy_versionassertRaises
ValueErrorassertInr   	exception)r#   r   r,   raisesmsgr   r   r   test_arrays   s:   






z&TestConditionsAsPredicates.test_arraysN)	__name__
__module____qualname__r(   r-   r9   r;   r>   rG   r   r   r   r   r      s    ((r   )numba.tests.supportr   r   numbar   r   numba.typedr   r   numpyr   r   r   r   r   r   <module>   s
    