ó
\K]c           @  s  d  d l  m 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 d  d l m Z d  d	 l m Z d  d
 l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿ(   t   print_functionNi   (   t   TestCaset   captured_stdout(   t   njitt   types(   t   tuple_setitem(   t   to_fixed_tuplet   empty_inferred(   t   memcpy_region(   t   dump_refcount(   t   TypingErrort   TestTupleIntrinsicc           B  s   e  Z d  Z d „  Z RS(   s!   Tests for numba.unsafe.tuple
    c         C  sH  t  d „  ƒ } t j d ƒ x%t d ƒ D]} t j d d ƒ } t g  t | ƒ D] } t j d | ƒ ^ qQ ƒ } t g  t | ƒ D] } t j d d ƒ ^ q‚ ƒ } t t t | ƒ ƒ ƒ } t j | ƒ t | ƒ } t | ƒ } t	 j
 | ƒ }	 | |	 t	 j
 | ƒ <| | | | ƒ \ }
 } |  j |
 | ƒ |  j | t |	 ƒ ƒ q) Wd  S(   Nc         S  sB   |  } x/ t  | | ƒ D] \ } } t | | | ƒ } q W|  | f S(   N(   t   zipR   (   t   tupt   idxst   valst   out_tupt   it   v(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   foo   s    i{   i   i   i
   i    (   R   t   randomt   seedt   ranget   randintt   tuplet   listt   lent   shufflet   npt   asarrayt   assertEqual(   t   selfR   t   _t   nR   R   R   R   t
   expect_tupt
   expect_outt   got_tupt   got_out(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_tuple_setitem   s    11(   t   __name__t
   __module__t   __doc__R&   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyR      s   t   TestNdarrayIntrinsicc           B  s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s#   Tests for numba.unsafe.ndarray
    c           st  d ‰  t  ‡  f d †  ƒ } t j j d ƒ xœ t d ƒ D]Ž } t j j d ƒ } | | ƒ \ } } } } |  j | t | d  ƒ ƒ |  j | t | d  ƒ ƒ |  j | t | d  ƒ ƒ |  j | d
 ƒ q8 W|  j t ƒ  } | t j j d ƒ ƒ Wd  QX|  j	 d t
 | j ƒ ƒ t  d „  ƒ }	 |  j t ƒ   } |	 t j j d ƒ d ƒ Wd  QXd	 }
 |  j	 |
 t
 | j ƒ ƒ d  S(   Ni   c           sO   t  |  d d ƒ} t  |  d ƒ } t  |  ˆ  ƒ } t  |  d ƒ } | | | | f S(   Nt   lengthi   i   i    (   R   (   t   arrayt   at   bt   ct   d(   t   const(    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyR   4   s
    i{   i
   i   i   s   Not supported on array.ndim=2c         S  s   t  |  | ƒ S(   N(   R   (   R,   R+   (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   tuple_with_lengthO   s    s$   *length* argument must be a constant(    (   i   i   (   R   R   R   R   R   R   R   t   assertRaisesR
   t   assertInt   strt	   exception(   R   R   R    t   arrR-   R.   R/   R0   t   raisesR2   t	   expectmsg(    (   R1   sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_to_fixed_tuple1   s&    	c         C  sE   t  d „  ƒ } | ƒ  } t j d g d ƒ } t j j | | ƒ d  S(   Nc          S  sA   t  d ƒ }  d } x( t t |  ƒ ƒ D] } | d |  | <q% W|  S(   Ni
   gš™™™™™ñ?i   (   i
   (   R   R   R   (   t   SR-   R   (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   funcY   s
    gÍÌÌÌÌÌ@i
   (   R   R   R   t   testingt   assert_array_equal(   R   R<   t   gott   expect(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_issue_3586_variant1X   s    	c         C  sE   t  d „  ƒ } | ƒ  } t j d g d ƒ } t j j | | ƒ d  S(   Nc          S  s>   t  d ƒ }  d } x% t |  j ƒ D] } | d |  | <q" W|  S(   Ni
   gš™™™™™ñ?i   (   i
   (   R   R   t   size(   R;   R-   R   (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyR<   f   s
    gÍÌÌÌÌÌ@i
   (   R   R   R   R=   R>   (   R   R<   R?   R@   (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_issue_3586_variant2e   s    	(   R'   R(   R)   R:   RA   RC   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyR*   .   s   	'	t   TestBytesIntrinsicc           B  s   e  Z d  Z d „  Z RS(   s!   Tests for numba.unsafe.bytes
    c      
   C  s   t  d „  ƒ } t j d d t j ƒ} t j d d t j ƒ} | | d | d d ƒ d d d d d d d	 d d d g
 } t j j | | ƒ d  S(
   Nc         S  s)   t  |  j j | | j j | | d ƒ d  S(   Ni   (   R   t   ctypest   data(   t   dstt	   dst_indext   srct	   src_indext   nbytes(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyR   w   s    i
   t   dtypei   i   i   i    i   i   (   R   R   t   zerost   int8t   arangeR=   R>   (   R   R   R0   t   st   expected(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_memcpy_regionv   s    $(   R'   R(   R)   RR   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyRD   s   s   t   TestRefCountc           B  s   e  Z d  „  Z RS(   c         C  sŸ   t  d „  ƒ } t ƒ   } | ƒ  Wd  QX| j ƒ  } d } t j d  d  d … } t j j | g d ƒ } |  j | j | ƒ | ƒ |  j | j | ƒ | ƒ d  S(   Nc          S  s3   t  j d ƒ }  |  |  f } t |  ƒ t | ƒ d  S(   Ni
   (   R   t   onesR	   (   R-   R.   (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   use_dump_refcount‰   s    
s   dump refct of {}i   i   (	   R   R   t   getvalueR   t   float64t   Tuplet
   from_typesR4   t   format(   R   RU   t   streamt   outputt   patt   arytyt   tupty(    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   test_dump_refcountˆ   s    (   R'   R(   R`   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyRS   ‡   s   (   t
   __future__R    R   t   numpyR   t   supportR   R   t   numbaR   R   t   numba.unsafe.tupleR   t   numba.unsafe.ndarrayR   R   t   numba.unsafe.bytesR   t   numba.unsafe.refcountR	   t   numba.errorsR
   R   R*   RD   RS   (    (    (    sA   lib/python2.7/site-packages/numba/tests/test_unsafe_intrinsics.pyt   <module>   s   E