
    sh                        S SK rS SKJrJrJr  S SKJr  S SKJ	r	  S SK
r
\R                  " S5      rS r\R                  " S\R                  S9r\R                  " S\R                  S9r\\S-   S-  -  rS	 r\R$                  " S
\R&                  4S\R(                  4/5      r\R,                  " S\S9r\" \" \5      5       H  r\\\   l        \S-   \\   l        M     S rS r\R$                  " S\R>                  4S\R@                  4/5      r!\R,                  " S\!S9r"\" \" \"5      5       H  r\S-   \"\   l#        \S-   \"\   l$        M     S r%\R,                  " S\S9S    r&S\&l        S\&l        \" SS9S 5       r'\" SS9S 5       r(Sr)Sr*Sr+Sr,\RZ                  " S5      \R\                  " S5      4r/\R`                  " S5      44r1S \R`                  " S5      4S!S"4r2S# r3S$ r4S% r5S& r6S' r7S( r8S) r9\Rt                  " S5      r;\Rt                  " S*5      r<\S+ 5       r=S, r> " S- S.\
R~                  5      r@\AS/:X  a  \
R                  " 5         gg)0    N)jitnjiterrors)register_jitable)usecases
   c                 2    U [         R                  S   -   nU$ )Nr   )Xshapexys     l/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/numba/tests/test_globals.pyglobal_ndarray_funcr   
   s    	AGGAJAH    dtypey              ?c                 P    [        [        U 5      5       H  n[        U   X'   M     g N)rangelencplx_Xais     r   global_cplx_arr_copyr      s    3q6]ay r   r   bg      ?c                 P    [        [        U 5      5       H  n[        U   X'   M     g r   )r   r   rec_Xr   s     r   global_rec_arr_copyr    "   s    3q6]Qx r   c                     [        [        U 5      5       H-  n[        U   R                  X'   [        U   R                  X'   M/     g r   )r   r   r   r   r   )r   r   r   s      r   global_rec_arr_extract_fieldsr"   '   s2    3q6]QxzzQxzz r   cdg      %@c                     [        [        U 5      5       HW  n[        U   R                  X'   [        U   R                  X'   [
        U   R                  X$'   [
        U   R                  X4'   MY     g r   )r   r   r   r   r   rec_Yr#   r$   )r   r   r#   r$   r   s        r   global_two_rec_arrsr'   5   sP    3q6]QxzzQxzzQxzzQxzz	 r      g      ?Tnopythonc                 <    U R                   [        R                   :H  $ r   )r   record_only_X)r   s    r   global_record_funcr-   B   s    33-//!!r   c                 .    [         R                  " X5      $ r   )r   andornopythonr   s     r   global_module_funcr0   G   s    !!!''r   )r(      )r   r   )r(   r   )g333333?g      @         Zy               @Ac                  (    [         S   [         S   -   $ Nr   r(   )tup_int r   r   global_int_tupler;   T       1:
""r   c                  (    [         S   [         S   -   $ r8   )tup_strr:   r   r   global_str_tupler?   X   r<   r   c                  >    [         S   n [         S   n[        U    U   $ r8   )	tup_mixedr   )idxfields     r   global_mixed_tuplerD   \   s#    
A,CaLE:er   c                  (    [         S   [         S   -   $ r8   )	tup_floatr:   r   r   global_float_tuplerG   b   s    Q<)A,&&r   c                  (    [         S   [         S   -   $ r8   )tup_npy_intsr:   r   r   global_npy_int_tuplerJ   f   s    ?\!_,,r   c                  "    S[         S   S   S'   g )N      $@r   )tup_tup_arrayr:   r   r   global_write_to_arr_in_tuplerN   j   s     M!Qr   c                  "    S[         S   S   S'   g )NrL   r   r(   )mixed_tup_tup_arrayr:   r   r   "global_write_to_arr_in_mixed_tuplerQ   n   s    #&1a r   Fc                      g r   r:   )argss    r   _sinkrT   v   s    r   c                  B    [        [        [        5        [        [        4$ r   )rT   _glbl_np_bool_T_glbl_np_bool_Fr:   r   r   global_npy_boolrX   z   s    	/?+O++r   c                       \ 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S rS rS rS rS rS rS rSrg)TestGlobals   c                 ^    [        S0 UD6" [        5      nU R                  U" S5      S5        g )Nr(      r:   )r   r   assertEqual)selfjitargs	ctestfuncs      r   check_global_ndarray TestGlobals.check_global_ndarray   s'    N'N#67	1r*r   c                 "    U R                  SS9  g NT)forceobjrb   r_   s    r   test_global_ndarrayTestGlobals.test_global_ndarray   s     	!!4!0r   c                 "    U R                  SS9  g NTr)   rg   rh   s    r   test_global_ndarray_npm#TestGlobals.test_global_ndarray_npm       !!4!0r   c                     [        S0 UD6" [        5      n[        R                  " [	        [
        5      [        R                  S9nU" U5        [        R                  R                  U[
        5        g Nr   r:   )	r   r   npzerosr   r   
complex128testingassert_equalr_   r`   ra   arrs       r   check_global_complex_arr$TestGlobals.check_global_complex_arr   sF    N'N#78	hhs6{"--8#


V,r   c                 "    U R                  SS9  g re   ry   rh   s    r   test_global_complex_arr#TestGlobals.test_global_complex_arr       %%t%4r   c                 "    U R                  SS9  g rl   r|   rh   s    r   test_global_complex_arr_npm'TestGlobals.test_global_complex_arr_npm   r   r   c                     [        S0 UD6" [        5      n[        R                  " [        R
                  [        S9nU" U5        [        R                  R                  U[        5        g rq   )	r   r    rr   rs   r   r   x_dtru   rv   rw   s       r   check_global_rec_arr TestGlobals.check_global_rec_arr   sB    N'N#67	hhu{{$/#


U+r   c                 "    U R                  SS9  g re   r   rh   s    r   test_global_rec_arrTestGlobals.test_global_rec_arr   ro   r   c                 "    U R                  SS9  g rl   r   rh   s    r   test_global_rec_arr_npm#TestGlobals.test_global_rec_arr_npm   ro   r   c                    [        S0 UD6" [        5      n[        R                  " [        R
                  [        R                  S9n[        R                  " [        R
                  [        R                  S9nU" X45        [        R                  R                  U[        R                  5        [        R                  R                  U[        R                  5        g rq   )r   r"   rr   rs   r   r   int32float32ru   rv   r   r   )r_   r`   ra   arr1arr2s        r   check_global_rec_arr_extract(TestGlobals.check_global_rec_arr_extract   s{    N'N#@A	xx2884xx2::6$


egg.


egg.r   c                 "    U R                  SS9  g re   r   rh   s    r   test_global_rec_arr_extract'TestGlobals.test_global_rec_arr_extract       ))4)8r   c                 "    U R                  SS9  g rl   r   rh   s    r   test_global_rec_arr_extract_npm+TestGlobals.test_global_rec_arr_extract_npm   r   r   c                 8   [        S0 UD6" [        5      n[        R                  " [        R
                  [        R                  S9n[        R                  " [        R
                  [        R                  S9n[        R                  " [        R
                  [        R                  S9n[        R                  " [        R
                  [        R                  S9nU" X4XV5        [        R                  R                  U[        R                  5        [        R                  R                  U[        R                  5        [        R                  R                  U[        R                  5        [        R                  R                  U[        R                   5        g rq   )r   r'   rr   rs   r   r   r   r   r&   int16float64ru   rv   r   r   r#   r$   )r_   r`   ra   r   r   arr3arr4s          r   check_two_global_rec_arrs%TestGlobals.check_two_global_rec_arrs   s    N'N#67	xx2884xx2::6xx2884xx2::6$d)


egg.


egg.


egg.


egg.r   c                 "    U R                  SS9  g re   r   rh   s    r   test_two_global_rec_arrs$TestGlobals.test_two_global_rec_arrs       &&&5r   c                 "    U R                  SS9  g rl   r   rh   s    r   test_two_global_rec_arrs_npm(TestGlobals.test_two_global_rec_arrs_npm   r   r   c                 @    [        SS5      nU R                  SU5        g )Nr4      T)r0   r^   )r_   ress     r   test_global_moduleTestGlobals.test_global_module   s     A&s#r   c                     [         R                  " S[        S9S   nSUl        [	        U5      nU R                  SU5        SUl        [	        U5      nU R                  SU5        g )Nr(   r   r   Tr1   F)rr   recarrayr   r   r-   r^   )r_   r   r   s      r   test_global_recordTestGlobals.test_global_record   sY    KK&q) #s# #$r   c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )r;   r   r^   r_   pyfuncjitfuncs      r   test_global_int_tuple!TestGlobals.test_global_int_tuple   $    !v,79-r   c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )r?   r   r^   r   s      r   test_global_str_tuple!TestGlobals.test_global_str_tuple   r   r   c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )rD   r   r^   r   s      r   test_global_mixed_tuple#TestGlobals.test_global_mixed_tuple   $    #v,79-r   c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )rG   r   r^   r   s      r   test_global_float_tuple#TestGlobals.test_global_float_tuple   r   r   c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )rJ   r   r^   r   s      r   test_global_npy_int_tuple%TestGlobals.test_global_npy_int_tuple   s$    %v,79-r   c                    [         [        4 Hd  n[        U5      nU R                  [        R
                  5       nU" 5         S S S 5        SnU R                  U[        WR                  5      5        Mf     g ! , (       d  f       N:= f)Nz%Cannot modify readonly array of type:)	rN   rQ   r   assertRaisesr   TypingErrorassertInstr	exception)r_   funcr   emsgs        r   !test_global_write_to_arr_in_tuple-TestGlobals.test_global_write_to_arr_in_tuple   sd     279D4jG""6#5#56!	 79CMM#s1;;/09 76s   A66
B	c                 ^    [         n[        U5      nU R                  U" 5       U" 5       5        g r   )rX   r   r^   r   s      r   test_global_npy_bool TestGlobals.test_global_npy_bool  s&     !v,79-r   r:   N)__name__
__module____qualname____firstlineno__rb   ri   rm   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   __static_attributes__r:   r   r   rZ   rZ      sz    +
1
1-55,11/99/66$
%.
.
.
.
.
	1.r   rZ   __main__)Cnumpyrr   numbar   r   r   numba.extendingr   numba.testsr   unittestaranger
   r   rt   r   tmpr   r   r   r   r   r   r   r   r   r   r   r   r    r"   r   r   y_dtr&   r#   r$   r'   r,   r-   r0   r9   r>   rA   rF   uint64int8rI   onesrM   rP   r;   r?   rD   rG   rJ   rN   rQ   bool_rV   rW   rT   rX   TestCaserZ   r   mainr:   r   r   <module>r      sy    # # ,   IIbM 
2R]]	+ii"--( 3r62+  
xx#rxx3

"345
Bd#	s5z	AE!HJSE!HJ 


 
xx#rxx3

"345
Bd#	s5z	ARE!HJTE!HJ 

 AT*1-d" " d( ( 
				"rwwqz*''!* RWWQZ)2s3 ##'-!' ((4.((5/ 	 	,
G.(## G.T zMMO r   