§
    2@Äj½  ã                   óÒ   — 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	m
Z
 d dlmZmZmZ 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)ÚjitÚnjit)ÚtypesÚerrorsÚutils)Úcaptured_stdoutÚTestCaseÚEnableNRTStatsMixinc                 ó$   — t          | ¦  «         d S ©N©Úprint©Úxs    úGC:\Projects\Historical\venv\Lib\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©Únopython)r   )r   r*   s   ` r   Úmake_print_closurer-       s7   ø€ ðð ð ð ð à�3˜ÐÑÔ˜aÑ Ô Ð r   c                   ó‚   — e Zd Zd„ Zd„ Z ej        d¦  «        d„ ¦   «         Zd„ Zd„ Z	d„ Z
d„ Zd	„ Zd
„ Zd„ Zd„ Zd„ ZdS )Ú	TestPrintc                 ó2  —  t          |f¦  «        t          ¦  «        }|D ]u}t          ¦   «         5   ||¦  «         |                      t          j                             ¦   «         t          |¦  «        dz   ¦  «         d d d ¦  «         n# 1 swxY w Y   Œvd S )Nú
)r   r   r   ÚassertEqualÚsysÚstdoutÚgetvalueÚstr)ÚselfÚtypÚvaluesÚcfuncÚvals        r   Úcheck_valueszTestPrint.check_values(   sä   € Ø•�c�V‘”�[Ñ)Ô)ˆØð 	Ið 	IˆCÝ Ñ"Ô"ð Ið IØ��c‘
”
�
Ø× Ò ¥¤×!4Ò!4Ñ!6Ô!6½¸C¹¼À4¹ÑHÔHÐHðIð Ið Iñ Iô Ið Ið Ið Ið Ið Ið Iøøøð Ið Ið Ið Iøð	Ið 	Is   ±ABÂB	ÂB	c                 ó0  — |                       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¦  «        t          ¦  «        }t          ¦   «         5   |d¦  «         t           j                             ¦   «         }d}|                      |                     |¦  «        ¦  «         |                      |                     d¦  «        ¦  «         ddd¦  «         n# 1 swxY w Y   t          j        t          j        dd¦  «        } t          |f¦  «        t          ¦  «        }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.
        )é   éÿÿÿ)r>   r?   ì   êg3/m´lüÿÿÿêg3/m´)r>   éê   r@   l   {        )TFg      ø?g@Œµx¯DÚnan)y      ð?      ð?Úmséd   gš™™™™™ñ?z1.10000002384r1   Nr>   ÚCé
   ©Údtypez[0 1 2 3 4 5 6 7 8 9]
)r<   r   Úint32Úint64Úuint64ÚbooleanÚfloat64ÚfloatÚ	complex64ÚNPTimedeltaÚnpÚtimedelta64r   Úfloat32r   r   r3   r4   r5   Ú
assertTrueÚ
startswithÚendswithÚArrayÚaranger2   )r7   r:   ÚgotÚexpectÚ	arraytypes        r   Útest_print_valueszTestPrint.test_print_values/   s³  € ð
 	×Ò�%œ+ yÑ1Ô1Ð1Ø×Ò�%œ+ð (=ñ 	>ô 	>ð 	>ð 	×Ò�%œ,ð )Jñ 	Kô 	Kð 	Kà×Ò�%œ-¨Ñ7Ô7Ð7Ø×Ò�%œ-¨#¨{½EÀ%¹L¼LÐ)IÑJÔJÐJØ×Ò�%œ/¨7Ñ3Ô3Ð3Ø×Ò�%Ô+¨DÑ1Ô1µB´NÀ3ÈÑ4MÔ4MÐ3OÑPÔPÐPà&••e”mÐ%Ñ&Ô&¥{Ñ3Ô3ˆÝÑÔð 	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õ ”K¥¤¨Q°Ñ4Ô4ˆ	Ø"•�i�\Ñ"Ô"¥;Ñ/Ô/ˆÝÑÔð 	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<GÇGÇGÈ"AJÊJÊJz,Issue with intermittent NRT leak, see #9355.c                 ó,  — |                       ¦   «         5  g d¢}|                      |¦  «        5  |                      t          j        t          j        d¬¦  «        |f¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )N)r>   é   é   é   T)Ú	reflected)ÚassertNoNRTLeakÚassertRefCountr<   r   ÚListÚintp)r7   r   s     r   Útest_print_nrt_typezTestPrint.test_print_nrt_typeP   s:  € ð ×!Ò!Ñ#Ô#ð 	Pð 	PØ��ˆAØ×$Ò$ QÑ'Ô'ð Pð PØ×!Ò!¥%¤*­U¬ZÀ4Ð"HÑ"HÔ"HÈ1È$ÑOÔOÐOðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð	Pð 	Pð 	Pñ 	Pô 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pð 	Pøøøð 	Pð 	Pð 	Pð 	Pð 	Pð 	Ps4   •B	¯6A1Á%B	Á1A5	Á5B	Á8A5	Á9B	Â	BÂB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   ÚS4r>   é	   rG   Tr+   r   r1   N)rQ   rH   Ú
frombufferÚ	bytearrayÚranger   r   Úlenr   r2   r3   r4   r5   r6   )r7   rH   r   Úpyfuncr:   r   s         r   Útest_print_array_itemzTestPrint.test_print_array_item]   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  ¦  «        |¦  «        }t	          ¦   «         5   |ddd¦  «         |                      t          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr^   r>   é   ú1 2 3
)	r   r   r   re   r   r2   r3   r4   r5   ©r7   rn   r:   s      r   Útest_print_multiple_valuesz$TestPrint.test_print_multiple_valuesk   sÌ   € ÝˆØ'••e”j�] QÑ&Ñ'Ô'¨Ñ/Ô/ˆÝÑÔð 	?ð 	?Øˆ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,   Únogilr>   rq   r^   rr   )r   r   r   r2   r3   r4   r5   rs   s      r   Útest_print_nogilzTestPrint.test_print_nogilr   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¦  «        |¦  «        }t          ¦   «         5   |¦   «          |                      t          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr   r1   )r    r   r   r2   r3   r4   r5   rs   s      r   Útest_print_emptyzTestPrint.test_print_emptyy   s»   € ÝˆØ•�R‘	”	˜&Ñ!Ô!ˆÝÑÔð 	:ð 	:ØˆE‰GŒGˆGØ×Ò�SœZ×0Ò0Ñ2Ô2°DÑ9Ô9Ð9ð	:ð 	:ð 	:ñ 	:ô 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:ð 	:øøøð 	:ð 	:ð 	:ð 	:ð 	:ð 	:s   ®=A8Á8A<Á?A<c                 ó"  — t           } t          t          j        f¦  «        |¦  «        }t	          ¦   «         5   |d¦  «         |                      t          j                             ¦   «         d¦  «         d d d ¦  «         d S # 1 swxY w Y   d S )Nr>   z1 hop! 3.5
)	r#   r   r   re   r   r2   r3   r4   r5   rs   s      r   Útest_print_stringszTestPrint.test_print_strings€   s×   € ÝˆØ#••e”j�]Ñ#Ô# FÑ+Ô+ˆÝÑÔð 	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+   r>   )rq   r^   )é   y              @z1 (2, 3) 4 5j
z1 hop! (2, 3) 4 5j
)r%   r   r   r2   r3   r4   r5   r'   rs   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   r_   z[0 1 2 3 4]
hello
)r   rQ   rX   r   r2   r3   r4   r5   )r7   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)r7   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•   r1   N)r   r   r2   r3   r4   r5   r–   )r7   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__r<   r\   ÚunittestÚskiprf   ro   rt   rw   ry   r{   r~   r…   r‘   r—   r   r   r   r/   r/   &   sû   € € € € € ðIð Ið Ið8ð 8ð 8ðB €X„]ÐAÑBÔBð
Pð 
Pñ CÔBð
PðQð Qð Qð?ð ?ð ?ð?ð ?ð ?ð:ð :ð :ðDð Dð DðLð Lð LðLð Lð Lð"	6ð 	6ð 	6ðSð Sð Sð Sð Sr   r/   Ú__main__)r3   ÚnumpyrQ   r›   Únumbar   r   Ú
numba.corer   r   r   Únumba.tests.supportr   r	   r
   r   r   r   r    r#   r%   r'   r-   r/   r˜   Úmainr   r   r   ú<module>r£      sS  ðØ 
€
€
€
à Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ð +Ø PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ PÐ Pðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ðð ð ð!ð !ð !ð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   