
ʽXc           @` sM  d  d l  m Z m Z m Z d  d l m Z d  d l m Z d  d l m	 Z	 d  d l
 m Z d  d l m Z d d d	 d
 g Z d d d d g Z g  e e d d D] Z e e   ^ q Z i d d 6d d 6d d 6d d 6d d 6d d 6d d 6d d  6Z i e d 6e d 6e d 6e d 6e d 6e d 6e d 6e d  6Z d!   Z d"   Z d# S($   i    (   t   divisiont   print_functiont   absolute_import(   t   product(   t   assert_allclose(   t   KnownFailureTest(   t   special(   t   cython_specialiii   i
   g      $g      g      ?g      $@t   repeati   t   floatt   ft   doublet   ds   long doublet   gs   float complext   Fs   double complext   Ds   long double complext   Gt   intt   it   longt   lc         C` s.   t  t d   |    } t t |    } | S(   Nc         S` s   t  |  S(   N(   t   TEST_POINTS(   t   x(    (    sF   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_cython_special.pyt   <lambda>*   s    (   t   tuplet   mapt   listR   (   t	   typecodest   axest   pts(    (    sF   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_cython_special.pyt   _generate_test_points)   s    c          c` s  t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j	 t j	 d d  f t  j
 t j
 d d  f t  j t j d d  f t  j t j d  d  f t  j t j d! d  f t  j t j d" d  f t  j t j d# d  f t  j t j d$ d  f t  j t j d% d  f t  j t j d& d  f t  j t j d' d  f t  j t j d( d  f t  j t j d) d  f t  j t j d* d  f t  j t j d+ d  f t  j t j d, d  f t  j t j d- d  f t  j t j d. d  f t  j t j d/ d  f t  j t j d0 d  f t  j t j d1 d  f t  j t j d2 d  f t  j t j d3 d  f t  j  t j  d4 d  f t  j! t j! d5 d  f t  j" t j" d6 d  f t  j# t j# d7 d  f t  j$ t j$ d8 d  f t  j% t j% d9 d  f t  j& t j& d: d  f t  j' t j' d; d  f t  j( t j( d< d  f t  j) t j) d= d  f t  j* t j* d> d  f t  j+ t j, d? d  f t  j- t j- d@ d  f t  j. t j. dA d  f t  j/ t j/ dB d  f t  j0 t j0 dC d  f t  j1 t j1 dD d  f t  j2 t j2 dE d  f t  j3 t j3 dF d  f t  j4 t j4 dG d  f t  j5 t j5 dH d f t  j6 t j6 dI d f t  j7 t j7 dJ d f t  j8 t j8 dK d f t  j9 t j9 dL d f t  j: t j: dM d  f t  j; t j; dN d  f t  j< t j< dO d f t  j= t j= dP d f t  j> t j> dQ d  f t  j? t j? dR d  f t  j@ t j@ dS d f t  jA t jA dT d f t  jB t jB dU d  f t  jC t jC dV d  f t  jD t jD dW d  f t  jE t jE dX d  f t  jF t jF dY d  f t  jG t jG dZ d  f t  jH t jH d[ d  f t  jI t jI d\ d  f t  jJ t jJ d] d  f t  jK t jK d^ d  f t  jL t jL d_ d  f t  jM t jM d` d  f t  jN t jN da d  f t  jO t jP db d  f t  jQ t jQ dc d  f t  jR t jR dd d  f t  jS t jS de d  f t  jT t jT df d  f t  jU t jU dg d  f t  jV t jV dh d  f t  jW t jW di d  f t  jX t jX dj d  f t  jY t jY dk d  f t  jZ t jZ dl d  f t  j[ t j[ dm d  f t  j\ t j\ dn d  f t  j] t j] do d  f t  j^ t j^ dp d  f t  j_ t j_ dq d  f t  j` t j` dr d  f t  ja t ja ds d  f t  jb t jb dt d  f t  jc t jd du d  f t  je t jf dv d  f t  jg t jg dw d  f t  jh t ji dx d  f t  jj t jj dy d  f t  jk t jk dz d  f t  jl t jl d{ d  f t  jm t jm d| d  f t  jn t jn d} d  f t  jo t jo d~ d  f t  jp t jp d d  f t  jq t jr d d  f t  js t jt d d  f t  ju t ju d d  f t  jv t jw d d  f t  jx t jy d d  f t  jz t j{ d d  f t  j| t j| d d  f t  j} t j} d d  f t  j~ t j~ d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d f t  j t j d d f t  j t j d d f t  j t j d d f t  j t j d d  f t  j t j d d  f t  j t j d d f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d f t  j t j d d f t  j t j d d f t  j t j d d f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  j t j d d  f t  jt jd d  f g }  g  } x tt  D] } tt |  } t|  r| jd  p| | k rxB |  D]" \ } } } } | | k r*Pq*q*Wtd j|    qqWd   } x |  D] } | | f Vq|Wd  S(   NR   R   t   lldt   dddt   ddt   dDt   lds   d and l differ for negative intt   ddDt   lddt   ddddt   dddDt   ldddR
   R   t   dddlt   ddddds   see gh-6211s   see gh-6208t   llddt   DDt   _benchs   {} missing from tests!c      
   S` s  |  \ } } } } | r' t  |   n  g  | d D] } t   ^ q2 } x< | D]4 } x+ t |  D] \ } }	 | | j |	  qa WqN Wt   }
 t g t |  } xa t |  D]S \ } }	 t t |	   } | |
 k r q n  t |	  d k | | <|
 j |  q Wx | D] } g  } x8 t |  D]* \ } } | | r&| j t	 |  q&q&W| rm| t |  } n d  } | } t |  } xH | D]@ } | |   } | |   } t | | d d j | | |  qWqWd  S(   Ni    i   t   err_msgs   {} {} {}(   R   t   sett	   enumeratet   addt   Falset   lenR   t   sortedt   appendt   CYTHON_SIGNATURE_MAPt   NoneR   R   t   format(   t   paramt   pyfunct   cyfunct   specializationst   knownfailuret   codet   valuesR   t   jt   vt   seent   is_fused_codet   vvt	   signaturet   cy_spec_funcR   t   ptt   pyvalt   cyval(    (    sF   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_cython_special.pyt   check!  s:     	
(   R   R   (   R   R   (   R   R    (   R   R    (   R   R    (   R    (   R    (   R   (   R   (   R   (   R   (   R    (   s   dd(   R    (   R    (   s   dd(   s   dd(   s   dd(   s   dd(   R    (   R    (   R    (   R    (   R   (   s   dd(   s   dd(   s   dd(   s   dd(   R    (   R    (   R    (   R    (   R   (   R   (   R   (   R   R   (   R   (   s   dd(   s   dd(   s   dd(   R   (   R   (   R   R   (   R   R   (   R   R   (   R   R   (   s   ddR"   R#   (   s   ddR"   R#   (   s   ddR"   R#   (   s   ddR"   R#   (   R    R$   R%   (   R    R$   R%   (   R#   (   R#   (   R&   R'   R(   (   s   ddR"   R#   (   s   ddR"   R#   (   s   ddR"   R#   (   s   ddR"   R#   (   R&   R'   R(   (   s   ddR"   R#   (   R   R   (   R   (   R   (   R   R   (   R
   R   R   (   R   R   (   R#   s   dd(   R   (   R    (   R    (   R    (   R    (   R   R   (   R   R   (   s   dd(   s   dd(   s   dd(   s   dd(   R   (   R    (   R    (   R    (   R    (   R    (   R"   (   R"   (   R"   (   R"   (   s   dd(   s   ddR"   (   R    R$   (   R&   (   R)   R&   (   R&   R'   (   R&   (   R    (   R   (   R   (   R   (   R   (   s   dd(   s   dd(   R   (   R   (   R   (   R   (   R   (   R   (   R   (   R   (   s   ddR"   (   s   ddR"   (   R   (   R   (   s   ddR"   (   s   ddR"   (   R   (   R   (   R   (   R   (   R   (   R   (   R   (   R   (   R   (   s   dd(   R#   s   dd(   R   (   R   (   s   ddR"   (   s   ddR"   (   R   R   (   R   R   (   R   (   R
   R   R   (   R    (   s   dd(   s   dd(   R    (   R    (   R    (   R    (   R    (   R    (   R   (   R   (   s   dd(   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*   (   s   dd(   s   dd(   s   dd(   R#   s   dd(   R#   s   dd(   R#   s   dd(   s   dd(   s   dd(   R&   (   R*   (   R    (   R&   (   R*   (   R&   (   R*   (   s   dd(   R   R   (   R    (   s   dd(   R   R   (   R   (   R   R   (   R   R   (   R   (   R#   s   dd(   R#   s   dd(   R   R   (   R+   R&   (   s   dd(   s   dd(   s   dd(   s   dd(   R   (   s   dd(   R   (   R   (   s   ddR,   (   s   ddR,   (   R   (   R   (   R#   s   dd(   s   ddR"   (   s   ddR"   (   R   (  R   t   airyR   t   _airy_pywrapR7   t   airyet   _airye_pywrapt   bdtrt   bdtrct   bdtrit   bdtrikt   bdtrint   beit   beipt   bert   berpt
   besselpolyt   betat   betainct
   betaincinvt   betalnt   binomt   boxcoxt   boxcox1pt   btdtrt   btdtrit   btdtriat   btdtribt   cbrtt   chdtrt   chdtrct   chdtrit   chdtrivt   chndtrt	   chndtridft	   chndtrinct   chndtrixt   cosdgt   cosm1t   cotdgt   dawsnt   ellipet	   ellipeinct   ellipjt   _ellipj_pywrapt	   ellipkinct   ellipkm1t   entrt   erft   erfct   erfcxt   erfit   eval_chebyct   eval_chebyst   eval_chebytt   eval_chebyut   eval_gegenbauert   eval_genlaguerret   eval_hermitet   eval_hermitenormt   eval_jacobit   eval_laguerret   eval_legendret   eval_sh_chebytt   eval_sh_chebyut   eval_sh_jacobit   eval_sh_legendret   exp1t   exp10t   exp2t   expit   expitt   expm1t   expnt   exprelt   fdtrt   fdtrct   fdtrit   fdtridfdt   fresnelt   _fresnel_pywrapt   gammat   gammainct	   gammaincct   gammainccinvt   gammaincinvt   gammasgnt   gdtrt   gdtrct   gdtriat   gdtribt   gdtrixt   hankel1t   hankel1et   hankel2t   hankel2et   hubert   hyp0f1t   hyp1f1t   hyp1f2t   _hyp1f2_pywrapt   hyp2f0t   _hyp2f0_pywrapt   hyp2f1t   hyp3f0t   _hyp3f0_pywrapt   hyperut   i0t   i0et   i1t   i1et
   inv_boxcoxt   inv_boxcox1pt   it2i0k0t   _it2i0k0_pywrapt   it2j0y0t   _it2j0y0_pywrapt
   it2struve0t   itairyt   _itairy_pywrapt   iti0k0t   _iti0k0_pywrapt   itj0y0t   _itj0y0_pywrapt   itmodstruve0t	   itstruve0t   ivt   ivet   j0t   j1t   jvt   jvet   k0t   k0et   k1t   k1et   keit   keipt   kelvint   _kelvin_pywrapt   kert   kerpt   kl_divt   knt   kolmogit
   kolmogorovt   kvt   kvet   log1pt   log_ndtrt   loggammat   logitt   lpmvt	   mathieu_at	   mathieu_bt   mathieu_cemt   _mathieu_cem_pywrapt   mathieu_modcem1t   _mathieu_modcem1_pywrapt   mathieu_modcem2t   _mathieu_modcem2_pywrapt   mathieu_modsem1t   _mathieu_modsem1_pywrapt   mathieu_modsem2t   _mathieu_modsem2_pywrapt   mathieu_semt   _mathieu_sem_pywrapt   modfresnelmt   _modfresnelm_pywrapt   modfresnelpt   _modfresnelp_pywrapt	   modstruvet   nbdtrt   nbdtrct   nbdtrit   nbdtrikt   nbdtrint   ncfdtrt   ncfdtrit
   ncfdtridfdt
   ncfdtridfnt	   ncfdtrinct   nctdtrt	   nctdtridft	   nctdtrinct   nctdtritt   ndtrt   ndtrit   nrdtrimnt   nrdtrisdt   obl_ang1t   _obl_ang1_pywrapt   obl_ang1_cvt   _obl_ang1_cv_pywrapt   obl_cvt   obl_rad1t   _obl_rad1_pywrapt   obl_rad1_cvt   _obl_rad1_cv_pywrapt   obl_rad2t   _obl_rad2_pywrapt   obl_rad2_cvt   _obl_rad2_cv_pywrapt   pbdvt   _pbdv_pywrapt   pbvvt   _pbvv_pywrapt   pbwat   _pbwa_pywrapt   pdtrt   pdtrct   pdtrit   pdtrikt   pocht   pro_ang1t   _pro_ang1_pywrapt   pro_ang1_cvt   _pro_ang1_cv_pywrapt   pro_cvt   pro_rad1t   _pro_rad1_pywrapt   pro_rad1_cvt   _pro_rad1_cv_pywrapt   pro_rad2t   _pro_rad2_pywrapt   pro_rad2_cvt   _pro_rad2_cv_pywrapt   pseudo_hubert   psit   radiant   rel_entrt   rgammat   roundt   shichit   _shichi_pywrapt   sicit   _sici_pywrapt   sindgt   smirnovt   smirnovit   spencet   sph_harmt   stdtrt   stdtridft   stdtritt   struvet   tandgt   tklmbdat   wofzt   wrightomegat   xlog1pyt   xlogyt   y0t   y1t   ynt   yvt   yvet   zetact   dirt   getattrt   callablet
   startswitht   RuntimeErrorR8   (   t   paramst   skipt   namet   funct   _t   cyfunRJ   R9   (    (    sF   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_cython_special.pyt   test_cython_api/   s   (	(N(   t
   __future__R    R   R   t	   itertoolsR   t   numpy.testingR   t   numpy.testing.noseclassesR   t   scipyR   t   scipy.specialR   t
   int_pointst   real_pointst   tupt   complext   complex_pointsR6   R   R   RU  (    (    (    sF   /tmp/pip-build-7oUkmx/scipy/scipy/special/tests/test_cython_special.pyt   <module>   s8   +

	