
    iR                         S SK JrJr  S SKJr  S SKrS SKJr  S SKJ	r	  S SK
JrJr  S SKJr  S SKJrJr   " S	 S
\R$                  5      r " S S\R$                  5      r\S:X  a  \R,                  " 5         gg)    )productpermutations)defaultdictN)OverloadSelector)
cpu_target)builtin_registryRegistryLoader)types)NumbaNotImplementedErrorNumbaTypeErrorc                   8    \ rS rSrS rS rS rS rS rS r	Sr
g	)
TestOverloadSelector   c                 V   [        5       nUR                  S[        R                  [        R                  45        UR                  S[        R                  [        R
                  45        UR                  S[        R                  [        R                  45        UR                  S[        R                  [        R                  45        UR                  [        R                  [        R                  45      nU R                  [        U5      S5        UR                  U5      u  p4U R                  [        U5      S5        U R                  [        U5      S5        U R                  US   [        R                  [        R                  45        U R                  U[        R                  [        R                  4   S5        U R                  U[        R                  [        R                  4   S5        U R                  U[        R                  [        R                  4   S5        g N            r   )r   appendr
   AnyBooleanInteger_select_compatiblebooleanassertEquallen_sort_signaturesselfoscompatsorderedscorings        c/var/www/html/trading/venv/lib/python3.13/site-packages/numba/tests/test_target_overloadselector.pytest_select_and_sort_1+TestOverloadSelector.test_select_and_sort_1   si   
		!eii/0
		!emmU]]34
		!emmUYY/0
		!emmU]]34''(FGWq)..w7Wq)Wq)emmU]]%CD!=>B		!9:A>EMM!9:A>    c                    [        5       nUR                  S[        R                  45        UR                  S[        R                  45        UR                  S[        R
                  45        UR                  S[        R                  45        UR                  [        R                  45      nU R                  [        U5      S5        UR                  U5      u  p4U R                  [        U5      S5        U R                  [        U5      S5        U R                  US   [        R                  45        U R                  U[        R                  4   S5        U R                  U[        R
                  4   S5        U R                  U[        R                  4   S5        U R                  U[        R                  4   S5        g r   )r   r   r
   	ContainerSequenceMutableSequenceListr   r   r   r   r   s        r%   test_select_and_sort_2+TestOverloadSelector.test_select_and_sort_2   sO   
		!eoo'(
		!enn&'
		!e++-.
		!ejj]#''6Wq)..w7Wq)Wq)ejj]3%**/3%"7"7!9:A>%..!23Q7%//!34a8r(   c                    [        5       nU R                  UR                  [        R                  [        R
                  S95        U R                  UR                  [        R                  [        R                  S95        U R                  [        [        R                  [        R                  5      5        U R                  UR                  [        R                  [        R                  S95        U R                  UR                  [        R                  [        R                  S95        U R                  UR                  [        R                  [        R                  S95        U R                  UR                  [        R                  [        R                  S95        U R                  UR                  [        R                  [        R                  S95        g )N)formalactual)r   
assertTrue_matchr
   r   r   
issubclassr+   r*   assertFalser   r    r!   s     r%   
test_matchTestOverloadSelector.test_match.   s"   		u}}	MN		u}}	MN
5>>5??CD		). " 9 	:%..*/// # ; 	< 			599	EF		5??	KL%//%))LMr(   c                    [        5       nUR                  S[        R                  [        R                  45        UR                  S[        R
                  [        R                  45        U R                  UR                  [        R                  [        R                  45      S5        U R                  [        5       nUR                  [        R                  [        R                  45        S S S 5        UR                  S[        R                  [        R                  45        U R                  UR                  [        R                  [        R                  45      S5        U R                  UR                  [        R                  [        R                  45      S5        UR                  S[        R                  [        R                  45        U R                  [        5       nUR                  [        R                  [        R                  45        S S S 5        U R                  S[        WR                  5      5        UR                  S[        R                  [        R                  45        U R                  UR                  [        R                  [        R                  45      S5        g ! , (       d  f       GN= f! , (       d  f       N= f)Nr   r   r   r   z2 ambiguous signatures   )r   r   r
   r   r   r   r   findr   assertRaisesr   int32r   assertInstr	exception)r    r!   raisess      r%   test_ambiguous_detection-TestOverloadSelector.test_ambiguous_detection=   s   
		!eii/0
		!emmU]]34%--!?@!D78FGGU]]EKK01 9 			!eii+,%--!=>B%--!?@!D
		!emmUYY/0~.&GGU]]EMM23 /.F4D4D0EF
		!emmU]]34%--!?@!D 98 /.s   ?0J7*0K	7
K	
Kc                    [        5       nU R                  [        [        R                  [        R
                  5      5        UR                  S[        R
                  [        R
                  45        [        R                  " [        R                  5      nU R                  UR                  X"45      S5        UR                  S[        R
                  [        R                  45        U R                  UR                  X"45      S5        g )Nr   r   )r   r3   r5   r
   r+   r*   r   r-   r   r   r<   )r    r!   lsttys      r%   test_subclass_specialization1TestOverloadSelector.test_subclass_specializationS   s    
5>>5??CD
		!eoou89

5==)%0!4
		!eoou~~78%0!4r(   c                    [        5       nU R                  [        UR                  5      S5        UR	                  S[
        R                  45        U R                  UR                  [
        R                  45      S5        U R                  [        UR                  5      S5        UR	                  S[
        R                  45        U R                  [        UR                  5      S5        U R                  UR                  [
        R                  45      S5        U R                  [        UR                  5      S5        g )Nr   r   r   )
r   r   r   _cacher   r
   r   r<   r>   r   r7   s     r%   
test_cacheTestOverloadSelector.test_cache\   s    RYY+
		!eii\"%++0!4RYY+
		!emm%&RYY+%++0!4RYY+r(    N)__name__
__module____qualname____firstlineno__r&   r.   r8   rC   rG   rK   __static_attributes__rM   r(   r%   r   r      s"    ? 9"NE,5	,r(   r   c                   6    \ rS rSr\S 5       rS rS rS rSr	g)TestAmbiguousOverloadsh   c                 @    [         R                  R                  5         g N)r   target_contextrefresh)clss    r%   
setUpClass!TestAmbiguousOverloads.setUpClassj   s     	!!))+r(   c                     [        5       n[        [        5      nUR                  U5       H  u  pEUR	                  XE5        M     U$ rW   )r   r	   r   new_registrationsr   )r    kindr!   loaderimplsigs         r%   create_overload_selector/TestAmbiguousOverloads.create_overload_selectoro   s=     0111$7IDIId  8	r(   c                     U R                  SS9n[        S UR                   5       5      n[        USS9 H  n UR	                  U5        M     g ! [
         a     M'  f = f)Ncasts)r_   c              3   <   #    U  H  u  pU  H  o3v   M     M     g 7frW   rM   .0rb   ra   ts       r%   	<genexpr>>TestAmbiguousOverloads.test_ambiguous_casts.<locals>.<genexpr>x   s     D;ic1;   r   )r)rc   setversionsr   r<   r   )r    r!   	all_typesrb   s       r%   test_ambiguous_casts+TestAmbiguousOverloads.test_ambiguous_castsv   s`    ***8D2;;DD	  	Q/C 0 , s   A
AAc                 t   [        [        5      n[        [        5      nUR	                  S5       H  u  p4nX$   nUR                  X55        M     UR                  5        HE  u  pF[        S UR                   5       5      n[        Xw5       H  n UR                  U5        M     MG     g ! [         a     M+  f = f)N	functionsc              3   <   #    U  H  u  pU  H  o3v   M     M     g 7frW   rM   rh   s       r%   rk   BTestAmbiguousOverloads.test_ambiguous_functions.<locals>.<genexpr>   s     H{)#CqACA{rm   )r	   r   r   r   r^   r   itemsro   rp   r   r<   r   )r    r`   	selectorsra   fnrb   r!   rq   s           r%   test_ambiguous_functions/TestAmbiguousOverloads.test_ambiguous_functions   s     01 01	#55kBMDcBIId  C  oo'FBHr{{HHIy4GGCL 5 ( 0 s   B))
B76B7rM   N)
rN   rO   rP   rQ   classmethodr[   rc   rr   r{   rR   rM   r(   r%   rT   rT   h   s#    , ,	r(   rT   __main__)	itertoolsr   r   collectionsr   unittestnumba.core.baser   numba.core.registryr   numba.core.imputilsr   r	   
numba.corer
   numba.core.errorsr   r   TestCaser   rT   rN   mainrM   r(   r%   <module>r      s]    + #  , * @  FY,8,, Y,x'X.. 'V zMMO r(   