§
    ƒÛ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 d dl	m
Z
mZmZ d dlmZmZmZmZ  e¦   «         Zde_         e¦   «         Zde_        d„ Zd„ Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Z G d„ dee¦  «        Zedk    r ej         ¦   «          dS dS )é    N)Úcompile_isolatedÚFlags©Újit)ÚtypesÚerrorsÚutils)Úcaptured_stdoutÚtagÚTestCaseÚEnableNRTStatsMixinTc                 ó$   — t          | ¦  «         d S ©N©Úprint©Úxs    úL/granary/edev/quantum/lib/python3.11/site-packages/numba/tests/test_print.pyÚprint_valuer      s   € Ý	ˆ!�H„H€H€H€Hó    c                 ó:   — t          | |         j        ¦  «         d S r   )r   r   )ÚarrÚis     r   Úprint_array_itemr      s   € Ý	ˆ#ˆaŒ&Œ(�O„O€O€O€Or   c                 ó(   — t          | ||¦  «         d S r   r   ©ÚaÚbÚcs      r   Úprint_valuesr       s   € Ý	ˆ!ˆQ��N„N€N€N€Nr   c                  ó"   — t          ¦   «          d S r   r   © r   r   Úprint_emptyr#      s   € Ý	�G„G€G€G€Gr   c                 ó(   — t          | dd¦  «         d S )Núhop!g      @r   r   s    r   Úprint_stringr&       s   € Ý	ˆ!ˆV�SÑÔÐÐÐr   c                 ó"   — t          | |g|¢R Ž  d S r   r   r   s      r   Úprint_varargr(   #   s   € Ý	ˆ!ˆQ€O�€O€O€O€O€O€Or   c                 ó$   — t          | d|g|¢R Ž  d S )Nr%   r   r   s      r   Úprint_string_varargr*   &   s"   € Ý	ˆ!ˆV�QÐ˜ÐÐÐÐÐÐr   c                 ó@   ‡ — ˆ fd„} t          d¬¦  «        ‰ ¦  «        S )Nc                  ó   •— ‰ S r   r"   r   s   €r   Úprint_closurez)make_print_closure.<locals>.print_closure*   s   ø€ Øˆr   T©Únopythonr   )r   r-   s   ` r   Úmake_print_closurer0   )   s7   ø€ ðð ð ð ð à�3˜ÐÑÔ˜aÑ Ô Ð r   c                   óJ   — 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S )Ú	TestPrintc                 óÄ  ‡ ‡— t           Šˆˆ fd„} |t          j        d¦  «          |t          j        d¦  «          |t          j        d¦  «          |t          j        d¦  «          |t          j        ddt          d¦  «        f¦  «          |t          j        d	¦  «          |t          j	        d
¦  «        t          j        dd
¦  «        f¦  «         t          ‰t          j        f¦  «        }|j        }t          ¦   «         5   |d¦  «         t           j                             ¦   «         }d}‰                      |                     |¦  «        ¦  «         ‰                      |                     d¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   ‰                      ¦   «         5  g d¢}‰                      |¦  «        5   |t          j        t          j        ¦  «        |f¦  «         ddd¦  «         n# 1 swxY w Y   ddd¦  «         n# 1 swxY w Y   t          j        t          j        dd¦  «        }t          ‰|ft4          ¬¦  «        }|j        }t          ¦   «         5   |t          j        dt          j        ¬¦  «        ¦  «         ‰                      t           j                             ¦   «         d¦  «         ddd¦  «         dS # 1 swxY w Y   dS )z8
        Test printing a single argument value.
        c                 ó(  •— t          ‰| f¦  «        }|j        }|D ]u}t          ¦   «         5   ||¦  «         ‰                     t          j                             ¦   «         t          |¦  «        dz   ¦  «         d d d ¦  «         n# 1 swxY w Y   Œvd S )Nú
)r   Úentry_pointr
   ÚassertEqualÚsysÚstdoutÚgetvalueÚstr)ÚtypÚvaluesÚcrÚcfuncÚvalÚpyfuncÚselfs        €€r   Úcheck_valuesz1TestPrint.test_print_values.<locals>.check_values7   sæ   ø€ Ý! &¨3¨&Ñ1Ô1ˆBØ”NˆEØð Mð M�Ý$Ñ&Ô&ð Mð MØ�E˜#‘J”J�JØ×$Ò$¥S¤Z×%8Ò%8Ñ%:Ô%:½CÀ¹H¼HÀt¹OÑLÔLÐLðMð Mð Mñ Mô Mð Mð Mð Mð Mð Mð Møøøð Mð Mð Mð MøðMð Ms   ¬ABÂB
	ÂB
	)é   éÿÿÿ)rD   rE   ì   êg3/m´lüÿÿÿêg3/m´)rD   éê   rF   l   {        )TFg      ø?g@Œµx¯DÚnan)y      ð?      ð?Úmséd   gš™™™™™ñ?z1.10000002384r5   N)rD   é   é   é   rD   ÚC)Úflagsé
   ©Údtypez[0 1 2 3 4 5 6 7 8 9]
)r   r   Úint32Úint64Úuint64ÚbooleanÚfloat64ÚfloatÚ	complex64ÚNPTimedeltaÚnpÚtimedelta64r   Úfloat32r6   r
   r8   r9   r:   Ú
