§
    ƒÛg¡  ã                   ó¨  — 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     úN/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_globals.pyÚglobal_ndarray_funcr   
   s   € Ø	�AŒG�AŒJ‰€AØ€Hó    ©Údtypey              ð?c                 ód   — t          t          | ¦  «        ¦  «        D ]}t          |         | |<   Œd S ©N)ÚrangeÚlenÚcplx_X©ÚaÚis     r   Úglobal_cplx_arr_copyr      s6   € Ý•3�q‘6”6‰]Œ]ð ð ˆÝ�aŒyˆˆ!‰ˆðð r   r   Úbg      à?c                 ód   — t          t          | ¦  «        ¦  «        D ]}t          |         | |<   Œd S r   )r   r   Úrec_Xr   s     r   Úglobal_rec_arr_copyr    "   s6   € Ý•3�q‘6”6‰]Œ]ð ð ˆÝ�QŒxˆˆ!‰ˆðð 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   € Ý•3�q‘6”6‰]Œ]ð ð ˆÝ�QŒxŒzˆˆ!‰Ý�QŒxŒzˆˆ!‰ˆðð 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   € Ý•3�q‘6”6‰]Œ]ð ð ˆÝ�QŒxŒzˆˆ!‰Ý�QŒxŒzˆˆ!‰Ý�QŒxŒzˆˆ!‰Ý�QŒxŒzˆˆ!‰ˆð	ð 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Ý�aŒL€EÝ�Œ:�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@   € à"•C�N�N˜'�N�NÕ#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   € à"•C�N�N˜'�N�NÕ#7Ñ8Ô8ˆ	ÝŒh•s�6‘{”{­"¬-Ð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]   € à"•C�N�N˜'�N�NÕ#6Ñ7Ô7ˆ	ÝŒh•u”{­$Ð/Ñ/Ô/ˆØˆ	�#‰ŒˆÝ
Œ
×Ò ¥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˜   € à"•C�N�N˜'�N�NÕ#@ÑAÔAˆ	ÝŒx�œ­2¬8Ð4Ñ4Ô4ˆÝŒx�œ­2¬:Ð6Ñ6Ô6ˆØˆ	�$˜ÑÔÐÝ
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ý
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ð.Ð.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   € à"•C�N�N˜'�N�NÕ#6Ñ7Ô7ˆ	ÝŒx�œ­2¬8Ð4Ñ4Ô4ˆÝŒx�œ­2¬:Ð6Ñ6Ô6ˆÝŒx�œ­2¬8Ð4Ñ4Ô4ˆÝŒx�œ­2¬:Ð6Ñ6Ô6ˆØˆ	�$˜˜d DÑ)Ô)Ð)Ý
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ý
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ý
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ý
Œ
×Ò ¥e¤gÑ.Ô.Ð.Ð.Ð.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‘,”,ˆØ×Ò˜˜™œ 7 7¡9¤9Ñ-Ô-Ð-Ð-Ð-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‘,”,ˆØ×Ò˜˜™œ 7 7¡9¤9Ñ-Ô-Ð-Ð-Ð-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‘,”,ˆØ×Ò˜˜™œ 7 7¡9¤9Ñ-Ô-Ð-Ð-Ð-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ð 	1ˆDå˜4‘j”jˆGØ×"Ò"¥6Ô#5Ñ6Ô6ð ¸!Ø�‘	”	�	ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à9ˆCØ�MŠM˜#�s 1¤;Ñ/Ô/Ñ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‘,”,ˆØ×Ò˜˜™œ 7 7¡9¤9Ñ-Ô-Ð-Ð-Ð-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Ý  ðØ Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø  Ð  Ð  Ð  Ð  Ð  Ø €€€à€B„Iˆb�M„M€ðð ð ð 
ˆŒ�2˜Rœ]Ð	+Ñ	+Ô	+€Ø€b„i�˜"œ-Ð(Ñ(Ô(€Ø ˆ3ˆr‰6�2‰+Ñ €ðð ð ð €r„x�#�r”x� 3¨¬
Ð"3Ð4Ñ5Ô5€ØˆŒ�B˜dÐ#Ñ#Ô#€Ø	ˆˆsˆs�5‰zŒzÑ	Ô	ð ð €AØ€Eˆ!„H„JØ�S‘€Eˆ!„H„J€Jðð ð ð
ð ð ð €r„x�#�r”x� 3¨¬
Ð"3Ð4Ñ5Ô5€ØˆŒ�B˜dÐ#Ñ#Ô#€Ø	ˆˆsˆs�5‰zŒzÑ	Ô	ð ð €AØ�R‘€Eˆ!„H„JØ�T‘€Eˆ!„H„J€Jðð ð ð �”˜A TÐ*Ñ*Ô*¨1Ô-€Ø€„Ø€„à€ˆdÐÑÔð"ð "ñ Ôð"ð €ˆdÐÑÔð(ð (ñ Ôð(ð €Ø
€Ø€	Ø€	Ø�”	˜"‘”˜w˜rœw q™zœzÐ*€Ø�"”'˜!‘*”*�Ð €Ø˜W˜RœW Q™ZœZÐ)¨2¨sÐ3Ð ð#ð #ð #ð#ð #ð #ðð ð ð'ð 'ð 'ð-ð -ð -ð!ð !ð !ð'ð 'ð 'ð �"”(˜4‘.”.€Ø�"”(˜5‘/”/€ð ð	ð 	ñ Ôð	ð,ð ,ð ,ð
G.ð G.ð G.ð G.ð G.�(Ô#ñ G.ô G.ð G.ðT ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   