
    _Mh                     h   d dl Z d dlZd dlZd dlmZmZmZmZ d dl	m
Z d dl	Z	d dlmZmZmZmZmZmZmZmZmZmZmZmZ d dlmZ 	 	 ddZg dZd Zd	 Zd
 Zd Z  G d d          Z! G d d          Z" G d d          Z# G d d          Z$ G d d          Z%d Z&d Z'd Z( G d d          Z)dS )    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                    |i }t           j                            d          }g d}t          t	          dt          |          dz                       }|                    |t          |          dz   z  d            |j        d|z                        |          }	t          j	        |          }
| t          u r7 |j        d|z                        |          }  | ||	|fd|i||
          }n  | ||	fd|i||
          }|pd|	j        d |         z   |z   |	j        |d          dd          z   }|j        |k    sJ |r|	j        dk    r| t          u rK  | t          |          t          |	          t          |          fd|i|t          |
                     n<  | t          |          t          |	          fd|i|t          |
                     |
j        dk    r||	j        d |         dt          |          z  z   |	j        |d          dd          z   }|	t          d           f||	j        z  z  dz            }|                    |          }t          j        ||          \  }}	t#          ||	           d S d S d S )	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                   d/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/scipy/interpolate/tests/test_polyint.pycheck_shaperA      s   

)


%
%CAU1c'll1n%%&&AHHTS\\!^$a(((4'>#--a00A	'		B---sx$.*44Q77BaDBBtBzBB2FF<a<<<<<R@@ &B!'%4%.8 !qrr 23L8|####  516A::111+T!WWd1ggtDzz + + +)+ ++/885 5 5 5+T!WWd1gg + +D +)+ ++/885 5 5 
w{{{*75D5>DW$55qrr8JJt/478ZZ!!#B++AA {**    )r   r   r    )r   r      c                  \   d } t           t          t          t          t          t
          | fD ]}t          D ]v}t          D ]l}t          t          |           t          |                    D ]>}|t
          k    rt          |||d |           !dD ]}d|i}t          |||d ||           ?mwd S )Nc                 &    t          | ||          S Nr   )r   r7   r9   r   s      r@   
spl_interpztest_shapes.<locals>.spl_interpB   s    !!QT2222rB   )naturalclampedbc_type)
r   r
   r   r   r   r   SHAPESr%   r&   rA   )rJ   ips1s2r   bcextras          r@   test_shapesrT   @   s   3 3 3 !"9;M);
D 
G 
G 	G 	GB G G!3r77(CGG44 G GD[((#BBd;;;;"8 G GB%.OE'BD$FFFFG	GG	G
G 
GrB   c                      t           t          fD ]]dfd	} t          D ]M}t          D ]C}t          t	          |           t	          |                    D ]}t          | ||d|           DN^d S )Nr   c                 (     | ||          j         S Nderivatives)r7   r9   r   rO   s      r@   interpolator_derivsz/test_derivs_shapes.<locals>.interpolator_derivsS   s    2aD>>--rB   r   rC   )r   r
   rN   r%   r&   rA   )rZ   rP   rQ   r   rO   s       @r@   test_derivs_shapesr[   Q   s     "9: I I	. 	. 	. 	. 	. 	.  	I 	IB I I!3r77(CGG44 I ID 3RT4HHHHII	I	I IrB   c                  <   dd} dd}dd}dd}dd}dd}dd}dd	}dd
}dd}	dd}
dd}dd}| |||||||||	|
||fD ]W}t           D ]M}t           D ]C}t          t          |           t          |                    D ]}t          |||d|           DNXd S )Nr   c                 .    t          | ||          j        S rW   )r   
derivativerI   s      r@   krogh_derivz&test_deriv_shapes.<locals>.krogh_deriv]   s     At,,77rB   c                 .    t          | ||          j        S rW   )r
   r^   rI   s      r@   
