
    xKg                        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jZ                  d       ej\                  d      fZ/ ej`                  d      ffZ1d  ej`                  d      fd!d"fZ2d# Z3d$ Z4d% Z5d& Z6d' Z7d( Z8d) Z9 ejt                  d      Z; ejt                  d*      Z<ed+        Z=d, Z> G d- d.e
j~                        Z@eAd/k(  r e
j                          yy)0    N)jitnjiterrors)register_jitable)usecases
   c                 2    | t         j                  d   z   }|S )Nr   )Xshapexys     \/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_globals.pyglobal_ndarray_funcr   
   s    	AGGAJAH    dtypey              ?c                 N    t        t        |             D ]  }t        |   | |<    y N)rangelencplx_Xais     r   global_cplx_arr_copyr      s!    3q6]ay! r   r   bg      ?c                 N    t        t        |             D ]  }t        |   | |<    y r   )r   r   rec_Xr   s     r   global_rec_arr_copyr    "   s!    3q6]Qx! r   c                     t        t        |             D ].  }t        |   j                  | |<   t        |   j                  ||<   0 y r   )r   r   r   r   r   )r   r   r   s      r   global_rec_arr_extract_fieldsr"   '   s6    3q6]Qxzz!Qxzz! r   cdg      %@c                     t        t        |             D ]Z  }t        |   j                  | |<   t        |   j                  ||<   t
        |   j                  ||<   t
        |   j                  ||<   \ y r   )r   r   r   r   r   rec_Yr#   r$   )r   r   r#   r$   r   s        r   global_two_rec_arrsr'   5   sX    3q6]Qxzz!Qxzz!Qxzz!Qxzz!	 r      g      ?Tnopythonc                 <    | j                   t        j                   k(  S r   )r   record_only_X)r   s    r   global_record_funcr-   B   s    33-//!!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                  (    t         d   t         d   z   S Nr   r(   )tup_int r   r   global_int_tupler;   T       1:
""r   c                  (    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                  (    t         d   t         d   z   S r8   )	tup_floatr:   r   r   global_float_tuplerG   b   s    Q<)A,&&r   c                  (    t         d   t         d   z   S r8   )tup_npy_intsr:   r   r   global_npy_int_tuplerJ   f   s    ?\!_,,r   c                  "    dt         d   d   d<   y )N      $@r   )tup_tup_arrayr:   r   r   global_write_to_arr_in_tuplerN   j   s     M!Qr   c                  "    dt         d   d   d<   y )NrL   r   r(   )mixed_tup_tup_arrayr:   r   r   "global_write_to_arr_in_mixed_tuplerQ   n   s    #&1a r   Fc                       y r   r:   )argss    r   _sinkrT   v   s    r   c                  B    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y)TestGlobalsc                 ^     t        di |t              }| j                   |d      d       y )Nr(      r:   )r   r   assertEqual)selfjitargs	ctestfuncs      r   check_global_ndarrayz TestGlobals.check_global_ndarray   s)    "CN'N#67	1r*r   c                 (    | j                  d       y NT)forceobjra   r^   s    r   test_global_ndarrayzTestGlobals.test_global_ndarray   s     	!!4!0r   c                 (    | j                  d       y NTr)   re   rf   s    r   test_global_ndarray_npmz#TestGlobals.test_global_ndarray_npm       !!4!0r   c                      t        di |t              }t        j                  t	        t
              t        j                        } ||       t        j                  j                  |t
               y 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   sH    "CN'N#78	hhs6{"--8#


V,r   c                 (    | j                  d       y rc   ru   rf   s    r   test_global_complex_arrz#TestGlobals.test_global_complex_arr       %%t%4r   c                 (    | j                  d       y 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                  j                  |t               y rm   )	r   r    rn   ro   r   r   x_dtrq   rr   rs   s       r   check_global_rec_arrz TestGlobals.check_global_rec_arr   sD    "CN'N#67	hhu{{$/#


U+r   c                 (    | j                  d       y rc   r~   rf   s    r   test_global_rec_arrzTestGlobals.test_global_rec_arr   rk   r   c                 (    | j                  d       y 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                  j                  |t        j                         t        j                  j                  |t        j                         y 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    "CN'N#@A	xx2884xx2::6$


egg.


egg.r   c                 (    | j                  d       y rc   r   rf   s    r   test_global_rec_arr_extractz'TestGlobals.test_global_rec_arr_extract       ))4)8r   c                 (    | j                  d       y ri   r   rf   s    r   test_global_rec_arr_extract_npmz+TestGlobals.test_global_rec_arr_extract_npm   r   r   c                 L    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                  j                  |t        j                         t        j                  j                  |t        j                         t        j                  j                  |t        j                         t        j                  j                  |t        j                          y 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    "CN'N#67	xx2884xx2::6xx2884xx2::6$dD)


egg.


egg.


egg.


egg.r   c                 (    | j                  d       y rc   r   rf   s    r   test_two_global_rec_arrsz$TestGlobals.test_two_global_rec_arrs       &&&5r   c                 (    | j                  d       y ri   r   rf   s    r   test_two_global_rec_arrs_npmz(TestGlobals.test_two_global_rec_arrs_npm   r   r   c                 @    t        dd      }| j                  d|       y )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	        |      }| j                  d|       d|_        t	        |      }| j                  d|       y )Nr(   r   r   Tr1   F)rn   recarrayr}   r   r-   r]   )r^   r   r   s      r   test_global_recordzTestGlobals.test_global_record   sY    KK&q) #s# #$r   c                 ^    t         }t        |      }| j                   |        |              y r   )r;   r   r]   r^   pyfuncjitfuncs      r   test_global_int_tuplez!TestGlobals.test_global_int_tuple   $    !v,79-r   c                 ^    t         }t        |      }| j                   |        |              y r   )r?   r   r]   r   s      r   test_global_str_tuplez!TestGlobals.test_global_str_tuple   r   r   c                 ^    t         }t        |      }| j                   |        |              y r   )rD   r   r]   r   s      r   test_global_mixed_tuplez#TestGlobals.test_global_mixed_tuple   $    #v,79-r   c                 ^    t         }t        |      }| j                   |        |              y r   )rG   r   r]   r   s      r   test_global_float_tuplez#TestGlobals.test_global_float_tuple   r   r   c                 ^    t         }t        |      }| j                   |        |              y r   )rJ   r   r]   r   s      r   test_global_npy_int_tuplez%TestGlobals.test_global_npy_int_tuple   s$    %v,79-r   c                     t         t        fD ]c  }t        |      }| j                  t        j
                        5 } |        d d d        d}| j                  |t        j                               e y # 1 sw Y   3xY w)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   sd     279D4jG""6#5#56!	 79CMM#s1;;/09 76s   A44A=	c                 ^    t         }t        |      }| j                   |        |              y r   )rX   r   r]   r   s      r   test_global_npy_boolz TestGlobals.test_global_npy_bool  s&     !v,79-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      sz    +
1
1-55,11/99/66$
%.
.
.
.
.
	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    # # ,   BIIbM 
2R]]	+bii"--( 3r62+  rxx#rxx3

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

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