
    J/Ph                        d dl Zd dlmZmZmZ d dlmZ d dlm	Z	 d dl
Z
 ej        d          Zd Z ej        dej                  Z ej        dej                  Zeedz   dz  z  Zd	 Z ej        d
ej        fdej        fg          Z ej        de          Z e ee                    D ]Zeee         _        edz   ee         _         d Zd Z ej        dej        fdej         fg          Z! ej        de!          Z" e ee"                    D ]"Zedz   e"e         _#        edz   e"e         _$        #d Z% ej        de          d          Z&de&_        de&_         ed          d             Z' ed          d             Z(dZ)dZ*dZ+dZ, ej-        d           ej.        d          fZ/ ej0        d          ffZ1d  ej0        d          fd!d"fZ2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8d) Z9 ej:        d          Z; ej:        d*          Z<ed+             Z=d, Z> G d- d.e
j?                  Z@eAd/k    r e
jB                     dS dS )0    N)jitnjiterrors)register_jitable)usecases
   c                 0    | t           j        d         z   }|S )Nr   )Xshapexys     X/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/numba/tests/test_globals.pyglobal_ndarray_funcr   
   s    	AGAJAH    dtypey              ?c                 d    t          t          |                     D ]}t          |         | |<   d S N)rangelencplx_Xais     r   global_cplx_arr_copyr      s6    3q66]]  ay! r   r   bg      ?c                 d    t          t          |                     D ]}t          |         | |<   d S r   )r   r   rec_Xr   s     r   global_rec_arr_copyr    "   s6    3q66]]  Qx! r   c                     t          t          |                     D ],}t          |         j        | |<   t          |         j        ||<   -d S r   )r   r   r   r   r   )r   r   r   s      r   global_rec_arr_extract_fieldsr"   '   sG    3q66]]  Qxz!Qxz! r   cdg      %@c                     t          t          |                     D ]V}t          |         j        | |<   t          |         j        ||<   t
          |         j        ||<   t
          |         j        ||<   Wd S r   )r   r   r   r   r   rec_Yr#   r$   )r   r   r#   r$   r   s        r   global_two_rec_arrsr'   5   se    3q66]]  Qxz!Qxz!Qxz!Qxz!	 r      g      ?Tnopythonc                 ,    | j         t          j         k    S r   )r   record_only_X)r   s    r   global_record_funcr-   B   s    3-/!!r   c                 ,    t          j        | |          S r   )r   andornopythonr   s     r   global_module_funcr0   G   s    !!Q'''r   )r(      )r   r   )r(   r   )g333333?g      @         Zy               @Ac                  8    t           d         t           d         z   S Nr   r(   )tup_int r   r   global_int_tupler;   T       1:
""r   c                  8    t           d         t           d         z   S r8   )tup_strr:   r   r   global_str_tupler?   X   r<   r   c                  \    t           d         } t           d         }t          |          |         S r8   )	tup_mixedr   )idxfields     r   global_mixed_tuplerD   \   s#    
A,CaLE:er   c                  8    t           d         t           d         z   S r8   )	tup_floatr:   r   r   global_float_tuplerG   b   s    Q<)A,&&r   c                  8    t           d         t           d         z   S r8   )tup_npy_intsr:   r   r   global_npy_int_tuplerJ   f   s    ?\!_,,r   c                  2    dt           d         d         d<   d S )N      $@r   )tup_tup_arrayr:   r   r   global_write_to_arr_in_tuplerN   j   s     M!Qr   c                  2    dt           d         d         d<   d S )NrL   r   r(   )mixed_tup_tup_arrayr:   r   r   "global_write_to_arr_in_mixed_tuplerQ   n   s    #&1a   r   Fc                      d S r   r:   )argss    r   _sinkrT   v   s    Dr   c                  R    t          t          t                     t          t          fS r   )rT   _glbl_np_bool_T_glbl_np_bool_Fr:   r   r   global_npy_boolrX   z   s    	/?+++O++r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd ZdS )TestGlobalsc                 x     t          di |t                    }|                      |d          d           d S )Nr(      r:   )r   r   assertEqual)selfjitargs	ctestfuncs      r   check_global_ndarrayz TestGlobals.check_global_ndarray   s@    "CNN'NN#677	1r*****r   c                 2    |                      d           d S NT)forceobjra   r^   s    r   test_global_ndarrayzTestGlobals.test_global_ndarray   s!     	!!4!00000r   c                 2    |                      d           d S NTr)   re   rf   s    r   test_global_ndarray_npmz#TestGlobals.test_global_ndarray_npm       !!4!00000r   c                      t          di |t                    }t          j        t	          t
                    t          j                  } ||           t          j                            |t
                     d S Nr   r:   )	r   r   npzerosr   r   
