+
    ,i                     B   ^ RI t ^ RIt^ RIt^ RIHtHtHtHt ^ RI	H
t ^ RI	t	^ RIHtHtHtHtHtHtHtHtHtHtHtHt ^ RIHt RR lt. ROtR tR tR	 tR
 t  ! R R4      t! ! R R4      t" ! R R4      t# ! R R4      t$ ! R R4      t%R t&R t'R t( ! R R4      t)R# )    N)xp_assert_equalxp_assert_closeassert_array_almost_equalassert_almost_equal)raises)KroghInterpolatorkrogh_interpolateBarycentricInterpolatorbarycentric_interpolateapproximate_taylor_polynomialCubicHermiteSplinepchipPchipInterpolatorpchip_interpolateAkima1DInterpolatorCubicSplinemake_interp_spline)_run_concurrent_barrierc                 L   Vf   / p\         P                  P                  R4      p. ROp\        \	        ^\        V4      ^,           4      4      pVP                  V\        V4      ^,           ,          ^ 4       VP                  ! RV,           !  P                  V4      p	\         P                  ! V4      p
V \        J d:   VP                  ! RV,           !  P                  V4      pV ! WyV3RV/VB ! V
4      pMV ! Wy3RV/VB ! V
4      pT;'       g    RV	P                  R V ,           V,           V	P                  VR  R,          ,           pVP                  V8X  g   Q hV'       d   V	P                  ^ 8  dp   V \        J d9   V ! \        V4      \        V	4      \        X4      3RV/VB ! \        V
4      4       M-V ! \        V4      \        V	4      3RV/VB ! \        V
4      4       V
P                  ^ 8  d   Vf   V	P                  R V R\        V4      ,          ,           V	P                  VR  R,          ,           pV	\        R 4      3WIP                  ,          ,          R,           ,          pVP                  V4      p\         P                   ! W4      w  r\#        W4       R # R # R # )N  axis   NN)r   r                r   )nprandomRandomStatelistrangeleninsertrand	transposezerosr   shapesizeslicendimreshapebroadcast_arraysr   )interpolator_clsx_shapey_shapederiv_shaper   
extra_argsrngxsyxidydxyitarget_shapebs_shapeyvs   &&&&&&          F/usr/lib/python3/dist-packages/scipy/interpolate/tests/test_polyint.pycheck_shaperB      s<   

))


%CAU1c'l1n%&AHHTS\!^$a(4'>#--a0A	'	B--xx$.*44Q7aDBtBzB2Fa<<<R@ &&B!''%4.8 !r 23L88|### 166A:11T!Wd1gtDz + +)++/85 T!Wd1g +D +)++/85 
ww{{*775D>DW$55r8JJt/478ZZ!##B+ +{    c                  H   R  p \         \        \        \        \        \
        V 3 Fy  p\         Fl  p\         F_  p\        \        V4      ) \        V4      4       F9  pV\
        8w  d   \        WVRV4       K  R F  pRV/p\        WVRWF4       K  	  K;  	  Ka  	  Kn  	  K{  	  R# )c                     \        WVR 7      # r   )r   r8   r:   r   s   &&&rA   
spl_interptest_shapes.<locals>.spl_interpB   s    !!T22rC   Nbc_type)naturalclamped)
r   r
   r   r   r   r   SHAPESr&   r'   rB   )rI   ips1s2r   bcextras          rA   test_shapesrT   @   s    3 !"9;M);
