§
    ƒÛgß  ã                   óè   — d dl Z d dlZd dlZd dlmZmZ d dlmZm	Z	 d dl
mZ d dlmZmZ  e¦   «         Zde_         e¦   «         Zde_         G d„ de¦  «        Zed	k    r ej        ¦   «          dS dS )
é    N)Úcompile_isolatedÚFlags)ÚtypesÚutils)Úusecases)ÚTestCaseÚtagTc                   ób   — 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S )ÚTestUsecasesc                 óð   — t           j        }t          |t          j        t          j        f¦  «        }|j        }d}d}t          j        ||¦  «        D ]"}|                       ||Ž  ||Ž d|›�¦  «         Œ#d S )N)éÿÿÿÿr   é   é	   é
   é   zargs )	r   Úandorr   r   Úint32Úentry_pointÚ	itertoolsÚproductÚassertEqual)ÚselfÚpyfuncÚcrÚcfuncÚxsÚysÚargss          úO/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_usecases.pyÚ
test_andorzTestUsecases.test_andor   sŒ   € Ý”ˆÝ˜f¥u¤{µE´KÐ&@ÑAÔAˆØ”ˆð !ˆØ ˆåÔ% b¨"Ñ-Ô-ð 	Oð 	OˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¨LÀtÀtÐ:MÑNÔNÐNÐNð	Oð 	Oó    c                 óê   — t           j        }t          |t          j        t          j        f¦  «        }|j        }d}d}t          j        ||¦  «        D ]}|                       ||Ž  ||Ž |¦  «         Œ d S ©N©r   r   r   éd   éÈ   )	r   Úsum1dr   r   r   r   r   r   r   ©r   r   r   r   ÚssÚesr   s          r   Ú
test_sum1dzTestUsecases.test_sum1d   óƒ   € Ý”ˆÝ˜f¥u¤{µE´KÐ&@ÑAÔAˆØ”ˆàˆØˆåÔ% b¨"Ñ-Ô-ð 	@ð 	@ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r!   c                 ó¦  ‡‡‡— t           j        Št          ‰t          j        t          j        ft
          ¬¦  «        }|j        Šd}d}t          j        ||¦  «        D ]Š|  	                     ‰‰Ž  ‰‰Ž ‰¦  «         Œ dŠˆˆfd„}ˆˆfd„}t          t          j        |d¬¦  «        ¦  «         t          t          j        |d¬¦  «        ¦  «         d S )N©Úflagsr$   )r   iô  c                  ó   •—  ‰‰ Ž  d S ©N© )r   r   s   €€r   Ú	bm_pythonz0TestUsecases.test_sum1d_pyobj.<locals>.bm_python8   s   ø€ ØˆF�DˆMˆMˆMˆMr!   c                  ó   •—  ‰‰ Ž  d S r1   r2   )r   r   s   €€r   Úbm_numbaz/TestUsecases.test_sum1d_pyobj.<locals>.bm_numba;   s   ø€ ØˆE�4ˆLˆLˆLˆLr!   gš™™™™™¹?)Úmaxsec)r   r'   r   r   r   Úforce_pyobj_flagsr   r   r   r   Úprintr   Ú	benchmark)	r   r   r)   r*   r3   r5   r   r   r   s	         @@@r   Útest_sum1d_pyobjzTestUsecases.test_sum1d_pyobj*   s	  øøø€ Ý”ˆÝ˜f¥u¤{µE´KÐ&@Ý$5ð7ñ 7ô 7ˆà”ˆàˆØˆåÔ% b¨"Ñ-Ô-ð 	@ð 	@ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?àˆð	ð 	ð 	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð 	ð 	õ 	�eŒo˜i°Ð3Ñ3Ô3Ñ4Ô4Ð4Ý�eŒo˜h¨rÐ2Ñ2Ô2Ñ3Ô3Ð3Ð3Ð3r!   c                 óê   — t           j        }t          |t          j        t          j        f¦  «        }|j        }d}d}t          j        ||¦  «        D ]}|                       ||Ž  ||Ž |¦  «         Œ d S r#   )	r   Úsum2dr   r   r   r   r   r   r   r(   s          r   Ú
