o
    i                     @   sZ  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dZdd ZejdejdZejdejdZeed d	 7 Zd
d ZedejfdejfgZejdedZeeeD ]Zeee _ed ee _q]dd Zdd Zedejfdej fgZ!ejde!dZ"eee"D ]Zed e"e _#ed e"e _$qdd Z%ejdedd  Z&de&_de&_edddd Z'edddd Z(d Z)d!Z*d"Z+d#Z,e-d$e.d%fZ/e0d&ffZ1d'e0d&fd(d)fZ2d*d+ Z3d,d- Z4d.d/ Z5d0d1 Z6d2d3 Z7d4d5 Z8d6d7 Z9e:dZ;e:d8Z<ed9d: Z=d;d< Z>G d=d> d>e
j?Z@eAd?kr+e
B  dS dS )@    N)jitnjiterrors)register_jitable)usecases
   c                 C   s   | t jd  }|S )Nr   )Xshapexy r   g/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/numba/tests/test_globals.pyglobal_ndarray_func
   s   r   dtypey              ?c                 C   "   t t| D ]}t| | |< qd S N)rangelencplx_Xair   r   r   global_cplx_arr_copy      r   r   bg      ?c                 C   r   r   )r   r   rec_Xr   r   r   r   global_rec_arr_copy"   r   r   c                 C   s2   t t| D ]}t| j| |< t| j||< qd S r   )r   r   r   r   r   )r   r   r   r   r   r   global_rec_arr_extract_fields'   s   r   cdg      %@c                 C   sN   t t| D ]}t| j| |< t| j||< t| j||< t| j||< qd S r   )r   r   r   r   r   rec_Yr    r!   )r   r   r    r!   r   r   r   r   global_two_rec_arrs5   s   r#      g      ?TZnopythonc                 C   s   | j tj kS r   )r   record_only_X)r   r   r   r   global_record_funcB      r'   c                 C   s   t | |S r   )r   Zandornopythonr
   r   r   r   global_module_funcG   r(   r)   )r$      )r   r   )r$   r   )g333333?g      @         Zy               @Ac                   C      t d t d  S Nr   r$   )tup_intr   r   r   r   global_int_tupleT      r3   c                   C   r0   r1   )tup_strr   r   r   r   global_str_tupleX   r4   r6   c                  C   s   t d } t d }t|  | S r1   )	tup_mixedr   )idxfieldr   r   r   global_mixed_tuple\   s   r:   c                   C   r0   r1   )	tup_floatr   r   r   r   global_float_tupleb   r4   r<   c                   C   r0   r1   )tup_npy_intsr   r   r   r   global_npy_int_tuplef   r4   r>   c                   C   s   dt d d d< d S )N      $@r   )tup_tup_arrayr   r   r   r   global_write_to_arr_in_tuplej      rA   c                   C   s   dt d d d< d S )Nr?   r   r$   )mixed_tup_tup_arrayr   r   r   r   "global_write_to_arr_in_mixed_tuplen   rB   rD   Fc                  G   s   d S r   r   )argsr   r   r   _sinkv   s   rF   c                   C   s   t tt ttfS r   )rF   _glbl_np_bool_T_glbl_np_bool_Fr   r   r   r   global_npy_boolz   s   
rI   c                   @   s   e Zd Zdd Zdd Zdd Zdd Zd	d
 Zdd Zdd Z	dd Z
dd Zdd Zdd Zdd Zdd Zdd Zdd Zdd  Zd!d" Zd#d$ Zd%d& Zd'd( Zd)d* Zd+d, Zd-d. Zd/d0 Zd1S )2TestGlobalsc                 K   s&   t di |t}| |dd d S )Nr$      r   )r   r   assertEqual)selfjitargs	ctestfuncr   r   r   check_global_ndarray   s   z TestGlobals.check_global_ndarrayc                 C      | j dd d S NT)ZforceobjrP   rM   r   r   r   test_global_ndarray   s   zTestGlobals.test_global_ndarrayc                 C   rQ   NTr%   rS   rT   r   r   r   test_global_ndarray_npm   r4   z#TestGlobals.test_global_ndarray_npmc                 K   s@   t di |t}tjtttjd}|| tj|t d S Nr   r   )	r   r   npzerosr   r   
complex128testingassert_equalrM   rN   rO   Zarrr   r   r   check_global_complex_arr   s   z$TestGlobals.check_global_complex_arrc                 C   rQ   rR   r_   rT   r   r   r   test_global_complex_arr   r4   z#TestGlobals.test_global_complex_arrc                 C   rQ   rV   r`   rT   r   r   r   test_global_complex_arr_npm   r4   z'TestGlobals.test_global_complex_arr_npmc                 K   s<   t di |t}tjtjtd}|| tj|t d S rX   )	r   r   rY   rZ   r   r	   x_dtr\   r]   r^   r   r   r   check_global_rec_arr   s   z TestGlobals.check_global_rec_arrc                 C   rQ   rR   rd   rT   r   r   r   test_global_rec_arr   r4   zTestGlobals.test_global_rec_arrc                 C   rQ   rV   re   rT   r   r   r   test_global_rec_arr_npm   r4   z#TestGlobals.test_global_rec_arr_npmc                 K   sd   t di |t}tjtjtjd}tjtjtjd}||| tj	|tj
 tj	|tj d S rX   )r   r   rY   rZ   r   r	   int32float32r\   r]   r   r   )rM   rN   rO   arr1arr2r   r   r   check_global_rec_arr_extract   s   
