
    xKg                          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j2                          yy)    N)jitnjit)typeserrorsutils)captured_stdoutTestCaseEnableNRTStatsMixinc                     t        |        y Nprintxs    Z/home/alanp/www/video.onchill/myenv/lib/python3.12/site-packages/numba/tests/test_print.pyprint_valuer      s	    	!H    c                 4    t        | |   j                         y r   )r   r   )arris     r   print_array_itemr      s    	#a&((Or   c                     t        | ||       y r   r   abcs      r   print_valuesr      s    	!QNr   c                      t                y r   r    r   r   print_emptyr       s    	Gr   c                     t        | dd       y )Nhop!g      @r   r   s    r   print_stringr#      s    	!VSr   c                     t        | |g|  y r   r   r   s      r   print_varargr%      s    	!QOOr   c                      t        | d|g|  y )Nr"   r   r   s      r   print_string_varargr'      s    	!VQr   c                 2      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-       s    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y)	TestPrintc                      t        |f      t              }|D ]W  }t               5   ||       | j                  t        j
                  j                         t        |      dz          d d d        Y y # 1 sw Y   dxY w)N
)r   r   r   assertEqualsysstdoutgetvaluestr)selftypvaluescfuncvals        r   check_valueszTestPrint.check_values(   s_    cV[)C "c
  !4!4!6C4H #" ""s   AA44A=	c                    | j                  t        j                  d       | j                  t        j                  d       | j                  t        j                  d       | j                  t        j
                  d       | j                  t        j                  ddt        d      f       | j                  t        j                  d       | j                  t        j                  d	      t        j                  d
d	      f        t        t        j                  f      t              }t               5   |d       t         j"                  j%                         }d}| j'                  |j)                  |             | j'                  |j+                  d             ddd       t        j,                  t        j                  dd      } t        |f      t              }t               5   |t        j.                  dt        j                               | j1                  t         j"                  j%                         d       ddd       y# 1 sw Y   xY w# 1 sw Y   yxY w)z8
        Test printing a single argument value.
        )   )r>   r?      g3/mlg3/m)r>      r@   l   {        )TFg      ?g@xDnan)y      ?      ?msd   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%++ (= 	> 	%,, )J 	K%--7%--#{E%L)IJ%//73%++D1BNN34M3OP&emm%&{3#J**%%'C$FOOCNN623OOCLL./  KKQ4	"i\";/"))Bbhh/0SZZ00268   s   5A)I+AIII#z,Issue with intermittent NRT leak, see #9355.c                    | j                         5  g d}| j                  |      5  | j                  t        j                  t        j
                  d      |f       d d d        d d d        y # 1 sw Y   xY w# 1 sw Y   y xY w)N)r>            T)	reflected)assertNoNRTLeakassertRefCountr<   r   Listintp)r7   r   s     r   test_print_nrt_typezTestPrint.test_print_nrt_typeP   sa     !!#A$$Q'!!%**UZZ4"H1$O ( $#'' $#s"   A;7A/A;/A8	4A;;Bc           	         t        j                  dg      }t        j                  t        t	        dd            |      }t
        } t        d      |      }t	        t        |            D ]^  }t               5   |||       | j                  t        j                  j                         t        ||   d         dz          d	d	d	       ` y	# 1 sw Y   kxY w)
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     +'mmIeAqk2%@!"T"6*s3xA "c1  !4!4!6CF3K8H48OP #" !""s   :A
CC	c                    t         } t        t        j                  fdz        |      }t	               5   |ddd       | j                  t        j                  j                         d       d d d        y # 1 sw Y   y xY w)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]    'ejj]Q&'/!QNSZZ002I> s   9A66A?c                     t         } t        dd      |      }t               5   |ddd       | j                  t        j
                  j                         d       d d d        y # 1 sw Y   y xY w)NT)r,   nogilr>   rq   r^   rr   )r   r   r   r2   r3   r4   r5   rs   s      r   test_print_nogilzTestPrint.test_print_nogilr   sT    .T.v6!QNSZZ002I> s   9A&&A/c                     t         } t        d      |      }t               5   |        | j                  t        j
                  j                         d       d d d        y # 1 sw Y   y xY w)Nr   r1   )r    r   r   r2   r3   r4   r5   rs   s      r   test_print_emptyzTestPrint.test_print_emptyy   sK    R	&!GSZZ002D9 s   6A!!A*c                     t         } t        t        j                  f      |      }t	               5   |d       | j                  t        j                  j                         d       d d d        y # 1 sw Y   y xY w)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   sT    #ejj]#F+!HSZZ002NC s   7A11A:c                    t         } t        d      |      }t               5   |ddd       | j                  t        j
                  j                         d       d d d        t        } t        d      |      }t               5   |ddd       | j                  t        j
                  j                         d       d d d        y # 1 sw Y   mxY w# 1 sw Y   y xY w)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*!VW%SZZ0024EF  %"T"6*!VW%SZZ0024JK   s   9C9CCCc                 &   t        d      d        t        d      fd       }t        j                  d      }t               5   ||       | j	                  t
        j                  j                         d       d d d        y # 1 sw Y   y xY w)NTr+   c                     t        |        y r   r   r   s    r   fooz*TestPrint.test_inner_fn_print.<locals>.foo   s	    !Hr   c                 &     |         d       y )Nhellor   )r   r   s    r   barz*TestPrint.test_inner_fn_print.<locals>.bar   s    F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   sy    	d		 
	 
d		 
	 IIaLFSZZ0024JK s   7BBc                     t        d      d        }| j                  t        j                        5 } |        d d d        d}| j	                  j
                  j                  |       y # 1 sw Y   2xY w)NTr+   c                      t        dd       y )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   se    	d		# 
	# v6676M 8)f&&**H5	 87s   A++A4c                     t        d      d        }t               5   |        | j                  t        j                  j                         dj                  dgdz        dz          ddd       y# 1 sw Y   yxY w)	z9 See: https://github.com/numba/numba/issues/3811
        Tr+   c                  @    t        dj                  dgdz               y )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   sc     
d		* 
	*ESZZ002BGGSEEM4JT4QR s   AA22A;N)__name__
__module____qualname__r<   r\   unittestskiprf   ro   rt   rw   ry   r{   r~   r   r   r   r   r   r   r/   r/   &   sc    I8B X]]AB
P C
PQ??:DLL"	6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!TS#X TSl zHMMO r   