ó
ÿ¼÷Xc           @` sö  d  Z  d d l m Z m Z m Z d d l Z d d l m Z d d l	 Z
 d d l m Z m Z m Z m Z m Z m Z d d l m Z m Z m Z m Z m Z d d l m Z e e e e e e f Z d „  Z e
 j j Z d	 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) d „  Z* d „  Z+ d „  Z, d „  Z- d „  Z. d „  Z/ d „  Z0 d „  Z1 d „  Z2 d  „  Z3 d! „  Z4 d" „  Z5 d# „  Z6 d$ „  Z7 d% „  Z8 e9 d& k ròe ƒ  n  d S('   s€   Test inter-conversion of different polynomial classes.

This tests the convert and cast methods of all the polynomial classes.

i    (   t   divisiont   absolute_importt   print_functionN(   t   Number(   t
   Polynomialt   Legendret	   Chebyshevt   Laguerret   Hermitet   HermiteE(   t   assert_almost_equalt   assert_raisest   assert_equalt   assert_t   run_module_suite(   t   longc          c` sf  x; t  D]3 }  x* t  D]" } t |  | f Vt |  | f Vq Wq Wx!t  D]} t | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt	 | f Vt
 | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f Vt | f VqE Wd  S(   N(   t   classest   check_conversiont
   check_castt
   check_callt   check_identityt   check_basist   check_fromrootst	   check_fitt   check_equalt   check_not_equalt	   check_addt	   check_subt	   check_mult   check_floordivt   check_truedivt	   check_modt   check_divmodt	   check_powt   check_integt   check_derivt   check_rootst   check_linspacet   check_mapparmst   check_degreet
   check_copyt   check_cutdegt   check_truncatet
   check_trim(   t   Poly1t   Poly2t   Poly(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyt   test_class_methods   s<    t    c         C` s‹   yU t  t j |  j | j k ƒ ƒ t  t j |  j | j k ƒ ƒ t |  j | j ƒ Wn/ t k
 r† d |  | f f } t | ƒ ‚ n Xd  S(   Ns   Result: %s
Target: %s(   R   t   npt   allt   domaint   windowR
   t   coeft   AssertionError(   t   p1t   p2t   msg(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyt   assert_poly_almost_equal@   s    c   
      C` sð   t  j d d d ƒ } t d
 ƒ } |  j t d ƒ d } |  j t d ƒ d } |  | d | d | ƒ} | j t d ƒ d } | j t d ƒ d } | j d	 | d | d | ƒ }	 t |	 j | ƒ t |	 j | ƒ t |	 | ƒ | | ƒ ƒ d  S(   Ni    i   i
   i   i   g      Ð?R3   R4   t   kind(   i   (   i   (   i   (   i   (   i   (   R1   t   linspacet   randomR3   R4   t   convertR
   (
   R,   R-   t   xR5   t   d1t   w1R7   t   d2t   w2R8   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   O   s    c   
      C` sí   t  j d d d ƒ } t d	 ƒ } |  j t d
 ƒ d } |  j t d ƒ d } |  | d | d | ƒ} | j t d ƒ d } | j t d ƒ d } | j | d | d | ƒ}	 t |	 j | ƒ t |	 j | ƒ t |	 | ƒ | | ƒ ƒ d  S(   Ni    i   i
   i   i   g      Ð?R3   R4   (   i   (   i   (   i   (   i   (   i   (   R1   R<   R=   R3   R4   t   castR
   (
   R,   R-   R?   R5   R@   RA   R7   RB   RC   R8   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   `   s    c         C` sš   |  j  t d ƒ d } |  j t d	 ƒ d } t j | d | d d ƒ } |  j d | d | ƒ } t | j  | ƒ t | j | ƒ t | | ƒ | ƒ d  S(
   Ni   g      Ð?i    i   i   R3   R4   (   i   (   i   (   R3   R=   R4   R1   R<   t   identityR   R
   (   R.   t   dt   wR?   t   p(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   v   s    c         C` s‹   |  j  t d ƒ d } |  j t d	 ƒ d } |  j d d | d | ƒ} t | j  | ƒ t | j | ƒ t | j d g d d g ƒ d  S(
   Ni   g      Ð?i   R3   R4   i    i   (   i   (   i   (   R3   R=   R4   t   basisR   R5   (   R.   RF   RG   RH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   €   s    c         C` sæ   |  j  t d	 ƒ d } |  j t d
 ƒ d } t d ƒ } |  j | d | d | ƒ} t | j ƒ  t | ƒ ƒ t | j  | ƒ t | j | ƒ t | | ƒ d ƒ t j  } t j } t j	 | d | d | ƒ} t | j
 d d ƒ d  S(   Ni   g      Ð?i   R3   R4   i    iÿÿÿÿi   (   i   (   i   (   i   (   R3   R=   R4   t	   fromrootsR   t   degreet   lenR
   R   RD   R5   (   R.   RF   RG   t   rR7   t   pdomt   pwinR8   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   ‰   s    		c         C` sÂ  d „  } t  j d d ƒ } | | ƒ } |  j | | d ƒ } t | j d d g ƒ t | | ƒ | ƒ t | j ƒ  d ƒ |  j t d
 ƒ d } |  j t d ƒ d } |  j | | d d | d | ƒ} t | | ƒ | ƒ t | j | ƒ t | j | ƒ |  j | | d d d d g d | d | ƒ} t | | ƒ | ƒ t | j | ƒ t | j | ƒ |  j | | d g  ƒ } t | j |  j ƒ t | j |  j ƒ |  j | | d d d d g g  ƒ } t | j |  j ƒ t | j |  j ƒ t  j	 | ƒ } | t | j
 ƒ d } d | d  d  d … <|  j | d  d  d … | d  d  d … d ƒ } |  j | | d d	 | ƒ}	 |  j | | d d d d g d	 | ƒ}
 t | | ƒ |	 | ƒ ƒ t |	 | ƒ |
 | ƒ ƒ d  S(   Nc         S` s   |  |  d |  d S(   Ni   i   (    (   R?   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyt   fž   s    i    i   i   g      Ð?R3   R4   i   RG   (   i   (   i   (   R1   R<   t   fitR
   R3   R   RK   R=   R4   t
   zeros_liket   shape(   R.   RP   R?   t   yRH   RF   RG   t   zR7   R8   t   p3(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   œ   s>    	!-$/'c         C` sû   |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} t  | | k ƒ t  | | k ƒ t  | | k ƒ t  | | k ƒ d  S(   Ni   i   i   R3   i    R4   (   R   (   R.   R7   R8   RV   t   p4(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   È   s    ----c         C` sù   |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} |  d d d g d d d g d d d g ƒ} t  | | k ƒ t  | | k ƒ t  | | k ƒ t  | | k ƒ d  S(   Ni   i   i   R3   i    R4   (   R   (   R.   R7   R8   RV   RW   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   Ó   s    ----c      	   C` sŒ  t  t d ƒ d ƒ } t  t d	 ƒ d ƒ } |  | ƒ } |  | ƒ } | | } t | | | ƒ t | | | ƒ t | | | ƒ t | t | ƒ | ƒ t t | ƒ | | ƒ t | t j | ƒ | ƒ t t j | ƒ | | ƒ t t t j	 | |  d g d |  j
 d ƒƒ t t t j	 | |  d g d |  j d ƒƒ |  t k rit t t j	 | t d g ƒ ƒ n t t t j	 | t d g ƒ ƒ d  S(
   Ni   g      à?i   i    R3   i   R4   (   i   (   i   (   t   listR=   R:   t   tupleR1   t   arrayR   t	   TypeErrort   opt   addR3   R4   R   R   (   R.   t   c1t   c2R7   R8   RV   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   Þ   s"    
,,"c      	   C` s  t  t d ƒ d ƒ } t  t d	 ƒ d ƒ } |  | ƒ } |  | ƒ } | | } t | | | ƒ t | | | ƒ t | | | ƒ t | t | ƒ | ƒ t t | ƒ | | ƒ t | t j | ƒ | ƒ t t j | ƒ | | ƒ t t t j	 | |  d g d |  j
 d ƒƒ t t t j	 | |  d g d |  j d ƒƒ |  t k rmt t t j	 | t d g ƒ ƒ n t t t j	 | t d g ƒ ƒ d  S(
   Ni   g      à?i   i    R3   i   R4   (   i   (   i   (   RX   R=   R:   RY   R1   RZ   R   R[   R\   t   subR3   R4   R   R   (   R.   R^   R_   R7   R8   RV   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   ô   s"    
,,"c      	   C` sÈ  t  t d	 ƒ d ƒ } t  t d
 ƒ d ƒ } |  | ƒ } |  | ƒ } | | } t | | | ƒ t | | | ƒ t | | | ƒ t | t | ƒ | ƒ t t | ƒ | | ƒ t | t j | ƒ | ƒ t t j | ƒ | | ƒ t | d | |  d g ƒ ƒ t d | | |  d g ƒ ƒ t t t j	 | |  d g d |  j
 d ƒƒ t t t j	 | |  d g d |  j d ƒƒ |  t k r¥t t t j	 | t d g ƒ ƒ n t t t j	 | t d g ƒ ƒ d  S(   Ni   g      à?i   i   i    R3   i   R4   (   i   (   i   (   RX   R=   R:   RY   R1   RZ   R   R[   R\   t   mulR3   R4   R   R   (   R.   R^   R_   R7   R8   RV   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   
  s&    
,,"c   	   	   C` sð  t  t d	 ƒ d ƒ } t  t d
 ƒ d ƒ } t  t d ƒ d ƒ } |  | ƒ } |  | ƒ } |  | ƒ } | | | } t  | j ƒ } t | | | ƒ t | | | ƒ t | | | ƒ t | t | ƒ | ƒ t t | ƒ | | ƒ t | t j | ƒ | ƒ t t j | ƒ | | ƒ t d | |  d g ƒ ƒ t | d d | ƒ t t t	 j
 | |  d g d |  j d ƒƒ t t t	 j
 | |  d g d |  j d ƒƒ |  t k rÍt t t	 j
 | t d g ƒ ƒ n t t t	 j
 | t d g ƒ ƒ d  S(   Ni   g      à?i   i   i    R3   i   R4   (   i   (   i   (   i   (   RX   R=   R5   R:   RY   R1   RZ   R   R[   R\   t   floordivR3   R4   R   R   (	   R.   R^   R_   t   c3R7   R8   RV   RW   t   c4(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   !  s0    ))"c         C` sÏ  |  d d d g ƒ } | d } xq t  j D]f } t | t ƒ s) t | t ƒ rT q) n  | d ƒ } t t j | | ƒ | ƒ t t	 t j | | ƒ q) WxR t
 t t f D]A } | d ƒ } t t j | | ƒ | ƒ t t	 t j | | ƒ q£ WxO t g D]D } | d d ƒ } t t j | | ƒ | ƒ t t	 t j | | ƒ qò Wxa t ƒ  t ƒ  t ƒ  t ƒ  t  j d g ƒ g D]2 } t t	 t j | | ƒ t t	 t j | | ƒ qhWx* t D]" } t t	 t j | | d ƒ ƒ q¥Wd  S(   Ni   i   i   i   i    (   R1   t
   ScalarTypet
   issubclassR   t   boolR:   R\   t   truedivR   R[   t   intR   t   floatt   complexRY   RX   t   dictRZ   R   (   R.   R7   R8   t   stypet   st   ptype(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   =  s*    
4c   	   	   C` sõ  t  t d	 ƒ d ƒ } t  t d
 ƒ d ƒ } t  t d ƒ d ƒ } |  | ƒ } |  | ƒ } |  | ƒ } | | | } t  | j ƒ } t | | | ƒ t | | | ƒ t | | | ƒ t | t | ƒ | ƒ t t | ƒ | | ƒ t | t j | ƒ | ƒ t t j | ƒ | | ƒ t d | |  d g ƒ ƒ t | d |  d g ƒ ƒ t t t	 j
 | |  d g d |  j d ƒƒ t t t	 j
 | |  d g d |  j d ƒƒ |  t k rÒt t t	 j
 | t d g ƒ ƒ n t t t	 j
 | t d g ƒ ƒ d  S(   Ni   g      à?i   i   i    R3   i   R4   (   i   (   i   (   i   (   RX   R=   R5   R:   RY   R1   RZ   R   R[   R\   t   modR3   R4   R   R   (	   R.   R^   R_   Rc   R7   R8   RV   RW   Rd   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR   X  s,    ,,"c      	   C` s  t  t d	 ƒ d ƒ } t  t d
 ƒ d ƒ } t  t d ƒ d ƒ } |  | ƒ } |  | ƒ } |  | ƒ } | | | } t  | j ƒ } t | | ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t | | ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t | | ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t | t | ƒ ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t t | ƒ | ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t | t j | ƒ ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t t j | ƒ | ƒ \ }	 }
 t |	 | ƒ t |
 | ƒ t | d ƒ \ }	 }
 t |	 d | ƒ t |
 |  d g ƒ ƒ t d | ƒ \ }	 }
 t |	 |  d g ƒ ƒ t |
 |  d g ƒ ƒ t t	 t | |  d g d |  j
 d ƒƒ t t	 t | |  d g d |  j d ƒƒ |  t k rät t	 t | t d g ƒ ƒ n t t	 t | t d g ƒ ƒ d  S(   Ni   g      à?i   i   i    R3   i   R4   (   i   (   i   (   i   (   RX   R=   R5   t   divmodR:   RY   R1   RZ   R   R[   R3   R4   R   R   (   R.   R^   R_   Rc   R7   R8   RV   RW   Rd   t   quot   rem(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR    s  sP    ))c         C` s©   |  j  t d ƒ d } |  j t d ƒ d } t j t d ƒ ƒ } t j |  j | d | d | ƒj ƒ  ƒ } t | | ƒ t j |  j | ƒ j ƒ  ƒ } t | | ƒ d  S(	   Ni   g      Ð?i   R3   R4   (   i   (   i   (   i   (   R3   R=   R4   R1   t   sortRJ   t   rootsR
   (   R.   RF   RG   t   tgtt   res(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR$      s    *c         C` s&   |  j  d ƒ } t | j ƒ  d ƒ d  S(   Ni   (   RI   R   RK   (   R.   RH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR'   «  s    c         C` s   |  j  d ƒ } | j ƒ  } t | | k ƒ t | | k	 ƒ t | j | j k	 ƒ t | j | j k	 ƒ t | j | j k	 ƒ d  S(   Ni   (   RI   t   copyR   R5   R3   R4   (   R.   R7   R8   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR(   °  s    c         C` sk  t  } |  j | d d d g ƒ ƒ } | j | j ƒ  ƒ } | j | j d ƒ ƒ } t | | d d d d g ƒ ƒ t | | d d d d d g ƒ ƒ |  j | d d d g ƒ ƒ } | j | j d d ƒ ƒ } | j | j d d d d g ƒƒ } t | | d d d d g ƒ ƒ t | | d d d d d g ƒ ƒ |  j | d d d g ƒ ƒ } | j | j d d ƒ ƒ } | j | j d d d ƒƒ } t | | d d d d g ƒ ƒ t | | d	 d d d d g ƒ ƒ d |  j } |  j | d d d g ƒ d
 | ƒ} | j | j ƒ  ƒ } | j | j d ƒ ƒ } t | | d d d d g ƒ ƒ t | | d d d d d g ƒ ƒ d  S(   Ni   i   i   i   i    t   kt   lbndi÷ÿÿÿi   R3   i   i   i   i   i   i   i   i   i   i   i   i   (   R   RD   t   integR:   R3   (   R.   t   Pt   p0R7   R8   RF   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR"   º  s,    "$""$c         C` s>  |  j  t d ƒ d } |  j t d	 ƒ d } |  d d d g d | d | ƒ} | j d d d d g ƒ} | j d d d g ƒ} t | j d ƒ j | j ƒ t | j d ƒ j | j ƒ |  d d d g ƒ } | j d d d d g ƒ} | j d d d g ƒ} t | j d ƒ j | j ƒ t | j d ƒ j | j ƒ d  S(
   Ni   g      Ð?i   i   R3   R4   Ry   (   i   (   i   (   R3   R=   R4   R{   R
   t   derivR5   (   R.   RF   RG   R7   R8   RV   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR#   ×  s    !c         C` s  |  j  t d	 ƒ d } |  j t d
 ƒ d } |  d d d g d | d | ƒ} t j | d | d d ƒ } | | ƒ } | j d ƒ \ } } t | | ƒ t | | ƒ t j d d d ƒ } | | ƒ } | j d d d d g ƒ\ } } t | | ƒ t | | ƒ d  S(   Ni   g      Ð?i   i   R3   R4   i    i   (   i   (   i   (   R3   R=   R4   R1   R<   R
   (   R.   RF   RG   RH   t   xtgtt   ytgtt   xrest   yres(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR%   é  s    !!c         C` s"  |  j  t d
 ƒ d } |  j t d ƒ d } |  d g d | d | ƒ} |  d d d g d | d | ƒ} x/ t d ƒ D]! } t | | | ƒ | | } qw W|  d g ƒ } |  d d d g ƒ } x/ t d ƒ D]! } t | | | ƒ | | } qÍ Wt t t j | d ƒ t t t j | d	 ƒ d  S(   Ni   g      Ð?i   R3   R4   i   i   g      ø?iÿÿÿÿ(   i   (   i   (	   R3   R=   R4   t   rangeR:   R   t
   ValueErrorR\   t   pow(   R.   RF   RG   Rv   t   tstt   i(    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR!   û  s    !c         C` s}   t  } |  j } t j | d | d d ƒ } |  j | d d d g ƒ ƒ } d | d d | } | | ƒ } t | | ƒ d  S(   Ni    i   i   i   i   (   R   R3   R1   R<   RD   R
   (   R.   R|   RF   R?   RH   Rv   Rw   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR     s    	c         C` s¯   |  d d d g ƒ } t  t | j d ƒ t  t | j d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ d  S(   Ni   i   i   g      à?iÿÿÿÿi    (   R   R„   t   cutdegR   RL   (   R.   RH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR)     s    c         C` s¯   |  d d d g ƒ } t  t | j d ƒ t  t | j d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ t t | j d ƒ ƒ d ƒ d  S(   Ni   i   i   g      à?i    i   (   R   R„   t   truncateR   RL   (   R.   RH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR*   $  s    c         C` sv   d d d d g } |  | ƒ } t  | j ƒ  j | d  ƒ t  | j d ƒ j | d  ƒ t  | j d ƒ j | d  ƒ d  S(	   Ni   gíµ ÷Æ°>gê-™—q=i    i   g»½×Ùß|Û=i   gñhãˆµøä>(   R   t   trimR5   (   R.   t   cRH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR+   .  s
    c         C` sŒ   |  j  } |  j } |  d g d | d | ƒ} t d d g | j ƒ  ƒ d | d } |  d g d | d | ƒ} t d d g | j ƒ  ƒ d  S(   Ni   R3   R4   i    i   (   R3   R4   R
   t   mapparms(   R.   RF   RG   RH   (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyR&   6  s    		t   __main__(:   t   __doc__t
   __future__R    R   R   t   operatorR\   t   numbersR   t   numpyR1   t   numpy.polynomialR   R   R   R   R   R	   t   numpy.testingR
   R   R   R   R   t   numpy.compatR   R   R/   R=   R:   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R$   R'   R(   R"   R#   R%   R!   R   R)   R*   R+   R&   t   __name__(    (    (    sB   /tmp/pip-build-2Vcwy8/numpy/numpy/polynomial/tests/test_classes.pyt   <module>   sR   .(	$			
				,									-			
						
	
		