
    rh                     R    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e      Zy)    )TestCasenumpy_support)njittypes)ListDictNc                   0    e Zd Zd Zd Zd Zd Zd Zd Zy)TestConditionsAsPredicatesc                 8   t         j                  t         j                  t         j                  t         j                  t         j
                  t         j                  t        t        t        t        t        g}|D ]j  }dD ]c  } ||      t        fd       }| j                   |       |j                                | j                   |       |dk(  s|t        u rdnd       e l t        d        }d}| j                   ||      |j                  |             y )N)   r   c                       ryyN
       xs   c/var/www/html/engine/venv/lib/python3.12/site-packages/numba/tests/test_conditions_as_predicates.pyfooz4TestConditionsAsPredicates.test_scalars.<locals>.foo   s    !!    r   r   r   c                 
    | ryyr   r   r   s    r   r   z4TestConditionsAsPredicates.test_scalars.<locals>.foo       r    )npint8uint16int64float32float64
complex128intfloatcomplexstrboolr   assertEqualpy_func)selfdtsdtcr   sr   s         @r   test_scalarsz'TestConditionsAsPredicates.test_scalars	   s    ww		288RZZ}}c5'3> 	KB 
KqE" "
   6  a1fc	rJ
K	K 
	 
	
 QQ0r   c                    t         d        }t        j                  t        j                        }| j                   ||      |j                  |             | j                  |j                  |      d       |j                  d       | j                   ||      |j                  |             | j                  |j                  |      d       y )Nc                 
    | ryyr   r   r   s    r   r   z7TestConditionsAsPredicates.test_typed_list.<locals>.foo%   r   r   r   r   r   )r   r   
empty_listr   r   r&   r'   appendr(   r   zs      r   test_typed_listz*TestConditionsAsPredicates.test_typed_list$   s    		 
	 OOEKK(QQ0Q, 	
QQ0Q,r   c                    t         d        }dg}| j                   ||      |j                  |             | j                  |j                  |      d       t         d        }| j                   |       |j                                | j                  |j                         d       t         d        }| j                   |       |j                                | j                  |j                         d       y )Nc                 
    | ryyr   r   r   s    r   r   z;TestConditionsAsPredicates.test_reflected_list.<locals>.foo8   r   r   r   r   c                      ddg} | ryyNr      r   r   r   ys    r   r   z;TestConditionsAsPredicates.test_reflected_list.<locals>.fooD       AAr   c                  r    ddg} | j                          | j                          t        |       dk(  sJ | ryyNr   r9   r   r   r   poplenr:   s    r   r   z;TestConditionsAsPredicates.test_reflected_list.<locals>.fooP   6    AAEEGEEGq6Q;;r   r   r   r&   r'   r2   s      r   test_reflected_listz.TestConditionsAsPredicates.test_reflected_list6       		 
	 CQQ0Q, 
	 
	 	.+ 
	 
	 	.+r   c                    t         d        }dh}| j                   ||      |j                  |             | j                  |j                  |      d       t         d        }| j                   |       |j                                | j                  |j                         d       t         d        }| j                   |       |j                                | j                  |j                         d       y )Nc                 
    | ryyr   r   r   s    r   r   z:TestConditionsAsPredicates.test_reflected_set.<locals>.foo`   r   r   r   r   c                      ddh} | ryyr8   r   r:   s    r   r   z:TestConditionsAsPredicates.test_reflected_set.<locals>.fool   r<   r   c                  r    ddh} | j                          | j                          t        |       dk(  sJ | ryyr>   r?   r:   s    r   r   z:TestConditionsAsPredicates.test_reflected_set.<locals>.foox   rB   r   r   rC   r2   s      r   test_reflected_setz-TestConditionsAsPredicates.test_reflected_set^   rE   r   c                    t         d        }t        j                  t        j                  t        j                        }| j                   ||      |j                  |             | j                  |j                  |      d       d|d<   | j                   ||      |j                  |             | j                  |j                  |      d       y )Nc                 
    | ryyr   r   r   s    r   r   z7TestConditionsAsPredicates.test_typed_dict.<locals>.foo   r   r   r      r9   r   )r   r   emptyr   r   r&   r'   r2   s      r   test_typed_dictz*TestConditionsAsPredicates.test_typed_dict   s    		 
	 JJu{{EKK0QQ0Q, !QQ0Q,r   c                    t         d        }t        j                  d      }| j                   ||      |j	                  |             | j                  |j	                  |      d       t        j                  d      }| j                   ||      |j	                  |             | j                  |j	                  |      d       t        j                  dggg      }| j                   ||      |j	                  |             | j                  |j	                  |      d       t        j                  dggg      }| j                   ||      |j	                  |             | j                  |j	                  |      d       t        j
                  d      }t        j                  dk\  rN| j                  t              5 } ||       d d d        d}| j                  |t        j                               nH| j                   ||      |j	                  |             | j                  |j	                  |      d       t        j                  ddg      }| j                  t              5 } ||       d d d        d	}| j                  |t        j                               y # 1 sw Y   xY w# 1 sw Y   =xY w)
Nc                 
    | ryyr   r   r   s    r   r   z3TestConditionsAsPredicates.test_arrays.<locals>.foo   r   r   r   r   r   r   )r9   r9   ziThe truth value of an empty array is ambiguous. Use `array.size > 0` to check that an array is not empty.r9   z[The truth value of an array with more than one element is ambiguous. Use a.any() or a.all())r   r   arrayr&   r'   rN   r   numpy_versionassertRaises
ValueErrorassertInr$   	exception)r(   r   r3   raisesmsgs        r   test_arraysz&TestConditionsAsPredicates.test_arrays   s*   		 
	 HHQKQQ0Q, HHQKQQ0Q,HHseWQQ0Q, HHseWQQ0Q,
 HHQK&&&0"":. &APCMM#s6#3#345SVS[[^4S[[^R0 HHaVz* 	fF	6c3v//01! 	 	s   	J*1	J6*J36J?N)	__name__
__module____qualname__r-   r4   rD   rJ   rO   rZ   r   r   r   r
   r
      s"    16-$&,P&,P-$02r   r
   )numba.tests.supportr   r   numbar   r   numba.typedr   r   numpyr   r
   r   r   r   <module>rb      s    7  " A2 A2r   