ó
\K]c           @  sč   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 d  d l m Z d d l m Z m Z e
   Z e j d  e
   Z e j d	  d
 e f d     YZ e d k rä e j   n  d S(   i˙˙˙˙(   t   print_functionN(   t   compile_isolatedt   Flags(   t   typest   utils(   t   usecasesi   (   t   TestCaset   tagt   enable_pyobjectt   force_pyobjectt   TestUsecasesc           B  sÂ   e  Z e d   d    Z e d   d    Z d   Z e d   d    Z e d   d    Z d   Z e d   d    Z	 d   Z
 d	   Z d
   Z d   Z d   Z d   Z d   Z RS(   t	   importantc         C  s   t  j } t | t j t j f  } | j } d } d	 } x@ t j | |  D], } |  j | |   | |   d | f  qL Wd  S(
   Ni˙˙˙˙i    i   i	   i
   i   s   args %s(   i˙˙˙˙i    i   i	   i
   i   (   i˙˙˙˙i    i   i	   i
   i   (	   R   t   andorR   R   t   int32t   entry_pointt	   itertoolst   productt   assertEqual(   t   selft   pyfunct   crt   cfunct   xst   yst   args(    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt
   test_andor   s    		c         C  sy   t  j } t | t j t j f  } | j } d } d } x9 t j | |  D]% } |  j | |   | |   |  qL Wd  S(   Ni˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (	   R   t   sum1dR   R   R   R   R   R   R   (   R   R   R   R   t   sst   esR   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt
   test_sum1d"   s    		c           sŰ   t  j  t  t j t j f d t } | j  d } d } x9 t j | |  D]%   |  j	              qR Wd      f d   }    f d	   } t
 t j | d
 d  t
 t j | d
 d  d  S(   Nt   flagsi˙˙˙˙i    i   id   iČ   iô  c             s        d  S(   N(    (    (   R   R   (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt	   bm_python<   s    c             s        d  S(   N(    (    (   R   R   (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   bm_numba?   s    t   maxsecgš?(   i˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (   i    iô  (   R   R   R   R   R   t   force_pyobj_flagsR   R   R   R   t   printR   t	   benchmark(   R   R   R   R   R   R    (    (   R   R   R   s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_sum1d_pyobj.   s    			#c         C  sy   t  j } t | t j t j f  } | j } d } d } x9 t j | |  D]% } |  j | |   | |   |  qL Wd  S(   Ni˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (	   R   t   sum2dR   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt
   test_sum2dE   s    		c         C  sy   t  j } t | t j t j f  } | j } d } d } x9 t j | |  D]% } |  j | |   | |   |  qL Wd  S(   Ni˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (   i˙˙˙˙i    i   id   iČ   (	   R   t   while_countR   R   R   R   R   R   R   (   R   R   R   R   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_while_countQ   s    		c   
      C  s°   t  j } t j t j d d  } t | | | f  } | j } d	 } xd | D]\ } t j | d d } t j	 |  } | | f }	 | |	   |  j
 | | d t |	  qL Wd  S(
   Ni   t   Ai    i
   id   t   dtypeR   t   msg(   i    i   i
   id   (   R   t   copy_arraysR   t   ArrayR   R   R   t   npt   aranget
   empty_liket   assertPreciseEqualt   str(
   R   R   t	   arraytypeR   R   t   ndat   ndt   at   bR   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_copy_arrays]   s    		
c         C  sŘ   t  j } t j t j d d  } t | | | f  } | j } d d d d f } x | D]x } | \ } } t j | | d d	 j	 | |  }	 t j
 |	  }
 |	 |
 f } | |   |  j |	 |
 d
 t |  qX Wd  S(   Ni   R*   i    i   i   i   i   R+   R   R,   (   i    i    (   i   i   (   i   i   (   i   i   (   R   t   copy_arrays2dR   R.   R   R   R   R/   R0   t   reshapeR1   R2   R3   (   R   R   R4   R   R   R5   R6   t   d1t   d2R7   R8   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_copy_arrays2dm   s    		%
c   	      C  s   t  | t j t j f  } | j } d } d } xK t j | |  D]7 \ } } | | f } |  j | |   | |   |  qC Wd  S(   Ni˙˙˙˙i    i   (   i˙˙˙˙i    i   (   i˙˙˙˙i    i   (   R   R   R   R   R   R   R   (	   R   R   R   R   R   R   t   xt   yR   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt
   run_ifelse   s    	c   	      C  s   t  j } t | t j t j f d t } | j } d } d } xK t j | |  D]7 \ } } | | f } |  j	 | |   | |   |  qR Wd  S(   NR   i˙˙˙˙i    i   (   i˙˙˙˙i    i   (   i˙˙˙˙i    i   (
   R   t   string_concatR   R   R   t   enable_pyobj_flagsR   R   R   R   (	   R   R   R   R   R   R   R?   R@   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_string_concat   s    			c         C  s   t  j } t | t j f d t } | j } d } |  j | |  | |   d } |  j | |  | |   d } |  j | |  | |   d  S(   NR   t   123456t   1t    (   R   t
   string_lenR   R   t   pyobjectRC   R   R   (   R   R   R   R   t   test_str(    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_string_len   s    			c         C  sł   t  j } t | t j f d d t } | j } d } |  j | | d d  | | d d   |  j | | d d  | | d d   |  j | | d d  | | d d   d  S(   Ni   R   RE   i    i   i   i   (   R   t   string_slicingR   R   RI   RC   R   R   (   R   R   R   R   RJ   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_string_slicing¤   s    			((c         C  s   t  j } t | t j f d t } | j } |  j | d  | d   t | t j f d t } | j } |  j | d  | d   d  S(   NR   i   gń?(	   R   t   string_conversionR   R   R   RC   R   R   t   float32(   R   R   R   R   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_string_conversionŻ   s    					c         C  s=  d d  l  } t j } t | t j t j t j f d t } | j } d } d } | j } |  j	 | | | |  | | | |   d } d } | j } |  j	 | | | |  | | | |   d } d } | j
 } |  j	 | | | |  | | | |   d } d } | j
 } |  j	 | | | |  | | | |   d  S(   Ni˙˙˙˙R   t   123t   456(   t   operatorR   t   string_comparisonR   R   RI   RC   R   t   eqR   t   ne(   R   RS   R   R   R   t	   test_str1t	   test_str2t   op(    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_string_comparisonsź   s2    							c         C  sj   t  j } t | t j f  } | j } d } x6 | D]. } | f } |  j | |   | |   |  q4 Wd  S(   Ng      ŕżi    g      ŕ?(   g      ŕżi    g      ŕ?(   R   t   blackscholes_cndR   R   RO   R   R   (   R   R   R   R   t   dst   dR   (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   test_blackscholes_cndŰ   s    			(   t   __name__t
   __module__R   R   R   R%   R'   R)   R9   R>   RA   RD   RK   RM   RP   RZ   R^   (    (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyR
      s   								t   __main__(   t
   __future__R    R   t   numpyR/   t   numba.unittest_supportt   unittest_supportt   unittestt   numba.compilerR   R   t   numbaR   R   t   numba.testsR   t   supportR   R   RC   t   setR"   R
   R_   t   main(    (    (    s8   lib/python2.7/site-packages/numba/tests/test_usecases.pyt   <module>   s   		Ô