ó
\K]c           @  sª  d  d l  m Z d  d l Z d  d l j Z d  d l m Z d  d l	 m
 Z
 d  d l m Z m Z m Z e j d ƒ Z e j d ƒ Z e j d ƒ Z e d d d	 … Z e j d ƒ j Z e j d e j f d  g ƒ Z e j d d e j ƒj e ƒ Z e d d d … Z e j d d e j  ƒZ! d „  Z" d „  Z# d „  Z$ d „  Z% d „  Z& d „  Z' d „  Z( d „  Z) d „  Z* d e j+ f d „  ƒ  YZ, e- d k r¦e j. ƒ  n  d S(!   iÿÿÿÿ(   t   print_functionN(   t   compile_isolated(   t   TypingError(   t   jitt   typest   typeofi*   i@   i   i   i   i   t   xt   yt   S3i    t   dtypeiþÿÿÿt   XXXX_array_contents_XXXXc         C  s   t  d S(   N(    (   t   a0(   t   i(    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem0   s    c         C  s   t  |  S(   N(   t   a1(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem1    s    c         C  s   t  |  S(   N(   t   a2(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem2$   s    c         C  s   t  |  S(   N(   t   a3(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem3(   s    c         C  s   t  |  S(   N(   t   a4(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem4,   s    c         C  s   t  |  S(   N(   t   a5(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem50   s    c         C  s   t  |  S(   N(   t   a6(   R   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   getitem64   s    c           C  s   t  S(   N(   t   s1(    (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   use_arrayscalar_const8   s    c           C  s   d t  d <d  S(   Ni   i    (   t   myarray(    (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   write_to_global_array<   s    t   TestConstantArrayc           B  sz   e  Z d  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z d „  Z RS(   s   
    Test array constants.
    c         C  s[   t  | t j f ƒ } | j } x6 d d d g D]% } t j j | | ƒ | | ƒ ƒ q. Wd  S(   Ni    i   i   (   R   R   t   int32t   entry_pointt   npt   testingt   assert_array_equal(   t   selft   pyfunct   crest   cfuncR   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   check_array_constE   s    	c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_array_const_0dK   s    c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_array_const_1d_contigN   s    c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_array_const_1d_noncontigQ   s    c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_array_const_2dT   s    c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_record_array_const_contigW   s    c         C  s   |  j  t ƒ d  S(   N(   R(   R   (   R$   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt!   test_record_array_const_noncontigZ   s    c         C  s‹   t  j f } t | d t ƒt ƒ } | j | ƒ } xQ | j ƒ  D]6 } d | k r@ |  j d | ƒ |  j d | ƒ Pq@ q@ W|  j d ƒ d S(   st   
        Issue #1933: the array declaration in the LLVM IR must have
        the right alignment specified.
        t   nopythonR
   s   constant [24 x i8]s	   , align 4s+   could not find array declaration in LLVM IRN(	   R   t   intpR   t   TrueR   t   inspect_llvmt
   splitlinest   assertInt   fail(   R$   t   sigR'   t   irt   line(    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_array_const_alignment]   s    c         C  s8   t  } t | d ƒ } | j } |  j | ƒ  | ƒ  ƒ d  S(   N(    (   R   R   R    t   assertEqual(   R$   R%   R&   R'   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_arrayscalar_consto   s    	c         C  s-   t  } |  j t ƒ  t | d ƒ Wd  QXd  S(   N(    (   R   t   assertRaisesR   R   (   R$   R%   (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_write_to_global_arrayv   s    c           sP   t  j d g ƒ ‰  ‡  f d †  } t | d ƒ } | j ƒ  } |  j | d ƒ d S(   sy   
        This issue is caused by an unresolved bug in numpy since version 1.6.
        See numpy GH issue #3147.
        iV   c             s   ˆ  d S(   Ni    (    (    (   t   constarr(    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyR%   ‚   s    N(    (   R!   t   arrayR   R    R:   (   R$   R%   R&   t   out(    (   R>   s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_issue_1850{   s
    c           sœ   ‡  f d †  } d } t  j | ƒ j | ƒ } t  j t  j j d | d f ƒ ƒ } ˆ  j t | ƒ j d ƒ ˆ  j t | ƒ j d ƒ | | ƒ | | ƒ d S(	   s¸   
        Test issue https://github.com/numba/numba/issues/2188 where freezing
        a constant array into the code thats prohibitively long and consume
        too much RAM.
        c           sÏ   t  j ˆ  ƒ } ˆ j t ˆ  ƒ t | ƒ ƒ ‡  f d †  } t | d ƒ } ˆ j t | j j ƒ  ƒ ˆ  j	 ƒ | j
 ƒ  } ˆ j ˆ  | ƒ ~ d  ‰  | j
 ƒ  } t  j j | | ƒ ˆ j t | ƒ t | ƒ ƒ d  S(   Nc             s   ˆ  S(   N(    (    (   t   biggie(    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyR%   “   s    (    (   R!   t   copyR:   R   R   t
   assertLesst   lent   libraryt   get_llvm_strt   nbytesR    t   assertIst   NoneR"   t   assert_equal(   RB   t   expectR%   R&   R@   (   R$   (   RB   s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test   s    "i
   i   i   t   Ct   FNi€–˜ (   R!   t   aranget   reshapet   asfortranarrayt   randomR:   R   t   layout(   R$   RM   t   nelemt   c_arrayt   f_array(    (   R$   s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   test_too_big_to_freeze‰   s    %
(   t   __name__t
   __module__t   __doc__R(   R)   R*   R+   R,   R-   R.   R9   R;   R=   RA   RX   (    (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyR   @   s   											t   __main__(   i   i   (   R   R   (/   t
   __future__R    t   numpyR!   t   numba.unittest_supportt   unittest_supportt   unittestt   numba.compilerR   t   numba.errorsR   t   numbaR   R   R   R?   R   R   R   RP   R   R   RQ   t   TR   R	   t   int8t   dtt   viewR   R   t
   frombuffert   float32R   R   R   R   R   R   R   R   R   R   t   TestCaseR   RY   t   main(    (    (    s?   lib/python2.7/site-packages/numba/tests/test_array_constants.pyt   <module>   s4   !									q