test_sum2dzTestUsecases.test_sum2dA   r,   r!   c                 óê   — t           j        }t          |t          j        t          j        f¦  «        }|j        }d}d}t          j        ||¦  «        D ]}|                       ||Ž  ||Ž |¦  «         Œ d S r#   )	r   Úwhile_countr   r   r   r   r   r   r   r(   s          r   Útest_while_countzTestUsecases.test_while_countL   s„   € ÝÔ%ˆÝ˜f¥u¤{µE´KÐ&@ÑAÔAˆØ”ˆàˆØˆåÔ% b¨"Ñ-Ô-ð 	@ð 	@ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r!   c                 óN  — t           j        }t          j        t          j        dd¦  «        }t          |||f¦  «        }|j        }d}|D ]Z}t          j        |d¬¦  «        }t          j	        |¦  «        }||f}	 ||	Ž  |  
                    ||t          |	¦  «        ¬¦  «         Œ[d S )Nr   ÚA)r   r   r   r%   r   ©Údtype©Úmsg)r   Úcopy_arraysr   ÚArrayr   r   r   ÚnpÚarangeÚ
empty_likeÚassertPreciseEqualÚstr)
r   r   Ú	arraytyper   r   ÚndaÚndÚaÚbr   s
             r   Útest_copy_arrayszTestUsecases.test_copy_arraysW   s³   € ÝÔ%ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y°)Ð&<Ñ=Ô=ˆØ”ˆàˆàð 	9ð 	9ˆBÝ”	˜" GÐ,Ñ,Ô,ˆAÝ”˜aÑ Ô ˆAØ�a�4ˆDàˆE�4ˆLˆLØ×#Ò# A q­c°$©i¬iÐ#Ñ8Ô8Ð8Ð8ð	9ð 	9r!   c                 ó†  — t           j        }t          j        t          j        dd¦  «        }t          |||f¦  «        }|j        }d}|D ]v}|\  }}t          j        ||z  d¬¦  «         	                    ||¦  «        }	t          j
        |	¦  «        }
|	|
f} ||Ž  |                      |	|
t          |¦  «        ¬¦  «         Œwd S )Né   rB   ))r   r   )r   r   )rU   é   )é   é   r   rC   rE   )r   Úcopy_arrays2dr   rH   r   r   r   rI   rJ   ÚreshaperK   rL   rM   )r   r   rN   r   r   rO   rP   Úd1Úd2rQ   rR   r   s               r   Útest_copy_arrays2dzTestUsecases.test_copy_arrays2dg   sÐ   € ÝÔ'ˆÝ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y°)Ð&<Ñ=Ô=ˆØ”ˆà-ˆàð 	9ð 	9ˆBØ‰FˆB�Ý”	˜"˜r™'¨Ð1Ñ1Ô1×9Ò9¸"¸bÑAÔAˆAÝ”˜aÑ Ô ˆAØ�a�4ˆDàˆE�4ˆLˆLØ×#Ò# A q­c°$©i¬iÐ#Ñ8Ô8Ð8Ð8ð	9ð 	9r!   c                 óà   — t          |t          j        t          j        f¦  «        }|j        }d}d}t	          j        ||¦  «        D ]&\  }}||f}|                       ||Ž  ||Ž |¦  «         Œ'd S )N©r   r   r   )r   r   r   r   r   r   r   ©	r   r   r   r   r   r   ÚxÚyr   s	            r   Ú
run_ifelsezTestUsecases.run_ifelsex   s‰   € Ý˜f¥u¤{µE´KÐ&@ÑAÔAˆØ”ˆàˆØˆåÔ% b¨"Ñ-Ô-ð 	@ð 	@‰DˆAˆqØ�a�4ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r!   c                 ó  — t           j        }t          |t          j        t          j        ft
          ¬¦  «        }|j        }d}d}t          j        ||¦  «        D ]&\  }}||f}|  	                     ||Ž  ||Ž |¦  «         Œ'd S )Nr.   r_   )
