
    sh57                         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     l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/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_types5   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_valuesP   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_valuesX   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 )
Nr7   g      ?r;                  T)r<   ignore_sign_on_zerog*Gr   )r*   r   r#   INFNANr@   s      r   test_float_values(TestAssertPreciseEqual.test_float_valuese   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      ?)floatrP   rQ   r#   DBL_EPSILONr   rA   s     r   test_float64_values*TestAssertPreciseEqual.test_float64_valuesy   s1    "**%BGGBs[()2c73 &r   c                 n    [         R                  nU R                  U" S[        -   5      U" S5      5        g r^   )rP   float32r#   FLT_EPSILONrb   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>      r8   r;   r:   r   r<   ulps   gؗҜ<gMg<epsr<   rL   gؗҼ<rJ   gC]r2<gq7K<)r`   rP   rQ   ra   r#   r   r   rA   scaleabr1   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 )Nrk   r_   r>   rl   r8   r;   r:   r9   rm   ro   gHz>gH׊>rp   rq   gv!>g:0yE>)rP   rf   rg   r#   r   rr   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 )NrV   rW   r7   y      ?       @r;   y      ?      ?y       @       @r   r   r8   )complexr+   r   r#   rY   rZ   )r   c_ppc_pnc_npc_nnrA   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 )Nrk   r_   r>   r:   r;   rm   r9   )r}   rP   
complex128ra   r#   r   r   rA   rs   rt   ru   r1   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 )Nrk   r_   r>   r:   r;   r9   rm   )rP   	complex64rg   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valrt   ru   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   rM   )dtype)r>   ro   r=   Fro   r_   r>   r:   r;   )rP   arangeint16reshapecopyr   r#   Tastypeint32flattenflags	writeablerQ   ra   )r   rt   ru   r1   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)rP   
datetime64r   r#   r   rt   ru   r1   rv   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>   )rP   timedelta64r   r#   r   s        r   test_nptimedelta'TestAssertPreciseEqual.test_nptimedelta0  sc    NN1c"NN1c"NN2s#NN1c"r   r   N)(__name__
__module____qualname____firstlineno____doc__rR   r)   rP   rf   rQ   r-   r`   r*   r   r   r.   r}   r+   boolbool_r,   r   r#   r4   rB   rG   rS   r[   rc   rh   rw   rz   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                    SnS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	                  S[        WR                  5      5        g ! , (       d  f       N}= f! , (       d  f       NM= f! , (       d  f       NV= f)Ng     K@g     P@66)assertRefCountrN   r    appendassertInstr	exception)r   xylcms        r   test_assertRefCountTestMisc.test_assertRefCount>  s      & '~."$$Q* + / 	dC-. '& +* /.s.   BB3	B"B3
B"
B0	,B33
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   r0   'TestMisc.test_forbid_codegen.<locals>.fP  s    r   T)nopythonNzcodegen forbidden by test case)r   rN   RuntimeErrorr   r   r   r   )r   r0   raisescfuncs       r   test_forbid_codegenTestMisc.test_forbid_codegenK  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    /Or   r   __main__)r'   numpyrP   numbar   
numba.corer   numba.tests.supportr   r   enum_usecasesunittestra   rg   r`   rY   rZ   r   r   r   mainr   r   r   <module>r      sk        8  ElElgX gT	Ox O: zMMO r   