assertTrueÚ
startswithÚendswithÚassertNoNRTLeakÚassertRefCountÚListÚArrayÚenable_pyobj_flagsÚaranger7   )	rB   rC   r>   r?   ÚgotÚexpectr   Ú	arraytyperA   s	   `       @r   Útest_print_valueszTestPrint.test_print_values1   sÅ  øø€ õ ˆð	Mð 	Mð 	Mð 	Mð 	Mð 	Mð 	ˆ•U”[ )Ñ,Ô,Ð,Øˆ•U”[ð #Lñ 	Mô 	Mð 	Màˆ•U”\ð $Dñ 	Eô 	Eð 	Eàˆ•U”] MÑ2Ô2Ð2Øˆ•U”] S¨+µu¸U±|´|Ð$DÑEÔEÐEØˆ•U”_ gÑ.Ô.Ð.Øˆ•UÔ& tÑ,Ô,­r¬~¸cÀ4Ñ/HÔ/HÐ.JÑKÔKÐKå˜f¥u¤}Ð&6Ñ7Ô7ˆØ”ˆÝÑÔð 	0ð 	0ØˆE�#‰JŒJˆJå”*×%Ò%Ñ'Ô'ˆCØ$ˆFØ�OŠO˜CŸNšN¨6Ñ2Ô2Ñ3Ô3Ð3Ø�OŠO˜CŸLšL¨Ñ.Ô.Ñ/Ô/Ð/ð	0ð 	0ð 	0ñ 	0ô 	0ð 	0ð 	0ð 	0ð 	0ð 	0ð 	0øøøð 	0ð 	0ð 	0ð 	0ð ×!Ò!Ñ#Ô#ð 	<ð 	<Ø��ˆAØ×$Ò$ QÑ'Ô'ð <ð <Ø��UœZ­¬Ñ4Ô4°q°dÑ;Ô;Ð;ð<ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð	<ð 	<ð 	<ñ 	<ô 	<ð 	<ð 	<ð 	<ð 	<ð 	<ð 	<øøøð 	<ð 	<ð 	<ð 	<õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ý˜f y lÕ:LÐMÑMÔMˆØ”ˆÝÑÔð 	8ð 	8ØˆE•"”)˜B¥b¤hÐ/Ñ/Ô/Ñ0Ô0Ð0Ø×Ò�SœZ×0Ò0Ñ2Ô2Ø6ñ8ô 8ð 8ð	8ð 	8ð 	8ñ 	8ô 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8ð 	8øøøð 	8ð 	8ð 	8ð 	8ð 	8ð 	8s\   ÄA<FÆFÆFÆ-HÇ*G=Ç1HÇ=H	ÈHÈH	ÈHÈHÈHÉ,AKËKËKc           	      ó  — t          j        dg¦  «        }t          j        t          t	          dd¦  «        ¦  «        |¬¦  «        }t
          } t          d¬¦  «        |¦  «        }t	          t          |¦  «        ¦  «        D ]‚}t          ¦   «         5   |||¦  «         |  	                    t          j                             ¦   «         t          ||         d         ¦  «        dz   ¦  «         d	d	d	¦  «         n# 1 swxY w Y   Œƒd	S )
z:
        Test printing a Numpy character sequence
        )r   ÚS4rD   é	   rQ   Tr.   r   r5   N)r[   rR   Ú
frombufferÚ	bytearrayÚranger   r   Úlenr
   r7   r8   r9   r:   r;   )rB   rR   r   rA   r?   r   s         r   Útest_print_array_itemzTestPrint.test_print_array_itemc   s<  € õ ”˜+˜Ñ'Ô'ˆÝŒm�I¥e¨A¨q¡k¤kÑ2Ô2¸%Ð@Ñ@Ô@ˆå!ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝ•s˜3‘x”x‘”ð 	Qð 	QˆAÝ Ñ"Ô"ð Qð QØ��c˜1‘”�Ø× Ò ¥¤×!4Ò!4Ñ!6Ô!6½¸CÀ¼FÀ3¼KÑ8HÔ8HÈ4Ñ8OÑPÔPÐPðQð Qð Qñ Qô Qð Qð Qð Qð Qð Qð Qøøøð Qð Qð Qð Qøð	Qð 	Qs   ÂAC:Ã:C>	ÄC>	c                 ó*  — t           }t          |t          j        fdz  ¦  «        }|j        }t          ¦   «         5   |ddd¦  «         |                      t          j         	                    ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrK   rD   é   ú1 2 3
)
r    r   r   rS   r6   r
   r7   r8   r9   r:   ©rB   rA   r>   r?   s       r   Útest_print_multiple_valuesz$TestPrint.test_print_multiple_valuesq   sË   € ÝˆÝ˜f¥u¤{ n°qÑ&8Ñ9Ô9ˆØ”ˆÝÑÔð 	?ð 	?ØˆE�!�Q˜‰NŒNˆNØ×Ò�SœZ×0Ò0Ñ2Ô2°IÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   »A BÂBÂBc                 ó  — t           } t          dd¬¦  «        |¦  «        }t          ¦   «         5   |ddd¦  «         |                      t          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NT)r/   ÚnogilrD   rt   rK   ru   )r    r   r
   r7   r8   r9   r:   ©rB   rA   r?   s      r   Útest_print_nogilzTestPrint.test_print_nogily   sÈ   € ÝˆØ.•˜T¨Ð.Ñ.Ô.¨vÑ6Ô6ˆÝÑÔð 	?ð 	?ØˆE�!�Q˜‰NŒNˆNØ×Ò�SœZ×0Ò0Ñ2Ô2°IÑ>Ô>Ð>ð	?ð 	?ð 	?ñ 	?ô 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?ð 	?øøøð 	?ð 	?ð 	?ð 	?ð 	?ð 	?s   °A A=Á=BÂBc                 ó  — t           }t          |d¦  «        }|j        }t          ¦   «         5   |¦   «          |                      t
          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr"   r5   )r#   r   r6   r
   r7   r8   r9   r:   rv   s       r   Útest_print_emptyzTestPrint.test_print_empty€   s¼   € ÝˆÝ˜f bÑ)Ô)ˆØ”ˆÝÑÔð 	:ð 	:ØˆE‰GŒGˆGØ×Ò�SœZ×0Ò0Ñ2Ô2°DÑ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   ­=A7Á7A;Á>A;c                 ó   — t           }t          |t          j        f¦  «        }|j        }t          ¦   «         5   |d¦  «         |                      t          j         	                    ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NrD   z1 hop! 3.5
)
r&   r   r   rS   r6   r
   r7   r8   r9   r:   rv   s       r   Útest_print_stringszTestPrint.test_print_stringsˆ   sÖ   € ÝˆÝ˜f¥u¤{ nÑ5Ô5ˆØ”ˆÝÑÔð 	Dð 	DØˆE�!‰HŒHˆHØ×Ò�SœZ×0Ò0Ñ2Ô2°NÑCÔCÐCð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dð 	Dð 	Ds   ¸>BÂBÂ
Bc                 ó  — t           } t          d¬¦  «        |¦  «        }t          ¦   «         5   |ddd¦  «         |                      t          j                             ¦   «         d¦  «         d d d ¦  «         n# 1 swxY w Y   t          } t          d¬¦  «        |¦  «        }t          ¦   «         5   |ddd¦  «         |                      t          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTr.   rD   )rt   rK   )é   y              @z1 (2, 3) 4 5j
z1 hop! (2, 3) 4 5j
)r(   r   r
   r7   r8   r9   r:   r*   rz   s      r   Útest_print_varargzTestPrint.test_print_vararg�   s¬  € õ ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝÑÔð 	Gð 	GØˆE�!�V˜WÑ%Ô%Ð%Ø×Ò�SœZ×0Ò0Ñ2Ô2Ð4EÑFÔFÐFð	Gð 	Gð 	Gñ 	Gô 	Gð 	Gð 	Gð 	Gð 	Gð 	Gð 	Gøøøð 	Gð 	Gð 	Gð 	Gõ %ˆØ"•˜TÐ"Ñ"Ô" 6Ñ*Ô*ˆÝÑÔð 	Lð 	LØˆE�!�V˜WÑ%Ô%Ð%Ø×Ò�SœZ×0Ò0Ñ2Ô2Ð4JÑKÔKÐKð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð 	Lð 	Ls%   ¯A A;Á;A?ÂA?Â4A DÄDÄDc                 ó`  ‡— t          d¬¦  «        d„ ¦   «         Št          d¬¦  «        ˆfd„¦   «         }t          j        d¦  «        }t          ¦   «         5   ||¦  «         |                      t
          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )NTr.   c                 ó$   — t          | ¦  «         d S r   r   r   s    r   Úfooz*TestPrint.test_inner_fn_print.<locals>.foo    s   € å�!‰HŒHˆHˆHˆHr   c                 ó4   •—  ‰| ¦  «          ‰d¦  «         d S )NÚhellor"   )r   r…   s    €r   Úbarz*TestPrint.test_inner_fn_print.<locals>.bar¤   s!   ø€ àˆC�‰FŒFˆFØˆC�‰LŒLˆLˆLˆLr   rL   z[0 1 2 3 4]
