
ʽXc           @` s   d  d l  m Z m Z m Z d  d l Z d  d l m Z m Z d  d l	 j
 j Z d  d l m Z d   Z d   Z d   Z d e f d	     YZ d
 e f d     YZ d S(   i    (   t   divisiont   print_functiont   absolute_importN(   t   assert_t   assert_allclose(   t   FuncDatac          C` sz   t  j d d d  }  d t  j j   d } t  j |  t  j |   } t j |  |  } t t  j	 | | d d  d  S(   Ni    i'  i   i   i   t   rtolgV瞯<(
   t   npt   aranget   randomt   randt   cost   arccost   ortht   eval_chebytR   t   allclose(   t   nt   xt   v1t   v2(    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_eval_chebyt
   s
    c           C` sH   t  t j t j d d d    t  t j t j d d d    d  S(   Ni    ig?(   R   R   t   isnanR   t   eval_genlaguerre(    (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt!   test_eval_genlaguerre_restriction   s    "c          C` s^   t  j d d  }  z7 t j d d  t j d d  t j d d d  Wd  t  j |    Xd  S(   Nt   allt   raisei   i    (   R   t   seterrR   t   eval_legendret   eval_laguerret   eval_gegenbauer(   t   olderr(    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_warnings   s    t	   TestPolysc           B` s   e  Z d  Z g  g  d d d 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 RS(   sQ   
    Check that the eval_* functions agree with the constructed polynomials

    i
   g:0yE>c	         ` s  t  j j d  g  }	 x>t  j |  D]-}
 g  | D]* \ } } | | | t  j j |  ^ q3 } t  j |  j } | s d g } n  x | D] } | r |
 f t |  } n	 |
 f } | d | d | d t  j j |  } | d | d <| d | d <t  j | |    } t  j	 t  j
 | | d f  | | |  f } |	 j |  q Wq& Wt  j |	 d d }	   f d   } t  j d d  } z? t | |	 t t t |  d   d	 d
 | } | j   Wd  t  j |   Xd  S(   Ni  i    i   t   axisc          ` s(   |  d j  t  f |  d }    |    S(   Ni    i   (   t   astypet   int(   t   p(   t   func(    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   polyfuncB   s    R   R   i   iR   (   R   R	   t   seedR   R
   t   asarrayt   Tt   tuplet   poly1dt   c_t   tilet   appendt   concatenateR   R   t   listt   ranget   lent   check(   t   selfR%   t   clst   param_rangest   x_ranget   nnt   nparamt   nxR   t   datasetR   t   at   bt   paramsR$   R   t   polyt   zR&   R   t   ds(    (   R%   sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt
   check_poly*   s2    7	*.(	c      	   C` s8   |  j  t j t j d d	 d
 g d d d g d d d  S(   NR6   gGzi
   R7   ii   R   gh㈵>(   gGzi
   (   gGzi
   (   RB   R   t   eval_jacobit   jacobi(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_jacobiN   s    c      	   C` s8   |  j  t j t j d d d	 g d d d g d d d  S(
   NR6   i   i
   i    R7   R   gh㈵>(   i   i
   (   i    i   (   RB   R   t   eval_sh_jacobit	   sh_jacobi(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_sh_jacobiS   s    c      	   C` s5   |  j  t j t j d d	 g d d d g d d d  S(
   NR6   gV-߿i
   R7   ii   R   gHz>(   gV-߿i
   (   RB   R   R   t
   gegenbauer(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_gegenbauerX   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   R   t   chebyt(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_chebyt]   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   t   eval_chebyut   chebyu(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_chebyua   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   t   eval_chebyst   chebys(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_chebyse   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   t   eval_chebyct   chebyc(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_chebyci   s    c         C` sS   t  j d d  } z, |  j t j t j d g  d d d g Wd  t  j |   Xd  S(   NR   t   ignoreR6   R7   i    i   (   R   R   RB   R   t   eval_sh_chebytt	   sh_chebyt(   R4   R   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_sh_chebytm   s
    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   i    i   (   RB   R   t   eval_sh_chebyut	   sh_chebyu(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_sh_chebyuu   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   R   t   legendre(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_legendrey   s    c         C` sS   t  j d d  } z, |  j t j t j d g  d d d g Wd  t  j |   Xd  S(   NR   RV   R6   R7   i    i   (   R   R   RB   R   t   eval_sh_legendret   sh_legendre(   R4   R   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_sh_legendre}   s
    c         C` s/   |  j  t j t j d d g d d d g d  S(   NR6   gGzi
   R7   i    id   (   gGzi
   (   RB   R   R   t   genlaguerre(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_genlaguerre   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   i    id   (   RB   R   R   t   laguerre(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_laguerre   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   iid   (   RB   R   t   eval_hermitet   hermite(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_hermite   s    c         C` s,   |  j  t j t j d g  d d d g d  S(   NR6   R7   iid   (   RB   R   t   eval_hermitenormt   hermitenorm(   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   test_hermitenorm   s    (   t   __name__t
   __module__t   __doc__RB   RE   RH   RJ   RL   RO   RR   RU   RY   R\   R^   Ra   Rc   Re   Rh   Rk   (    (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyR    $   s$   	#														t   TestRecurrencec           B` s   e  Z d  Z g  g  d d d 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 RS(   sI   
    Check that the eval_* functions sig='ld->d' and 'dd->d' agree.

    i
   g:0yE>c         ` s  t  j j d  g  } xTt  j |  D]C}	 g  | D]* \ }
 } |
 | |
 t  j j |  ^ q3 } t  j |  j } | s d g } n  x | D] } | r |	 f t |  } n	 |	 f } | d | d | d t  j j |  } | d | d <| d | d <t d t	 |  d d d  } t  j
 t  j | | d f  |   | | f |   f } | j |  q Wq& Wt  j | d d }   f d   } t  j d	 d
  } z? t | | t t t	 |  d   d d | } | j   Wd  t  j |   Xd  S(   Ni  i    i   t   sigt   ds   ->dR!   c          ` sP   |  d j  t  f |  d }  t d d t |   d d d  }   |  |   S(   Ni    i   Rp   t   lRq   s   ->d(   R"   R#   t   dictR2   (   R$   t   kw(   R%   (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyR&      s    %R   R   i   iR   (   R   R	   R'   R   R
   R(   R)   R*   Rs   R2   R,   R-   R.   R/   R   R   R0   R1   R3   (   R4   R%   R6   R7   R8   R9   R:   R   R;   R   R<   R=   R>   R$   R   Rt   R@   R&   R   RA   (    (   R%   sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRB      s2    7	*!8(	c         C` s,   |  j  t j d d d g d d d g d  S(	   NR6   gGzi
   R7   ii   (   gGzi
   (   gGzi
   (   RB   R   RC   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRE      s    c         C` s,   |  j  t j d d d g d d d g d  S(   NR6   i   i
   i    R7   (   i   i
   (   i    i   (   RB   R   RF   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRH      s    c         C` s)   |  j  t j d d g d d d g d  S(   NR6   gV-߿i
   R7   ii   (   gV-߿i
   (   RB   R   R   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRJ      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   R   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRL      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   RM   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRO      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   RP   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRR      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   RS   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRU      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   i    i   (   RB   R   RW   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRY      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   i    i   (   RB   R   RZ   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyR\      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   ii   (   RB   R   R   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyR^      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   i    i   (   RB   R   R_   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRa      s    c         C` s)   |  j  t j d d g d d d g d  S(   NR6   gGzi
   R7   i    id   (   gGzi
   (   RB   R   R   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRc      s    c         C` s&   |  j  t j d g  d d d g d  S(   NR6   R7   i    id   (   RB   R   R   (   R4   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRe      s    c         C` s)   t  j d d  } d } t | |  d  S(   NiF   g      ?gi\m(   R   Rf   R   (   R4   t   vR<   (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRh      s    (   Rl   Rm   Rn   RB   RE   RH   RJ   RL   RO   RR   RU   RY   R\   R^   Ra   Rc   Re   Rh   (    (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyRo      s"   	$													(   t
   __future__R    R   R   t   numpyR   t   numpy.testingR   R   t   scipy.special.orthogonalt   specialt
   orthogonalR   t   scipy.special._testutilsR   R   R   R   t   objectR    Ro   (    (    (    sG   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_orthogonal_eval.pyt   <module>   s   			r