z(TestGlobals.check_global_rec_arr_extractc                 C   rQ   rR   rl   rT   r   r   r   test_global_rec_arr_extract   r4   z'TestGlobals.test_global_rec_arr_extractc                 C   rQ   rV   rm   rT   r   r   r   test_global_rec_arr_extract_npm   r4   z+TestGlobals.test_global_rec_arr_extract_npmc                 K   s   t di |t}tjtjtjd}tjtjtjd}tjtjtj	d}tjtjtj
d}||||| tj|tj tj|tj tj|tj tj|tj d S rX   )r   r#   rY   rZ   r   r	   rh   ri   r"   int16float64r\   r]   r   r   r    r!   )rM   rN   rO   rj   rk   Zarr3Zarr4r   r   r   check_two_global_rec_arrs   s   z%TestGlobals.check_two_global_rec_arrsc                 C   rQ   rR   rr   rT   r   r   r   test_two_global_rec_arrs   r4   z$TestGlobals.test_two_global_rec_arrsc                 C   rQ   rV   rs   rT   r   r   r   test_two_global_rec_arrs_npm   r4   z(TestGlobals.test_two_global_rec_arrs_npmc                 C   s   t dd}| d| d S )Nr-      T)r)   rL   )rM   resr   r   r   test_global_module   s   
zTestGlobals.test_global_modulec                 C   sJ   t jdtdd }d|_t|}| d| d|_t|}| d| d S )Nr$   r   r   Tr*   F)rY   recarrayrc   r   r'   rL   )rM   r   rw   r   r   r   test_global_record   s   zTestGlobals.test_global_recordc                 C       t }t|}| | |  d S r   )r3   r   rL   rM   Zpyfuncjitfuncr   r   r   test_global_int_tuple      z!TestGlobals.test_global_int_tuplec                 C   r{   r   )r6   r   rL   r|   r   r   r   test_global_str_tuple   r   z!TestGlobals.test_global_str_tuplec                 C   r{   r   )r:   r   rL   r|   r   r   r   test_global_mixed_tuple   r   z#TestGlobals.test_global_mixed_tuplec                 C   r{   r   )r<   r   rL   r|   r   r   r   test_global_float_tuple   r   z#TestGlobals.test_global_float_tuplec                 C   r{   r   )r>   r   rL   r|   r   r   r   test_global_npy_int_tuple   r   z%TestGlobals.test_global_npy_int_tuplec              	   C   sb   t tfD ]*}t|}| tj}|  W d    n1 sw   Y  d}| |t|j qd S )Nz%Cannot modify readonly array of type:)	rA   rD   r   assertRaisesr   ZTypingErrorZassertInstr	exception)rM   funcr}   emsgr   r   r   !test_global_write_to_arr_in_tuple   s   z-TestGlobals.test_global_write_to_arr_in_tuplec                 C   r{   r   )rI   r   rL   r|   r   r   r   test_global_npy_bool  s   z TestGlobals.test_global_npy_boolN)__name__
__module____qualname__rP   rU   rW   r_   ra   rb   rd   rf   rg   rl   rn   ro   rr   rt   ru   rx   rz   r~   r   r   r   r   r   r   r   r   r   r   rJ      s2    	
rJ   __main__)CnumpyrY   Znumbar   r   r   Znumba.extendingr   Znumba.testsr   ZunittestZaranger   r   r[   r   tmpr   r   rh   ri   rc   ry   r   r   r   r   r   r   r   r   rp   rq   Zy_dtr"   r    r!   r#   r&   r'   r)   r2   r5   r7   r;   Zuint64Zint8r=   Zonesr@   rC   r3   r6   r:   r<   r>   rA   rD   Zbool_rG   rH   rF   rI   ZTestCaserJ   r   mainr   r   r   r   <module>   sn    

	




 
