ó
\K]c           @  s2  d  d l  m Z d  d l Z d  d l Z d  d l j Z d  d l m	 Z	 m
 Z
 d  d l m Z m Z m Z m Z d d l m Z m Z m Z e
 ƒ  Z e j d ƒ e
 ƒ  Z e j d ƒ d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ e  d k r.e j! ƒ  n  d S(   iÿÿÿÿ(   t   print_functionN(   t   compile_isolatedt   Flags(   t   jitt   typest   errorst   utilsi   (   t   captured_stdoutt   tagt   TestCaset   enable_pyobjectt   force_pyobjectc         C  s   t  |  ƒ d  S(   N(   t   print(   t   x(    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_value   s    c         C  s   t  |  | j ƒ d  S(   N(   R   R   (   t   arrt   i(    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_array_item   s    c         C  s   t  |  | | ƒ d  S(   N(   R   (   t   at   bt   c(    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_values   s    c           C  s   t  ƒ  d  S(   N(   R   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_empty   s    c         C  s   t  |  d d ƒ d  S(   Ns   hop!g      @(   R   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_string    s    c         C  s   t  |  | | Œ d  S(   N(   R   (   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_vararg#   s    c         C  s   t  |  d | | Œ d  S(   Ns   hop!(   R   (   R   R   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_string_vararg&   s    c           s"   ‡  f d †  } t  d t ƒ ˆ  ƒ S(   Nc             s   ˆ  S(   N(    (    (   R   (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_closure*   s    t   nopython(   R   t   True(   R   R   (    (   R   s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   make_print_closure)   s    t	   TestPrintc           B  s¹   e  Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z d „  Z e d  ƒ d „  ƒ Z e d  ƒ d „  ƒ Z d „  Z	 d „  Z
 d	 „  Z e j e j d k  d ƒ d „  ƒ Z RS(   t	   importantc           s  t  ‰  ‡  ‡ f d †  } | t j d ƒ | t j d ƒ | t j d d d d  f ƒ | t j t t f ƒ | t j d
 d! t	 d ƒ f ƒ | t j
 d# ƒ | t j d ƒ t j d d ƒ f ƒ t ˆ  t j f ƒ } | j } t ƒ  P | d ƒ t j j ƒ  } d } ˆ j | j | ƒ ƒ ˆ j | j d ƒ ƒ Wd QXˆ j ƒ  I d d d d g } ˆ j | ƒ ! | t j t j ƒ | f ƒ Wd QXWd QXt j t j d d ƒ } t ˆ  | f d t ƒ} | j } t ƒ  : | t j d d t j ƒƒ ˆ j t j j ƒ  d ƒ Wd QXd S($   s8   
        Test printing a single argument value.
        c      	     sm   t  ˆ  |  f ƒ } | j } xK | D]C } t ƒ  2 | | ƒ ˆ j t j j ƒ  t | ƒ d ƒ Wd  QXq" Wd  S(   Ns   
(   R   t   entry_pointR   t   assertEqualt   syst   stdoutt   getvaluet   str(   t   typt   valuest   crt   cfunct   val(   t   pyfunct   self(    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   check_values8   s    	

i   iÿÿÿIêŽ³ÙK›¶IqL&´dIþiê   i   i?   i{   g      ø?g      Y@g      $@t   nany              ð?t   msid   gš™™™™™ñ?s   1.10000002384s   
Ni   i   i   t   Ct   flagsi
   t   dtypes   [0 1 2 3 4 5 6 7 8 9]
(   i   iÿÿÿ(   i   iÿÿÿIêŽ³ÙK›¶IqL&´dIþl            l   {        g@Œµx¯Dy      ð?      ð?(   y      ð?      ð?(   R   R   t   int32t   int64t   uint64t   booleanR   t   Falset   float64t   floatt	   complex64t   NPTimedeltat   npt   timedelta64R   t   float32R    R   R"   R#   R$   t
   assertTruet
   startswitht   endswitht   assertNoNRTLeakt   assertRefCountt   Listt   Arrayt   enable_pyobj_flagst   arangeR!   (   R,   R-   R(   R)   t   gott   expectR   t	   arraytype(    (   R+   R,   s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_values1   s<    		%	

(	
c      
   C  sº   t  j d	 g ƒ } t  j t t d d ƒ ƒ d | ƒ} t } t d t ƒ | ƒ } xb t t | ƒ ƒ D]N } t	 ƒ  = | | | ƒ |  j
 t j j ƒ  t | | d ƒ d ƒ Wd QXqd Wd S(
   s:   
        Test printing a Numpy character sequence
        R   t   S4i   i	   R2   R   s   
N(   R   RL   (   R<   R2   t
   frombuffert	   bytearrayt   rangeR   R   R   t   lenR   R!   R"   R#   R$   R%   (   R,   R2   R   R+   R)   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_array_itemd   s    $
c         C  se   t  } t | t j f d ƒ } | j } t ƒ  . | d d d ƒ |  j t j j	 ƒ  d ƒ Wd  QXd  S(   Ni   i   i   s   1 2 3
(
   R   R   R   R3   R    R   R!   R"   R#   R$   (   R,   R+   R(   R)   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_multiple_valuess   s    	
c         C  s^   t  } t d t d t ƒ | ƒ } t ƒ  . | d d d ƒ |  j t j j ƒ  d ƒ Wd  QXd  S(   NR   t   nogili   i   i   s   1 2 3
(   R   R   R   R   R!   R"   R#   R$   (   R,   R+   R)   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_nogil|   s
    
c         C  sR   t  } t | d ƒ } | j } t ƒ  % | ƒ  |  j t j j ƒ  d ƒ Wd  QXd  S(   Ns   
(    (   R   R   R    R   R!   R"   R#   R$   (   R,   R+   R(   R)   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_emptyƒ   s    	
c         C  s[   t  } t | t j f ƒ } | j } t ƒ  ( | d ƒ |  j t j j	 ƒ  d ƒ Wd  QXd  S(   Ni   s   1 hop! 3.5
(
   R   R   R   R3   R    R   R!   R"   R#   R$   (   R,   R+   R(   R)   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_stringsŒ   s    	

c      
   C  s¬   t  } t d t ƒ | ƒ } t ƒ  . | d d	 d
 ƒ |  j t j j ƒ  d ƒ Wd  QXt } t d t ƒ | ƒ } t ƒ  . | d d d ƒ |  j t j j ƒ  d ƒ Wd  QXd  S(   NR   i   i   i   i   y              @s   1 (2, 3) 4 5j
s   1 hop! (2, 3) 4 5j
(   i   i   (   i   y              @(   i   i   (   i   y              @(	   R   R   R   R   R!   R"   R#   R$   R   (   R,   R+   R)   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_vararg•   s    

c           s|   t  d t ƒ d „  ƒ ‰  t  d t ƒ ‡  f d †  ƒ } t j d ƒ } t ƒ  ( | | ƒ |  j t j j ƒ  d ƒ Wd  QXd  S(   NR   c         S  s   t  |  ƒ d  S(   N(   R   (   R   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   foo¥   s    c           s   ˆ  |  ƒ ˆ  d ƒ d  S(   Nt   hello(    (   R   (   RX   (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   bar©   s    
i   s   [0 1 2 3 4]
hello
(	   R   R   R<   RG   R   R!   R"   R#   R$   (   R,   RZ   R   (    (   RX   s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_inner_fn_print¤   s    

c         C  sZ   t  d t ƒ d „  ƒ } |  j t j ƒ  } | ƒ  Wd  QXd } |  j | j j | ƒ d  S(   NR   c           S  s   t  d d t ƒd  S(   NR   t   flush(   R   R   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   print_kwarg¶   s    sK   Numba's print() function implementation does not support keyword arguments.(   R   R   t   assertRaisesR   t   UnsupportedErrort   assertInt	   exceptiont   msg(   R,   R]   t   raisest   expected(    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_w_kwarg_raisesµ   s
    i   i   s   needs Python 3.2+c      	   C  s`   t  d t ƒ d „  ƒ } t ƒ  9 | ƒ  |  j t j j ƒ  d j d g d ƒ d ƒ Wd QXd S(   s9    See: https://github.com/numba/numba/issues/3811
        R   c           S  s   t  d j d g d ƒ ƒ d  S(   Nt    R   i'  (   R   t   join(    (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyRX   Ä   s    Rf   R   i'  s   
N(   R   R   R   R!   R"   R#   R$   Rg   (   R,   RX   (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   test_print_no_truncationÀ   s    
(   i   i   (   t   __name__t
   __module__R   RK   RQ   RR   RT   RU   RV   RW   R[   Re   t   unittestt   skipIfR   t	   PYVERSIONRh   (    (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyR   /   s   3							t   __main__("   t
   __future__R    R"   t   numpyR<   t   numba.unittest_supportt   unittest_supportRk   t   numba.compilerR   R   t   numbaR   R   R   R   t   supportR   R   R	   RF   t   sett   force_pyobj_flagsR   R   R   R   R   R   R   R   R   Ri   t   main(    (    (    s5   lib/python2.7/site-packages/numba/tests/test_print.pyt   <module>   s*   "										œ