complex128testingassert_equalr^   r_   r`   arrs       r   check_global_complex_arrz$TestGlobals.check_global_complex_arr   sc    "CNN'NN#788	hs6{{"-888	#

V,,,,,r   c                 2    |                      d           d S rc   ru   rf   s    r   test_global_complex_arrz#TestGlobals.test_global_complex_arr       %%t%44444r   c                 2    |                      d           d S ri   rw   rf   s    r   test_global_complex_arr_npmz'TestGlobals.test_global_complex_arr_npm   ry   r   c                      t          di |t                    }t          j        t          j        t                    } ||           t          j                            |t                     d S rm   )	r   r    rn   ro   r   r   x_dtrq   rr   rs   s       r   check_global_rec_arrz TestGlobals.check_global_rec_arr   s]    "CNN'NN#677	hu{$///	#

U+++++r   c                 2    |                      d           d S rc   r~   rf   s    r   test_global_rec_arrzTestGlobals.test_global_rec_arr   rk   r   c                 2    |                      d           d S ri   r   rf   s    r   test_global_rec_arr_npmz#TestGlobals.test_global_rec_arr_npm   rk   r   c                     t          di |t                    }t          j        t          j        t          j                  }t          j        t          j        t          j                  } |||           t          j        	                    |t          j
                   t          j        	                    |t          j                   d S rm   )r   r"   rn   ro   r   r   int32float32rq   rr   r   r   )r^   r_   r`   arr1arr2s        r   check_global_rec_arr_extractz(TestGlobals.check_global_rec_arr_extract   s    "CNN'NN#@AA	x28444x2:666	$

eg...

eg.....r   c                 2    |                      d           d S rc   r   rf   s    r   test_global_rec_arr_extractz'TestGlobals.test_global_rec_arr_extract       ))4)88888r   c                 2    |                      d           d S ri   r   rf   s    r   test_global_rec_arr_extract_npmz+TestGlobals.test_global_rec_arr_extract_npm   r   r   c                     t          di |t                    }t          j        t          j        t          j                  }t          j        t          j        t          j                  }t          j        t          j        t          j	                  }t          j        t          j        t          j
                  } |||||           t          j                            |t          j                   t          j                            |t          j                   t          j                            |t          j                   t          j                            |t          j                   d S rm   )r   r'   rn   ro   r   r   r   r   r&   int16float64rq   rr   r   r   r#   r$   )r^   r_   r`   r   r   arr3arr4s          r   check_two_global_rec_arrsz%TestGlobals.check_two_global_rec_arrs   s    "CNN'NN#677	x28444x2:666x28444x2:666	$dD)))

eg...

eg...

eg...

eg.....r   c                 2    |                      d           d S rc   r   rf   s    r   test_two_global_rec_arrsz$TestGlobals.test_two_global_rec_arrs       &&&55555r   c                 2    |                      d           d S ri   r   rf   s    r   test_two_global_rec_arrs_npmz(TestGlobals.test_two_global_rec_arrs_npm   r   r   c                 R    t          dd          }|                     d|           d S )Nr4      T)r0   r]   )r^   ress     r   test_global_modulezTestGlobals.test_global_module   s-     A&&s#####r   c                     t          j        dt                    d         }d|_        t	          |          }|                     d|           d|_        t	          |          }|                     d|           d S )Nr(   r   r   Tr1   F)rn   recarrayr}   r   r-   r]   )r^   r   r   s      r   test_global_recordzTestGlobals.test_global_record   su    K&&&q) ##s### ##$$$$$r   c                 ~    t           }t          |          }|                      |             |                       d S r   )r;   r   r]   r^   pyfuncjitfuncs      r   test_global_int_tuplez!TestGlobals.test_global_int_tuple   :    !v,,7799-----r   c                 ~    t           }t          |          }|                      |             |                       d S r   )r?   r   r]   r   s      r   test_global_str_tuplez!TestGlobals.test_global_str_tuple   r   r   c                 ~    t           }t          |          }|                      |             |                       d S r   )rD   r   r]   r   s      r   test_global_mixed_tuplez#TestGlobals.test_global_mixed_tuple   :    #v,,7799-----r   c                 ~    t           }t          |          }|                      |             |                       d S r   )rG   r   r]   r   s      r   test_global_float_tuplez#TestGlobals.test_global_float_tuple   r   r   c                 ~    t           }t          |          }|                      |             |                       d S r   )rJ   r   r]   r   s      r   test_global_npy_int_tuplez%TestGlobals.test_global_npy_int_tuple   s:    %v,,7799-----r   c                    t           t          fD ]|}t          |          }|                     t          j                  5 } |             d d d            n# 1 swxY w Y   d}|                     |t          |j                             }d S )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_tuplez-TestGlobals.test_global_write_to_arr_in_tuple   s     279 	1 	1D4jjG""6#566 !			              9CMM#s1;//0000	1 	1s   AA	A	c                 ~    t           }t          |          }|                      |             |                       d S r   )rX   r   r]   r   s      r   test_global_npy_boolz TestGlobals.test_global_npy_bool  s<     !v,,7799-----r   N)__name__
__module____qualname__ra   rg   rj   ru   rx   r{   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r   r   rZ   rZ      s|       + + +
1 1 1
1 1 1- - -5 5 55 5 5, , ,1 1 11 1 1/ / /9 9 99 9 9/ / /6 6 66 6 6$ $ $
% % %. . .
. . .
. . .
. . .
. . .
	1 	1 	1. . . . .r   rZ   __main__)Cnumpyrn   numbar   r   r   numba.extendingr   numba.testsr   unittestaranger
   r   rp   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      s       # # # # # # # # # # , , , , , ,             BIbMM   
2R]	+	+	+bi"-((( 3r62+    rx#rx3
"3455Bd###	ss5zz		  AE!HJSE!HJJ  
   rx#rx3
"3455Bd###	ss5zz		  ARE!HJTE!HJJ   AT***1-d" " " d( ( ( 
			"wrwqzz*"'!** WRWQZZ)2s3 # # ## # #  ' ' '- - -! ! !' ' ' "(4.."(5// 	 	 	, , ,
G. G. G. G. G.(# G. G. G.T zHMOOOOO r   