ó
\K]c           @` s  d  d l  m Z m Z m Z d  d l Z d  d l m Z d  d l	 m
 Z
 d  d l m Z m Z d d l m Z m Z d „  Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ e d k re j ƒ  n  d S(   i    (   t   print_functiont   absolute_importt   divisionN(   t   unittest_support(   t   compile_isolated(   t   jitt   typesi   (   t   TestCaset   tagc         C` s
   t  |  ƒ S(   N(   t   bool(   t   a(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   dobool   s    c         C` s
   t  |  ƒ S(   N(   t   int(   R
   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   doint   s    c         C` s
   t  |  ƒ S(   N(   t   float(   R
   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   dofloat   s    c         C` s
   t  |  ƒ S(   N(   t   complex(   R
   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt	   docomplex   s    c         C` s   t  |  | ƒ S(   N(   R   (   R
   t   b(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt
   docomplex2   s    c         C` s"   t  |  ƒ } | j d | j d S(   Ni   (   R   t   realt   imag(   R
   t   z(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   complex_calc    s    c         C` s%   t  |  | ƒ } | j d | j d S(   Ni   (   R   R   R   (   R
   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   complex_calc2%   s    c         ` s   ‡  f d †  } | S(   Nc         ` s
   ˆ  |  ƒ S(   N(    (   R
   (   t   tp(    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   f+   s    (    (   R   R   (    (   R   s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt	   converter*   s    c          c` s   x d D] }  |  Vq Wd  S(   Nt   int8t   int16t   int32t   int64t   uint8t   uint16t   uint32t   uint64t   intct   uintct   intpt   uintpt   float32t   float64t   bool_(   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   (    (   t   tp_name(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   real_np_types0   s
      
c          c` s   x d D] }  |  Vq Wd  S(   Nt	   complex64t
   complex128(   R-   R.   (    (   R+   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   complex_np_types7   s    t   TestScalarNumberCtorc           B` s¤   e  Z d  Z d „  Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z e d ƒ d „  ƒ Z	 d „  Z
 d	 „  Z d
 „  Z d „  Z RS(   s*   
    Test <number class>(some scalar)
    c         C` s”   t  j t  j t  j t  j t  j g } d d d d d g } xT t | | ƒ D]C \ } } t | | g ƒ } | j } |  j	 | | ƒ | | ƒ ƒ qI Wd  S(   Ni   i    iè  gffffff(@gffffff7@(
   R   t   booleanR   R   R(   R)   t   zipR   t   entry_pointt   assertPreciseEqual(   t   selft   pyfunct   x_typest   x_valuest   tyt   xt   crest   cfunc(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   check_int_constructorA   s    $	t	   importantc         C` s   |  j  t ƒ d  S(   N(   R=   R   (   R5   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt	   test_boolL   s    c         C` s   |  j  t ƒ d  S(   N(   R=   R   (   R5   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_intP   s    c         C` s¬   t  } t j t j t j t j g } d d d d g } xo t | | ƒ D]^ \ } } t | | g ƒ } | j } |  j	 | | ƒ | | ƒ d | t j k r d n d ƒqF Wd  S(   Ni   iè  gffffff(@gffffff7@t   prect   singlet   exact(
   R   R   R   R   R(   R)   R2   R   R3   R4   (   R5   R6   R7   R8   R9   R:   R;   R<   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt
   test_floatT   s    	c   
      C` sN  t  } t j t j t j t j t j t j g } d d d d d d g } x‡ t | | ƒ D]v \ } } t	 | | g ƒ } | j
 } | | ƒ } | | ƒ }	 |  j | | ƒ | | ƒ d | t j k rÇ d	 n d
 ƒqX Wt } d d } t	 | t j g ƒ } | j
 } |  j | | ƒ d ƒ t	 | t j g ƒ } | j
 } |  j | | ƒ d ƒ d  S(   Ni   iè  gffffff(@gffffff7@g      ø?y              @y              @RA   RB   RC   g      ð?i   iÎÿÿÿy      ø?      Ày      ð?      Àg      Ð<(   R   R   R   R   R(   R)   R-   R.   R2   R   R3   R4   R   t   assertGreater(
   R5   R6   R7   R8   R9   R:   R;   R<   t   gott   expected(    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_complexc   s&    	 
		c   
      C` sb  t  } t j t j t j t j g } d d d d g } g  | D] } | d ^ q= } x~ t | | | ƒ D]j \ } } } t | | | g ƒ } | j }	 |  j	 | | | ƒ |	 | | ƒ d | t j k rÉ d n d ƒqf Wt
 } d	 d } t | t j t j g ƒ } | j }	 |  j	 |	 | | ƒ d ƒ t | t j t j g ƒ } | j }	 |  j |	 | | ƒ d ƒ d  S(   Ni   iè  gffffff(@gffffff7@i   RA   RB   RC   g      ð?i   iÎÿÿÿg       @g      Ð<(   R   R   R   R   R(   R)   R2   R   R3   R4   R   RE   (
   R5   R6   R7   R8   R:   t   y_valuesR9   t   yR;   R<   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_complex2   s"    "	! 
		c         ` s×   t  | ƒ } t d t ƒ | ƒ } t ˆ  t j ƒ rE ‡  f d †  } n ˆ  } t j ˆ  ƒ } xv | D]n } | j d k r— t | t	 ƒ r— | d k  r— qa n  | | ƒ }	 | | ƒ }
 |  j
 |
 |	 d d ˆ  | f ƒqa Wd  S(   Nt   nopythonc         ` s   ˆ  t  j |  ƒ ƒ S(   N(   t   npR   (   R:   (   t   np_type(    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   <lambda>¥   t    t   ug        t   msgs   for type %s with arg %s(   R   R   t   Truet
   issubclassRM   t   integert   dtypet   kindt
   isinstanceR   R4   (   R5   R   RN   t   valuesR6   R<   t   np_converterRV   t   valRG   RF   (    (   RN   s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   check_type_converter   s    *c      	   C` s¶   d d d d d d d d d	 g	 } x? t  ƒ  D]4 } t t | ƒ } | | ƒ } |  j | | | ƒ q+ W| j d ƒ x? t ƒ  D]4 } t t | ƒ } | | ƒ } |  j | | | ƒ qz Wd  S(   Ni    i   iÿÿÿÿi£† I rN	  i]yþÿIù_±çöÿÿg      ø?g      Ày              @y      ø?      @(   R,   t   getattrRM   R\   t   appendR/   (   R5   t
   tp_factoryRY   R+   RN   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   check_number_types³   s    c         C` s   d „  } |  j  | ƒ d S(   s>   
        Test explicit casting to Numba number types.
        c         S` s   t  t |  ƒ S(   N(   R]   R   (   R+   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyR_   Ä   s    N(   R`   (   R5   R_   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_numba_typesÀ   s    	c         C` s   d „  } |  j  | ƒ d S(   s>   
        Test explicit casting to Numpy number types.
        c         S` s   t  t |  ƒ S(   N(   R]   RM   (   R+   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyR_   Ì   s    N(   R`   (   R5   R_   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_numpy_typesÈ   s    	(   t   __name__t
   __module__t   __doc__R=   R   R?   R@   RD   RH   RK   R\   R`   Ra   Rb   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyR0   <   s   				t   TestArrayNumberCtorc           B` s)   e  Z d  Z d „  Z d „  Z d „  Z RS(   s,   
    Test <number class>(some sequence)
    c         C` s^   t  | ƒ } t d t ƒ | ƒ } x6 | D]. } | | ƒ } | | ƒ } |  j | | ƒ q( Wd  S(   NRL   (   R   R   RS   R4   (   R5   RN   RY   R6   R<   R[   RG   RF   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   check_type_constructorÖ   s    c         C` s”   d d d d g d g } x0 t  ƒ  D]% } t t | ƒ } |  j | | ƒ q" Wd d d g g } x0 t ƒ  D]% } t t | ƒ } |  j | | ƒ qg Wd  S(	   Ng      ð?g      @i   y              ð?(   g      ð?g      @(   i   g      @(    (   y              ð?g      @(   R,   R]   RM   Rg   R/   (   R5   RY   R+   RN   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_1dÞ   s    		c         C` s    d d f d d	 g d d g d d g f d
 d g g } x0 t  ƒ  D]% } t t | ƒ } |  j | | ƒ q@ Wx0 t ƒ  D]% } t t | ƒ } |  j | | ƒ qs Wd  S(   Ng      ð?g      @g      @i   g      @(   g      ð?g      @(   g      @i   (   g      ð?g      @(   g      @g      @(    (    (   R,   R]   RM   Rg   R/   (   R5   RY   R+   RN   (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   test_2dð   s    		(   Rc   Rd   Re   Rg   Rh   Ri   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyRf   Ñ   s   		t   __main__(   t
   __future__R    R   R   t   numpyRM   t   numbaR   t   unittestt   numba.compilerR   R   R   t   supportR   R   R   R   R   R   R   R   R   R   R,   R/   R0   Rf   Rc   t   main(    (    (    s:   lib/python2.7/site-packages/numba/tests/test_numberctor.pyt   <module>   s&   										•.