bary_derivz%test_deriv_shapes.<locals>.bary_deriv`   s    &q!T22==rB   c                 H    t          | ||                                          S rW   r   r^   rI   s      r@   pchip_derivz&test_deriv_shapes.<locals>.pchip_derivc   s     Q4  ++---rB   c                 J    t          | ||                              d          S Nr   rc   rI   s      r@   pchip_deriv2z'test_deriv_shapes.<locals>.pchip_deriv2f   s"    Q4  ++A...rB   c                 H    t          | ||                                          S rW   r   antiderivativerI   s      r@   pchip_antiderivz*test_deriv_shapes.<locals>.pchip_antiderivi   s     Q4  //111rB   c                 J    t          | ||                              d          S rf   ri   rI   s      r@   pchip_antideriv2z+test_deriv_shapes.<locals>.pchip_antideriv2l   s"    Q4  //222rB   c                 B     G d dt                     } || ||          S )Nc                       e Zd Zd ZdS )9test_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.Pc                 .    t          j        | |d          S )Nr   )r   __call__)selfr7   s     r@   rr   zBtest_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.P.__call__q   s    (1$1===rB   N)__name__
__module____qualname__rr   r   rB   r@   Prp   p   s        > > >DrB   rw   )r   )r7   r9   r   rw   s       r@   pchip_deriv_inplacez.test_deriv_shapes.<locals>.pchip_deriv_inplaceo   sA    	 	 	 	 	! 	 	 	 qAt}}rB   c                 H    t          | ||                                          S rW   )r   r^   rI   s      r@   akima_derivz&test_deriv_shapes.<locals>.akima_derivv   s     "1a..99;;;rB   c                 H    t          | ||                                          S rW   )r   rj   rI   s      r@   akima_antiderivz*test_deriv_shapes.<locals>.akima_antiderivy   s     "1a..==???rB   c                 H    t          | ||                                          S rW   )r   r^   rI   s      r@   cspline_derivz(test_deriv_shapes.<locals>.cspline_deriv|   s     1a&&11333rB   c                 H    t          | ||                                          S rW   )r   rj   rI   s      r@   cspline_antiderivz,test_deriv_shapes.<locals>.cspline_antideriv   s     1a&&55777rB   c                 J    t          | ||                                          S rG   )r   r^   rI   s      r@   
bspl_derivz%test_deriv_shapes.<locals>.bspl_deriv   s#    !!QT222==???rB   c                 J    t          | ||                                          S rG   )r   rj   rI   s      r@   bspl_antiderivz)test_deriv_shapes.<locals>.bspl_antideriv   s#    !!QT222AACCCrB   r   rC   )rN   r%   r&   rA   )r_   ra   rd   rg   rk   rm   rx   rz   r|   r~   r   r   r   rO   rP   rQ   r   s                    r@   test_deriv_shapesr   \   s   8 8 8 8> > > >. . . ./ / / /2 2 2 23 3 3 3   < < < <@ @ @ @4 4 4 48 8 8 8@ @ @ @D D D D J\CV 0+/^M 6 6  	6 	6B 6 6!3r77(CGG44 6 6DBB555566	66 6rB   c                     g d} g d}t           t          t          fD ]9} || |          }t           ||           t	          j        |                     :g d}t          | ||          }t           ||           t	          j        |                     t           || d          t	          j        |                     d S )Nr   r   r   r   )r   r                 ?r   )r   y             r   y              @r   )r   r
   r   r   r!   asarrayr   )r7   r9   rO   pr;   s        r@   test_complexr      s    AA "9;G - -Bq!HH!bjmm,,,,??D1a&&AAAaDD"*Q--(((AAaGGRZ--.....rB   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej        j        d             Zej        j        d             ZdS )	TestKroghc                     t           j                            g d          | _        t          j        ddd          | _        t          j        ddd          | _        |                     | j                  | _        d S N)rD   r   r   r   r   d   rD   r!   
polynomial
Polynomial	true_polylinspacetest_xsxsysrs   s    r@   setup_methodzTestKrogh.setup_method   sc    112C2C2CDD{2a,,+b1%%..))rB   c                     t          | j        | j                  }t          |                     | j                   || j                             d S rW   r   r   r   r   r   r   rs   rw   s     r@   test_lagrangezTestKrogh.test_lagrange   C    dgdg..DNN4<884<IIIIIrB   c                 :   t          | j        | j                  }t          |                     d           |d          d           t          |                     t          j        d                     |t          j        d                    d           d S )N   Fcheck_0d)r   r   r   r   r   r!   arrayr   s     r@   test_scalarzTestKrogh.test_scalar   s~    dgdg..DNN1--qqtteDDDDDNN28A;;7728A;;RWXXXXXXrB   c                     t          | j        | j                  }|                    | j                  }t          |j        d                   D ]>}t           | j        	                    |          | j                  ||                    ?d S Nr   )
r   r   r   rY   r   r%   r+   r   r   derivrs   rw   Dis       r@   test_derivativeszTestKrogh.test_derivatives   s    dgdg..MM$,''qwqz"" 	& 	&A 7 4 4Q 7 7 E E !!& & & &	& 	&rB   c                 L   t          | j        | j                  }|                    | j        t          | j                  dz             }t          |j        d                   D ]>}t           | j	        
                    |          | j                  ||                    ?d S )Nr   r   )r   r   r   rY   r   r&   r%   r+   r   r   r   r   s       r@   test_low_derivativeszTestKrogh.test_low_derivatives   s    dgdg..MM$,s47||A~66qwqz"" 	& 	&A 7 4 4Q 7 7 E E !!& & & &	& 	&rB   c                     t          | j        | j                  }d}|                    | j        |          }t          |          D ]1}t          |                    | j        |          ||                    2d S N
   )r   r   r   rY   r   r%   r   r^   rs   rw   mrr   s        r@   test_derivativezTestKrogh.test_derivative   sy    dgdg..MM$,q))q 	C 	CAT\! < <QqTBBBB	C 	CrB   c           	      H   t          | j        | j                  }t          t	          | j                  dt	          | j                  z            D ]O}t          |                    | j        |          t          j	        t	          | j                                       Pd S rf   )
r   r   r   r%   r&   r   r^   r   r!   r*   rs   rw   r   s      r@   test_high_derivativezTestKrogh.test_high_derivative   s    dgdg..s47||Qs47||^44 	= 	=AT\! < < "T\):): ; ;= = = =	= 	=rB   c                    | j         }t          j                            g d          }t          j                            g d          }t          j         || j                   || j                   || j                  fd          }t          | j        |d          }|                    | j                  }t          |j
        d                   D ]}t          ||         t          j         |                    |          | j                   |                    |          | j                   |                    |          | j                  fd                     d S Nr   rD   r   r      r   r   r   rH   r   )r   r!   r   r   stackr   r   rY   r   r%   r+   r   r   rs   poly1poly2poly3r   rw   r   r   s           r@   test_ndim_derivativeszTestKrogh.test_ndim_derivatives   sM   ((88(();););<<XuuTW~~uuTW~~uuTW~~FRPPPdgr222MM$,''qwqz"" 	/ 	/AAaDHnekk!nnT\&B&B&4ekk!nnT\&B&B&4ekk!nnT\&B&B&D +-. . ./ / / /	/ 	/rB   c                    | j         }t          j                            g d          }t          j                            g d          }t          j         || j                   || j                   || j                  fd          }t          | j        |d          }t          |j                  D ]}t          |
                    | j        |          t          j         |                    |          | j                   |                    |          | j                   |                    |          | j                  fd                     d S r   )r   r!   r   r   r   r   r   r%   nr   r^   r   r   rs   r   r   r   r   rw   r   s          r@   test_ndim_derivativezTestKrogh.test_ndim_derivative   s@   ((88(();););<<XuuTW~~uuTW~~uuTW~~FRPPPdgr222qs 	/ 	/AALLq99Hnekk!nnT\&B&B&4ekk!nnT\&B&B&4ekk!nnT\&B&B&D +-. . ./ / / /	/ 	/rB   c                     t          | j        | j                  }t          |                     | j                   || j                             d S rW   r   r   s     r@   test_hermitezTestKrogh.test_hermite   r   rB   c           	         g dt          j        ddgddgddgg          t                    }fdt          j        d                   D             }t          j        ddd          t           |          t          j        fd	|D                       j                   t          |	                              t          j
        t          j        fd
|D                       d                     d S )Nr   r   r   r   r   r   c                 D    g | ]}t          d d |f                   S rW   )r   ).0r   r   r   s     r@   
<listcomp>z)TestKrogh.test_vector.<locals>.<listcomp>   s0    HHH2aaac7++HHHrB   r   r   r   c                 &    g | ]} |          S r   r   r   r   r   s     r@   r   z)TestKrogh.test_vector.<locals>.<listcomp>   !    '?'?'?q'

'?'?'?rB   c                 :    g | ]}|                               S r   rX   r   s     r@   r   z)TestKrogh.test_vector.<locals>.<listcomp>   s%    (L(L(LAw)?)?(L(L(LrB   )r   r   r   )r!   r   r   r%   r+   r   r   r   TrY   r)   )rs   rw   Pir   r   r   s      @@@r@   test_vectorzTestKrogh.test_vector   s   YYX!uaUAa5)**b$$HHHHHU28A;5G5GHHH+b3''AAgJJJ'?'?'?'?B'?'?'?@@B	D 	D 	DAMM'22RZ(L(L(L(L(L(L(LMM 	 	 	 	 	rB   c                     t          | j        | j                  }t           |g           t	          j        g                      d S rW   )r   r   r   r   r!   r   r   s     r@   
test_emptyzTestKrogh.test_empty   s;    dgdg.."rz"~~.....rB   c                 |   t          | j        | j                  }t          j         |d                    dk    sJ t          j         |t          j        d                              dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S Nr   r   r    r   )r   )r   r   r   r!   r+   r   r   s     r@   test_shapes_scalarvaluez!TestKrogh.test_shapes_scalarvalue   s    dgdg..x!~~####x"(1++''2----x1#4''''x1Q%!!T))))))rB   c                    t          | j        | j                  }|j        }t	          j        |                    d                    |fk    sJ t	          j        |                    t	          j        d                              |fk    sJ t	          j        |                    dg                    |dfk    sJ t	          j        |                    ddg                    |dfk    sJ d S Nr   r   r   )r   r   r   r   r!   r+   rY   r   rs   rw   r   s      r@   "test_shapes_scalarvalue_derivativez,TestKrogh.test_shapes_scalarvalue_derivative  s    dgdg..Cxa(())aT1111xbhqkk2233t;;;;xqc**++1v5555xq!f--..1a&888888rB   c           	      \   t          | j        t          j        | j        t          j        d                              }t          j         |d                    dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S Nr   r   )r   )r   r   r   )r   r   )r   r   r!   outerr   aranger+   r   s     r@   test_shapes_vectorvaluez!TestKrogh.test_shapes_vectorvalue
  s    dgbhtwry||&D&DEEx!~~%%%%x1#6))))x1a&		""f,,,,,,rB   c                 :   t          | j        t          j        | j        dg                    }t          j         |d                    dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S Nr   r   r    )r   r   )r   r   )r   r   r!   r   r   r+   r   s     r@   test_shapes_1d_vectorvaluez$TestKrogh.test_shapes_1d_vectorvalue  s    dgbhtws&;&;<<x!~~%%%%x1#6))))x1Q%!!V++++++rB   c           	         t          | j        t          j        | j        t          j        d                              }|j        }t          j        |                    d                    |dfk    sJ t          j        |                    dg                    |ddfk    sJ t          j        |                    ddg                    |ddfk    sJ d S Nr   r   r   r   )	r   r   r!   r   r   r   r   r+   rY   r   s      r@   "test_shapes_vectorvalue_derivativez,TestKrogh.test_shapes_vectorvalue_derivative  s    dgbhtwry||&D&DEECxa(())aV3333xqc**++1ay8888xqe,,--!Q::::::rB   c           
         t          | j        | j                  }t          }t	           || j                   || j        | j        | j                             t	          |                    | j        d           || j        | j        | j        d                     t	          |                    | j        d           || j        | j        | j        ddg                     d S )Nr   derr   r   )r   r   r   r	   r   r   r^   rY   )rs   rw   kis      r@   test_wrapperzTestKrogh.test_wrapper  s    dgtw//AAdlOORR$,-O-OPPPALLq99Btw1EEE	G 	G 	GAMM$,::BtwAq6JJJ	L 	L 	L 	L 	LrB   c           	         g d}t          j        g d          }t          ||          }t          t	           ||          |z
  |                    |d          z            t          j        |          d           d S )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)rs   r7   
offset_cdffs       r@   test_int_inputszTestKrogh.test_int_inputs&  s      X ? ? ? @ @
 a,,QQqTTJ.!,,q!2D2DDEEj11	? 	? 	? 	? 	? 	?rB   c                 t   t          j        g d          t          j        g d          }}t          ||          }|                    d          }t          ||j                                      d          dt          ||j                                      d          z  z   }t          ||d           d S )N)r   r   r   r   r   )r   r   r   r   r   r   r   V瞯<r   )r!   r   r   rY   realimagr   )rs   r7   r9   funccmplxcmplx2s         r@   test_derivatives_complexz"TestKrogh.test_derivatives_complex3  s    x)))**BH5K5K5K,L,L1 A&&  ###Aqv..::1==&q!&11==a@@@AvE222222rB   c                     t          j        t          d          5  t          t	          j        d          t	          j        d                     d d d            d S # 1 swxY w Y   d S )Nz40 degrees provided,match(   )pytestwarnsUserWarningr   r!   r   onesr   s    r@   test_high_degree_warningz"TestKrogh.test_high_degree_warning=  s    \+-CDDD 	: 	:bimmRWR[[999	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	: 	:s   5AA"%A"c                 h     t           j         j                  } fd}t          d||           d S )Nc                 (     |j                    d S rW   r   _interprs   s     r@   	worker_fnz-TestKrogh.test_concurrency.<locals>.worker_fnF      F47OOOOOrB   r   )r   r   r   r   rs   rw   r  s   `  r@   test_concurrencyzTestKrogh.test_concurrencyB  sI    dgtw//	 	 	 	 	 	 Iq11111rB   N)rt   ru   rv   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  markthread_unsafer  r  r   rB   r@   r   r      s       * * *J J JY Y Y