hello
)r   r[   rf   r
   r7   r8   r9   r:   )rB   rˆ   r   r…   s      @r   Útest_inner_fn_printzTestPrint.test_inner_fn_printŸ   s  ø€ Ý	�dÐ	Ñ	Ô	ð	ð 	ñ 
Ô	ð	õ 
�dÐ	Ñ	Ô	ð	ð 	ð 	ð 	ñ 
Ô	ð	õ ŒI�a‰LŒLˆÝÑÔð 	Lð 	LØˆC�‰FŒFˆFØ×Ò�SœZ×0Ò0Ñ2Ô2Ð4JÑKÔKÐKð	Lð 	Lð 	Lñ 	Lô 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Lð 	Løøøð 	Lð 	Lð 	Lð 	Lð 	Lð 	Ls   Á>B#Â#B'Â*B'c                 óþ   — t          d¬¦  «        d„ ¦   «         }|                      t          j        ¦  «        5 } |¦   «          d d d ¦  «         n# 1 swxY w Y   d}|                      |j        j        |¦  «         d S )NTr.   c                  ó(   — t          dd¬¦  «         d S )Nr   T)Úflushr   r"   r   r   Úprint_kwargz8TestPrint.test_print_w_kwarg_raises.<locals>.print_kwarg±   s   € å�#˜TÐ"Ñ"Ô"Ð"Ð"Ð"r   zKNumba's print() function implementation does not support keyword arguments.)r   ÚassertRaisesr   ÚUnsupportedErrorÚassertInÚ	exceptionÚmsg)rB   r�   ÚraisesÚexpecteds       r   Útest_print_w_kwarg_raisesz#TestPrint.test_print_w_kwarg_raises°   sÄ   € Ý	�dÐ	Ñ	Ô	ð	#ð 	#ñ 
Ô	ð	#ð ×Ò�vÔ6Ñ7Ô7ð 	¸6ØˆK‰MŒMˆMð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð)ˆà�Š�fÔ&Ô*¨HÑ5Ô5Ð5Ð5Ð5s   ¹AÁAÁAc                 ó2  — t          d¬¦  «        d„ ¦   «         }t          ¦   «         5   |¦   «          |                      t          j                             ¦   «         d                     dgdz  ¦  «        dz   ¦  «         ddd¦  «         dS # 1 swxY w Y   dS )	z9 See: https://github.com/numba/numba/issues/3811
        Tr.   c                  óR   — t          d                     dgdz  ¦  «        ¦  «         d S )NÚ r   é'  )r   Újoinr"   r   r   r…   z/TestPrint.test_print_no_truncation.<locals>.foo¾   s(   € å�"—'’'˜3˜% %™-Ñ(Ô(Ñ)Ô)Ð)Ð)Ð)r   r˜   r   r™   r5   N)r   r
   r7   r8   r9   r:   rš   )rB   r…   s     r   Útest_print_no_truncationz"TestPrint.test_print_no_truncation»   só   € õ 
