
    "
3j;7                         S SK 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
7  S SKrSrSr\" S	5      r\" S
5      r " S S\5      r " S S\5      r\S:X  a  \R(                  " 5         gg)    N)jit)utils)TestCaseforbid_codegen   )*g      <g      >infnanc                      \ rS rSrSr\/r\R                  \R                  /r
\/\
-   r\R                  \R                  /r\/\-   r\\R&                  /rS rS rS rS rS rS rS	 rS
 rS rS rS rS r S r!S r"S r#S r$S r%S r&Sr'g)TestAssertPreciseEqual   z*
Tests for TestCase.assertPreciseEqual().
c                 R   ^ ^ UU 4S jnU" X5        U" X4X"45        U" X/X"/5        g )Nc                 R   > TR                   " X40 TD6  TR                   " X40 TD6  g N)assertPreciseEqualleftrightkwargsselfs     R/home/wildlama/miniconda3/lib/python3.13/site-packages/numba/tests/test_support.pyassert_succeed1TestAssertPreciseEqual.eq.<locals>.assert_succeed    s)    ##D:6:##E:6:     )r   r   r   r   r   s   `  ` r   eqTestAssertPreciseEqual.eq   s.    	; 	t#|e^4|e^4r   c                    ^ ^ UU 4S jnU" X5        U" X!5        U" X4X"45        U" X"4X45        U" X/X"/5        U" X"/X/5        g )Nc                    >  TR                   " X40 TD6  TR                  U < SU< S35        g ! [         a     g f = f)Nz and z unexpectedly considered equal)r   failAssertionErrorr   s     r   assert_fail.TestAssertPreciseEqual.ne.<locals>.assert_fail(   sC    U''>v> 		tUST " s   0 
==r   )r   r   r   r   r"   s   `  ` r   neTestAssertPreciseEqual.ne'   sS    	U 	D E TL5.1UNTL1TL5.1UNTL1r   c                 X   [         R                  " U R                  U R                  U R                  5       H`  u  pnU R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        Mb     [         R                  " U R                  U R                  5       H#  u  pEU R                  U" S5      U" S5      5        M%     [         R                  " U R                  U R                  5       H#  u  pEU R                  U" S5      U" S5      5        M%     [         R                  " U R                  U R                  5       HG  u  pEXEL a   U R                  U" S5      U" S5      5        M)  U R                  U" S5      U" S5      5        MI     [         R                  " U R                  U R                  5       HG  u  pEXEL a   U R                  U" S5      U" S5      5        M)  U R                  U" S5      U" S5      5        MI     g Nr   )
	itertoolsproduct	int_typesfloat_typescomplex_typesr$   r   
bool_typesnp_float_typesnp_complex_types)r   ifcuvs         r   
test_types!TestAssertPreciseEqual.test_types6   s    !((9I9I)-););=GA!GGAaD!A$GGAaD!A$GGAaD!A$	= %%dnndnnEDAGGAaD!A$ F %%dnndooFDAGGAaD!A$ G %%d&9&94;N;NODAv!ad#!ad#	 P %%d&;&;T=R=RSDAv!ad#!ad#	 Tr   c           
      6   U R                    H  nS H  nU R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" SS-  5      U" SSS-  -   5      US9  M     M     g )Nexactsingledoubler   precr      P   )r*   r   r$   r   tpr=   s      r   test_int_values&TestAssertPreciseEqual.test_int_valuesQ   s    ..B51r!u401r!u4021D11b5	2a2g;T:	 6 !r   c                     [         R                  " U R                  U R                  5       H_  u  pU R                  U" S5      U" S5      5        U R                  U" S5      U" S5      5        U R	                  U" S5      U" S5      5        Ma     g )NTF)r(   r)   r-   r   r$   )r   tpatpbs      r   test_bool_values'TestAssertPreciseEqual.test_bool_valuesY   sf    !))$//4??KHCGGCIs4y)GGCJE
+GGCIs5z* Lr   c                    U R                  [        5         U R                  [        R                  " S5      [        R                  " S5      SS9  S S S 5        U R                  [        5         U R                  [        R                  " S5      [        R                  " S5      [        S5      S9  S S S 5        g ! , (       d  f       No= f! , (       d  f       g = f)NFFg<invalid)abs_tolr   r?      )assertRaises
ValueErrorr   npfloat64int)r   s    r   test_abs_tol_parse)TestAssertPreciseEqual.test_abs_tol_parse_   s    z*GGBJJu%rzz%'8)GL +z*GGBJJqM2::a=#a&GA +* +***s   :B9-AC
9
C

Cc           	         U R                    GH  nS GH  nU R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      USS9  U R                  U" [        5      U" [        5      US9  U R                  U" [        5      U" S5      US9  U R                  U" [        * 5      U" [        * 5      US9  U R                  U" [        5      U" [        * 5      US9  U R                  U" [        5      U" [        5      US9  U R                  U" [        5      U" S	5      US9  U R                  U" [        5      U" [        5      US9  U R                  U" [        5      U" [        * 5      US9  GM     GM     g )
Nr8   g      ?r<                  T)r=   ignore_sign_on_zerog*Gr   )r+   r   r$   INFNANrA   s      r   test_float_values(TestAssertPreciseEqual.test_float_valuesf   sx   ""B53Ct43Ct44"T(63D53D$O3Ct43D5C4"cT(63SD53Ct43AT23Ct43SD5! 6 #r   c                     [         [        R                  4 H(  nU R                  U" S[        -   5      U" S5      5        M*     g N      ?)floatrQ   rR   r$   DBL_EPSILONr   rB   s     r   test_float64_values*TestAssertPreciseEqual.test_float64_valuesz   s1    "**%BGGBs[()2c73 &r   c                 n    [         R                  nU R                  U" S[        -   5      U" S5      5        g r_   )rQ   float32r$   FLT_EPSILONrc   s     r   test_float32_values*TestAssertPreciseEqual.test_float32_values~   s'    ZZ3$%r#w/r   c           	         [         [        R                  4 GH  nS GH>  nUS-  nUS[        -   -  nUS[        S-  -   -  nUS[        S-  -   -  nU R	                  U" U5      U" U5      5        U R	                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SSS	9  U R	                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SSS	9  U R	                  U" U5      U" U5      SSS	9  U R                  U" U5      U" U5      SS
S	9  U R                  U" U5      U" U5      SS
S	9  GMA     U R                  U" S5      U" S5      SSS9  U R	                  U" S5      U" S5      SSS9  U R                  U" S5      U" S5      SSS9  U R	                  U" S5      U" S5      SSS9  GM     g )Nr`   ig      ?g      r`   r?      r9   r<   r;   r   r=   ulps   gؗҜ<gMg<epsr=   rM   gؗҼ<rK   gC]r2<gq7K<)ra   rQ   rR   rb   r$   r   r   rB   scaleabr2   ds          r   test_float64_values_inexact2TestAssertPreciseEqual.test_float64_values_inexact   s   "**%B5CKS;./S;?23S;?231r!u%1r!u731r!u841r!u8!<1r!u841r!u8!<1r!u8!<1r!u8!<1r!u8!< 6 GGBuIr%yxGGGGBuIr%yxGGGGBuIr%yxGGGGBuIr%yxGG) &r   c                    [         R                  nS GH=  nUS-  nUS[        -   -  nUS[        S-  -   -  nUS[        S-  -   -  nU R                  U" U5      U" U5      5        U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R	                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R	                  U" U5      U" U5      SSS	9  U R                  U" U5      U" U5      SSS	9  U R	                  U" U5      U" U5      SS
S	9  U R	                  U" U5      U" U5      SS
S	9  GM@     U R	                  U" S5      U" S5      SSS9  U R                  U" S5      U" S5      SSS9  U R	                  U" S5      U" S5      SSS9  U R                  U" S5      U" S5      SSS9  g )Nrl   r`   r?   rm   r9   r<   r;   r:   rn   rp   gHz>gH׊>rq   rr   gv!>g:0yE>)rQ   rg   rh   r$   r   rs   s          r   test_float32_values_inexact2TestAssertPreciseEqual.test_float32_values_inexact   s   ZZ1E A{*+A{Q./A{Q./AGGBqE2a5!GGBqE2a5wG/GGBqE2a5xG0GGBqE2a5xG0GGBqE2a5xG0GGBqE2a5xaG8GGBqE2a5xaG8GGBqE2a5xaG8GGBqE2a5xaG8 2" 	4"T(5A4"T(5A4"T(4@4"T(4@r   c                 b   [        SS5      [        SS5      [        SS5      [        SS5      /u  pp4U R                   GH  nS GH  nU R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" S5      U" S5      US9  U R                  U" U5      U" U5      US9  U R                  U" U5      U" U5      US9  U R                  U" U5      U" U5      US9  U R                  U" U5      U" U5      US9  U R                  U" U5      U" U5      US9  U R                  U" [        [        [        5      5      U" [        [        [        5      5      US9  U R                  U" [        [        [        * 5      5      U" [        [        [        * 5      5      US9  U R                  U" [        [        * [        * 5      5      U" [        [        * [        * 5      5      US9  U R                  U" [        [        [        5      5      U" [        [        [        * 5      5      US9  U R                  U" [        [        [        5      5      U" [        [        * [        5      5      US9  U R                  U" [        [        S5      5      U" [        [        S5      5      US9  U R                  U" [        [
        S5      5      U" [        [
        S5      5      US9  U R                  U" [        S[
        5      5      U" [        S[
        5      5      US9  U R                  U" [        [
        [
        5      5      U" [        [
        [
        5      5      US9  U R                  U" [        [        [
        5      5      U" [        [        [
        5      5      US9  U R                  U" [        [
        [        * 5      5      U" [        [
        [        * 5      5      US9  GM     U R                  U" [        [        S5      5      U" [        [        S	5      5      S
S9  GM     g )NrW   rX   r8   y      ?       @r<   y      ?      ?y       @       @r   r   r9   )complexr,   r   r$   rZ   r[   )r   c_ppc_pnc_npc_nnrB   r=   s          r   test_complex_values*TestAssertPreciseEqual.test_complex_values   s'    #*#s"3WS$5G")$"4gdD6I"KD$$B56
BvJT:6
BvJT:6
BvJT:4"T(64"T(64"T(64"T(64"T(673,-r'#s2C/D4P73-.733E0FTR7C4#./GSD3$4G1HtT73,-r'#t2D/EDQ73,-r'3$2D/EDQ73?+RQ-@tL73?+RQ-@tL71c?+R3-@tL73,-r'#s2C/D4P73,-r'#s2C/D4P73-.733E0FTR- 6< GGBwsA'GCO)<7GK? %r   c           	         [         [        R                  4 GH  nS GH  nUS-  nUS[        -   -  nUS[        S-  -   -  nU" [        X35      5      nU" [        X45      5      nU" [        XD5      5      nU R	                  U" U5      U" U5      5        U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U" [        X55      5      n	U" [        XU5      5      n
U R	                  U" U5      U" U	5      SS9  U R	                  U" U	5      U" U
5      SS9  U R                  U" U5      U" U	5      SSS9  U R                  U" U	5      U" U
5      SSS9  U R                  U" U5      U" U
5      SSS9  U R                  U" U5      U" U
5      SS9  GM     GM     g )Nrl   r`   r?   r;   r<   rn   r:   )r~   rQ   
complex128rb   r$   r   r   rB   rt   ru   rv   r2   aaabbbacccs              r   test_complex128_values_inexact5TestAssertPreciseEqual.test_complex128_values_inexact   s   BMM*B5CKS;./S;?23&&&22'22X622X622X6&&22X622X622XA>22XA>22XA>22X6% 6 +r   c                 p   [         R                  nS GH  nUS-  nUS[        -   -  nUS[        S-  -   -  nU" [        X35      5      nU" [        X45      5      nU" [        XD5      5      nU R	                  U" U5      U" U5      5        U R	                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U R                  U" U5      U" U5      SS9  U" [        X55      5      n	U" [        XU5      5      n
U R	                  U" U5      U" U	5      SS9  U R	                  U" U	5      U" U
5      SS9  U R                  U" U5      U" U	5      SSS9  U R                  U" U	5      U" U
5      SSS9  U R                  U" U5      U" U
5      SSS9  GM     g )Nrl   r`   r?   r;   r<   r:   rn   )rQ   	complex64rh   r~   r$   r   r   s              r   test_complex64_values_inexact4TestAssertPreciseEqual.test_complex64_values_inexact   s   \\1EA{*+A{Q./AGAM"BGAM"BGAM"BGGBrFBrF#GGBrFBrFG2GGBrFBrFG2GGBrFBrFG2GGBrFBrFG2GAM"BGAM"BGGBrFBrFG2GGBrFBrFG2GGBrFBrFG:GGBrFBrFG:GGBrFBrFG:% 2r   c                    [         R                  [         R                  [         R                  [        R
                  [        R                  [        R                  [        R                  [        R                  /nU H/  nU R                  X"5        U R                  X"R                  5        M1     [        R                   " US5       H  u  p4U R                  X45        M     g )Nr?   )ColorredgreenblueShakemintShapecirclesquarePlanetEARTHMERCURYr   r$   valuer(   combinations)r   valuesvalru   rv   s        r   
test_enums!TestAssertPreciseEqual.test_enums  s    ))U[[%**ejj,,fllFNNLCGGCGGC#  **615DAGGAM 6r   c                 V   [         R                  " SS[         R                  S9R                  S5      nUR	                  5       nU R                  X5        U R                  XS-   5        U R                  XS S 5        U R                  XR                  5        U R                  XR                  [         R                  5      5        U R                  XR                  R	                  5       R                  5        U R                  XR                  5       5        SUR                  l        U R                  X5        [         R                  " SS[         R                  S9nUS[        -   -  nUS[        S	-  -   -  nU R                  X5        U R                  XS
S9  U R                  XS
S9  g )Nr   rN   )dtype)r?   rp   r>   Frp   r`   r?   r;   r<   )rQ   arangeint16reshapecopyr   r$   Tastypeint32flattenflags	writeablerR   rb   )r   ru   rv   r2   s       r   test_arrays"TestAssertPreciseEqual.test_arrays  s)   IIa"((+33F;FFHq5Sb63388BHH%&3388:<< 99;!IIa"**-{"#{Q&'8$8$r   c                 "   [         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      nU R                  X5        U R                  X5        U R                  X5        g )N1900Yz
1900-01-01D1901)rQ   
datetime64r   r$   r   ru   rv   r2   rw   s        r   test_npdatetime&TestAssertPreciseEqual.test_npdatetime&  sc    MM&#&MM&#&MM,,MM&#&r   c                 "   [         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      n[         R                  " SS5      nU R                  X5        U R                  X5        U R                  X5        g )Nr   h<   mr?   )rQ   timedelta64r   r$   r   s        r   test_nptimedelta'TestAssertPreciseEqual.test_nptimedelta1  sc    NN1c"NN1c"NN2s#NN1c"r   r   N)(__name__
__module____qualname____firstlineno____doc__rS   r*   rQ   rg   rR   r.   ra   r+   r   r   r/   r~   r,   boolbool_r-   r   r$   r5   rC   rH   rT   r\   rd   ri   rx   r{   r   r   r   r   r   r   r   __static_attributes__r   r   r   r   r      s     Ijj"**-N'N*Kbmm4I 00M!J52$6;+B6(40H.A2$LL7,;,%2		r   r   c                        \ rS rSrS rS rSrg)TestMisci=  c                    [        5       n[        5       n/ nU R                  X5          S S S 5        U R                  [        5       nU R                  X5         UR	                  U5        S S S 5        S S S 5        U R                  [        U5      [        WR                  5      5        g ! , (       d  f       N= f! , (       d  f       NV= f! , (       d  f       N_= fr   )objectassertRefCountrO   r!   appendassertInstr	exception)r   xylcms        r   test_assertRefCountTestMisc.test_assertRefCount?  s    HH  & '~."$$Q* + / 	c!fc",,/0 '& +* /.s/   B*CB;+C*
B8;
C		C
Cc                 &   S n[        5          U R                  [        5       n[        SS9" U5      nU" 5         SSS5        SSS5        U R	                  S[        WR                  5      5        g! , (       d  f       N<= f! , (       d  f       NE= f)zO
Test that forbid_codegen() prevents code generation using the @jit
decorator.
c                      gr'   r   r   r   r   r1   'TestMisc.test_forbid_codegen.<locals>.fQ  s    r   T)nopythonNzcodegen forbidden by test case)r   rO   RuntimeErrorr   r   r   r   )r   r1   raisescfuncs       r   test_forbid_codegenTestMisc.test_forbid_codegenL  si    
	""<0FT*1- 1  	6F<L<L8MN 10 s!   BA1B1
A?	;B
Br   N)r   r   r   r   r   r   r   r   r   r   r   r   =  s    1Or   r   __main__)r(   numpyrQ   numbar   
numba.corer   numba.tests.supportr   r   enum_usecasesunittestrb   rh   ra   rZ   r[   r   r   r   mainr   r   r   <module>r      sk        8  ElElgX gT	Ox O: zMMO r   