& & && & &C C C= = =/ / // / /J J J
 
 
/ / /* * *9 9 9- - -, , ,; ; ;L L L? ? ?3 3 3 [: : : [2 2 2 2 2rB   r   c                       e Zd Zd ZdS )
TestTaylorc                     d}t          t          j        d|dd          }t          |dz             D ]/}t	           |d          d           |                                }0t	           |d          d           d S )NrD   r   r      )r   r!   expr%   r   r   )rs   degreer   r   s       r@   test_exponentialzTestTaylor.test_exponentialM  s|    )"&!VQCCvax 	 	A!Q'''		AAAAaDD#####rB   N)rt   ru   rv   r  r   rB   r@   r  r  L  s#        $ $ $ $ $rB   r  c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zej        j        d             Zej        j        d             ZdS )TestBarycentricc                     t           j                            g d          | _        t          j        ddd          | _        t          j        ddd          | _        |                     | j                  | _        d S r   r   r   s    r@   r   zTestBarycentric.setup_methodW  sc    112C2C2CDD{2q#..+b!Q''..))rB   c                     t          | j        | j        d          }t           || j                  |                     | j                             d S )Nr   )random_state)r
   r   r   r   r   r   r   s     r@   r   zTestBarycentric.test_lagrange]  sH    #DGTW1EEE$,)E)EFFFFFrB   c                 >   t          | j        | j        d          }t           |d          |                     d          d           t           |t          j        d                    |                     t          j        d                    d           d S )Nr   r6   r   Fr   )r
   r   r   r   r   r!   r   r   s     r@   r   zTestBarycentric.test_scalarb  s    #DGTW!<<<!dnnQ//%@@@@"(1++rx{{(C(CeTTTTTTrB   c                     t          | j        | j                  }|                    | j                  }t          |j        d                   D ]>}t           | j        	                    |          | j                  ||                    ?d S r   )
r
   r   r   rY   r   r%   r+   r   r   r   r   s       r@   r   z TestBarycentric.test_derivativesg  s    #DGTW55MM$,''qwqz"" 	I 	IA3DN0033DLAA1Q4HHHH	I 	IrB   c                 P   t          | j        | j                  }|                    | j        t          | j                  dz             }t          |j        d                   D ]@}t           | j	        
                    |          | j                  ||         d           Ad S )Nr   r   -q=r   )r
   r   r   rY   r   r&   r%   r+   r   r   r   r   s       r@   r   z$TestBarycentric.test_low_derivativesm  s    #DGTW55MM$,DGQ77qwqz"" 	( 	(A3DN0033DLAAaD!&( ( ( ( (	( 	(rB   c                     t          | j        | j                  }d}|                    | j        |          }t          |          D ]1}t          |                    | j        |          ||                    2d S r   )r
   r   r   rY   r   r%   r   r^   r   s        r@   r   zTestBarycentric.test_derivativeu  sy    #DGTW55MM$,**q 	A 	AAALLq991Q4@@@@	A 	ArB   c           	      H   t          | j        | j                  }t          t	          | j                  dt	          | j                  z            D ]O}t          |                    | j        |          t          j	        t	          | j                                       Pd S )NrD   )
r
   r   r   r%   r&   r   r^   r   r!   r*   r   s      r@   r   z$TestBarycentric.test_high_derivative|  s    #DGTW55s47||Qs47||^44 	9 	9AALLq99HS%6%6779 9 9 9	9 	9rB   c                    | j         }t          j                            g d          }t          j                            g d          }t          j         || j                   || j                   || j                  fd          }t          | j        |d          }|                    | j                  }t          |j
        d                   D ]}t          ||         t          j         |                    |          | j                   |                    |          | j                   |                    |          | j                  fd          d           d S Nr   r   r   rH   r   r)  r   )r   r!   r   r   r   r   r
   rY   r   r%   r+   r   r   r   s           r@   r   z%TestBarycentric.test_ndim_derivatives  sW   ((88(();););<<XuuTW~~uuTW~~uuTW~~FRPPP#DGRa888MM$,''qwqz"" 	( 	(AAaDHnekk!nnT\&B&B&4ekk!nnT\&B&B&4ekk!nnT\&B&B&D +-. . . "'( ( ( ( (	( 	(rB   c                    | j         }t          j                            g d          }t          j                            g d          }t          j         || j                   || j                   || j                  fd          }t          | j        |d          }t          |j                  D ]}t          |
                    | j        |          t          j         |                    |          | j                   |                    |          | j                   |                    |          | j                  fd          d           d S r-  )r   r!   r   r   r   r   r
   r%   r   r   r^   r   r   r   s          r@   r   z$TestBarycentric.test_ndim_derivative  sJ   ((88(();););<<XuuTW~~uuTW~~uuTW~~FRPPP#DGRa888qs 	( 	(AALLq99Hnekk!nnT\&B&B&4ekk!nnT\&B&B&4ekk!nnT\&B&B&D +-. . . "'( ( ( ( (	( 	(rB   c                     t          | j                  }|                    | j                   t	          |                     | j                   || j                             d S rW   )r
   r   set_yir   r   r   r   r   s     r@   test_delayedzTestBarycentric.test_delayed  sS    #DG,,	DNN4<88!!DL//JJJJJrB   c                 &   t          | j        d d         | j        d d                   }|                    | j        dd          | j        dd                     t	          |                     | j                   || j                             d S )Nr   )r
   r   r   add_xir   r   r   r   s     r@   test_appendzTestBarycentric.test_append  s{    #DGBQBK!==	dgabbk***DNN4<88!!DL//JJJJJrB   c                 j   g dt          j        ddgddgddgg          t                     }fdt          j        d                   D             }t          j        ddd          t           |          t          j        fd	|D                       j                   d S )
Nr   r   r   r   c                 <    g | ]} d d |f                   S rW   r   )r   r   BIr   r   s     r@   r   z/TestBarycentric.test_vector.<locals>.<listcomp>  s1    ;;;1bbR1X;;;rB   r   r   r   c                 &    g | ]} |          S r   r   r   s     r@   r   z/TestBarycentric.test_vector.<locals>.<listcomp>  r   rB   )	r!   r   r
   r%   r+   r   r   r   r   )rs   rw   r   r7  r   r   r   s      @@@@r@   r   zTestBarycentric.test_vector  s    YYX1v1v1v.//$Br2JJ;;;;;;bhqk(:(:;;;+b!S))AAgJJJ'?'?'?'?B'?'?'?@@B	D 	D 	D 	D 	DrB   c                 |   t          | j        | j                  }t          j         |d                    dk    sJ t          j         |t          j        d                              dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S r   )r
   r   r   r!   r+   r   r   s     r@   r   z'TestBarycentric.test_shapes_scalarvalue  s    #DGTW55x!~~####x"(1++''2----x1#4''''x1a&		""d******rB   c                    t          | j        | j                  }|j        }t	          j        |                    d                    |fk    sJ t	          j        |                    t	          j        d                              |fk    sJ t	          j        |                    dg                    |dfk    sJ t	          j        |                    ddg                    |dfk    sJ d S r   )r
   r   r   r   r!   r+   rY   r   r   s      r@   r   z2TestBarycentric.test_shapes_scalarvalue_derivative  s    #DGDG44Cxa(())aT1111xbhqkk2233t;;;;xqc**++!u4444xqe,,--!A666666rB   c           	      \   t          | j        t          j        | j        t          j        d                              }t          j         |d                    dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S r   )r
   r   r!   r   r   r   r+   r   s     r@   r   z'TestBarycentric.test_shapes_vectorvalue  s    #DGRXdgry||-L-LMMx!~~%%%%x1#6))))x1a&		""f,,,,,,rB   c                 :   t          | j        t          j        | j        dg                    }t          j         |d                    dk    sJ t          j         |dg                    dk    sJ t          j         |ddg                    dk    sJ d S r   )r
   r   r!   r   r   r+   r   s     r@   r   z*TestBarycentric.test_shapes_1d_vectorvalue  s    #DGRXdgs-C-CDDx!~~%%%%x1#6))))x1a&		""f,,,,,,rB   c           	         t          | j        t          j        | j        t          j        d                              }|j        }t          j        |                    d                    |dfk    sJ t          j        |                    dg                    |ddfk    sJ t          j        |                    ddg                    |ddfk    sJ d S r   )	r
   r   r!   r   r   r   r   r+   rY   r   s      r@   r   z2TestBarycentric.test_shapes_vectorvalue_derivative  s    #DGBHTWRYq\\,J,JKKCxa(())aV3333xqc**++1ay8888xq!f--..1a);;;;;;rB   c           
         t          | j        | j        d          }t          }t	           || j                   || j        | j        | j        d                     t	          |                    | j        d           || j        | j        | j        dd                     t	          |                    | j        d           || j        | j        | j        ddgd                     d S )Nr   r&  r   )r   r6   r   )r
   r   r   r   r   r   r^   rY   )rs   rw   bis      r@   r   zTestBarycentric.test_wrapper  s    #DGTW!<<<$$,DGTWdlPQ)R)R)RSSST\15547DGT\qaHHH	J 	J 	JdlA6647DGT\1v1MMM	O 	O 	O 	O 	OrB   c                     dt          j        dd          z  }t          j        dd          }t          ||d          }t          |t          j        d                     d S )Ni  r      g     @g      #@)r!   r   r   r   r   )rs   r7   r9   values       r@   test_int_inputzTestBarycentric.test_int_input  sX    29Q###Ia'1j99E2:c??33333rB   c                 r   d}t          j        |dz                                 t           j                  }t          j        |t           j        z  |z            }d|z  }|dxx         dz  cc<   |dxx         dz  cc<   t          |          }|j        d         }t          |j        d|z  z  |           d S )NiL  r   r   r         ?r   )	r!   r   astypefloat64cospir
   wir   )rs   r   jr7   wrw   factors          r@   test_large_chebyshevz$TestBarycentric.test_large_chebyshev  s     Ia!e##BJ//F1ru9q=!! AI	!	"#A&& aADAJ/33333rB   c                     t          ddgddg          }t          j        d          5   ||j                  }d d d            n# 1 swxY w Y   t	          ||j                                                   d S )Nr   r   r   raise)divide)r
   r!   errstater:   r   r<   ravel)rs   rw   r<   s      r@   test_warningzTestBarycentric.test_warning  s     $QFQF33[((( 	 	14B	 	 	 	 	 	 	 	 	 	 	 	 	 	 	
 	B

-----s   AAAc                     t          j        g d          }t          j        g d          }t          j        t          d          5  t          ||           d d d            d S # 1 swxY w Y   d S )N)皙?rE  ?rE  r   z)Interpolation points xi must be distinct.r  )r!   r   r  r   
ValueErrorr
   )rs   xisr   s      r@   test_repeated_nodez"TestBarycentric.test_repeated_node
  s     h+++,,Xlll##]:!LN N N 	- 	-#C,,,	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	- 	-s   A&&A*-A*c                 h     t           j         j                  } fd}t          d||           d S )Nc                 (     |j                    d S rW   r  r  s     r@   r  z3TestBarycentric.test_concurrency.<locals>.worker_fn  r  rB   r   )r
   r   r   r   r  s   `  r@   r  z TestBarycentric.test_concurrency  sI    #DGTW55	 	 	 	 	 	 Iq11111rB   N)rt   ru   rv   r   r   r   r   r   r   r   r   r   r1  r4  r   r   r   r   r   r   r   rC  rN  rT  r  r  r  rZ  r  r   rB   r@   r!  r!  V  s       * * *G G G
U U U
I I I( ( (A A A9 9 9( ( ( ( ( (K K K
K K K
D D D+ + +7 7 7- - -- - -< < <O O O4 4 44 4 42	. 	. 	. [- - - [2 2 2 2 2rB   r!  c                   p    e Zd ZddZd Zd Zd Zd Zd Ze	j
        j        d             Zd	 Zd
 Zd ZdS )	TestPCHIP   c                     t           j                            d          }t          j        |                    |                    }|                    |          }t	          ||          ||fS )Nr   )r!   r"   r#   sortr   )rs   nptsr6   r:   r<   s        r@   _make_randomzTestPCHIP._make_random  sX    i##D))WSZZ%%&&ZZR}}b"$$rB   c                 j   |                                  \  }}}t          t          |          dz
            D ]z}||         ||dz            }}||         ||dz            }}||k    r||}}t          j        ||d          }	 ||	          }
||
dz   k    |
|dz   k    z                                  sJ {d S )Nr   r   r   rc  r%   r&   r!   r   allrs   r   r:   r<   r   x1x2y1y2xpyps              r@   test_overshootzTestPCHIP.test_overshoot%  s    %%''	2rs2wwqy!! 	C 	CAUBqsGBUBqsGBBwwRBRR((B2B2:%"U
*:;@@BBBBBB	C 	CrB   c                 n   |                                  \  }}}t          t          |          dz
            D ]|}||         ||dz            }}||         ||dz            }}t          j        ||d          }	 ||	          }
||z
  |
dd          |
d d         z
  z  dk                                    sJ }d S )Nr   r   r   re  rg  s              r@   test_monotonezTestPCHIP.test_monotone1  s    %%''	2rs2wwqy!! 	; 	;AUBqsGBUBqsGBRR((B2BUr!""v2A2/!388::::::	; 	;rB   c                 &   t          j        g dg dg          }t          j        d          } t          |d         |d                   |          }|dz  } t          |d         |d                   |          }t	          ||dd           d S )	N)
r   r   r      /   <   O   W   c   r   )
rx  ir   r      &   -   5   7   r   r   r         ?+=)r   rtol)r!   r   r   r   r   )rs   dataxxcurvedata1curve1s         r@   	test_castzTestPCHIP.test_cast;  s    x@@@DDDF G GYs^^'d1gtAw''++s
*uQxq**2..vE>>>>>>rB   c                 N   d}t          j        t          j        |                    }t	          |d d df         |d d df                   }d}t          j        t          j        |                    }t          |d d df          ||d d df                   dd           d S )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   )rs   dataStrr  pch	resultStrresults         r@   test_nagzTestPCHIP.test_nagG  s    

 z"+g..//D1ItAAAaCy))	 BK	2233qqqsSS!%5%5BTJJJJJJrB   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          ||          t          ||          fD ]'}|d         |d         fD ]} ||d          dk    sJ (d S )N)r  rV  g      ?gffffff?)皙uq@g     @@     @@     @)r  r  g     p@r  r   r   r   )r!   r   r   )rs   r7   rj  rk  ppts         r@   test_endslopeszTestPCHIP.test_endslopesj  s     H+++,,X33344X44455B<<q". 	% 	%BdAbE] % %r!Qxx1}}}}}%	% 	%rB   c                 \   t          j        d          }t          j        |          }t          j                    5  t          j        d           t          ||          }d d d            n# 1 swxY w Y   t          j        ddd          }t           ||          dk              sJ d S )Nr   errorr   	   e   r  )	r!   r   r   warningscatch_warningsfilterwarningsr   r   rf  )rs   r7   r9   r  r  s        r@   test_all_zeroszTestPCHIP.test_all_zerost  s    IbMMM! $&& 	 	#G,,,1++C	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 [As##33r77b=!!!!!!!s   %A--A14A1c                     t          j        ddd          }t          ddgddg          }t           ||          d|z  d           d S )Nr   r   rA  r   r   r   )r!   r   r   r   )rs   r7   r   s      r@   test_two_pointszTestPCHIP.test_two_points  sU    
 K1b!!1a&1a&!!!ac......rB   c                    t          t          g dg ddgd          t          j        dg                     t          t          g dg ddgd          t          j        dg                     t          t          j        t          g dg ddgddg                    t          j        dgdgg                     d S )	Nr   r   r   )r   rD   r   rE  r   r   r~  r   g      @)r   r   r!   r   r   s    r@   test_pchip_interpolatez TestPCHIP.test_pchip_interpolate  s    !iiiSEqAAAJt	 	 	 	"iiiSEqAAAJu	 	 	 	"J(IIIu1a&QQQRRJs|$$	& 	& 	& 	& 	&rB   c                     t          ddgddg          }|                                }t          |t          j        dg                     d S )Nr   r   r   rE  )r   rootsr   r!   r   )rs   r   r   s      r@   
test_rootszTestPCHIP.test_roots  sH    1a&2q'""GGII2:se,,-----rB   N)r_  )rt   ru   rv   rc  rn  rp  r  r  r  r  r  r  r  r  r  r  r   rB   r@   r^  r^    s        % % % %
C 
C 
C; ; ;
? 
? 
?!K !K !KF% % % [
" 
" 
"/ / /& & &. . . . .rB   r^  c                   f    e Zd Ze	 	 dd            Zd Zd Zd Zd Zd Z	d	 Z
d
 Zd Zd Zd ZdS )TestCubicSpline
not-a-knotr  c           	      
   | j         }| j        }t          j        |          }|                    |j        d         gdg|j        dz
  z  z             }|dd         }t          |dddf         |dddf         |dz  z  |dddf         |dz  z  z   |dddf         |z  z   |dddf         z   ||           t          |dddf         d|dddf         z  |dz  z  d|dddf         z  |z  z   |dddf         z   ||           t          |dddf         d|dddf         z  |z  |dddf         z   ||           |j        dk    r?|dk    r9|dk    r3t          |d         t          j	        |d                   ||           dS |d	k    rt           | |d         d           | |d         d          ||           t           | |d         d           | |d         d          ||           t           | |d         d           | |d         d          ||           dS |dk    r|j        dk    rd | |d                    | |d                   z
  |d         z  }t          j
        |          }t           | |d         d          |||           nt          |d
         |d         ||           n|dk    rFt           | |d         d          t          j	         | |d         d                    ||           n|dk    rFt           | |d         d          t          j	         | |d         d                    ||           n:|\  }	}
t           | |d         |	          t          j
        |
          ||           |dk    r|j        dk    re | |d                    | |d                   z
  |d         z  }t          j
        |          }t           | |d         d          |||           dS t          |d         |d         ||           dS |dk    rGt           | |d         d          t          j	         | |d         d                    ||           dS |dk    rMt           | |d         d          t          j	         | |d         d                    d|z  d|z             dS |\  }	}
t           | |d         |	          t          j
        |
          ||           dS )zVCheck that spline coefficients satisfy the continuity and boundary
        conditions.r   r   r   Nr   r   r  r  periodic)r   r   )r   r   rL   rK   )r   r   )r   r   )r7   cr!   diffr/   r+   r.   r   r,   r   r   )Sbc_startbc_endtolr7   r  dxdxislopeorderrB  s              r@   check_correctnessz!TestCubicSpline.check_correctness  s   
 CCWQZZZZ!qvz(::;;"g 	!QRR%!AssF)c1f"4qCRCy367I"I!SbS&	C#(*+AssF)#4:=C	I 	I 	I 	I!QRR%!a3B3i-#q&"8Aa"fI+#,./3B3i#8>A	M 	M 	M 	M!QRR%!a3B3i-#"5!SbS&	"A s	, 	, 	, 	, 6Q;;8|33,8N8NAaD"-!"5"5CcJJJJF z!!AAadAJJ!B%#CHHHHAAadAJJ!B%#CHHHHAAadAJJ!B%#CHHHHF |##v{{1Q411QqT77*be3
5))!A$

E#FFFFF$4sEEEEE""!A$

BM!!AaD!**55CcK K K K K""!A$

BM!!AaD!**55CcK K K K K $LE5AAadENNBJu,=,=CcRRRR\!!v{{1Q411QqT77*be3
5))!A$

E#FFFFFF%!E(3GGGGGGy  AAaeQKKqq2{{)C)C!$30 0 0 0 0 0y  AAaeQKKqq2{{)C)C!"3QsU4 4 4 4 4 4 "LE5AAaeUOORZ->->SsSSSSSSrB   c           	         t          |j                  }||= t          j        |          }|                    d           t          j        |          }|                    d           dddd|fd|fg}|d d         D ],}t          ||||          }	|                     |	||           -|D ]5}
|D ]0}t          ||||
|f          }	|                     |	|
|d	
           16d S )Nr   r   r  rK   rL   r   r   r   rM   g+=r  )r$   r+   r!   emptyfillr   r  )rs   r7   r9   r   r4   first_derivsecond_derivbc_allrR   r  r  r  s               r@   check_all_bczTestCubicSpline.check_all_bc  s6   17mmh{++x,,"
 !* 	. 	.BAqtR888A""1b"---- 	G 	GH  G G14(F9KLLL&&q(F&FFFFG	G 	GrB   c                    t          j        g d          }t          j        g d          }dd|j        fD ]}|                     |d |         |d |         d           t          j        d|df          }|d |         |dd d df<   |d |         dz
  |dd d df<   |d |         dz   |dd d df<   |d |         dz   |dd d df<   |                     |d |         |d           d S )N)r   r   rE  r   r   g      @g      @r  )r   g      r   r   g      @r   r   rE  r   r   r   r   )r!   r   r,   r  r  )rs   r7   r9   r   Ys        r@   test_generalzTestCubicSpline.test_general  s'   H44455H44455Q 	+ 	+AaeQrrUA...!Q##A2A2AaAgJ2A2AaAgJ2A2AaAgJ2A2AaAgJaeQ****	+ 	+rB   c                    dD ]}t          j        ddt           j        z  |          }t          j        |          }t	          ||d          }|                     |dd           t          j        d|df          }||dd d df<   |dz   |dd d df<   |dz
  |dd d df<   |dz   |dd d df<   t	          ||dd          }|                     |dd           d S )	N)r   r   rD   r   r   r  rM   r   rD   r  )r!   r   rI  rH  r   r  r  )rs   r   r7   r9   r  r  s         r@   test_periodiczTestCubicSpline.test_periodic  s    	> 	>AAq25y!,,Aq		AAq*555A""1j*===!Q##AAaAgJQAaAgJQAaAgJQAaAgJAqq*===A""1j*====	> 	>rB   c                     t          j        ddt           j        z  d          }t          j        |          }t	          ||d          }t           |d           |ddt           j        z  z             d           d S )	Nr   r   r   r  r  r   r  )decimal)r!   r   rI  rH  r   r   rs   r7   r9   r  s       r@   test_periodic_evalz"TestCubicSpline.test_periodic_eval  ss    K1ru9b))F1II1j111AAaDD!!ABE	M"2"2B??????rB   c                     t          j        g d          }t          j        g d          }t          ||dd          }|                     |dd           d S )N)rW  ?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?rW  gffffff?g333333?rE  g?r  r  )rM   extrapolate)r!   r   r   r  r  s       r@   *test_second_derivative_continuity_gh_11758z:TestCubicSpline.test_second_derivative_continuity_gh_11758  s    H O O O P PH P P P Q Q1jjIIIq*j99999rB   c                 0   t          j        g d          }t          j        g d          }t          ||d          }|                     |dd           t	           |                    d          |          t          j        g d                     d S )N)r~  g      @r  )r~  g      .@r~  r  r  r   )      Hr  r  )r!   r   r   r  r   r^   r  s       r@   test_three_pointsz!TestCubicSpline.test_three_points#  s     H%%%&&H%%%&&1j111q*j999Q**BH5J5J5J,K,KLLLLLrB   c                 
   t          j        g d          }t          j        ddgddgddgg          }t          ||d          }|                     |dd           t          ||d d df         d          }t          ||d d df         d          }t          j        ddd	          }t           ||          d d df          ||                     t           ||          d d df          ||                     d S )
N)r  r~  r  r  r~  r  r  r   r   r   rD   )r!   r   r   r  r   r   )rs   r7   r9   r  S0S1qs          r@   #test_periodic_three_points_multidimz3TestCubicSpline.test_periodic_three_points_multidim/  s    H___%%HsCj3*sCj9::1j111q*j999AaaadGZ888AaaadGZ888K1a  !QQQT
BBqEE***!QQQT
BBqEE*****rB   c                    t          j        g dt                    }t          j        g dt                    }t          ||          }|                     |           t          j        g d          }t          ||          }|                     |           t          ||dz  d          }|                     |dd	           t          j        g d          }t          ||d
dg          }|                     |d
d           d S )N)r   r   r   r   )dtype)r   r   r   r   )y            ?r  y      ?      y      ?      r   )rK   r   y               @r  rK   r  )r   y       @      ?)r   y      ?      )r!   r   intr   r  r  s       r@   test_dtypeszTestCubicSpline.test_dtypes<  s	   H\\\---H]]]#...1q!!!H111221q!!!16+?@@@q)W555H]]]##1}m&DEEEq-?????rB   c                    t           j                            d          }t          j        |                    d                    }d|                    d          z   }t          ||          }|                     |d           d S )Nr   r   )r,   g     @gvIh%<=r  )r!   r"   r#   ra  uniformr   r  )rs   r6   r7   r9   r  s        r@   test_small_dxzTestCubicSpline.test_small_dxM  sz    i##A&&GCKKSK))**#++3+'''1qe,,,,,rB   c           
         t          j        g d          }t          j        g d          }t          j        g d          }t          j        t           j        dddg          }t          j        g d          }t          j        t           j        dddg          }g d}dg}dg}	t          t          t
          ||           t          t          t
          ||           t          t          t
          ||           t          t          t
          ||           t          t          t
          ||           t          t          t
          |d d t           j        f         |           t          t          t
          ||	           g d	}
|
D ]!}t          t          t
          ||d
|d           "t           j        ||f         }d}ddg dff}ddd
d
ggff}t          t          t
          ||d
|d           t          t          t
          ||d
|d           t          t          t
          ||d
|d           t          t          t
          ||d
dd           d S )Nr   )y      ?      ?r   r   r   r   r   r   )r   r   r   r   r  r   ))r  rL   ))r   r   )r   r   )r   r   )r  r  z
not-a-typor   T)rL   r  rL   )r   r   r   r  )r!   r   nanassert_raisesrX  r   newaxisc_)rs   r7   r9   xcxnxoyny3rh  rj  wrong_bcrM   r  bc1bc2bc3s                   r@   test_incorrect_inputsz%TestCubicSpline.test_incorrect_inputsT  s$   H\\\""H\\\""X'''((Xrvq!Q'((Xlll##Xrvq!Q'((YYSSj+r1555j+r1555j+q"555j+r1555j+q"555j+qBJ/?CCCj+r2666" " "   	K 	KG*k1aGTJJJJ E!Q$K!1iii.)11vh-(j+q!QTBBBj+q!QTBBBj+q!QTBBB 	j+q!Q
DIIIIIrB   N)r  r  r  )rt   ru   rv   staticmethodr  r  r  r  r  r  r  r  r  r  r  r   rB   r@   r  r    s        ;G#?T ?T ?T \?TBG G G.+ + +> > >@ @ @: : :
M 
M 
M+ + +@ @ @"- - -&J &J &J &J &JrB   r  c                      g d} g d}g d}t          | ||          }t           ||           |ddd           t           || d          |ddd           d S )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_correctnessr  }  sx    		A

A99D1a&&AAAaDD!ENNNNAAaGGTu%eTTTTTTrB   c                      g d} g d}g d}t          t          t          | ||           ddt          j        g}t          t          t          | ||           d S )Nr  )r   r   rD   )r   r   r   r   r   r   )r  rX  r   r!   r  )r7   r9   r;   dydx_with_nans       r@   &test_CubicHermiteSpline_error_handlingr    s^    		A		A==D*0!Q===26NM*0!QFFFFFrB   c                  "   t          j        ddg          } t          j        ddg          }t          j        ddg          }t          | ||          }|                    d          }|j        j        d	         d	k    sJ |j        d
k    sJ d S )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_11185r    s    
%  A
..122A	;	*	+	+B1a$$A 	
D!!A39Q<16Q;;;;;;rB   c                   t   e Zd Zej                            d ej        d           ej        d          g          ej                            dg d          ej                            dg d          ej                            dee	g          d	                                                 Z
ej                            d ej        d           ej        d          g          ej                            dg d          ej                            deeg          d
                                     ZdS )TestZeroSizeArraysr9   )r   r   rD   )r   rD   r   rM   )r  r  rK   rL   r   r   clsc                    t          j        d          }t          j        d          } ||||          } ||          j        dk    sJ  ||          j        |j        |j        dd          z   k    sJ t          j        |d|          } |||||          }|j        d |         |j        fz   |j        |dz   d          z   }	 ||          j        dk    sJ  ||          j        |	k    sJ d S )Nr   r   r  r   r   )rM   r   r!   r   r,   r+   moveaxis)
rs   r   r9   rM   r   r7   xvalobjytshs
             r@   test_zero_sizez!TestZeroSizeArrays.test_zero_size  s    IbMMy||c!Q(((s4yy~""""s4yy$*qwqrr{"::::: [At$$c!Rt444Xete_	},rxQ/@@s4yy~""""s4yy"$$$$$$rB   c                    t          j        d          }t          j        d          } |||          } ||          j        dk    sJ  ||          j        |j        |j        dd          z   k    sJ t          j        |d|          } ||||          }|j        d |         |j        fz   |j        |dz   d          z   } ||          j        dk    sJ  ||          j        |k    sJ d S )Nr   r   r   r   rH   r  )	rs   r   r9   r   r7   r  r  r  r  s	            r@   test_zero_size_2z#TestZeroSizeArrays.test_zero_size_2  s   
 IbMMy||c!Qiis4yy~""""s4yy$*qwqrr{"::::: [At$$c!Rd###Xete_	},rxQ/@@s4yy~""""s4yy"$$$$$$rB   N)rt   ru   rv   r  r  parametrizer!   r*   r   r   r  r   r   r
  r   rB   r@   r  r    su        [S828J#7#7#+28J#7#7#9 : :[YMMMO O[VYYY//[U%7$EFF% % GF 0/O O: :%  [S828J#7#7#+28J#7#7#9 : :[VYYY//[U%68K$LMM% % NM 0/: :% % %rB   r  )Nr   N)*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   rA   rN   rT   r[   r   r   r   r  r!  r^  r  r  r  r  r  r   rB   r@   <module>r     s    				                + * * * * *                             : 9 9 9 9 9 LM& & & &R 
%	$	$G G G"I I I26 26 26j/ / /j2 j2 j2 j2 j2 j2 j2 j2Z$ $ $ $ $ $ $ $E2 E2 E2 E2 E2 E2 E2 E2P}. }. }. }. }. }. }. }.@\J \J \J \J \J \J \J \J~U U UG G G
 
 
/% /% /% /% /% /% /% /% /% /%rB   