
    (ph                     D   S SK r S SKrS SKrS SKJrJrJrJr  S SK	J
r  S SK	r	S SKJrJrJrJrJrJrJrJrJrJrJrJr  S SKJr    SS jr/ SQrS rS	 rS
 rS r  " S S5      r! " S S5      r" " S S5      r# " S S5      r$ " S S5      r%S r&S r'S r( " S S5      r)g)    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                    Uc  0 n[         R                  R                  S5      n/ SQn[        [	        S[        U5      S-   5      5      nUR                  U[        U5      S-   -  S5        UR                  " SU-   6 R                  U5      n	[         R                  " U5      n
U [        L a4  UR                  " SU-   6 R                  U5      nU " XyU4SU0UD6" U
5      nOU " Xy4SU0UD6" U
5      nU=(       d    SU	R                  S U -   U-   U	R                  US  SS  -   nUR                  U:X  d   eU(       a~  U	R                  S:  an  U [        L a8  U " [        U5      [        U	5      [        W5      4SU0UD6" [        U
5      5        O-U " [        U5      [        U	5      4SU0UD6" [        U
5      5        U
R                  S:  a  Uc  U	R                  S U S[        U5      -  -   U	R                  US  SS  -   nU	[        S 5      4XIR                  -  -  S-      nUR                  U5      n[         R                   " X5      u  p[#        X5        g g g )	N  )r               r   r      axis 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                   W/var/www/html/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_polyint.pycheck_shaperA      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 !qr 23L88|### 166A:11T!Wd1gtDz + +)++/85 T!Wd1g +D +)++/85 
ww{{*775D>DW$55qr8JJt/478ZZ!##B+ +{    )r   r   r    )r   r      c                  D   S n [         [        [        [        [        [
        U 4 Hx  n[         Hk  n[         H^  n[        [        U5      * [        U5      5       H8  nU[
        :w  a  [        XUS U5        M  S H  nSU0n[        XUS XF5        M     M:     M`     Mm     Mz     g )Nc                     [        XUS9$ Nr   )r   r7   r9   r   s      r@   
spl_interptest_shapes.<locals>.spl_interpB   s    !!T22rB   )naturalclampedbc_type)
r   r
   r   r   r   r   SHAPESr%   r&   rA   )rJ   ips1s2r   bcextras          r@   test_shapesrU   @   s    3 !"9;M);
DB!3r7(CG4D[(#BBd;"8B%.OE'D$F #9	 5  DrB   c                     ^ [         [        4 HY  mSU4S jjn [         HD  n[         H7  n[        [	        U5      * [	        U5      5       H  n[        XUSU5        M     M9     MF     M[     g )Nc                 *   > T" XU5      R                   $ N)derivatives)r7   r9   r   rP   s      r@   interpolator_derivs/test_derivs_shapes.<locals>.interpolator_derivsS   s    aD>---rB   r   rC   )r   r
   rO   r%   r&   rA   )rZ   rQ   rR   r   rP   s       @r@   test_derivs_shapesr\   Q   sX     "9:	. B!3r7(CG4D 3T4H 5  	 ;rB   c                  B   SS jn SS jnSS jnSS jnSS jnSS jnSS jnSS jnSS	 jnSS
 jn	SS jn
SS jnSS jnXX#UXEXxXX4 HQ  n[          HD  n[          H7  n[        [        U5      * [        U5      5       H  n[        XUSU5        M     M9     MF     MS     g )Nc                 .    [        XU5      R                  $ rX   )r   
derivativerI   s      r@   krogh_deriv&test_deriv_shapes.<locals>.krogh_deriv]   s     t,777rB   c                 .    [        XU5      R                  $ rX   )r
   r_   rI   s      r@   
bary_deriv%test_deriv_shapes.<locals>.bary_deriv`   s    &qT2===rB   c                 6    [        XU5      R                  5       $ rX   r   r_   rI   s      r@   pchip_deriv&test_deriv_shapes.<locals>.pchip_derivc   s    Q4 ++--rB   c                 8    [        XU5      R                  S5      $ Nr   rf   rI   s      r@   pchip_deriv2'test_deriv_shapes.<locals>.pchip_deriv2f   s    Q4 ++A..rB   c                 6    [        XU5      R                  5       $ rX   r   antiderivativerI   s      r@   pchip_antideriv*test_deriv_shapes.<locals>.pchip_antiderivi   s    Q4 //11rB   c                 8    [        XU5      R                  S5      $ rj   rn   rI   s      r@   pchip_antideriv2+test_deriv_shapes.<locals>.pchip_antideriv2l   s    Q4 //22rB   c                 2     " S S[         5      nU" XU5      $ )Nc                       \ rS rSrS rSrg)9test_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.Pp   c                 0    [         R                  " XS5      $ )Nr   )r   __call__)selfr7   s     r@   rz   Btest_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.P.__call__q   s    (11$1==rB   r   N)__name__
__module____qualname____firstlineno__rz   __static_attributes__r   rB   r@   Prw   p   s
    >rB   r   )r   )r7   r9   r   r   s       r@   pchip_deriv_inplace.test_deriv_shapes.<locals>.pchip_deriv_inplaceo   s    	! 	 t}rB   c                 6    [        XU5      R                  5       $ rX   )r   r_   rI   s      r@   akima_deriv&test_deriv_shapes.<locals>.akima_derivv   s    "1.99;;rB   c                 6    [        XU5      R                  5       $ rX   )r   ro   rI   s      r@   akima_antideriv*test_deriv_shapes.<locals>.akima_antiderivy   s    "1.==??rB   c                 6    [        XU5      R                  5       $ rX   )r   r_   rI   s      r@   cspline_deriv(test_deriv_shapes.<locals>.cspline_deriv|   s    1&1133rB   c                 6    [        XU5      R                  5       $ rX   )r   ro   rI   s      r@   cspline_antideriv,test_deriv_shapes.<locals>.cspline_antideriv   s    1&5577rB   c                 2    [        XUS9R                  5       $ rG   )r   r_   rI   s      r@   
bspl_deriv%test_deriv_shapes.<locals>.bspl_deriv   s    !!T2==??rB   c                 2    [        XUS9R                  5       $ rG   )r   ro   rI   s      r@   bspl_antideriv)test_deriv_shapes.<locals>.bspl_antideriv   s    !!T2AACCrB   r   rC   )rO   r%   r&   rA   )r`   rc   rg   rk   rp   rs   r   r   r   r   r   r   r   rP   rQ   rR   r   s                    r@   test_deriv_shapesr   \   s    8>./23<@48@D CV+M B!3r7(CG4DB5 5  MrB   c                  Z   / SQn / SQn[         [        [        4 H1  nU" X5      n[        U" U 5      [        R
                  " U5      5        M3     / SQn[        XU5      n[        U" U 5      [        R
                  " U5      5        [        U" U S5      [        R
                  " U5      5        g )Nr   r   r   r   )r   r                 ?r   )r   y             r   y              @r   )r   r
   r   r   r!   asarrayr   )r7   r9   rP   pr;   s        r@   test_complexr      s    AA "9;GqH!bjjm, H D1&AAaD"**Q-(AaGRZZ-.rB   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS r\R2                  R4                  S 5       r\R2                  R4                  S 5       rSrg)	TestKrogh   c                    [         R                  R                  / SQ5      U l        [         R                  " SSS5      U l        [         R                  " SSS5      U l        U R                  U R                  5      U l        g N)rD   r   r   r   r   d   rD   r!   
polynomial
Polynomial	true_polylinspacetest_xsxsysr{   s    r@   setup_methodTestKrogh.setup_method   sU    112CD{{2a,++b1%..)rB   c                     [        U R                  U R                  5      n[        U R	                  U R
                  5      U" U R
                  5      5        g rX   r   r   r   r   r   r   r{   r   s     r@   test_lagrangeTestKrogh.test_lagrange   5    dggdgg.DNN4<<84<<IrB   c                    [        U R                  U R                  5      n[        U R	                  S5      U" S5      SS9  [        U R	                  [
        R                  " S5      5      U" [
        R                  " S5      5      SS9  g )N   Fcheck_0d)r   r   r   r   r   r!   arrayr   s     r@   test_scalarTestKrogh.test_scalar   sY    dggdgg.DNN1-qteDDNN288A;7288A;RWXrB   c                 &   [        U R                  U R                  5      nUR                  U R                  5      n[        UR                  S   5       H:  n[        U R                  R                  U5      " U R                  5      X#   5        M<     g Nr   )
r   r   r   rY   r   r%   r+   r   r   derivr{   r   Dis       r@   test_derivativesTestKrogh.test_derivatives   sf    dggdgg.MM$,,'qwwqz"A 4 4Q 7 E !& #rB   c                 T   [        U R                  U R                  5      nUR                  U R                  [        U R                  5      S-   5      n[        UR                  S   5       H:  n[        U R                  R                  U5      " U R                  5      X#   5        M<     g )Nr   r   )r   r   r   rY   r   r&   r%   r+   r   r   r   r   s       r@   test_low_derivativesTestKrogh.test_low_derivatives   st    dggdgg.MM$,,s477|A~6qwwqz"A 4 4Q 7 E !& #rB   c                     [        U R                  U R                  5      nSnUR                  U R                  U5      n[        U5       H+  n[        UR                  U R                  U5      X4   5        M-     g N
   )r   r   r   rY   r   r%   r   r_   r{   r   mrr   s        r@   test_derivativeTestKrogh.test_derivative   sX    dggdgg.MM$,,q)qAT\\! <QTB rB   c           	      V   [        U R                  U R                  5      n[        [	        U R                  5      S[	        U R                  5      -  5       HP  n[        UR                  U R                  U5      [        R                  " [	        U R                  5      5      5        MR     g rj   )
r   r   r   r%   r&   r   r_   r   r!   r*   r{   r   r   s      r@   test_high_derivativeTestKrogh.test_high_derivative   si    dggdgg.s477|Qs477|^4AT\\! < "T\\): ;= 5rB   c                    U R                   n[        R                  R                  / SQ5      n[        R                  R                  / SQ5      n[        R                  " U" U R
                  5      U" U R
                  5      U" U R
                  5      4SS9n[        U R
                  USS9nUR                  U R                  5      n[        UR                  S   5       H  n[        Xg   [        R                  " UR                  U5      " U R                  5      UR                  U5      " U R                  5      UR                  U5      " U R                  5      4SS95        M     g Nr   rD   r   r      r   r   r   rH   r   )r   r!   r   r   stackr   r   rY   r   r%   r+   r   r   r{   poly1poly2poly3r   r   r   r   s           r@   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 +-./ #rB   c                    U R                   n[        R                  R                  / SQ5      n[        R                  R                  / SQ5      n[        R                  " U" U R
                  5      U" U R
                  5      U" U R
                  5      4SS9n[        U R
                  USS9n[        UR                  5       H  n[        UR                  U R                  U5      [        R                  " UR                  U5      " U R                  5      UR                  U5      " U R                  5      UR                  U5      " U R                  5      4SS95        M     g r   )r   r!   r   r   r   r   r   r%   nr   r_   r   r   r{   r   r   r   r   r   r   s          r@   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 +-./ rB   c                     [        U R                  U R                  5      n[        U R	                  U R
                  5      U" U R
                  5      5        g rX   r   r   s     r@   test_hermiteTestKrogh.test_hermite   r   rB   c                 p   / SQn[         R                  " SS/SS/SS//5      n[        X5      n[        UR                  S   5       Vs/ s H  n[        XS S 2U4   5      PM     nn[         R
                  " SSS5      n[        U" U5      [         R                  " U Vs/ s H
  ow" U5      PM     sn5      R                  5        [        UR                  U5      [         R                  " [         R                  " U Vs/ s H  owR                  U5      PM     sn5      S5      5        g s  snf s  snf s  snf )	Nr   r   r   r   r   r   r   r   r   )r   r   r   )r!   r   r   r%   r+   r   r   r   TrY   r)   )r{   r   r   r   r   Pir   r   s           r@   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)D.>D3c                     [        U R                  U R                  5      n[        U" / 5      [        R
                  " / 5      5        g rX   )r   r   r   r   r!   r   r   s     r@   
test_emptyTestKrogh.test_empty   s,    dggdgg."rzz"~.rB   c                    [        U R                  U R                  5      n[        R                  " U" S5      5      S:X  d   e[        R                  " U" [        R
                  " S5      5      5      S:X  d   e[        R                  " U" S/5      5      S:X  d   e[        R                  " U" SS/5      5      S:X  d   eg Nr   r   r    r   )r   )r   r   r   r!   r+   r   r   s     r@   test_shapes_scalarvalue!TestKrogh.test_shapes_scalarvalue   s    dggdgg.xx!~###xx"((1+'2---xx1#4'''xx1Q%!T)))rB   c                    [        U R                  U R                  5      nUR                  n[        R
                  " UR                  S5      5      U4:X  d   e[        R
                  " UR                  [        R                  " S5      5      5      U4:X  d   e[        R
                  " UR                  S/5      5      US4:X  d   e[        R
                  " UR                  SS/5      5      US4:X  d   eg Nr   r   r   )r   r   r   r   r!   r+   rY   r   r{   r   r   s      r@   "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8rB   c           	      h   [        U R                  [        R                  " U R                  [        R
                  " S5      5      5      n[        R                  " U" S5      5      S:X  d   e[        R                  " U" S/5      5      S:X  d   e[        R                  " U" SS/5      5      S:X  d   eg Nr   r   )r   )r   r   r   )r   r   )r   r   r!   outerr   aranger+   r   s     r@   test_shapes_vectorvalue!TestKrogh.test_shapes_vectorvalue
  s    dggbhhtwwryy|&DExx!~%%%xx1#6)))xx1a&	"f,,,rB   c                 B   [        U R                  [        R                  " U R                  S/5      5      n[        R
                  " U" S5      5      S:X  d   e[        R
                  " U" S/5      5      S:X  d   e[        R
                  " U" SS/5      5      S:X  d   eg Nr   r   r    )r   r   )r   r   )r   r   r!   r   r   r+   r   s     r@   test_shapes_1d_vectorvalue$TestKrogh.test_shapes_1d_vectorvalue  sy    dggbhhtwws&;<xx!~%%%xx1#6)))xx1Q%!V+++rB   c           	         [        U R                  [        R                  " U R                  [        R
                  " S5      5      5      nUR                  n[        R                  " UR                  S5      5      US4:X  d   e[        R                  " UR                  S/5      5      USS4:X  d   e[        R                  " UR                  SS/5      5      USS4:X  d   eg Nr   r   r   r   )	r   r   r!   r   r   r   r   r+   rY   r   s      r@   "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:::rB   c           
         [        U R                  U R                  5      n[        n[	        U" U R
                  5      U" U R                  U R                  U R
                  5      5        [	        UR                  U R
                  S5      U" U R                  U R                  U R
                  SS95        [	        UR                  U R
                  S5      U" U R                  U R                  U R
                  SS/S95        g )Nr   derr   r   )r   r   r   r	   r   r   r_   rY   )r{   r   kis      r@   test_wrapperTestKrogh.test_wrapper  s    dggtww/AdllOR$,,-OPALLq9tww1E	GAMM$,,:twwAq6J	LrB   c           	          / SQn[         R                  " / SQ5      n[        X5      n[        [	        U" U5      U-
  UR                  US5      -  5      [         R                  " U5      SS9  g )N)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   g|=atol)r!   r   r   r   absr_   
zeros_like)r{   r7   
offset_cdffs       r@   test_int_inputsTestKrogh.test_int_inputs&  s_    XX ? @
 a,QqTJ.!,,q!2DDEj1	?rB   c                 F   [         R                  " / SQ5      [         R                  " / SQ5      p![        X5      nUR                  S5      n[        XR                  5      R                  S5      S[        XR
                  5      R                  S5      -  -   n[        XESS9  g )N)r   r   r   r   r   )r   r   r   r   r   r   r   V瞯<r  )r!   r   r   rY   realimagr   )r{   r7   r9   funccmplxcmplx2s         r@   test_derivatives_complex"TestKrogh.test_derivatives_complex3  s}    xx)*BHH5K,L1 &  ##Avv.::1=&q&&1==a@@AE2rB   c                     [         R                  " [        SS9   [        [        R
                  " S5      [        R                  " S5      5        S S S 5        g ! , (       d  f       g = f)Nz40 degrees provided,match(   )pytestwarnsUserWarningr   r!   r   onesr   s    r@   test_high_degree_warning"TestKrogh.test_high_degree_warning=  s8    \\+-CDbiimRWWR[9 EDDs   5A
A&c                 j   ^  [        T R                  T R                  5      nU 4S jn[        SX!5        g )Nc                 *   > U" TR                   5        g rX   r   _interpr{   s     r@   	worker_fn-TestKrogh.test_concurrency.<locals>.worker_fnF      477OrB   r   )r   r   r   r   r{   r   r4  s   `  r@   test_concurrencyTestKrogh.test_concurrencyB  s(    dggtww/	 	 I1rB   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,  r8  r   r   rB   r@   r   r      s    *JY
&&C=//J
/*9-,;L?3 [[: : [[2 2rB   r   c                       \ rS rSrS rSrg)
TestTayloriL  c                     Sn[        [        R                  SUSS5      n[        US-   5       H%  n[	        U" S5      S5        UR                  5       nM'     [	        U" S5      S5        g )NrD   r   r      )r   r!   expr%   r   r   )r{   degreer   r   s       r@   test_exponentialTestTaylor.test_exponentialM  sX    )"&&!VQCvaxA!Q'	A ! 	AaD#rB   r   N)r}   r~   r   r   rC  r   r   rB   r@   r>  r>  L  s    $rB   r>  c                      \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS r\R4                  R6                  S 5       r\R4                  R6                  S 5       rSrg)TestBarycentriciV  c                    [         R                  R                  / SQ5      U l        [         R                  " SSS5      U l        [         R                  " SSS5      U l        U R                  U R                  5      U l        g r   r   r   s    r@   r   TestBarycentric.setup_methodW  sU    112CD{{2q#.++b!Q'..)rB   c                     [        U R                  U R                  SS9n[        U" U R                  5      U R                  U R                  5      5        g )Nr   )random_state)r
   r   r   r   r   r   r   s     r@   r   TestBarycentric.test_lagrange]  s7    #DGGTWW1E$,,)EFrB   c                    [        U R                  U R                  SS9n[        U" S5      U R	                  S5      SS9  [        U" [
        R                  " S5      5      U R	                  [
        R                  " S5      5      SS9  g )Nr   r6   r   Fr   )r
   r   r   r   r   r!   r   r   s     r@   r   TestBarycentric.test_scalarb  sZ    #DGGTWW!<!dnnQ/%@"((1+rxx{(CeTrB   c                 &   [        U R                  U R                  5      nUR                  U R                  5      n[        UR                  S   5       H:  n[        U R                  R                  U5      " U R                  5      X#   5        M<     g r   )
r
   r   r   rY   r   r%   r+   r   r   r   r   s       r@   r    TestBarycentric.test_derivativesg  sc    #DGGTWW5MM$,,'qwwqz"ADNN003DLLA14H #rB   c                 R   [        U R                  U R                  5      nUR                  U R                  [        U R                  5      S-   5      n[        UR                  S   5       H9  n[        U R                  R                  U5      " U R                  5      X#   SS9  M;     g )Nr   r   -q=r  )r
   r   r   rY   r   r&   r%   r+   r   r   r   r   s       r@   r   $TestBarycentric.test_low_derivativesm  sw    #DGGTWW5MM$,,DGGQ7qwwqz"ADNN003DLLAD!&( #rB   c                     [        U R                  U R                  5      nSnUR                  U R                  U5      n[        U5       H+  n[        UR                  U R                  U5      X4   5        M-     g r   )r
   r   r   rY   r   r%   r   r_   r   s        r@   r   TestBarycentric.test_derivativeu  sX    #DGGTWW5MM$,,*qAALLq914@ rB   c           	      V   [        U R                  U R                  5      n[        [	        U R                  5      S[	        U R                  5      -  5       HP  n[        UR                  U R                  U5      [        R                  " [	        U R                  5      5      5        MR     g )NrD   )
r
   r   r   r%   r&   r   r_   r   r!   r*   r   s      r@   r   $TestBarycentric.test_high_derivative|  si    #DGGTWW5s477|Qs477|^4AALLq9HHS%679 5rB   c                    U R                   n[        R                  R                  / SQ5      n[        R                  R                  / SQ5      n[        R                  " U" U R
                  5      U" U R
                  5      U" U R
                  5      4SS9n[        U R
                  USS9nUR                  U R                  5      n[        UR                  S   5       H  n[        Xg   [        R                  " UR                  U5      " U R                  5      UR                  U5      " U R                  5      UR                  U5      " U R                  5      4SS9SS9  M     g Nr   r   r   rH   r   rR  r  )r   r!   r   r   r   r   r
   rY   r   r%   r+   r   r   r   s           r@   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 +-. "'( #rB   c                    U R                   n[        R                  R                  / SQ5      n[        R                  R                  / SQ5      n[        R                  " U" U R
                  5      U" U R
                  5      U" U R
                  5      4SS9n[        U R
                  USS9n[        UR                  5       H  n[        UR                  U R                  U5      [        R                  " UR                  U5      " U R                  5      UR                  U5      " U R                  5      UR                  U5      " U R                  5      4SS9SS9  M     g rY  )r   r!   r   r   r   r   r
   r%   r   r   r_   r   r   r   s          r@   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 +-. "'( rB   c                     [        U R                  5      nUR                  U R                  5        [	        U R                  U R                  5      U" U R                  5      5        g rX   )r
   r   set_yir   r   r   r   r   s     r@   test_delayedTestBarycentric.test_delayed  s?    #DGG,	DNN4<<8!DLL/JrB   c                    [        U R                  S S U R                  S S 5      nUR                  U R                  SS  U R                  SS  5        [	        U R                  U R                  5      U" U R                  5      5        g )Nr   )r
   r   r   add_xir   r   r   r   s     r@   test_appendTestBarycentric.test_append  sc    #DGGBQK!=	dggabk*DNN4<<8!DLL/JrB   c                    / SQn[         R                  " SS/SS/SS//5      n[        nU" X5      n[        UR                  S   5       Vs/ s H  oS" XS S 2U4   5      PM     nn[         R
                  " SSS5      n[        U" U5      [         R                  " U Vs/ s H
  o" U5      PM     sn5      R                  5        g s  snf s  snf )Nr   r   r   r   r   r   r   )	r!   r   r
   r%   r+   r   r   r   r   )	r{   r   r   BIr   r   r   r   r   s	            r@   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                    [        U R                  U R                  5      n[        R                  " U" S5      5      S:X  d   e[        R                  " U" [        R
                  " S5      5      5      S:X  d   e[        R                  " U" S/5      5      S:X  d   e[        R                  " U" SS/5      5      S:X  d   eg r   )r
   r   r   r!   r+   r   r   s     r@   r   'TestBarycentric.test_shapes_scalarvalue  s    #DGGTWW5xx!~###xx"((1+'2---xx1#4'''xx1a&	"d***rB   c                    [        U R                  U R                  5      nUR                  n[        R
                  " UR                  S5      5      U4:X  d   e[        R
                  " UR                  [        R                  " S5      5      5      U4:X  d   e[        R
                  " UR                  S/5      5      US4:X  d   e[        R
                  " UR                  SS/5      5      US4:X  d   eg r   )r
   r   r   r   r!   r+   rY   r   r   s      r@   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6rB   c           	      h   [        U R                  [        R                  " U R                  [        R
                  " S5      5      5      n[        R                  " U" S5      5      S:X  d   e[        R                  " U" S/5      5      S:X  d   e[        R                  " U" SS/5      5      S:X  d   eg r   )r
   r   r!   r   r   r   r+   r   s     r@   r  'TestBarycentric.test_shapes_vectorvalue  s    #DGGRXXdggryy|-LMxx!~%%%xx1#6)))xx1a&	"f,,,rB   c                 B   [        U R                  [        R                  " U R                  S/5      5      n[        R
                  " U" S5      5      S:X  d   e[        R
                  " U" S/5      5      S:X  d   e[        R
                  " U" SS/5      5      S:X  d   eg r  )r
   r   r!   r   r   r+   r   s     r@   r  *TestBarycentric.test_shapes_1d_vectorvalue  sy    #DGGRXXdggs-CDxx!~%%%xx1#6)))xx1a&	"f,,,rB   c           	         [        U R                  [        R                  " U R                  [        R
                  " S5      5      5      nUR                  n[        R                  " UR                  S5      5      US4:X  d   e[        R                  " UR                  S/5      5      USS4:X  d   e[        R                  " UR                  SS/5      5      USS4:X  d   eg r  )	r
   r   r!   r   r   r   r   r+   rY   r   s      r@   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);;;rB   c                    [        U R                  U R                  SS9n[        n[	        U" U R
                  5      U" U R                  U R                  U R
                  SS95        [	        UR                  U R
                  S5      U" U R                  U R                  U R
                  SSS95        [	        UR                  U R
                  S5      U" U R                  U R                  U R
                  SS/SS95        g )Nr   rM  r   )r  r6   r   )r
   r   r   r   r   r   r_   rY   )r{   r   bis      r@   r  TestBarycentric.test_wrapper  s    #DGGTWW!<$$,,DGGTWWdllPQ)RST\\15477DGGT\\qaH	JdllA6477DGGT\\1v1M	OrB   c                     S[         R                  " SS5      -  n[         R                  " SS5      n[        XS5      n[        U[         R                  " S5      5        g )Ni  r      g     @g      #@)r!   r   r   r   r   )r{   r7   r9   values       r@   test_int_inputTestBarycentric.test_int_input  sE    299Q##IIa'j9E2::c?3rB   c                 r   Sn[         R                  " US-   5      R                  [         R                  5      n[         R                  " U[         R
                  -  U-  5      nSU-  nUS==   S-  ss'   US==   S-  ss'   [        U5      nUR                  S   n[        UR                  SU-  -  U5        g )NiL  r   r   r         ?r   )	r!   r   astypefloat64cospir
   wir   )r{   r   jr7   wr   factors          r@   test_large_chebyshev$TestBarycentric.test_large_chebyshev  s     IIa!e##BJJ/FF1ruu9q=! AI	!	"#A& aADDAJ/3rB   c                     [        SS/SS/5      n[        R                  " SS9   U" UR                  5      nS S S 5        [	        WUR
                  R                  5       5        g ! , (       d  f       N3= f)Nr   r   r   raise)divide)r
   r!   errstater:   r   r<   ravel)r{   r   r<   s      r@   test_warningTestBarycentric.test_warning  sU     $QFQF3[[(144B )
 	B

- )(s   A%%
A3c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        R                  " [        SS9   [        X5        S S S 5        g ! , (       d  f       g = f)N)皙?r{  ?r{  r   z)Interpolation points xi must be distinct.r%  )r!   r   r(  r   
ValueErrorr
   )r{   xisr   s      r@   test_repeated_node"TestBarycentric.test_repeated_node
  sN     hh+,XXl#]]:!LN#C,N N Ns   
A
A-c                 j   ^  [        T R                  T R                  5      nU 4S jn[        SX!5        g )Nc                 *   > U" TR                   5        g rX   r0  r1  s     r@   r4  3TestBarycentric.test_concurrency.<locals>.worker_fn  r6  rB   r   )r
   r   r   r   r7  s   `  r@   r8   TestBarycentric.test_concurrency  s(    #DGGTWW5	 	 I1rB   r:  N)r}   r~   r   r   r   r   r   r   r   r   r   r   r   r_  rc  r   r   r   r  r  r	  r  rx  r  r  r(  r;  r<  r  r8  r   r   rB   r@   rF  rF  V  s    *G
U
I(A9( (K
K
D+7--<O442	. [[- - [[2 2rB   rF  c                       \ rS rSrSS jrS rS rS rS rS r	\
R                  R                  S 5       rS	 rS
 rS rSrg)	TestPCHIPi  c                     [         R                  R                  S5      n[         R                  " UR                  U5      5      nUR                  U5      n[	        X45      X44$ )Nr   )r!   r"   r#   sortr   )r{   nptsr6   r:   r<   s        r@   _make_randomTestPCHIP._make_random  sJ    ii##D)WWSZZ%&ZZR}b$$rB   c                 "   U R                  5       u  pn[        [        U5      S-
  5       Ha  nX$   X$S-      peX4   X4S-      pXx:  a  Xp[        R                  " XVS5      n	U" U	5      n
XzS-   :*  XS-   :*  -  R                  5       (       a  Ma   e   g )Nr   r   r  r  r%   r&   r!   r   allr{   r   r:   r<   r   x1x2y1y2xpyps              r@   test_overshootTestPCHIP.test_overshoot%  s    %%'	rs2wqy!AUBsGUBsGwBRR(B2B:%"U
*:;@@BBBB "rB   c                    U R                  5       u  pn[        [        U5      S-
  5       H^  nX$   X$S-      peX4   X4S-      p[        R                  " XVS5      n	U" U	5      n
X-
  U
SS  U
S S -
  -  S:  R                  5       (       a  M^   e   g )Nr   r   r   r  r  s              r@   test_monotoneTestPCHIP.test_monotone1  s    %%'	rs2wqy!AUBsGUBsGRR(B2BUr!"v2A/!388:::: "rB   c                     [         R                  " / SQ/ SQ/5      n[         R                  " S5      n[        US   US   5      " U5      nUS-  n[        US   US   5      " U5      n[	        X5SSS9  g )	N)
r   r   r      /   <   O   W   c   r   )
r  ir   r      &   -   5   7   r   r   r         ?+=)r  rtol)r!   r   r   r   r   )r{   dataxxcurvedata1curve1s         r@   	test_castTestPCHIP.test_cast;  sq    xx@DF GYYs^d1gtAw'+s
uQxq*2.E>rB   c                 (   Sn[         R                  " [        R                  " U5      5      n[	        US S 2S4   US S 2S4   5      nSn[         R                  " [        R                  " U5      5      n[        US S 2S4   U" US S 2S4   5      SSS9  g )Na  
          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
        r   r   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  )r!   loadtxtioStringIOr   r   )r{   dataStrr  pch	resultStrresults         r@   test_nagTestPCHIP.test_nagG  s    

 zz"++g./D1ItAaCy)	 BKK	23qsS!%5BTJrB   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[        X5      [        X5      4 H#  nUS   US   4 H  nU" US5      S:w  a  M   e   M%     g )N)r  r  g      ?gffffff?)皙uq@g     @@     @@     @)r  r  g     p@r  r   r   r   )r!   r   r   )r{   r7   r  r  ppts         r@   test_endslopesTestPCHIP.test_endslopesj  sp     HH+,XX34XX45<q.BdAbE]!Qx1}$} # /rB   c                 b   [         R                  " S5      n[         R                  " U5      n[        R                  " 5          [        R
                  " S5        [        X5      nS S S 5        [         R                  " SSS5      n[        W" U5      S:H  5      (       d   eg ! , (       d  f       NB= f)Nr   errorr   	   e   r  )	r!   r   r  warningscatch_warningsfilterwarningsr   r   r  )r{   r7   r9   r  r  s        r@   test_all_zerosTestPCHIP.test_all_zerost  s}    IIbMMM! $$&##G,+C ' [[As#3r7b=!!!! '&s   "B  
B.c                 |    [         R                  " SSS5      n[        SS/SS/5      n[        U" U5      SU-  SS9  g )Nr   r   rv  r   r  r  )r!   r   r   r   )r{   r7   r   s      r@   test_two_pointsTestPCHIP.test_two_points  s>    
 KK1b!1a&1a&!!ac.rB   c                 V   [        [        / SQ/ SQS/SS9[        R                  " S/5      5        [        [        / SQ/ SQS/SS9[        R                  " S/5      5        [        [        R                  " [        / SQ/ SQS/SS/S95      [        R                  " S/S//5      5        g )	Nr   r   r   )r   rD   r   r{  r   r  r  r   g      @)r   r   r!   r   r   s    r@   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|$	&rB   c                     [        SS/SS/5      nUR                  5       n[        U[        R                  " S/5      5        g )Nr   r   r   r{  )r   rootsr   r!   r   )r{   r   r   s      r@   
test_rootsTestPCHIP.test_roots  s6    1a&2q'"GGI2::se,-rB   r   N)   )r}   r~   r   r   r  r  r  r  r  r  r(  r;  r<  r  r  r  r  r   r   rB   r@   r  r    sP    %
C;
?!KF% [[
" 
"/&.rB   r  c                   h    \ rS rSr\  SS j5       rS rS rS rS r	S r
S rS	 rS
 rS rS rSrg)TestCubicSplinei  c           	         U R                   nU R                  n[        R                  " U5      nUR	                  UR
                  S   /S/UR                  S-
  -  -   5      nUSS n[        USSS24   USSS24   US-  -  USSS24   US-  -  -   USSS24   U-  -   USSS24   -   X3S9  [        USSS24   SUSSS24   -  US-  -  SUSSS24   -  U-  -   USSS24   -   X3S9  [        USSS24   SUSSS24   -  U-  USSS24   -   X3S9  UR                  S:X  a2  US:X  a,  US:X  a&  [        US   [        R                  " US   5      X3S9  gUS	:X  a^  [        U " US   S5      U " US   S5      X3S9  [        U " US   S5      U " US   S5      X3S9  [        U " US   S5      U " US   S5      X3S9  gUS:X  ak  UR                  S:X  aI  U " US   5      U " US   5      -
  US   -  n[        R                  " U5      n[        U " US   S5      XUS9  O[        US
   US   X3S9  OUS:X  a4  [        U " US   S5      [        R                  " U " US   S5      5      X3S9  OgUS:X  a4  [        U " US   S5      [        R                  " U " US   S5      5      X3S9  O-Uu  p[        U " US   U	5      [        R                  " U
5      X3S9  US:X  ak  UR                  S:X  aI  U " US   5      U " US   5      -
  US   -  n[        R                  " U5      n[        U " US   S5      XUS9  g[        US   US   X3S9  gUS:X  a4  [        U " US   S5      [        R                  " U " US   S5      5      X3S9  gUS:X  a;  [        U " US   S5      [        R                  " U " US   S5      5      SU-  SU-  S9  gUu  p[        U " US   U	5      [        R                  " U
5      X3S9  g)zNCheck that spline coefficients satisfy the continuity and boundary
conditions.r   r   r   Nr   r   r  
not-a-knotperiodic)r   r   )r   r   rM   rL   )r   r   )r   r   )r7   cr!   diffr/   r+   r.   r   r,   r  r   )Sbc_startbc_endtolr7   r  dxdxislopeorderrw  s              r@   check_correctness!TestCubicSpline.check_correctness  s&   
 CCCCWWQZZZ!qvvz(::;"g 	!QR%!AssF)c1f"4qCRCy367I"I!SbS&	C#(*+AssF)#4:=	I!QR%!a3B3i-#q&"8Aa"fI+#,./3B3i#8>A	M!QR%!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SrB   c           	         [        UR                  5      nXC	 [        R                  " U5      nUR	                  S5        [        R                  " U5      nUR	                  S5        SSSSU4SU4/nUS S  H  n[        XX8S9n	U R                  XU5        M!     U H)  n
U H   n[        XX:U4S9n	U R                  XUS	S
9  M"     M+     g )Nr   r   r  rL   rM   r   r   r   rN   g+=r  )r$   r+   r!   emptyfillr   r  )r{   r7   r9   r   r4   first_derivsecond_derivbc_allrS   r  r  r  s               r@   check_all_bcTestCubicSpline.check_all_bc  s    177mhh{+xx,"
 !*BAt8A""1"-  H 4F9KL&&qF&F ! rB   c                    [         R                  " / SQ5      n[         R                  " / SQ5      nSSUR                  4 H  nU R                  US U US U S5        [         R                  " SUS45      nUS U USS S 2S4'   US U S-
  USS S 2S4'   US U S-   USS S 2S4'   US U S-   USS S 2S4'   U R                  US U US5        M     g )N)r   r   r{  r   r   g      @g      @r  )r   g      r   r   g      @r   r   r{  r   r   r   r   )r!   r   r,   r  r  )r{   r7   r9   r   Ys        r@   test_generalTestCubicSpline.test_general  s    HH45HH45QAaeQrUA.!Q#A2AAaAgJ2AAaAgJ2AAaAgJ2AAaAgJaeQ*  rB   c                    S H  n[         R                  " SS[         R                  -  U5      n[         R                  " U5      n[	        X#SS9nU R                  USS5        [         R                  " SUS45      nX5SS S 2S4'   US-   USS S 2S4'   US-
  USS S 2S4'   US-   USS S 2S4'   [	        X%SSS9nU R                  USS5        M     g )	N)r   r   rD   r   r   r  rN   r   rD   r   )r!   r   r  r~  r   r  r  )r{   r   r7   r9   r  r
  s         r@   test_periodicTestCubicSpline.test_periodic  s    AAq255y!,Aq	AA*5A""1j*=!Q#AaAgJQAaAgJQAaAgJQAaAgJAq*=A""1j*= rB   c                     [         R                  " SS[         R                  -  S5      n[         R                  " U5      n[	        XSS9n[        U" S5      U" SS[         R                  -  -   5      SS9  g )	Nr   r   r   r  r  r   r@  )decimal)r!   r   r  r~  r   r   r{   r7   r9   r  s       r@   test_periodic_eval"TestCubicSpline.test_periodic_eval  sV    KK1ruu9b)FF1Ij1AaD!ABEE	M"2B?rB   c                     [         R                  " / SQ5      n[         R                  " / SQ5      n[        XSSS9nU R                  USS5        g )N)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  )rN   extrapolate)r!   r   r   r  r  s       r@   *test_second_derivative_continuity_gh_11758:TestCubicSpline.test_second_derivative_continuity_gh_11758  sL    HH O PHH P QjjIq*j9rB   c                    [         R                  " / SQ5      n[         R                  " / SQ5      n[        XSS9nU R                  USS5        [	        UR                  S5      " U5      [         R                  " / SQ5      5        g )N)r  g      @r  )r  g      .@r  r  r  r   )      Hr   r   )r!   r   r   r  r   r_   r  s       r@   test_three_points!TestCubicSpline.test_three_points#  sa     HH%&HH%&j1q*j9Q*BHH5J,KLrB   c                    [         R                  " / SQ5      n[         R                  " SS/SS/SS//5      n[        XSS9nU R                  USS5        [        XS S 2S4   SS9n[        XS S 2S4   SS9n[         R                  " SSS	5      n[        U" U5      S S 2S4   U" U5      5        [        U" U5      S S 2S4   U" U5      5        g )
N)r  r  r  r  r  r  r  r   r   r   rD   )r!   r   r   r  r   r   )r{   r7   r9   r  S0S1qs          r@   #test_periodic_three_points_multidim3TestCubicSpline.test_periodic_three_points_multidim/  s     HH_%HHsCj3*sCj9:j1q*j9adGZ8adGZ8KK1a !QT
BqE*!QT
BqE*rB   c                    [         R                  " / SQ[        S9n[         R                  " / SQ[        S9n[        X5      nU R	                  U5        [         R                  " / SQ5      n[        X5      nU R	                  U5        [        XS-  SS9nU R	                  USS	5        [         R                  " / SQ5      n[        XS
S/S9nU R	                  US
S5        g )N)r   r   r   r   )dtype)r   r   r   r   )y            ?r  y      ?      y      ?      r   )rL   r   y               @r  rL   r+  )r   y       @      ?)r   y      ?      )r!   r   intr   r  r  s       r@   test_dtypesTestCubicSpline.test_dtypes<  s    HH\-HH]#.q!HH12q!6+?@q)W5HH]#}m&DEq-?rB   c                     [         R                  R                  S5      n[         R                  " UR	                  SS95      nSUR	                  SS9-   n[        X#5      nU R                  USS9  g )Nr   r   )r,   g     @gvIh%<=r  )r!   r"   r#   r  uniformr   r  )r{   r6   r7   r9   r  s        r@   test_small_dxTestCubicSpline.test_small_dxM  sa    ii##A&GGCKKSK)*#++3+''qe,rB   c           
      "   [         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " / SQ5      n[         R                  " [         R                  SSS/5      n[         R                  " / SQ5      n[         R                  " [         R                  SSS/5      n/ SQnS/nS/n	[        [        [
        X25        [        [        [
        XB5        [        [        [
        X5        [        [        [
        XR5        [        [        [
        X5        [        [        [
        US S 2[         R                  4   U5        [        [        [
        X5        / S	Qn
U
 H  n[        [        [
        XS
US5        M     [         R                  X"4   nSnSS/ SQ44nSSS
S
//44n[        [        [
        XS
US5        [        [        [
        XS
US5        [        [        [
        XS
US5        [        [        [
        XS
SS5        g )Nr   )y      ?      ?r   r   r   r   r   r   )r   r   r   r   r  r   ))r  rM   ))r   r   )r   r   )r   r   )r  r  z
not-a-typor   T)rM   r4  rM   )r   r   r   r  )r!   r   nanassert_raisesr  r   newaxisc_)r{   r7   r9   xcxnxoyny3r  r  wrong_bcrN   r
  bc1bc2bc3s                   r@   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IrB   r   N)r  r  r  )r}   r~   r   r   staticmethodr  r  r  r  r  r  r!  r'  r-  r1  rB  r   r   rB   r@   r  r    sT    ;G#?T ?TBG.+>@:
M+@"-&JrB   r  c                      / SQn / SQn/ SQn[        XU5      n[        U" U 5      USSSS9  [        U" U S5      USSSS9  g )N)r   r   r   )r   r   r   )r   r   r   Fr  )rA   check_dtyper  r   )r   r   )r7   r9   r;   r8   s       r@   #test_CubicHermiteSpline_correctnessrG  }  sG    AAD1&AAaD!ENAaGTu%eTrB   c                      / SQn / SQn/ SQn[        [        [        XU5        SS[        R                  /n[        [        [        XU5        g )Nr  )r   r   rD   )r   r   r   r   r   r   )r6  r  r   r!   r5  )r7   r9   r;   dydx_with_nans       r@   &test_CubicHermiteSpline_error_handlingrJ    s>    AAD*0!=266NM*0!FrB   c                  ,   [         R                  " SS/5      n [         R                  " SS/5      n[         R                  " SS/5      n[        XU5      nUR                  SS9nUR                  R
                  S	   S	:X  d   eUR                  S
:X  d   eg )NgMbP?gMb`?gBܻ>gdJ>g/"g%"T)r  r   r   )r!   r   r   r  r  r+   r,   )r7   r9   dyr   r   s        r@   test_roots_extrapolate_gh_11185rM    s    
% A
..12A	;	*	+B1$A 	
D!A3399Q<166Q;;rB   c                   n   \ rS rSr\R
                  R                  S\R                  " S5      \R                  " S5      /5      \R
                  R                  S/ SQ5      \R
                  R                  S/ SQ5      \R
                  R                  S	\	\
/5      S
 5       5       5       5       r\R
                  R                  S\R                  " S5      \R                  " S5      /5      \R
                  R                  S/ SQ5      \R
                  R                  S	\\/5      S 5       5       5       rSrg)TestZeroSizeArraysi  r9   )r   r   rD   )r   rD   r   rN   )r  r  rL   rM   r   r   clsc                    [         R                  " S5      n[         R                  " S5      nU" XRUS9nU" U5      R                  S:X  d   eU" U5      R                  UR                  UR                  SS  -   :X  d   e[         R                  " USU5      nU" XXX4S9nUR                  S U UR                  4-   UR                  US-   S  -   n	U" U5      R                  S:X  d   eU" U5      R                  U	:X  d   eg )Nr   r   r  r   r   )rN   r   r!   r   r,   r+   moveaxis)
r{   rP  r9   rN   r   r7   xvalobjytshs
             r@   test_zero_size!TestZeroSizeArrays.test_zero_size  s     IIbMyy|!(4y~~"""4y$**qwwqr{":::: [[At$!4XXet_		},rxxQ/@@4y~~"""4y"$$$rB   c                    [         R                  " S5      n[         R                  " S5      nU" XB5      nU" U5      R                  S:X  d   eU" U5      R                  UR                  UR                  SS  -   :X  d   e[         R                  " USU5      nU" XGUS9nUR                  S U UR                  4-   UR                  US-   S  -   nU" U5      R                  S:X  d   eU" U5      R                  U:X  d   eg )Nr   r   r   r   rH   rR  )	r{   rP  r9   r   r7   rT  rU  rV  rW  s	            r@   test_zero_size_2#TestZeroSizeArrays.test_zero_size_2  s    
 IIbMyy|!i4y~~"""4y$**qwwqr{":::: [[At$!d#XXet_		},rxxQ/@@4y~~"""4y"$$$rB   r   N)r}   r~   r   r   r(  r;  parametrizer!   r*   r   r   rX  r   r   r[  r   r   rB   r@   rO  rO    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:%rB   rO  )Nr   N)*r  r  numpyr!   scipy._lib._array_apir   r   r   r   r(  r   r6  scipy.interpolater   r	   r
   r   r   r   r   r   r   r   r   r   scipy._lib._testutilsr   rA   rO   rU   r\   r   r   r   r>  rF  r  r  rG  rJ  rM  rO  r   rB   r@   <module>rb     s     	   +     : LM&R 
%G"I26j/j2 j2Z$ $E2 E2P}. }.@\J \J~UG
/% /%rB   