ó
\K]c           @  sČ   d  d l  m Z d  d l j Z d  d l Z d  d l Z d  d l m	 Z	 d e j
 f d     YZ d e j
 f d     YZ d e j
 f d	     YZ d
 e j
 f d     YZ e d k rÄ e j   n  d S(   i˙˙˙˙(   t   print_functionN(   t   Arrayt   TestSlicingc           B  sb   e  Z d    Z d   Z d   Z d   Z d   Z d   Z d   Z d   Z	 d   Z
 d	   Z RS(
   c         C  sv   d } xi | D]a } | j  | | j  | k r | j d k rN | j d k rN qn |  j d | j  | j  f  q q Wd  S(   Nt   C_CONTIGUOUSt   F_CONTIGUOUSi    s*   contiguous flag mismatch:
got=%s
expect=%s(   R   R   (   t   flagst   sizet   fail(   t   selft   arrt   nparrt   attrst   attr(    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   assertSameContig
   s    	c         C  sŽ   t  j d  } t j d | j | j | j j  } |  j | |  d } x^ | D]V } | | } | | } |  j | |  |  j	 | j | j  |  j	 | j | j  qP Wd  S(   Ni   i    iţ˙˙˙i˙˙˙˙i   i   (   iţ˙˙˙i˙˙˙˙i    i   i   (
   t   npt   emptyR   t	   from_desct   shapet   stridest   dtypet   itemsizeR   t   assertEqual(   R   R
   R	   t   xxt   xt   expectt   got(    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice0_1d   s    

c         C  s   t  j d  } t j d | j | j | j j  } d } x^ | D]V } | |  } | |  } |  j | |  |  j	 | j | j  |  j	 | j | j  q@ Wd  S(   Ni   i    iţ˙˙˙i˙˙˙˙i   i   (   iţ˙˙˙i˙˙˙˙i    i   i   (
   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice1_1d%   s    

c         C  sś   t  j d  } t j d | j | j | j j  } d } xv t j	 | |  D]b \ } } | | | !} | | | !} |  j
 | |  |  j | j | j  |  j | j | j  qL Wd  S(   Ni   i    iţ˙˙˙i˙˙˙˙i   i   (   iţ˙˙˙i˙˙˙˙i    i   i   (   R   R   R   R   R   R   R   R   t	   itertoolst   productR   R   (   R   R
   R	   R   R   t   yR   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice2_1d1   s    c         C  s5  t  j d  } t j d | j | j | j j  } d } x^ | D]V } | | } | | } |  j | |  |  j	 | j | j  |  j	 | j | j  q@ Wx t
 j | |  D] \ } } | | d   | d   f } | | d   | d   f } |  j | |  |  j	 | j | j  |  j	 | j | j  q­ Wd  S(	   Ni   i   i    iţ˙˙˙i   i   (   i   i   (   iţ˙˙˙i    i   i   (   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   R   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice0_2d?   s     

c         C  s5  t  j d  } t j d | j | j | j j  } d } x^ | D]V } | |  } | |  } |  j | j | j  |  j | j | j  |  j	 | |  q@ Wx t
 j | |  D] \ } } | d  |  d  |  f } | d  |  d  |  f } |  j | j | j  |  j | j | j  |  j	 | |  q­ Wd  S(   Ni   i   i    iţ˙˙˙i   (   i   i   (   iţ˙˙˙i    i   (   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   R   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice1_2dR   s     

c         C  sw  t  j d  } t j d | j | j | j j  } d } x  t j	 | | | |  D] \ } } } } | | |  | |  f } | | |  | |  f }	 |  j
 |	 |  |  j |	 j | j  |  j |	 j | j  qR Wx t j	 | |  D] \ }
 } | | |  | |  f } | | |  | |  f }	 |  j
 |	 |  |  j |	 j | j  |  j |	 j | j  qď Wd  S(   Ni   i   i    iţ˙˙˙i   (   i   i   (   iţ˙˙˙i    i   (   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   t   st   tt   ut   vR   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_slice2_2de   s     +c         C  s°   t  j d  } t j d | j | j | j j  } d } xp | D]h } | d  d  |  } | d  d  |  } |  j | |  |  j	 | j | j  |  j	 | j | j  q@ Wd  S(   Ni   i    iţ˙˙˙i˙˙˙˙i   i   (   iţ˙˙˙i˙˙˙˙i   i   (
   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_strided_1dz   s    c         C  sŕ   t  j d  } t j d | j | j | j j  } d	 } x  t j	 | |  D] \ } } | d  d  |  d  d  |  f } | d  d  |  d  d  |  f } |  j
 | |  |  j | j | j  |  j | j | j  qL Wd  S(
   Ni   i   i    iţ˙˙˙i˙˙˙˙i   i   (   i   i   (   iţ˙˙˙i˙˙˙˙i   i   (   R   R   R   R   R   R   R   R   R   R   R   R   (   R   R
   R	   R   t   at   bR   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_strided_2d   s    ""c   	      C  sţ   t  j d	  } t j d | j | j | j j  } d
 } xž t j	 | | |  D]§ \ } } } | d  d  |  d  d  |  d  d  |  f } | d  d  |  d  d  |  d  d  |  f } |  j
 | |  |  j | j | j  |  j | j | j  qO Wd  S(   Ni   i   i   i    iţ˙˙˙i˙˙˙˙i   i   (   i   i   i   (   iţ˙˙˙i˙˙˙˙i   i   (   R   R   R   R   R   R   R   R   R   R   R   R   (	   R   R
   R	   R   R(   R)   t   cR   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_strided_3d   s    %..(   t   __name__t
   __module__R   R   R   R   R    R!   R&   R'   R*   R,   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyR      s   									t   TestReshapec           B  s5   e  Z d    Z d   Z d   Z d   Z d   Z RS(   c         C  s   t  j d  } t j d | j | j | j j  } | j d d  } | j d d  d } |  j	 | j | j  |  j	 | j | j  d  S(   Ni   i   i    (   i   i   (
   R   R   R   R   R   R   R   R   t   reshapeR   (   R   R
   R	   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_reshape_2d2d    s    c         C  s   t  j d  } t j d | j | j | j j  } | j d  } | j d  d } |  j	 | j | j  |  j	 | j | j  d  S(   Ni   i   i    (   i   i   i   i   (
   R   R   R   R   R   R   R   R   R0   R   (   R   R
   R	   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_reshape_2d1dŠ   s    c         C  s   t  j d  } t j d | j | j | j j  } | j d d d  } | j d d d  d } |  j	 | j | j  |  j	 | j | j  d  S(   Ni   i   i   i    (   i   i   i   (
   R   R   R   R   R   R   R   R   R0   R   (   R   R
   R	   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_reshape_3d3d˛   s    c         C  s   t  j d  } t j d | j | j | j j  } | j d d  } | j d d  d } |  j	 | j | j  |  j	 | j | j  d  S(   Ni   i   i   i    (   i   i   i   i   i   (
   R   R   R   R   R   R   R   R   R0   R   (   R   R
   R	   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_reshape_3d2dť   s    c         C  s   t  j d  } t j d | j | j | j j  } | j d  } | j d	  d } |  j	 | j | j  |  j	 | j | j  d  S(
   Ni   i   i   i    (   i   i   i   i   i<   i   i<   (
   R   R   R   R   R   R   R   R   R0   R   (   R   R
   R	   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_reshape_3d1dÄ   s    (   R-   R.   R1   R2   R3   R4   R5   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyR/      s
   								t   TestSqueezec           B  s   e  Z d    Z d   Z RS(   c      	     sż   t  j d  } t j d | j | j | j j  }   f d   } | | |  | | j   d | j    xL d d d d	 d
 d d f D]/ } | | j d |  d | j d |   q Wd  S(   Ni   i   i   i   i    c           s0     j  |  j | j    j  |  j | j  d  S(   N(   R   R   R   (   t   arr1t   arr2(   R   (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   _assert_equal_shape_stridesÔ   s    t   axis(   i   i   i   i   i   i   (   i    i   (   i    i   (   i   i   (   i    i   i   (	   R   R   R   R   R   R   R   R   t   squeeze(   R   R
   R	   R9   R:   (    (   R   s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_squeezeĎ   s    "c      	   C  s   t  j d  } t j d | j | j | j j  } |  j t	   | j
 d d  Wd  QX|  j t	   | j
 d d  Wd  QXd  S(	   Ni   i   i   i   i    R:   (   i   i   i   i   i   i   (   i   i   (   R   R   R   R   R   R   R   R   t   assertRaisest
   ValueErrorR;   (   R   R
   R	   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_squeeze_invalid_axisŢ   s    (   R-   R.   R<   R?   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyR6   Î   s   	t
   TestExtentc           B  s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C  sg   t  j d  } t j d | j | j | j j  } | j \ } } |  j	 | | | j
 | j j  d  S(   Ni   i    (   R   R   R   R   R   R   R   R   t   extentR   R   (   R   R
   R	   R"   t   e(    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_extent_1dę   s
    c         C  sg   t  j d  } t j d | j | j | j j  } | j \ } } |  j	 | | | j
 | j j  d  S(   Ni   i   i    (   i   i   (   R   R   R   R   R   R   R   R   RA   R   R   (   R   R
   R	   R"   RB   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_extent_2dń   s
    c         C  s_   t  j d  } t j d | j | j | j j  } t | j	    \ } |  j
 | | j  d  S(   Ni   i    (   R   R   R   R   R   R   R   R   t   listt   iter_contiguous_extentR   RA   (   R   R
   R	   t   ext(    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_extent_iter_1dř   s
    c         C  s   t  j d  } t j d | j | j | j j  } t | j	    \ } |  j
 | | j  |  j
 t t | d  d  d  j	     d  d  S(   Ni   i   i    i   (   i   i   (   R   R   R   R   R   R   R   R   RE   RF   R   RA   t   len(   R   R
   R	   RG   (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   test_extent_iter_2d˙   s    (   R-   R.   RC   RD   RH   RJ   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyR@   é   s   			t   __main__(   t
   __future__R    t   numba.unittest_supportt   unittest_supportt   unittestR   t   numpyR   t   numba.dummyarrayR   t   TestCaseR   R/   R6   R@   R-   t   main(    (    (    s:   lib/python2.7/site-packages/numba/tests/test_dummyarray.pyt   <module>   s   / 