DB!3r7(CG4D[(#BBd;"8B%.OE'D$F #9	 5  DrC   c                     a \         \        3 FY  oRV3R llp \         FD  p\         F7  p\        \	        V4      ) \	        V4      4       F  p\        WVRV4       K  	  K9  	  KF  	  K[  	  R# )r   c                 *   < S! WV4      P                   # N)derivatives)r8   r:   r   rO   s   &&&rA   interpolator_derivs/test_derivs_shapes.<locals>.interpolator_derivsS   s    aD>---rC   Nr   r   )r   r
   rN   r&   r'   rB   )rY   rP   rQ   r   rO   s       @rA   test_derivs_shapesr\   Q   sX     "9:	. B!3r7(CG4D 3T4H 5  	 ;rC   c                  D   RR lp RR lpRR lpRR lpRR lpRR lpRR lpRR lpRR	 lpRR
 lp	RR lp
RR lpRR lpWW#VWEWxWW3 FQ  p\          FD  p\          F7  p\        \        V4      ) \        V4      4       F  p\        WVRV4       K  	  K9  	  KF  	  KS  	  R# )r   c                 .    \        WV4      P                  # rW   )r   
derivativerH   s   &&&rA   krogh_deriv&test_deriv_shapes.<locals>.krogh_deriv]   s     t,777rC   c                 .    \        WV4      P                  # rW   )r
   r_   rH   s   &&&rA   
bary_deriv%test_deriv_shapes.<locals>.bary_deriv`   s    &qT2===rC   c                 6    \        WV4      P                  4       # rW   r   r_   rH   s   &&&rA   pchip_deriv&test_deriv_shapes.<locals>.pchip_derivc   s    Q4 ++--rC   c                 8    \        WV4      P                  ^4      # r   rf   rH   s   &&&rA   pchip_deriv2'test_deriv_shapes.<locals>.pchip_deriv2f   s    Q4 ++A..rC   c                 6    \        WV4      P                  4       # rW   r   antiderivativerH   s   &&&rA   pchip_antideriv*test_deriv_shapes.<locals>.pchip_antiderivi   s    Q4 //11rC   c                 8    \        WV4      P                  ^4      # rj   rn   rH   s   &&&rA   pchip_antideriv2+test_deriv_shapes.<locals>.pchip_antideriv2l   s    Q4 //22rC   c                 2     ! R  R\         4      pV! WV4      # )c                   &   a  ] tR t^pt o R tRtV tR# )9test_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.Pc                0    \         P                  ! W^4      # r!   )r   __call__)selfr8   s   &&rA   ry   Btest_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.P.__call__q   s    (11$1==rC   r    N)__name__
__module____qualname____firstlineno__ry   __static_attributes____classdictcell____classdict__s   @rA   Prw   p   s     >rC   r   )r   )r8   r:   r   r   s   &&& rA   pchip_deriv_inplace.test_deriv_shapes.<locals>.pchip_deriv_inplaceo   s    	! 	 t}rC   c                 6    \        WV4      P                  4       # rW   )r   r_   rH   s   &&&rA   akima_deriv&test_deriv_shapes.<locals>.akima_derivv   s    "1.99;;rC   c                 6    \        WV4      P                  4       # rW   )r   ro   rH   s   &&&rA   akima_antideriv*test_deriv_shapes.<locals>.akima_antiderivy   s    "1.==??rC   c                 6    \        WV4      P                  4       # rW   )r   r_   rH   s   &&&rA   cspline_deriv(test_deriv_shapes.<locals>.cspline_deriv|   s    1&1133rC   c                 6    \        WV4      P                  4       # rW   )r   ro   rH   s   &&&rA   cspline_antideriv,test_deriv_shapes.<locals>.cspline_antideriv   s    1&5577rC   c                 8    \        WVR 7      P                  4       # rF   )r   r_   rH   s   &&&rA   
bspl_deriv%test_deriv_shapes.<locals>.bspl_deriv   s    !!T2==??rC   c                 8    \        WVR 7      P                  4       # rF   )r   ro   rH   s   &&&rA   bspl_antideriv)test_deriv_shapes.<locals>.bspl_antideriv   s    !!T2AACCrC   Nr[   r    )rN   r&   r'   rB   )r`   rc   rg   rk   rp   rs   r   r   r   r   r   r   r   rO   rP   rQ   r   s                    rA   test_deriv_shapesr   \   s    8>./23<@48@D CV+M B!3r7(CG4DB5 5  MrC   c                  \   . ROp . ROp\         \        \        3 F1  pV! W4      p\        V! V 4      \        P
                  ! V4      4       K3  	  . ROp\        WV4      p\        V! V 4      \        P
                  ! V4      4       \        V! V ^4      \        P
                  ! V4      4       R# )r   Nr   r   r   r   )r   r                 ?r   )r   y             r   y              @)r   r
   r   r   r"   asarrayr   )r8   r:   rO   pr<   s        rA   test_complexr      s    AA "9;GqH!bjjm, H D1&AAaD"**Q-(AaGRZZ-.rC   c                     a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR t]P2                  P4                  R 4       t]P2                  P4                  R 4       tRtV tR# )	TestKroghc                   \         P                  P                  . RO4      V n        \         P                  ! R^^d4      V n        \         P                  ! R^^4      V n        V P                  V P                  4      V n        R# r   N)   r   r   r   r"   
polynomial
Polynomial	true_polylinspacetest_xsxsysrz   s   &rA   setup_methodTestKrogh.setup_method   sU    112CD{{2a,++b1%..)rC   c                    \        V P                  V P                  4      p\        V P	                  V P
                  4      V! V P
                  4      4       R # rW   r   r   r   r   r   r   rz   r   s   & rA   test_lagrangeTestKrogh.test_lagrange   5    dggdgg.DNN4<<84<<IrC   c                "   \        V P                  V P                  4      p\        V P	                  ^4      V! ^4      RR7       \        V P	                  \
        P                  ! ^4      4      V! \
        P                  ! ^4      4      RR7       R# )   Fcheck_0dN)r   r   r   r   r   r"   arrayr   s   & rA   test_scalarTestKrogh.test_scalar   sY    dggdgg.DNN1-qteDDNN288A;7288A;RWXrC   c                8   \        V P                  V P                  4      pVP                  V P                  4      p\        VP                  ^ ,          4       F>  p\        V P                  P                  V4      ! V P                  4      W#,          4       K@  	  R# r   N)
r   r   r   rX   r   r&   r,   r   r   derivrz   r   Dis   &   rA   test_derivativesTestKrogh.test_derivatives   sf    dggdgg.MM$,,'qwwqz"A 4 4Q 7 E !& #rC   c                n   \        V P                  V P                  4      pVP                  V P                  \        V P                  4      ^,           4      p\        VP                  ^ ,          4       F>  p\        V P                  P                  V4      ! V P                  4      W#,          4       K@  	  R# r   N)r   r   r   rX   r   r'   r&   r,   r   r   r   r   s   &   rA   test_low_derivativesTestKrogh.test_low_derivatives   st    dggdgg.MM$,,s477|A~6qwwqz"A 4 4Q 7 E !& #rC   c                    \        V P                  V P                  4      p^
pVP                  V P                  V4      p\        V4       F/  p\        VP                  V P                  V4      W4,          4       K1  	  R# 
   N)r   r   r   rX   r   r&   r   r_   rz   r   mrr   s   &    rA   test_derivativeTestKrogh.test_derivative   sX    dggdgg.MM$,,q)qAT\\! <QTB rC   c           	     `   \        V P                  V P                  4      p\        \	        V P                  4      ^\	        V P                  4      ,          4       FP  p\        VP                  V P                  V4      \        P                  ! \	        V P                  4      4      4       KR  	  R# r   )
r   r   r   r&   r'   r   r_   r   r"   r+   rz   r   r   s   &  rA   test_high_derivativeTestKrogh.test_high_derivative   si    dggdgg.s477|Qs477|^4AT\\! < "T\\): ;= 5rC   c                   V P                   p\        P                  P                  . RO4      p\        P                  P                  . RO4      p\        P                  ! V! V P
                  4      V! V P
                  4      V! V P
                  4      3RR7      p\        V P
                  V^ R7      pVP                  V P                  4      p\        VP                  ^ ,          4       F  p\        Wg,          \        P                  ! VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      3RR7      4       K  	  R# r   rG   Nr   r   r   r   r      r   r   )r   r"   r   r   stackr   r   rX   r   r&   r,   r   r   rz   poly1poly2poly3r   r   r   r   s   &       rA   test_ndim_derivativesTestKrogh.test_ndim_derivatives   s    ((8(();<XXuTWW~uTWW~uTWW~FRPdggr2MM$,,'qwwqz"AADHHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-./ #rC   c                   V P                   p\        P                  P                  . RO4      p\        P                  P                  . RO4      p\        P                  ! V! V P
                  4      V! V P
                  4      V! V P
                  4      3RR7      p\        V P
                  V^ R7      p\        VP                  4       F  p\        VP                  V P                  V4      \        P                  ! VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      3RR7      4       K  	  R# r   )r   r"   r   r   r   r   r   r&   nr   r_   r   r   rz   r   r   r   r   r   r   s   &      rA   test_ndim_derivativeTestKrogh.test_ndim_derivative   s    ((8(();<XXuTWW~uTWW~uTWW~FRPdggr2qssAALLq9HHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-./ rC   c                    \        V P                  V P                  4      p\        V P	                  V P
                  4      V! V P
                  4      4       R # rW   r   r   s   & rA   test_hermiteTestKrogh.test_hermite   r   rC   c                x   . ROp\         P                  ! ^ ^.^^ .^^..4      p\        W4      p\        VP                  ^,          4       Uu. uF  p\        WRV3,          4      NK  	  pp\         P
                  ! R^^d4      p\        V! V4      \         P                  ! V Uu. uF
  qw! V4      NK  	  up4      P                  4       \        VP                  V4      \         P                  ! \         P                  ! V Uu. uF  qwP                  V4      NK  	  up4      R4      4       R# u upi u upi u upi )r   NNNNr   r   r   r   )r   r   r   )r"   r   r   r&   r,   r   r   r   TrX   r*   )rz   r   r   r   r   Pir   r   s   &       rA   test_vectorTestKrogh.test_vector   s    XX!uaUAa5)*b$5:288A;5GH5Gac7+5GH++b3'AgJJJB'?Bq'
B'?@BB	DAMM'2RZZ(LAw)?(LM		 I (@(Ls   D-$D2D7c                    \        V P                  V P                  4      p\        V! . 4      \        P
                  ! . 4      4       R # rW   )r   r   r   r   r"   r   r   s   & rA   
test_emptyTestKrogh.test_empty   s,    dggdgg."rzz"~.rC   c                   \        V P                  V P                  4      p\        P                  ! V! ^ 4      4      R8X  g   Q h\        P                  ! V! \        P
                  ! ^ 4      4      4      R8X  g   Q h\        P                  ! V! ^ .4      4      R8X  g   Q h\        P                  ! V! ^ ^.4      4      R8X  g   Q hR# r   Nr    r!   rj   )r   r   r   r"   r,   r   r   s   & rA   test_shapes_scalarvalue!TestKrogh.test_shapes_scalarvalue   s    dggdgg.xx!~###xx"((1+'2---xx1#4'''xx1Q%!T)))rC   c                   \        V P                  V P                  4      pVP                  p\        P
                  ! VP                  ^ 4      4      V38X  g   Q h\        P
                  ! VP                  \        P                  ! ^ 4      4      4      V38X  g   Q h\        P
                  ! VP                  ^ .4      4      V^38X  g   Q h\        P
                  ! VP                  ^ ^.4      4      V^38X  g   Q hR# r   )r   r   r   r   r"   r,   rX   r   rz   r   r   s   &  rA   "test_shapes_scalarvalue_derivative,TestKrogh.test_shapes_scalarvalue_derivative  s    dggdgg.CCxxa()aT111xxbhhqk23t;;;xxqc*+1v555xxq!f-.1a&888rC   c           	     p   \        V P                  \        P                  ! V P                  \        P
                  ! ^4      4      4      p\        P                  ! V! ^ 4      4      R8X  g   Q h\        P                  ! V! ^ .4      4      R8X  g   Q h\        P                  ! V! ^ ^.4      4      R8X  g   Q hR# r   N)r   )r   r   )r   r   )r   r   r"   outerr   aranger,   r   s   & rA   test_shapes_vectorvalue!TestKrogh.test_shapes_vectorvalue
  s    dggbhhtwwryy|&DExx!~%%%xx1#6)))xx1a&	"f,,,rC   c                J   \        V P                  \        P                  ! V P                  ^.4      4      p\        P
                  ! V! ^ 4      4      R8X  g   Q h\        P
                  ! V! ^ .4      4      R8X  g   Q h\        P
                  ! V! ^ ^.4      4      R8X  g   Q hR# r   Nr!   )r   r   )r   r   )r   r   r"   r  r   r,   r   s   & rA   test_shapes_1d_vectorvalue$TestKrogh.test_shapes_1d_vectorvalue  sy    dggbhhtwws&;<xx!~%%%xx1#6)))xx1Q%!V+++rC   c           	        \        V P                  \        P                  ! V P                  \        P
                  ! ^4      4      4      pVP                  p\        P                  ! VP                  ^ 4      4      V^38X  g   Q h\        P                  ! VP                  ^ .4      4      V^^38X  g   Q h\        P                  ! VP                  ^ ^.4      4      V^^38X  g   Q hR# r   N)	r   r   r"   r  r   r  r   r,   rX   r   s   &  rA   "test_shapes_vectorvalue_derivative,TestKrogh.test_shapes_vectorvalue_derivative  s    dggbhhtwwryy|&DECCxxa()aV333xxqc*+1ay888xxqe,-!Q:::rC   c           
        \        V P                  V P                  4      p\        p\	        V! V P
                  4      V! V P                  V P                  V P
                  4      4       \	        VP                  V P
                  ^4      V! V P                  V P                  V P
                  ^R7      4       \	        VP                  V P
                  ^4      V! V P                  V P                  V P
                  ^ ^.R7      4       R# )r   derN)r   r   r   r	   r   r   r_   rX   )rz   r   kis   &  rA   test_wrapperTestKrogh.test_wrapper  s    dggtww/AdllOR$,,-OPALLq9tww1E	GAMM$,,:twwAq6J	LrC   c           	         . ROp\         P                  ! . RO4      p\        W4      p\        \	        V! V4      V,
          VP                  V^4      ,          4      \         P                  ! V4      RR7       R# )r   g|=atolN)r      i  i  i  i  i|  i$	  i  i  i   i03  i`  )gffffffg닥ąg䑉g!p$ЀgV0޿gx*ZֿgDпg2]g H.g9Cg6D.gG/g?)r"   r   r   r   absr_   