�dÐ	Ñ	Ô	ð	*ð 	*ñ 
Ô	ð	*åÑÔð 	Sð 	SØˆC‰EŒEˆEØ×Ò�SœZ×0Ò0Ñ2Ô2°B·G²G¸S¸EÀE¹MÑ4JÔ4JÈTÑ4QÑRÔRÐRð	Sð 	Sð 	Sñ 	Sô 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Sð 	Søøøð 	Sð 	Sð 	Sð 	Sð 	Sð 	Ss   ¨ABÂBÂBN)Ú__name__Ú
__module__Ú__qualname__rj   rr   rw   r{   r}   r   r‚   r‰   r•   r›   r"   r   r   r2   r2   /   s¼   € € € € € ð08ð 08ð 08ðdQð Qð Qð?ð ?ð ?ð?ð ?ð ?ð:ð :ð :ðDð Dð DðLð Lð LðLð Lð Lð"	6ð 	6ð 	6ðSð Sð Sð Sð Sr   r2   Ú__main__)!r8   Únumpyr[   ÚunittestÚnumba.core.compilerr   r   Únumbar   Ú
numba.corer   r   r	   Únumba.tests.supportr
   r   r   r   re   Úenable_pyobjectÚforce_pyobj_flagsÚforce_pyobjectr   r   r    r#   r&   r(   r*   r0   r2   rœ   Úmainr"   r   r   ú<module>rª      s¯  ðØ 
€
€
€
à Ð Ð Ð à €€€Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +ð6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð 6ð �U‘W”WÐ Ø%)Ð Ô "à�E‘G”GÐ Ø#'Ð Ô  ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð!ð !ð !ðTSð TSð TSð TSð TSÐ# Xñ TSô TSð TSðl ˆzÒÐØ€H„M�O„O€O€O€Oð Ðr   