r   Ústring_concatr   r   r   Úenable_pyobj_flagsr   r   r   r   r`   s	            r   Útest_string_concatzTestUsecases.test_string_concatƒ   s�   € ÝÔ'ˆÝ˜f¥u¤{µE´KÐ&@Ý$6ð8ñ 8ô 8ˆà”ˆàˆØˆåÔ% b¨"Ñ-Ô-ð 	@ð 	@‰DˆAˆqØ�a�4ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r!   c                 ól  — t           j        }t          |t          j        ft
          ¬¦  «        }|j        }d}|                       ||¦  «         ||¦  «        ¦  «         d}|                       ||¦  «         ||¦  «        ¦  «         d}|                       ||¦  «         ||¦  «        ¦  «         d S )Nr.   Ú123456Ú1Ú )r   Ú
string_lenr   r   Úpyobjectrf   r   r   ©r   r   r   r   Útest_strs        r   Útest_string_lenzTestUsecases.test_string_len�   s¾   € ÝÔ$ˆÝ˜f¥u¤~Ð&7Ý$6ð8ñ 8ô 8ˆà”ˆàˆØ×Ò˜˜ Ñ)Ô)¨5¨5°©?¬?Ñ;Ô;Ð;ØˆØ×Ò˜˜ Ñ)Ô)¨5¨5°©?¬?Ñ;Ô;Ð;ØˆØ×Ò˜˜ Ñ)Ô)¨5¨5°©?¬?Ñ;Ô;Ð;Ð;Ð;r!   c                 ó‚  — t           j        }t          |t          j        fdz  t
          ¬¦  «        }|j        }d}|                       ||dd¦  «         ||dd¦  «        ¦  «         |                       ||dd¦  «         ||dd¦  «        ¦  «         |                       ||dd¦  «         ||dd¦  «        ¦  «         d S )Né   r.   ri   r   r   rV   rU   )r   Ústring_slicingr   r   rm   rf   r   r   rn   s        r   Útest_string_slicingz TestUsecases.test_string_slicing�   s×   € ÝÔ(ˆÝ˜f¥u¤~Ð&7¸!Ñ&;Ý$6ð8ñ 8ô 8ˆà”ˆàˆØ×Ò˜˜ ¨!¨QÑ/Ô/°°°xÀÀAÑ1FÔ1FÑGÔGÐGØ×Ò˜˜ ¨!¨QÑ/Ô/°°°xÀÀAÑ1FÔ1FÑGÔGÐGØ×Ò˜˜ ¨!¨QÑ/Ô/°°°xÀÀAÑ1FÔ1FÑGÔGÐGÐGÐGr!   c                 ób  — t           j        }t          |t          j        ft
          ¬¦  «        }|j        }|                       |d¦  «         |d¦  «        ¦  «         t          |t          j        ft
          ¬¦  «        }|j        }|                       |d¦  «         |d¦  «        ¦  «         d S )Nr.   r   gš™™™™™ñ?)	r   Ústring_conversionr   r   r   rf   r   r   Úfloat32)r   r   r   r   s       r   Útest_string_conversionz#TestUsecases.test_string_conversion¨   s©   € ÝÔ+ˆå˜f¥u¤{ nÝ$6ð8ñ 8ô 8ˆà”ˆØ×Ò˜˜ ™œ E E¨!¡H¤HÑ-Ô-Ð-å˜f¥u¤}Ð&6Ý$6ð8ñ 8ô 8ˆà”ˆØ×Ò˜˜ ™œ e e¨C¡j¤jÑ1Ô1Ð1Ð1Ð1r!   c                 ó\  — dd l }t          j        }t          |t          j        t          j        t          j        ft          ¬¦  «        }|j        }d}d}|j        }|  	                     ||||¦  «         ||||¦  «        ¦  «         d}d}|j        }|  	                     ||||¦  «         ||||¦  «        ¦  «         d}d}|j
        }|  	                     ||||¦  «         ||||¦  «        ¦  «         d}d}|j
        }|  	                     ||||¦  «         ||||¦  «        ¦  «         d S )Nr   r.   Ú123Ú456)Úoperatorr   Ústring_comparisonr   r   rm   rf   r   Úeqr   Úne)r   r|   r   r   r   Ú	test_str1Ú	test_str2Úops           r   Útest_string_comparisonsz$TestUsecases.test_string_comparisonsµ   sz  € ØˆˆˆÝÔ+ˆÝ˜f¥u¤~µu´~ÅuÄ~Ð&VÝ$6ð8ñ 8ô 8ˆà”ˆàˆ	Øˆ	ØŒ[ˆØ×Ò˜˜ 	¨9°bÑ9Ô9ØˆE�)˜Y¨Ñ+Ô+ñ	-ô 	-ð 	-ð ˆ	Øˆ	ØŒ[ˆØ×Ò˜˜ 	¨9°bÑ9Ô9ØˆE�)˜Y¨Ñ+Ô+ñ	-ô 	-ð 	-ð ˆ	Øˆ	ØŒ[ˆØ×Ò˜˜ 	¨9°bÑ9Ô9ØˆE�)˜Y¨Ñ+Ô+ñ	-ô 	-ð 	-ð ˆ	Øˆ	ØŒ[ˆØ×Ò˜˜ 	¨9°bÑ9Ô9ØˆE�)˜Y¨Ñ+Ô+ñ	-ô 	-ð 	-ð 	-ð 	-r!   c                 ó°   — t           j        }t          |t          j        f¦  «        }|j        }d}|D ]"}|f}|                       ||Ž  ||Ž |¦  «         Œ#d S )N)g      à¿r   g      à?)r   Úblackscholes_cndr   r   rw   r   r   )r   r   r   r   ÚdsÚdr   s          r   Útest_blackscholes_cndz"TestUsecases.test_blackscholes_cndÔ   su   € ÝÔ*ˆÝ˜f¥u¤}Ð&6Ñ7Ô7ˆØ”ˆàˆàð 	@ð 	@ˆAØ�4ˆDØ×Ò˜V˜V T˜]¨E¨E°4¨L¸$Ñ?Ô?Ð?Ð?ð	@ð 	@r!   N)Ú__name__Ú
__module__Ú__qualname__r    r+   r:   r=   r@   rS   r]   rc   rg   rp   rt   rx   rƒ   rˆ   r2   r!   r   r   r      s   € € € € € ð
Oð 
Oð 
Oð	@ð 	@ð 	@ð4ð 4ð 4ð.	@ð 	@ð 	@ð	@ð 	@ð 	@ð9ð 9ð 9ð 9ð 9ð 9ð"	@ð 	@ð 	@ð@ð @ð @ð<ð <ð <ð	Hð 	Hð 	Hð2ð 2ð 2ð-ð -ð -ð>	@ð 	@ð 	@ð 	@ð 	@r!   r   Ú__main__)r   ÚnumpyrI   ÚunittestÚnumba.core.compilerr   r   Ú
numba.corer   r   Únumba.testsr   Únumba.tests.supportr   r	   rf   Úenable_pyobjectr7   Úforce_pyobjectr   r‰   Úmainr2   r!   r   ú<module>r–      s  ðØ Ð Ð Ð Ø Ð Ð Ð à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø  Ð  Ð  Ð  Ð  Ð  Ø -Ð -Ð -Ð -Ð -Ð -Ð -Ð -à�U‘W”WÐ Ø%)Ð Ô "à�E‘G”GÐ Ø#'Ð Ô  ðL@ð L@ð L@ð L@ð L@�8ñ L@ô L@ð L@ð^ ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr!   