zeros_like)rz   r8   
offset_cdffs   &   rA   test_int_inputsTestKrogh.test_int_inputs&  s_    XX ? @
 a,QqTJ.!,,q!2DDEj1	?rC   c                ^   \         P                  ! . RO4      \         P                  ! . RO4      r!\        W4      pVP                  ^ 4      p\        WP                  4      P                  ^ 4      R\        WP
                  4      P                  ^ 4      ,          ,           p\        WERR7       R# )r   r   V瞯<r  N)r   r   r   r   r   )r   r   r   r   r   )r"   r   r   rX   realimagr   )rz   r8   r:   funccmplxcmplx2s   &     rA   test_derivatives_complex"TestKrogh.test_derivatives_complex3  s}    xx)*BHH5K,L1 &  ##Avv.::1=&q&&1==a@@AE2rC   c                    \         P                  ! \        R R7      ;_uu_ 4        \        \        P
                  ! ^(4      \        P                  ! ^(4      4       RRR4       R#   + '       g   i     R# ; i)z40 degrees provided,matchN)pytestwarnsUserWarningr   r"   r  onesr   s   &rA   test_high_degree_warning"TestKrogh.test_high_degree_warning=  s>    \\+-CDDbiimRWWR[9 EDDDs   5A$$A5	c                l   a  \        S P                  S P                  4      pV 3R  lp\        ^
W!4       R# )c                 ,   < V! SP                   4       R # rW   r   _interprz   s   &&rA   	worker_fn-TestKrogh.test_concurrency.<locals>.worker_fnF      477OrC   N)r   r   r   r   rz   r   r5  s   f  rA   test_concurrencyTestKrogh.test_concurrencyB  s(    dggtww/	 	 I1rC   r   r   r   r   N)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)  markthread_unsafer-  r9  r   r   r   s   @rA   r   r      s     *JY
&&C=//J
/*9-,;L?3 [[: : [[2 2rC   r   c                   &   a  ] tR tRt o R tRtV tR# )
TestTayloriL  c                    ^p\        \        P                  ^ V^^4      p\        V^,           4       F%  p\	        V! ^ 4      ^4       VP                  4       pK'  	  \	        V! ^ 4      ^ 4       R# r   N)r   r"   expr&   r   r   )rz   degreer   r   s   &   rA   test_exponentialTestTaylor.test_exponentialM  sX    )"&&!VQCvaxA!Q'	A ! 	AaD#rC   r    N)r|   r}   r~   r   rD  r   r   r   s   @rA   r?  r?  L  s     $ $rC   r?  c                     a  ] tR tRt o R tR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR t]P4                  P6                  R 4       t]P4                  P6                  R 4       tRtV tR# )TestBarycentriciV  c                   \         P                  P                  . RO4      V n        \         P                  ! R^^d4      V n        \         P                  ! R^^4      V n        V P                  V P                  4      V n        R# r   r   r   s   &rA   r   TestBarycentric.setup_methodW  sU    112CD{{2q#.++b!Q'..)rC   c                    \        V P                  V P                  ^R7      p\        V! V P                  4      V P                  V P                  4      4       R# )r   )random_stateN)r
   r   r   r   r   r   r   s   & rA   r   TestBarycentric.test_lagrange]  s7    #DGGTWW1E$,,)EFrC   c                &   \        V P                  V P                  ^R7      p\        V! ^4      V P	                  ^4      RR7       \        V! \
        P                  ! ^4      4      V P	                  \
        P                  ! ^4      4      RR7       R# )r   r7   Fr   N)r
   r   r   r   r   r"   r   r   s   & rA   r   TestBarycentric.test_scalarb  sZ    #DGGTWW!<!dnnQ/%@"((1+rxx{(CeTrC   c                8   \        V P                  V P                  4      pVP                  V P                  4      p\        VP                  ^ ,          4       F>  p\        V P                  P                  V4      ! V P                  4      W#,          4       K@  	  R# r   )
r
   r   r   rX   r   r&   r,   r   r   r   r   s   &   rA   r    TestBarycentric.test_derivativesg  sc    #DGGTWW5MM$,,'qwwqz"ADNN003DLLA14H #rC   c                r   \        V P                  V P                  4      pVP                  V P                  \        V P                  4      ^,           4      p\        VP                  ^ ,          4       F@  p\        V P                  P                  V4      ! V P                  4      W#,          RR7       KB  	  R# )r   -q=r  N)r
   r   r   rX   r   r'   r&   r,   r   r   r   r   s   &   rA   r   $TestBarycentric.test_low_derivativesm  sw    #DGGTWW5MM$,,DGGQ7qwwqz"ADNN003DLLAD!&( #rC   c                    \        V P                  V P                  4      p^
pVP                  V P                  V4      p\        V4       F/  p\        VP                  V P                  V4      W4,          4       K1  	  R# r   )r
   r   r   rX   r   r&   r   r_   r   s   &    rA   r   TestBarycentric.test_derivativeu  sX    #DGGTWW5MM$,,*qAALLq914@ rC   c           	     `   \        V P                  V P                  4      p\        \	        V P                  4      ^\	        V P                  4      ,          4       FP  p\        VP                  V P                  V4      \        P                  ! \	        V P                  4      4      4       KR  	  R# rA  )
r
   r   r   r&   r'   r   r_   r   r"   r+   r   s   &  rA   r   $TestBarycentric.test_high_derivative|  si    #DGGTWW5s477|Qs477|^4AALLq9HHS%679 5rC   c                   V P                   p\        P                  P                  . RO4      p\        P                  P                  . RO4      p\        P                  ! V! V P
                  4      V! V P
                  4      V! V P
                  4      3RR7      p\        V P
                  V^ R7      pVP                  V P                  4      p\        VP                  ^ ,          4       F  p\        Wg,          \        P                  ! VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      3RR7      RR7       K  	  R# r   rG   rS  r  Nr   r   r   )r   r"   r   r   r   r   r
   rX   r   r&   r,   r   r   r   s   &       rA   r   %TestBarycentric.test_ndim_derivatives  s   ((8(();<XXuTWW~uTWW~uTWW~FRP#DGGRa8MM$,,'qwwqz"AADHHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-. "'( #rC   c                   V P                   p\        P                  P                  . RO4      p\        P                  P                  . RO4      p\        P                  ! V! V P
                  4      V! V P
                  4      V! V P
                  4      3RR7      p\        V P
                  V^ R7      p\        VP                  4       F  p\        VP                  V P                  V4      \        P                  ! VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      VP                  V4      ! V P                  4      3RR7      RR7       K  	  R# rZ  )r   r"   r   r   r   r   r
   r&   r   r   r_   r   r   r   s   &      rA   r   $TestBarycentric.test_ndim_derivative  s    ((8(();<XXuTWW~uTWW~uTWW~FRP#DGGRa8qssAALLq9HHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-. "'( rC   c                    \        V P                  4      pVP                  V P                  4       \	        V P                  V P                  4      V! V P                  4      4       R # rW   )r
   r   set_yir   r   r   r   r   s   & rA   test_delayedTestBarycentric.test_delayed  s?    #DGG,	DNN4<<8!DLL/JrC   c                4   \        V P                  R ,          V P                  R ,          4      pVP                  V P                  R,          V P                  R,          4       \	        V P                  V P                  4      V! V P                  4      4       R# )Nr   N:r   NNN)r
   r   r   add_xir   r   r   r   s   & rA   test_appendTestBarycentric.test_append  s[    #DGGBK=	dggbk*DNN4<<8!DLL/JrC   c                   . ROp\         P                  ! ^ ^.^^ .^^..4      p\        pV! W4      p\        VP                  ^,          4       Uu. uF  qS! WRV3,          4      NK  	  pp\         P
                  ! R^^d4      p\        V! V4      \         P                  ! V Uu. uF
  q! V4      NK  	  up4      P                  4       R# u upi u upi )r   r   Nr   r   )	r"   r   r
   r&   r,   r   r   r   r   )	rz   r   r   BIr   r   r   r   r   s	   &        rA   r   TestBarycentric.test_vector  s    XX1v1v1v./$rJ(-bhhqk(:;(:1b1X(:;++b!S)AgJJJB'?Bq'
B'?@BB	D < (@s   C
#Cc                   \        V P                  V P                  4      p\        P                  ! V! ^ 4      4      R8X  g   Q h\        P                  ! V! \        P
                  ! ^ 4      4      4      R8X  g   Q h\        P                  ! V! ^ .4      4      R8X  g   Q h\        P                  ! V! ^ ^.4      4      R8X  g   Q hR# r   )r
   r   r   r"   r,   r   r   s   & rA   r   'TestBarycentric.test_shapes_scalarvalue  s    #DGGTWW5xx!~###xx"((1+'2---xx1#4'''xx1a&	"d***rC   c                   \        V P                  V P                  4      pVP                  p\        P
                  ! VP                  ^ 4      4      V38X  g   Q h\        P
                  ! VP                  \        P                  ! ^ 4      4      4      V38X  g   Q h\        P
                  ! VP                  ^ .4      4      V^38X  g   Q h\        P
                  ! VP                  ^ ^.4      4      V^38X  g   Q hR# r   )r
   r   r   r   r"   r,   rX   r   r   s   &  rA   r   2TestBarycentric.test_shapes_scalarvalue_derivative  s    #DGGDGG4CCxxa()aT111xxbhhqk23t;;;xxqc*+!u444xxqe,-!A666rC   c           	     p   \        V P                  \        P                  ! V P                  \        P
                  ! ^4      4      4      p\        P                  ! V! ^ 4      4      R8X  g   Q h\        P                  ! V! ^ .4      4      R8X  g   Q h\        P                  ! V! ^ ^.4      4      R8X  g   Q hR# r   )r
   r   r"   r  r   r  r,   r   s   & rA   r  'TestBarycentric.test_shapes_vectorvalue  s    #DGGRXXdggryy|-LMxx!~%%%xx1#6)))xx1a&	"f,,,rC   c                J   \        V P                  \        P                  ! V P                  ^.4      4      p\        P
                  ! V! ^ 4      4      R8X  g   Q h\        P
                  ! V! ^ .4      4      R8X  g   Q h\        P
                  ! V! ^ ^.4      4      R8X  g   Q hR# r  )r
   r   r"   r  r   r,   r   s   & rA   r  *TestBarycentric.test_shapes_1d_vectorvalue  sy    #DGGRXXdggs-CDxx!~%%%xx1#6)))xx1a&	"f,,,rC   c           	        \        V P                  \        P                  ! V P                  \        P
                  ! ^4      4      4      pVP                  p\        P                  ! VP                  ^ 4      4      V^38X  g   Q h\        P                  ! VP                  ^ .4      4      V^^38X  g   Q h\        P                  ! VP                  ^ ^.4      4      V^^38X  g   Q hR# r
  )	r
   r   r"   r  r   r  r   r,   rX   r   s   &  rA   r  2TestBarycentric.test_shapes_vectorvalue_derivative  s    #DGGBHHTWWRYYq\,JKCCxxa()aV333xxqc*+1ay888xxq!f-.1a);;;rC   c                   \        V P                  V P                  ^R7      p\        p\	        V! V P
                  4      V! V P                  V P                  V P
                  ^R7      4       \	        VP                  V P
                  ^4      V! V P                  V P                  V P
                  ^^R7      4       \	        VP                  V P
                  ^4      V! V P                  V P                  V P
                  ^ ^.^R7      4       R# )r   rN  )r  r7   N)r
   r   r   r   r   r   r_   rX   )rz   r   bis   &  rA   r  TestBarycentric.test_wrapper  s    #DGGTWW!<$$,,DGGTWWdllPQ)RST\\15477DGGT\\qaH	JdllA6477DGGT\\1v1M	OrC   c                    R \         P                  ! ^^4      ,          p\         P                  ! ^^4      p\        WR4      p\        V\         P                  ! R4      4       R# )i  g      #@Ng     @)r"   r  r   r   r   )rz   r8   r:   values   &   rA   test_int_inputTestBarycentric.test_int_input  sE    299Q##IIa'j9E2::c?3rC   c                   R p\         P                  ! V^,           4      P                  \         P                  4      p\         P                  ! V\         P
                  ,          V,          4      pRV,          pV^ ;;,          R,          uu&   VR;;,          R,          uu&   \        V4      pVP                  ^ ,          p\        VP                  ^V,          ,          V4       R# )iL        ?Nr   )	r"   r  astypefloat64cospir
   wir   )rz   r   jr8   wr   factors   &      rA   test_large_chebyshev$TestBarycentric.test_large_chebyshev  s     IIa!e##BJJ/FF1ruu9q=! AI	!	"#A& aADDAJ/3rC   c                   \        ^ ^.^^.4      p\        P                  ! RR7      ;_uu_ 4        V! VP                  4      pRRR4       \	        XVP
                  P                  4       4       R#   + '       g   i     L6; i)r   raise)divideN)r
   r"   errstater;   r   r=   ravel)rz   r   r=   s   &  rA   test_warningTestBarycentric.test_warning  sX     $QFQF3[[((144B )
 	B

- )(s   A11B	c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        P                  ! \        RR7      ;_uu_ 4        \        W4       RRR4       R#   + '       g   i     R# ; i)皙?z)Interpolation points xi must be distinct.r'  N)r  r|  ?r|  r   )r"   r   r)  r   
ValueErrorr
   )rz   xisr   s   &  rA   test_repeated_node"TestBarycentric.test_repeated_node
  sZ     hh+,XXl#]]:!LN N#C,N N N Ns   A++A<	c                l   a  \        S P                  S P                  4      pV 3R  lp\        ^
W!4       R# )c                 ,   < V! SP                   4       R # rW   r1  r2  s   &&rA   r5  3TestBarycentric.test_concurrency.<locals>.worker_fn  r7  rC   N)r
   r   r   r   r8  s   f  rA   r9   TestBarycentric.test_concurrency  s(    #DGGTWW5	 	 I1rC   r;  N) r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r`  re  r   r   r   r  r  r  r  ry  r  r  r)  r<  r=  r  r9  r   r   r   s   @rA   rG  rG  V  s     *G
U
I(A9( (K
K
D+7--<O442	. [[- - [[2 2rC   rG  c                      a  ] tR tRt o RR ltR tR tR tR tR t	]
P                  P                  R 4       tR	 tR
 tR tRtV tR# )	TestPCHIPi  c                    \         P                  P                  R 4      p\         P                  ! VP                  V4      4      pVP                  V4      p\	        W44      W43# )r   )r"   r#   r$   sortr   )rz   nptsr7   r;   r=   s   &&   rA   _make_randomTestPCHIP._make_random  sJ    ii##D)WWSZZ%&ZZR}b$$rC   c                x   V P                  4       w  rp\        \        V4      ^,
          4       F  pW$,          W$^,           ,          reW4,          W4^,           ,          rWx8  d   Yr\        P                  ! WV^
4      p	V! V	4      p
WzR,           8*  WR,           8*  ,          P                  4       '       d   K  Q h	  R# )r   r  Nr  r&   r'   r"   r   allrz   r   r;   r=   r   x1x2y1y2xpyps   &          rA   test_overshootTestPCHIP.test_overshoot%  s    %%'	rs2wqy!AUBsGUBsGwBRR(B2B:%"U
*:;@@BBBB "rC   c                   V P                  4       w  rp\        \        V4      ^,
          4       F  pW$,          W$^,           ,          reW4,          W4^,           ,          r\        P                  ! WV^
4      p	V! V	4      p
W,
          V
R,          V
R,          ,
          ,          ^ 8  P                  4       '       d   K  Q h	  R# )r   r   :Nr   NNr  r  s   &          rA   test_monotoneTestPCHIP.test_monotone1  s    %%'	rs2wqy!AUBsGUBsGRR(B2BUr"v2/!388:::: "rC   c                   \         P                  ! . RO. RO.4      p\         P                  ! ^d4      p\        V^ ,          V^,          4      ! V4      pVR,          p\        V^ ,          V^,          4      ! V4      p\	        W5RRR7       R# )r         ?+=)r  rtolN)
r   r   r      /   <   O   W   c   d   )
r  ir   r      &   -   5   7   )r"   r   r  r   r   )rz   dataxxcurvedata1curve1s   &     rA   	test_castTestPCHIP.test_cast;  sq    xx@DF GYYs^d1gtAw'+s
uQxq*2.E>rC   c                0   R p\         P                  ! \        P                  ! V4      4      p\	        VR,          VR,          4      pRp\         P                  ! \        P                  ! V4      4      p\        VR,          V! VR,          4      RRR7       R# )a  
          7.99   0.00000E+0
          8.09   0.27643E-4
          8.19   0.43750E-1
          8.70   0.16918E+0
          9.20   0.46943E+0
         10.00   0.94374E+0
         12.00   0.99864E+0
         15.00   0.99992E+0
         20.00   0.99999E+0
        a^  
           7.9900       0.0000
           9.1910       0.4640
          10.3920       0.9645
          11.5930       0.9965
          12.7940       0.9992
          13.9950       0.9998
          15.1960       0.9999
          16.3970       1.0000
          17.5980       1.0000
          18.7990       1.0000
          20.0000       1.0000
                g-C6
?r  r  Nr   r   r   r   )r"   loadtxtioStringIOr   r   )rz   dataStrr  pch	resultStrresults   &     rA   test_nagTestPCHIP.test_nagG  sq    

 zz"++g./DItCy)	 BKK	23sS%5BTJrC   c                "   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\        W4      \        W4      3 F,  pV^ ,          VR,          3 F  pV! V^4      ^ 8w  d   K  Q h	  K.  	  R# )r  N)r  r  g      ?gffffff?)皙uq@g     @@     @@     @)r  r  g     p@r  r   )r"   r   r   )rz   r8   r  r  ppts   &     rA   test_endslopesTestPCHIP.test_endslopesj  sp     HH+,XX34XX45<q.BdAbE]!Qx1}$} # /rC   c                z   \         P                  ! ^
4      p\         P                  ! V4      p\        P                  ! 4       ;_uu_ 4        \        P
                  ! R4       \        W4      pRRR4       \         P                  ! ^ ^	^e4      p\        X! V4      R8H  4      '       g   Q hR#   + '       g   i     LF; i)r   errorNr  )	r"   r  r  warningscatch_warningsfilterwarningsr   r   r  )rz   r8   r:   r  r  s   &    rA   test_all_zerosTestPCHIP.test_all_zerost  s    IIbMMM! $$&&##G,+C ' [[As#3r7b=!!!! '&s   
"B**B:	c                    \         P                  ! ^ ^^4      p\        ^ ^.^ ^.4      p\        V! V4      ^V,          RR7       R# )r   r  r  N)r"   r   r   r   )rz   r8   r   s   &  rA   test_two_pointsTestPCHIP.test_two_points  s>    
 KK1b!1a&1a&!!ac.rC   c                j   \        \        . RO. ROR.^R7      \        P                  ! R.4      4       \        \        . RO. ROR.^ R7      \        P                  ! R.4      4       \        \        P                  ! \        . RO. ROR.^ ^.R7      4      \        P                  ! R.^..4      4       R# )r   r|  r  r  g      @Nr   r   r   )r   r   r   )r   r   r"   r   r   s   &rA   test_pchip_interpolate TestPCHIP.test_pchip_interpolate  s    !iSEqAJJt	 	"iSEqAJJu	 	"JJ(Iu1a&QRJJs|$	&rC   c                    \        ^ ^.R^.4      pVP                  4       p\        V\        P                  ! R.4      4       R# )r   r|  Nr   )r   rootsr   r"   r   )rz   r   r   s   &  rA   
test_rootsTestPCHIP.test_roots  s6    1a&2q'"GGI2::se,-rC   r    N)   )r|   r}   r~   r   r  r  r  r  r  r  r)  r<  r=  r  r  r  r  r   r   r   s   @rA   r  r    sX     %
C;
?!KF% [[
" 
"/&. .rC   r  c                   p   a  ] tR tRt o ]RR l4       tR tR tR tR t	R t
R tR	 tR
 tR tR tRtV tR# )TestCubicSplinei  c           	     l
   V P                   pV P                  p\        P                  ! V4      pVP	                  VP
                  ^ ,          .^.VP                  ^,
          ,          ,           4      pVRR p\        VR,          V^ RR13,          V^,          ,          V^RR13,          V^,          ,          ,           V^RR13,          V,          ,           V^RR13,          ,           W3R7       \        VR	,          ^V^ RR13,          ,          V^,          ,          ^V^RR13,          ,          V,          ,           V^RR13,          ,           W3R7       \        VR
,          ^V^ RR13,          ,          V,          V^RR13,          ,           W3R7       VP                  ^8X  dA   VR8X  d:   VR8X  d3   \        V^ ,          \        P                  ! V^ ,          4      W3R7       R# VR8X  d   \        V ! V^ ,          ^ 4      V ! VR,          ^ 4      W3R7       \        V ! V^ ,          ^4      V ! VR,          ^4      W3R7       \        V ! V^ ,          ^4      V ! VR,          ^4      W3R7       R# VR8X  d   VP                  ^8X  de   V ! V^,          4      V ! V^ ,          4      ,
          V^ ,          ,          p\        P                  ! V4      p\        V ! V^ ,          ^4      WVR7       M\        VR,          VR,          W3R7       MVR8X  d@   \        V ! V^ ,          ^4      \        P                  ! V ! V^ ,          ^4      4      W3R7       MzVR8X  d@   \        V ! V^ ,          ^4      \        P                  ! V ! V^ ,          ^4      4      W3R7       M4Vw  r\        V ! V^ ,          V	4      \        P                  ! V
4      W3R7       VR8X  d   VP                  ^8X  df   V ! V^,          4      V ! V^ ,          4      ,
          V^ ,          ,          p\        P                  ! V4      p\        V ! V^,          ^4      WVR7       R# \        VR,          VR,          W3R7       R# VR8X  dA   \        V ! VR,          ^4      \        P                  ! V ! VR,          ^4      4      W3R7       R# VR8X  dP   \        V ! VR,          ^4      \        P                  ! V ! VR,          ^4      4      ^V,          ^V,          R7       R# Vw  r\        V ! VR,          V	4      \        P                  ! V
4      W3R7       R# )zNCheck that spline coefficients satisfy the continuity and boundary
conditions.Nr  
not-a-knotperiodicrM   rL   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r   r   )r8   cr"   diffr0   r,   r/   r   r-   r  r   )Sbc_startbc_endtolr8   r  dxdxislopeorderrx  s   &&&&       rA   check_correctness!TestCubicSpline.check_correctness  s   
 CCCCWWQZZZ!qvvz(::;"g 	%!AssF)c1f"4qCRCy367I"I!SbS&	C#(*+AssF)#4:=	I%!a3B3i-#q&"8Aa"fI+#,./3B3i#8>A	M%!a3B3i-#"5!SbS&	"A 	, 66Q;8|3,8NAaD"--!"5CJ z!AadAJ!B%#HAadAJ!B%#HAadAJ!B%#H |#vv{1Q41QqT7*be3

5)!A$
E#F$4sE"!A$
BMM!AaD!*5CK"!A$
BMM!AaD!*5CK $LEAadENBJJu,=CR\!vv{1Q41QqT7*be3

5)!A$
E#F%!E(Gy AaeQKq2{)C!$0y AaeQKq2{)C!"3QsU4 "LEAaeUORZZ->SSrC   c           	        \        VP                  4      pWC \        P                  ! V4      pVP	                  ^4       \        P                  ! V4      pVP	                  R	4       RRR^V3^V3.pVR,           F"  p\        WW8R7      p	V P                  WV4       K$  	  V F/  p
V F&  p\        WW:V3R7      p	V P                  WVRR7       K(  	  K1  	  R# )
r   r  rL   rM   rc  r   rK   g+=r  Nr   )r%   r,   r"   emptyfillr   r  )rz   r8   r:   r   r5   first_derivsecond_derivbc_allrR   r  r  r  s   &&&&        rA   check_all_bcTestCubicSpline.check_all_bc  s    177mhh{+xx,"
 **BAt8A""1"-  H 4F9KL&&qF&F ! rC   c                   \         P                  ! . RO4      p\         P                  ! . RO4      p^^VP                  3 F  pV P                  VRV VRV ^ 4       \         P                  ! ^V^34      pVRV VR&   VRV ^,
          VR&   VRV ^,           VR&   VRV ^,           VR&   V P                  VRV V^4       K  	  R# )r   N)r   r   r|  r   r   g      @g      @	   )r   g      r   r   g      @r   r   r|  r   r   r   r   r   r   r   r   r   r   r   r   )r"   r   r-   r	  r  )rz   r8   r:   r   Ys   &    rA   test_generalTestCubicSpline.test_general  s    HH45HH45QAaeQrUA.!Q#A2AAgJ2AAgJ2AAgJ2AAgJaeQ*  rC   c                   R F  p\         P                  ! ^ ^\         P                  ,          V4      p\         P                  ! V4      p\	        W#RR7      pV P                  VRR4       \         P                  ! ^V^34      pW5R&   V^,           VR&   V^,
          VR&   V^,           VR	&   \	        W%^RR7      pV P                  VRR4       K  	  R# )
r   r  rK   r  N)r   r   r   r  r  r  r  )r"   r   r  r  r   r  r  )rz   r   r8   r:   r  r  s   &     rA   test_periodicTestCubicSpline.test_periodic  s    AAq255y!,Aq	AA*5A""1j*=!Q#AgJQAgJQAgJQAgJAq*=A""1j*= rC   c                   \         P                  ! ^ ^\         P                  ,          ^
4      p\         P                  ! V4      p\	        WRR7      p\        V! ^4      V! ^^\         P                  ,          ,           4      ^R7       R# )r   r  r  )decimalN)r"   r   r  r  r   r   rz   r8   r:   r  s   &   rA   test_periodic_eval"TestCubicSpline.test_periodic_eval  sV    KK1ruu9b)FF1Ij1AaD!ABEE	M"2B?rC   c                    \         P                  ! . RO4      p\         P                  ! . RO4      p\        WRRR7      pV P                  VRR4       R# )r  r  )rK   extrapolateN)r  ?gffffff? @@      @g333333@g@g@g      @g      @g      @g       @gffffff"@g      %@g&@g333333'@g      (@g333333)@g      *@g*@)r  g      ?g?r   r!  g@g333333@g333333@gffffff @r         @gffffff@r#  g333333?gffffff?r  gffffff?g333333?r|  g?r  )r"   r   r   r  r  s   &   rA   *test_second_derivative_continuity_gh_11758:TestCubicSpline.test_second_derivative_continuity_gh_11758  sL    HH O PHH P QjjIq*j9rC   c                   \         P                  ! . RO4      p\         P                  ! . RO4      p\        WRR7      pV P                  VRR4       \	        VP                  ^4      ! V4      \         P                  ! . RO4      4       R# )r  r  r  N)r  g      @r"  )r  g      .@r  )      Hr'  r'  )r"   r   r   r  r   r_   r  s   &   rA   test_three_points!TestCubicSpline.test_three_points#  sa     HH%&HH%&j1q*j9Q*BHH5J,KLrC   c                   \         P                  ! . RO4      p\         P                  ! R R.RR .R R..4      p\        WRR7      pV P                  VRR4       \        WR,          RR7      p\        WR,          RR7      p\         P                  ! ^ ^^4      p\        V! V4      R,          V! V4      4       \        V! V4      R,          V! V4      4       R# )r  r  r  r  N)r  r  r"  r  r  )r"   r   r   r  r   r   )rz   r8   r:   r  S0S1qs   &      rA   #test_periodic_three_points_multidim3TestCubicSpline.test_periodic_three_points_multidim/  s     HH_%HHsCj3*sCj9:j1q*j9dGZ8dGZ8KK1a !T
BqE*!T
BqE*rC   c                   \         P                  ! . RO\        R7      p\         P                  ! . RO\        R7      p\        W4      pV P	                  V4       \         P                  ! . RO4      p\        W4      pV P	                  V4       \        W^,          R	R7      pV P	                  VRR4       \         P                  ! . RO4      p\        WR
R.R7      pV P	                  VR
R4       R# )r   )dtyperL   r  N)r   r   r   r   )r   r   r   r   )y            ?r  y      ?      y      ?      r   y               @)rL   r2  )r   y       @      ?)r   y      ?      )r"   r   intr   r  r  s   &   rA   test_dtypesTestCubicSpline.test_dtypes<  s    HH\-HH]#.q!HH12q!6+?@q)W5HH]#}m&DEq-?rC   c                    \         P                  P                  ^ 4      p\         P                  ! VP	                  ^dR7      4      pRVP	                  ^dR7      ,           p\        W#4      pV P                  VRR7       R# )r   )r-   g     @gvIh%<=r  N)r"   r#   r$   r  uniformr   r  )rz   r7   r8   r:   r  s   &    rA   test_small_dxTestCubicSpline.test_small_dxM  sa    ii##A&GGCKKSK)*#++3+''qe,rC   c           
     0   \         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! . RO4      p\         P                  ! \         P                  ^^^.4      p\         P                  ! . RO4      p\         P                  ! \         P                  ^^^.4      p. R	Op^.p^.p	\        \        \
        W24       \        \        \
        WB4       \        \        \
        W4       \        \        \
        WR4       \        \        \
        W4       \        \        \
        VR\         P                  3,          V4       \        \        \
        W4       . R
Op
V
 F  p\        \        \
        W^ VR4       K  	  \         P                  W"3,          pRpR^. RO33pR^^ ^ ..33p\        \        \
        W^ VR4       \        \        \
        W^ VR4       \        \        \
        W^ VR4       \        \        \
        W^ RR4       R# )r   r   r  rM   TNr   )y      ?      ?r   r   r   )r   r   r   r   r  ))r  rM   ))r   r   )r   r   )r   r   )r  r  z
not-a-typo)rM   r;  )r   r   r   )r"   r   nanassert_raisesr  r   newaxisc_)rz   r8   r:   xcxnxoyny3r  r  wrong_bcrK   r  bc1bc2bc3s   &               rA   test_incorrect_inputs%TestCubicSpline.test_incorrect_inputsT  s   HH\"HH\"XX'(XXrvvq!Q'(XXl#XXrvvq!Q'(SSj+r5j+r5j+q5j+r5j+q5j+qBJJ/?Cj+r6"  G*k1GTJ   EE!$K!1i.)11vh-(j+qQTBj+qQTBj+qQTB 	j+qQ
DIrC   r    N)r  r  r  )r|   r}   r~   r   staticmethodr  r	  r  r  r  r$  r(  r.  r4  r8  rI  r   r   r   s   @rA   r  r    sW     ?T ?TBG.+>@:
M+@"-&J &JrC   r  c                      . ROp . ROp. ROp\        WV4      p\        V! V 4      VRRRR7       \        V! V ^4      VRRRR7       R# )r   Fr  )rB   check_dtyper  N)r   r   r   )r   r   r   )r   r   r   )r   r   )r8   r:   r<   r9   s       rA   #test_CubicHermiteSpline_correctnessrN  }  sG    AAD1&AAaD!ENAaGTu%eTrC   c                      . ROp . ROp. ROp\        \        \        WV4       ^^ \        P                  .p\        \        \        WV4       R# )r   Nr  )r   r   r   )r   r   r   r   )r=  r  r   r"   r<  )r8   r:   r<   dydx_with_nans       rA   &test_CubicHermiteSpline_error_handlingrQ    s>    AAD*0!=266NM*0!FrC   c                  @   \         P                  ! R R.4      p \         P                  ! RR.4      p\         P                  ! RR.4      p\        WV4      pVP                  RR7      pVP                  P
                  ^,          ^8X  g   Q hVP                  ^8X  g   Q hR# )	gMbP?gMb`?gBܻ>gdJ>T)r  Ng/"g%")r"   r   r   r  r  r,   r-   )r8   r:   dyr   r   s        rA   test_roots_extrapolate_gh_11185rT    s    
% A
..12A	;	*	+B1$A 	
D!A3399Q<166Q;;rC   c                   z  a  ] tR tRt o ]P
                  P                  R]P                  ! R
4      ]P                  ! R4      .4      ]P
                  P                  R. RO4      ]P
                  P                  R. RO4      ]P
                  P                  R]	]
.4      R 4       4       4       4       t]P
                  P                  R]P                  ! R
4      ]P                  ! R4      .4      ]P
                  P                  R. RO4      ]P
                  P                  R]].4      R 4       4       4       tRtV tR	# )TestZeroSizeArraysi  r:   rK   r   clsc                :   \         P                  ! ^
4      p\         P                  ! ^4      pV! WRVR7      pV! V4      P                  ^ 8X  g   Q hV! V4      P                  VP                  VP                  R,          ,           8X  g   Q h\         P                  ! V^ V4      pV! WXW4R7      pVP                  RV VP                  3,           VP                  V^,           R ,           p	V! V4      P                  ^ 8X  g   Q hV! V4      P                  V	8X  g   Q hR# )r   r  r   )rK   r   Nr"   r  r-   r,   moveaxis)
rz   rW  r:   rK   r   r8   xvalobjytshs
   &&&&&     rA   test_zero_size!TestZeroSizeArrays.test_zero_size  s     IIbMyy|!(4y~~"""4y$**qwwr{":::: [[At$!4XXet_		},rxxQ/@@4y~~"""4y"$$$rC   c                6   \         P                  ! ^
4      p\         P                  ! ^4      pV! WB4      pV! V4      P                  ^ 8X  g   Q hV! V4      P                  VP                  VP                  R,          ,           8X  g   Q h\         P                  ! V^ V4      pV! WGVR7      pVP                  RV VP                  3,           VP                  V^,           R ,           pV! V4      P                  ^ 8X  g   Q hV! V4      P                  V8X  g   Q hR# )r   r   rG   NrY  )	rz   rW  r:   r   r8   r[  r\  r]  r^  s	   &&&&     rA   test_zero_size_2#TestZeroSizeArrays.test_zero_size_2  s    
 IIbMyy|!i4y~~"""4y$**qwwr{":::: [[At$!d#XXet_		},rxxQ/@@4y~~"""4y"$$$rC   r    N)r   r   r   )r   r   r   )r  r  rL   rM   r   )r|   r}   r~   r   r)  r<  parametrizer"   r+   r   r   r_  r   r   rb  r   r   r   s   @rA   rV  rV    s     [[S288J#7#%88J#7#9 :[[YMO[[VY/[[U%7$EF% G 0O:%  [[S288J#7#%88J#7#9 :[[VY/[[U%68K$LM% N 0:%rC   rV  )Nr   N)r    r[   r!   )r   r   r   )*r  r  numpyr"   scipy._lib._array_apir   r   r   r   r)  r   r=  scipy.interpolater   r	   r
   r   r   r   r   r   r   r   r   r   scipy._lib._testutilsr   rB   rN   rT   r\   r   r   r   r?  rG  r  r  rN  rQ  rT  rV  r    rC   rA   <module>ri     s     	   +     :&R 
%G"I26j/j2 j2Z$ $E2 E2P}. }.@\J \J~UG
/% /%rC   