
\K]c           @  s   d  d l  m Z m Z d  d l Z d  d l 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 d	   Z d
 e f d     YZ d e f d     YZ d S(   i(   t   divisiont   print_functionN(   t   product(   t   unittest_support(   t   jiti   (   t   TestCaset   tag(   t   needs_lapackc         C  s   t  j |   S(   N(   t   npt   roots(   t   p(    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   roots_fn   s    t   TestPolynomialBasec           B  sJ   e  Z d  Z e j e j e j e j f Z d   Z	 e
 d  Z d   Z RS(   sV   
    Provides setUp and common data/error modes for testing polynomial functions.
    c         C  s   t  j   d  S(   N(   t   gct   collect(   t   self(    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   setUp   s    c         C  s?   |  j  |   } | |   Wd  QX|  j | t | j   d  S(   N(   t   assertRaisest   assertInt   strt	   exception(   R   t   cfunct   argst   msgt   errt   raises(    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   assert_error   s    c         C  s   d } |  j  | | |  d  S(   Ns   Input must be a 1d array.(   R   (   R   R   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   assert_1d_input#   s    (   t   __name__t
   __module__t   __doc__R   t   float64t   float32t
   complex128t	   complex64t   dtypesR   t
   ValueErrorR   R   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyR      s
   	t
   TestPoly1Dc           B  s    e  Z d    Z e d    Z RS(   c         C  s!   | d } |  j  | | |  d  S(   Ns+   () argument must not cause a domain change.(   R   (   R   t   nameR   R   R   (    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   assert_no_domain_change*   s    
c           s  t  d t  t    t j t j  j      f d   } t j d g  t j d d d g  t j d d d g  t j d d d d g  t j d d d d d d g  t j d d d d d g  t j d d d d d d g  f } xO t | t j	 t j
 g t  j   D]% \ } } | j |  } | |  qWt j d g  t j d d d g  t j d d d g  t j d d d d g  t j d d d d d d g  t j d d d d d g  t j d d d d d d g  f } x= t |  j d  D]% \ } } | j |  } | |  qW j   t j d  j d d  f  t j d d d d g  }  j d   | f    | j t j   d  S(   Nt   nopythonc           s   t  |  |  }   |  |  } |  j  j k rH t j |  j  j } n  } t j j | | d d | d d |  j      |  |  Wd  QXd  S(   Nt   rtoli
   t   atolid   (	   R   t   dtypeR#   R   t   finfot
   resolutiont   testingt   assert_allcloset   assertNoNRTLeak(   t   at   kwargst   expectedt   gotR-   (   R   t   default_resolutionR   (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   check5   s    	
i   i   i   i    i   i   y              ?y                g      @g      @g       @g        g      ?t   eigvalsy      ?      ?y      @      ?y                y      @      ?y      ?      ?y      ?      ?y      ?      ?(   R   t   TrueR   R   R,   R   R-   t   arrayR   t   int32t   int64t   listR#   t   astypeR   t   aranget   reshapeR'   R!   (   R   R6   t	   r_vectorst   vR+   R1   t	   c_vectorst   x(    (   R   R5   R   s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt
   test_roots.   s8    $2$#((   R   R   R'   R   RD   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyR%   (   s   	(   t
   __future__R    R   R   t	   itertoolsR   t   numpyR   t   numbaR   t   unittestR   t   supportR   R   t   test_linalgR   R   R   R%   (    (    (    s:   lib/python2.7/site-packages/numba/tests/test_polynomial.pyt   <module>   s   	