o
    8ήc                     @   sH   d dl 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)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   P/tmp/pip-target-vg8gfxp4/lib/python/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lenr/   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   r/   r   r   r   r   l   r1   c                  S   s4   ddh} |    |    t| dksJ | rdS dS r2   r3   r/   r   r   r   r   x   r6   r   r7   r*   r   r   r   test_reflected_set^   r9   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   sl  t dd }td}| |||| | ||d td}| |||| | ||d tdggg}| |||| | ||d tdggg}| |||| | ||d td}| |||| | ||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.   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<   assertRaises
ValueErrorassertInr   	exception)r"   r   r+   raisesmsgr   r   r   test_arrays   s.   




z&TestConditionsAsPredicates.test_arraysN)	__name__
__module____qualname__r'   r,   r8   r:   r=   rE   r   r   r   r   r      s    ((r   )numba.tests.supportr   numbar   r   numba.typedr   r   numpyr   r   r   r   r   r   <module>   s
    