
    doij                        S SK r S SKrS SKrS SKJr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  \
R8                  R:                  r\
R8                  R<                  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(\	" \5       " S S5      5       r)\	" \5      S 5       r*S r+S r, " S S5      r-g)    N)xp_assert_equalxp_assert_closeassert_array_almost_equalassert_almost_equalmake_xp_test_case)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                   `/var/www/html/land-ocr/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_polyint.pycheck_shaperB      s=   

))


%CAU1c'l1n%&AHHTS\!^$a(4'>#--a0A	'	B--xx$.*44Q7aDBtBzB2Fa<<<R@ &B!''%4.8 !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   r8   r:   r   s      rA   
spl_interptest_shapes.<locals>.spl_interpF   s    !!T22rC   )naturalclampedbc_type)
r	   r   r   r   r   r   SHAPESr&   r'   rB   )rK   ips1s2r   bcextras          rA   test_shapesrV   D   s    3 !"9;M);
DB!3r7(CG4D[(#BBd;"8B%.OE'D$F #9	 5  DrC   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)r8   r:   r   rQ   s      rA   interpolator_derivs/test_derivs_shapes.<locals>.interpolator_derivsW   s    aD>---rC   r   rD   )r	   r   rP   r&   r'   rB   )r[   rR   rS   r   rQ   s       @rA   test_derivs_shapesr]   U   sX     "9:	. B!3r7(CG4D 3T4H 5  	 ;rC   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                  $ rY   )r	   
derivativerJ   s      rA   krogh_deriv&test_deriv_shapes.<locals>.krogh_deriva   s     t,777rC   c                 .    [        XU5      R                  $ rY   )r   r`   rJ   s      rA   
bary_deriv%test_deriv_shapes.<locals>.bary_derivd   s    &qT2===rC   c                 6    [        XU5      R                  5       $ rY   r   r`   rJ   s      rA   pchip_deriv&test_deriv_shapes.<locals>.pchip_derivg   s    Q4 ++--rC   c                 8    [        XU5      R                  S5      $ Nr   rg   rJ   s      rA   pchip_deriv2'test_deriv_shapes.<locals>.pchip_deriv2j   s    Q4 ++A..rC   c                 6    [        XU5      R                  5       $ rY   r   antiderivativerJ   s      rA   pchip_antideriv*test_deriv_shapes.<locals>.pchip_antiderivm   s    Q4 //11rC   c                 8    [        XU5      R                  S5      $ rk   ro   rJ   s      rA   pchip_antideriv2+test_deriv_shapes.<locals>.pchip_antideriv2p   s    Q4 //22rC   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>.Pt   c                 0    [         R                  " XS5      $ )Nr   )r   __call__)selfr8   s     rA   r{   Btest_deriv_shapes.<locals>.pchip_deriv_inplace.<locals>.P.__call__u   s    (11$1==rC   r    N)__name__
__module____qualname____firstlineno__r{   __static_attributes__r    rC   rA   Prx   t   s
    >rC   r   )r   )r8   r:   r   r   s       rA   pchip_deriv_inplace.test_deriv_shapes.<locals>.pchip_deriv_inplaces   s    	! 	 t}rC   c                 6    [        XU5      R                  5       $ rY   )r   r`   rJ   s      rA   akima_deriv&test_deriv_shapes.<locals>.akima_derivz   s    "1.99;;rC   c                 6    [        XU5      R                  5       $ rY   )r   rp   rJ   s      rA   akima_antideriv*test_deriv_shapes.<locals>.akima_antideriv}   s    "1.==??rC   c                 6    [        XU5      R                  5       $ rY   )r   r`   rJ   s      rA   cspline_deriv(test_deriv_shapes.<locals>.cspline_deriv   s    1&1133rC   c                 6    [        XU5      R                  5       $ rY   )r   rp   rJ   s      rA   cspline_antideriv,test_deriv_shapes.<locals>.cspline_antideriv   s    1&5577rC   c                 2    [        XUS9R                  5       $ rH   )r   r`   rJ   s      rA   
bspl_deriv%test_deriv_shapes.<locals>.bspl_deriv   s    !!T2==??rC   c                 2    [        XUS9R                  5       $ rH   )r   rp   rJ   s      rA   bspl_antideriv)test_deriv_shapes.<locals>.bspl_antideriv   s    !!T2AACCrC   r    rD   )rP   r&   r'   rB   )ra   rd   rh   rl   rq   rt   r   r   r   r   r   r   r   rQ   rR   rS   r   s                    rA   test_deriv_shapesr   `   s    8>./23<@48@D CV+M B!3r7(CG4DB5 5  MrC   c                  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   )r8   r:   rQ   pr<   s        rA   test_complexr      s    AA "9;GqH!bjjm, H D1&AAaD"**Q-(AaGRZZ-.rC   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S 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)rE   r   r   r   r   d   rE   r"   
polynomial
Polynomial	true_polylinspacetest_xsxsysr|   s    rA   setup_methodTestKrogh.setup_method   sU    112CD{{2a,++b1%..)rC   c                     [        U R                  U R                  5      n[        U R	                  U R
                  5      U" U R
                  5      5        g rY   r	   r   r   r   r   r   r|   r   s     rA   test_lagrangeTestKrogh.test_lagrange   5    dggdgg.DNN4<<84<<IrC   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     rA   test_scalarTestKrogh.test_scalar   sY    dggdgg.DNN1-qteDDNN288A;7288A;RWXrC   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   rZ   r   r&   r,   r   r   derivr|   r   Dis       rA   test_derivativesTestKrogh.test_derivatives   sf    dggdgg.MM$,,'qwwqz"A 4 4Q 7 E !& #rC   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   rZ   r   r'   r&   r,   r   r   r   r   s       rA   test_low_derivativesTestKrogh.test_low_derivatives   st    dggdgg.MM$,,s477|A~6qwwqz"A 4 4Q 7 E !& #rC   c                     [        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   rZ   r   r&   r   r`   r|   r   mrr   s        rA   test_derivativeTestKrogh.test_derivative   sX    dggdgg.MM$,,q)qAT\\! <QTB rC   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 rk   )
r	   r   r   r&   r'   r   r`   r   r"   r+   r|   r   r   s      rA   test_high_derivativeTestKrogh.test_high_derivative   si    dggdgg.s477|Qs477|^4AT\\! < "T\\): ;= 5rC   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   rE   r   r      r   r   r   rI   r   )r   r"   r   r   stackr   r	   rZ   r   r&   r,   r   r   r|   poly1poly2poly3r   r   r   r   s           rA   test_ndim_derivativesTestKrogh.test_ndim_derivatives   s    ((8(();<XXuTWW~uTWW~uTWW~FRPdggr2MM$,,'qwwqz"AADHHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-./ #rC   c                    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          rA   test_ndim_derivativeTestKrogh.test_ndim_derivative   s    ((8(();<XXuTWW~uTWW~uTWW~FRPdggr2qssAALLq9HHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-./ rC   c                     [        U R                  U R                  5      n[        U R	                  U R
                  5      U" U R
                  5      5        g rY   r   r   s     rA   test_hermiteTestKrogh.test_hermite   r   rC   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   TrZ   r*   )r|   r   r   r   r   Pir   r   s           rA   test_vectorTestKrogh.test_vector   s    XX!uaUAa5)*b$5:288A;5GH5Gac7+5GH++b3'AgJJJB'?Bq'
B'?@BB	DAMM'2RZZ(LAw)?(LM		 I (@(Ls   	D)D.>D3c                     [        U R                  U R                  5      n[        U" / 5      [        R
                  " / 5      5        g rY   )r	   r   r   r   r"   r   r   s     rA   
test_emptyTestKrogh.test_empty   s,    dggdgg."rzz"~.rC   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     rA   test_shapes_scalarvalue!TestKrogh.test_shapes_scalarvalue   s    dggdgg.xx!~###xx"((1+'2---xx1#4'''xx1Q%!T)))rC   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,   rZ   r   r|   r   r   s      rA   "test_shapes_scalarvalue_derivative,TestKrogh.test_shapes_scalarvalue_derivative  s    dggdgg.CCxxa()aT111xxbhhqk23t;;;xxqc*+1v555xxq!f-.1a&888rC   c           	      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     rA   test_shapes_vectorvalue!TestKrogh.test_shapes_vectorvalue  s    dggbhhtwwryy|&DExx!~%%%xx1#6)))xx1a&	"f,,,rC   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     rA   test_shapes_1d_vectorvalue$TestKrogh.test_shapes_1d_vectorvalue  sy    dggbhhtwws&;<xx!~%%%xx1#6)))xx1Q%!V+++rC   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,   rZ   r   s      rA   "test_shapes_vectorvalue_derivative,TestKrogh.test_shapes_vectorvalue_derivative  s    dggbhhtwwryy|&DECCxxa()aV333xxqc*+1ay888xxqe,-!Q:::rC   c           
         [        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`   rZ   )r|   r   kis      rA   test_wrapperTestKrogh.test_wrapper!  s    dggtww/AdllOR$,,-OPALLq9tww1E	GAMM$,,:twwAq6J	LrC   c           	          / 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|   r8   
offset_cdffs       rA   test_int_inputsTestKrogh.test_int_inputs*  s_    XX ? @
 a,QqTJ.!,,q!2DDEj1	?rC   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	   rZ   realimagr   )r|   r8   r:   funccmplxcmplx2s         rA   test_derivatives_complex"TestKrogh.test_derivatives_complex7  s}    xx)*BHH5K,L1 &  ##Avv.::1=&q&&1==a@@AE2rC   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    rA   test_high_degree_warning"TestKrogh.test_high_degree_warningA  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 rY   r   _interpr|   s     rA   	worker_fn-TestKrogh.test_concurrency.<locals>.worker_fnH      477OrC   r   )r	   r   r   r   r|   r   r5  s   `  rA   test_concurrencyTestKrogh.test_concurrencyE  s(    dggtww/	 	 I1rC   r   r   r   r   N)r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r
  r  r  r#  r-  r9  r   r    rC   rA   r   r      su    *JY
&&C=//J
/*9-,;L?3:2rC   r   c                       \ rS rSrS rSrg)
TestTayloriN  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 )NrE   r   r      )r   r"   expr&   r   r   )r|   degreer   r   s       rA   test_exponentialTestTaylor.test_exponentialO  sX    )"&&!VQCvaxA!Q'	A ! 	AaD#rC   r    N)r~   r   r   r   rB  r   r    rC   rA   r=  r=  N  s    $rC   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S rS rSrg)TestBarycentriciX  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    rA   r   TestBarycentric.setup_methodY  sU    112CD{{2q#.++b!Q'..)rC   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     rA   r   TestBarycentric.test_lagrange_  s7    #DGGTWW1E$,,)EFrC   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   r7   r   Fr   )r   r   r   r   r   r"   r   r   s     rA   r   TestBarycentric.test_scalard  sZ    #DGGTWW!<!dnnQ/%@"((1+rxx{(CeTrC   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   rZ   r   r&   r,   r   r   r   r   s       rA   r    TestBarycentric.test_derivativesi  sc    #DGGTWW5MM$,,'qwwqz"ADNN003DLLA14H #rC   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   rZ   r   r'   r&   r,   r   r   r   r   s       rA   r   $TestBarycentric.test_low_derivativeso  sw    #DGGTWW5MM$,,DGGQ7qwwqz"ADNN003DLLAD!&( #rC   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   rZ   r   r&   r   r`   r   s        rA   r   TestBarycentric.test_derivativew  sX    #DGGTWW5MM$,,*qAALLq914@ rC   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 )NrE   )
r   r   r   r&   r'   r   r`   r   r"   r+   r   s      rA   r   $TestBarycentric.test_high_derivative~  si    #DGGTWW5s477|Qs477|^4AALLq9HHS%679 5rC   c                    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   rI   r   rQ  r  )r   r"   r   r   r   r   r   rZ   r   r&   r,   r   r   r   s           rA   r   %TestBarycentric.test_ndim_derivatives  s   ((8(();<XXuTWW~uTWW~uTWW~FRP#DGGRa8MM$,,'qwwqz"AADHHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-. "'( #rC   c                    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 rX  )r   r"   r   r   r   r   r   r&   r   r   r`   r   r   r   s          rA   r   $TestBarycentric.test_ndim_derivative  s    ((8(();<XXuTWW~uTWW~uTWW~FRP#DGGRa8qssAALLq9HHekk!nT\\&B&+kk!nT\\&B&+kk!nT\\&B&D +-. "'( rC   c                     [        U R                  5      nUR                  U R                  5        [	        U R                  U R                  5      U" U R                  5      5        g rY   )r   r   set_yir   r   r   r   r   s     rA   test_delayedTestBarycentric.test_delayed  s?    #DGG,	DNN4<<8!DLL/JrC   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     rA   test_appendTestBarycentric.test_append  sc    #DGGBQK!=	dggabk*DNN4<<8!DLL/JrC   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	            rA   r   TestBarycentric.test_vector  s    XX1v1v1v./$rJ(-bhhqk(:;(:1b1X(:;++b!S)AgJJJB'?Bq'
B'?@BB	D < (@s   CC
c                    [        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     rA   r   'TestBarycentric.test_shapes_scalarvalue  s    #DGGTWW5xx!~###xx"((1+'2---xx1#4'''xx1a&	"d***rC   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,   rZ   r   r   s      rA   r   2TestBarycentric.test_shapes_scalarvalue_derivative  s    #DGGDGG4CCxxa()aT111xxbhhqk23t;;;xxqc*+!u444xxqe,-!A666rC   c           	      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     rA   r  'TestBarycentric.test_shapes_vectorvalue  s    #DGGRXXdggryy|-LMxx!~%%%xx1#6)))xx1a&	"f,,,rC   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     rA   r  *TestBarycentric.test_shapes_1d_vectorvalue  sy    #DGGRXXdggs-CDxx!~%%%xx1#6)))xx1a&	"f,,,rC   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,   rZ   r   s      rA   r
  2TestBarycentric.test_shapes_vectorvalue_derivative  s    #DGGBHHTWWRYYq\,JKCCxxa()aV333xxqc*+1ay888xxq!f-.1a);;;rC   c                    [        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   rL  r   )r  r7   r   )r   r   r   r   r   r   r`   rZ   )r|   r   bis      rA   r  TestBarycentric.test_wrapper  s    #DGGTWW!<$$,,DGGTWWdllPQ)RST\\15477DGGT\\qaH	JdllA6477DGGT\\1v1M	OrC   c                     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|   r8   r:   values       rA   test_int_inputTestBarycentric.test_int_input  sE    299Q##IIa'j9E2::c?3rC   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   jr8   wr   factors          rA   test_large_chebyshev$TestBarycentric.test_large_chebyshev  s     IIa!e##BJJ/FF1ruu9q=! AI	!	"#A& aADDAJ/3rC   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      rA   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)皙?rz  ?rz  r   z)Interpolation points xi must be distinct.r&  )r"   r   r)  r   
ValueErrorr   )r|   xisr   s      rA   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 rY   r1  r2  s     rA   r5  3TestBarycentric.test_concurrency.<locals>.worker_fn  r7  rC   r   )r   r   r   r   r8  s   `  rA   r9   TestBarycentric.test_concurrency  s(    #DGGTWW5	 	 I1rC   r;  N)r~   r   r   r   r   r   r   r   r   r   r   r   r   r^  rb  r   r   r   r  r  r
  r  rw  r  r  r  r9  r   r    rC   rA   rE  rE  X  s}    *G
U
I(A9( (K
K
D+7--<O442	.-2rC   rE  c                   T    \ rS rSrSS jrS rS rS rS rS r	S 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|   nptsr7   r;   r=   s        rA   _make_randomTestPCHIP._make_random  sJ    ii##D)WWSZZ%&ZZR}b$$rC   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              rA   test_overshootTestPCHIP.test_overshoot%  s    %%'	rs2wqy!AUBsGUBsGwBRR(B2B:%"U
*:;@@BBBB "rC   c                    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              rA   test_monotoneTestPCHIP.test_monotone1  s    %%'	rs2wqy!AUBsGUBsGRR(B2BUr!"v2A/!388:::: "rC   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         rA   	test_castTestPCHIP.test_cast;  sq    xx@DF GYYs^d1gtAw'+s
uQxq*2.E>rC   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         rA   test_nagTestPCHIP.test_nagG  s    

 zz"++g./D1ItAaCy)	 BKK	23qsS!%5BTJrC   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|   r8   r  r  ppts         rA   test_endslopesTestPCHIP.test_endslopesj  sp     HH+,XX34XX45<q.BdAbE]!Qx1}$} # /rC   c                 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|   r8   r:   r  r  s        rA   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   ru  r   r  r  )r"   r   r   r   )r|   r8   r   s      rA   test_two_pointsTestPCHIP.test_two_points  s>    
 KK1b!1a&1a&!!ac.rC   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   rE   r   rz  r   r  r  r   g      @)r   r   r"   r   r   s    rA   test_pchip_interpolate TestPCHIP.test_pchip_interpolate  s    !iSEqAJJt	 	"iSEqAJJu	 	"JJ(Iu1a&QRJJs|$	&rC   c                     [        SS/SS/5      nUR                  5       n[        U[        R                  " S/5      5        g )Nr   r   r   rz  )r   rootsr   r"   r   )r|   r   r   s      rA   
test_rootsTestPCHIP.test_roots  s6    1a&2q'"GGI2::se,-rC   r    N)   )r~   r   r   r   r  r  r  r  r  r  r  r  r  r  r   r    rC   rA   r  r    s7    %
C;
?!KF%
"/&.rC   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   rN   rM   )r   r   )r   r   )r8   cr"   diffr0   r,   r/   r   r-   r  r   )Sbc_startbc_endtolr8   r  dxdxislopeorderrv  s              rA   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SrC   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  rM   rN   r   r   r   rO   g+=r  )r%   r,   r"   emptyfillr   r  )r|   r8   r:   r   r5   first_derivsecond_derivbc_allrT   r  r  r  s               rA   check_all_bcTestCubicSpline.check_all_bc  s    177mhh{+xx,"
 !*BAt8A""1"-  H 4F9KL&&qF&F ! rC   c                    [         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   rz  r   r   g      @g      @r  )r   g      r   r   g      @r   r   rz  r   r   r   r   )r"   r   r-   r  r  )r|   r8   r:   r   Ys        rA   test_generalTestCubicSpline.test_general  s    HH45HH45QAaeQrUA.!Q#A2AAaAgJ2AAaAgJ2AAaAgJ2AAaAgJaeQ*  rC   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   rE   r   r   r  rO   r   rE   r  )r"   r   r~  r}  r   r  r  )r|   r   r8   r:   r  r	  s         rA   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*= rC   c                 0   UR                  SSUR                  -  SUR                  S9nUR                  U5      n[	        X#SS9n[        U" S5      U" SSUR                  -  -   5      SS	9  [	        X#5      n[        U" U5      UR                  U5      SS	9  g )
Nr   r   r   dtyper  r  r   r?  )decimal)r   r~  r|  r}  r   r   )r|   r  r8   r:   r  s        rA   test_periodic_eval"TestCubicSpline.test_periodic_eval  s    KK1ruu9b

K;FF1Ij1AaD!ABEE	M"2B?AaD"&&)R8rC   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?rz  g?r  r  )rO   extrapolate)r"   r   r   r  r|   r8   r:   r  s       rA   *test_second_derivative_continuity_gh_11758:TestCubicSpline.test_second_derivative_continuity_gh_11758  sL    HH O PHH P QjjIq*j9rC   c                    [         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       rA   test_three_points!TestCubicSpline.test_three_points&  sa     HH%&HH%&j1q*j9Q*BHH5J,KLrC   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   rE   )r"   r   r   r  r   r   )r|   r8   r:   r  S0S1qs          rA   #test_periodic_three_points_multidim3TestCubicSpline.test_periodic_three_points_multidim2  s     HH_%HHsCj3*sCj9:j1q*j9adGZ8adGZ8KK1a !QT
BqE*!QT
BqE*rC   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   r  )r   r   r   r   )y            ?r  y      ?      y      ?      r   )rM   r   y               @r  rM   r+  )r   y       @      ?)r   y      ?      )r"   r   intr   r  r  s       rA   test_dtypesTestCubicSpline.test_dtypes?  s    HH\-HH]#.q!HH12q!6+?@q)W5HH]#}m&DEq-?rC   c                     [         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|   r7   r8   r:   r  s        rA   test_small_dxTestCubicSpline.test_small_dxP  sa    ii##A&GGCKKSK)*#++3+''qe,rC   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  rN   ))r   r   )r   r   )r   r   )r  r  z
not-a-typor   T)rN   r4  rN   )r   r   r   r  )r"   r   nanassert_raisesr  r   newaxisc_)r|   r8   r:   xcxnxoyny3r  r  wrong_bcrO   r	  bc1bc2bc3s                   rA   test_incorrect_inputs%TestCubicSpline.test_incorrect_inputsW  s   HH\"HH\"XX'(XXrvvq!Q'(XXl#XXrvvq!Q'(SSj+r5j+r5j+q5j+r5j+q5j+qBJJ/?Cj+r6"  G*k1GTJ   EE!$K!1i.)11vh-(j+qQTBj+qQTBj+qQTB 	j+qQ
DIrC   r    N)r  r  r  )r~   r   r   r   staticmethodr  r  r
  r  r  r  r"  r(  r-  r1  rB  r   r    rC   rA   r  r    sS    ;G#?T ?TBG.+>9:
M+@"-&JrC   r  c                     U R                  / SQ5      nU R                  / SQ5      nU R                  / SQ5      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  )rB   check_dtyper  r   )r   r   r   )r  r8   r:   r<   r9   s        rA   #test_CubicHermiteSpline_correctnessrG    sb    


9A


:A::i D1&AAaD!ENAaGTu%eTrC   c                      / SQn / SQn/ SQn[        [        [        XU5        SS[        R                  /n[        [        [        XU5        g )Nr  )r   r   rE   )r   r   r   r   r   r   )r6  r  r   r"   r5  )r8   r:   r<   dydx_with_nans       rA   &test_CubicHermiteSpline_error_handlingrJ    s>    AAD*0!=266NM*0!FrC   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-   )r8   r:   dyr   r   s        rA   test_roots_extrapolate_gh_11185rM    s    
% A
..12A	;	*	+B1$A 	
D!A3399Q<166Q;;rC   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  r:   )r   r   rE   )r   rE   r   rO   )r  r  rM   rN   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   )rO   r   r"   r  r-   r,   moveaxis)
r|   rP  r:   rO   r   r8   xvalobjytshs
             rA   test_zero_size!TestZeroSizeArrays.test_zero_size  s     IIbMyy|!(4y~~"""4y$**qwwqr{":::: [[At$!4XXet_		},rxxQ/@@4y~~"""4y"$$$rC   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   rI   rR  )	r|   rP  r:   r   r8   rT  rU  rV  rW  s	            rA   test_zero_size_2#TestZeroSizeArrays.test_zero_size_2  s    
 IIbMyy|!i4y~~"""4y$**qwwqr{":::: [[At$!d#XXet_		},rxxQ/@@4y~~"""4y"$$$rC   r    N)r~   r   r   r   r)  markparametrizer"   r+   r   r   rX  r   r   r[  r   r    rC   rA   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:%rC   rO  )Nr   N).r  r  numpyr"   scipy._lib._array_apir   r   r   r   r   r)  r   r6  scipy.interpolater	   r
   r   r   r   r   r   r   r   r   r   r   scipy._lib._testutilsr   r]  skip_xp_backendsxfail_xp_backendsrB   rP   rV   r]   r   r   r   r=  rE  r  r  rG  rJ  rM  rO  r    rC   rA   <module>re     s    	   +     :;;// KK11  LM&R 
%G"I26j/h2 h2V$ $C2 C2L|. |.~ ;_J _J  _JD %&U 'UG
/% /%rC   