
    (phX<                        S SK Jr  S SKrS SKJrJrJr  S SKrS SK	r	S SK
JrJrJr  S\R                  " \R                  5      R                   -  r\R$                  " SSSS	9r\R(                  " S
S SSS9r\R,                  " \SSS2   * S /\/5      r\R.                  R1                  S\\/5      \R.                  R1                  S\R2                  \R                  \R4                  \R6                  /5      S 5       5       r\R.                  R1                  S\\/5      \R.                  R1                  S\R:                  \R<                  \R>                  /5      S 5       5       r  " S S5      r! " S S5      r"g)    )	factorialN)assert_allcloseassert_equalassert_array_less)AAAFloaterHormannInterpolatorBarycentricInterpolatorg     @     numi
   i  )baser   methoddtypec                 "   [         R                  " U5      R                  S-  S-  nU [        L a  US-  n[         R                  R                  S5      n[         R                  " SSUS9nU " U[         R                  " U5      5      nUR                  SSSS9R                  U5      n[        U" U5      [         R                  " U5      US9  U" U5      R                  U:X  d   eU [        L ah  UR                  R                  U:X  d   eUR                  R                  U:X  d   eUR                  R                  UR                   R                  :X  d   eUR"                  R                  U:X  d   eUR%                  5       R                  [         R&                  " US	5      :X  d   eUR)                  5       R                  [         R&                  " US	5      :X  d   eUR+                  5       R                  [         R&                  " US	5      :X  d   eg )
Ng      ?d   l   dwr
   r   r   sizertol              ?)npfinfoepsr   randomdefault_rnglinspacesinuniformastyper   r   r   support_pointssupport_valueserrorsrealweightspolesresult_typeresiduesroots)r   r   r   rngzrz2s          ]/var/www/html/venv/lib/python3.13/site-packages/scipy/interpolate/tests/test_bary_rational.pytest_dtype_preservationr2   (   s    88E?$&,D++
))

 1
2C
B'Aq"&&)A	R	%	,	,U	3BAbE266":D1R5;;%}%%...%%...xx~~---99??e###779??bnnUB7777::<r!::::779??bnnUB7777    c                 p   [         R                  " SUS9nU " X"5      nUR                  R                  [         R                  " US5      :X  d   eU [
        L a  UR                  R                  [         R                  " US5      :X  d   eUR                  R                  [         R                  " US5      :X  d   eUR                  R                  [         R                  " US5      :X  d   eUR                  5       R                  [         R                  " US5      :X  d   eUR                  5       R                  [         R                  " US5      :X  d   eUR                  5       R                  [         R                  " US5      :X  d   eU" U5      R                  [         R                  " US5      :X  d   eg )Nr   r         ?r   )r   aranger(   r   r*   r   r$   r%   r&   r)   r+   r,   )r   r   r.   r/   s       r1   test_integer_promotionr7   A   s<    			"E"AqA99??bnnUC8888}%%s)CCCC%%s)CCCCxx~~s!;;;;779??bnnUB7777::<r!::::779??bnnUB7777Q4::s3333r3   c                      \ rS rSrS r\R                  R                  S 5       rS r	S r
S rS rS rS	 rS
 rS r\R                  R#                  SS SS4S SS4S SS4S SS4S SS4S SS4S SS4/5      S 5       rS r\R                  R#                  SS S  S! S" S# S$ S% S& S' /	5      S( 5       rS) r\R                  R                  S* 5       rS+rg,)-TestAAAR   c                    [         R                  " [        SS9   [        S/SS/5        S S S 5        [         R                  " [        SS9   [        S/S//S/S//5        S S S 5        [         R                  " [        SS9   [        [        R
                  /S/5        S S S 5        [         R                  " [        5         [        S/S/SS9  S S S 5        [         R                  " [        S	S9   [        S/S/S
S9  S S S 5        g ! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       Nq= f! , (       d  f       g = f)Nz	same sizematchr   r   z1-Dfiniter5   	max_termsgreaterr
   )pytestraises
ValueErrorr   r   inf	TypeErrorselfs    r1   test_input_validationTestAAA.test_input_validationS   s    ]]:[9aV :]]:U3!qc
aS1#J' 4]]:X61# 7]]9%aSC( &]]:Y7aSB' 87 :93366%%77s;   DDD( D9/E

D
D%(
D69
E

Ec                     [         R                  " [        SS9   [        [        [
        R                  " [        5      SS9  S S S 5        g ! , (       d  f       g = f)Nz
AAA failedr<   r   r?   )rB   warnsRuntimeWarningr   UNIT_INTERVALr   exprG   s    r1   test_convergence_errorTestAAA.test_convergence_error_   s1    \\.=rvvm4C >==s   (A
Ac                    [         R                  " [        5      n[        [        U5      n[	        U" [        5      U[
        S9  [        U" [         R                  5      [         R                  5        [         R                  " U" [         R                  5      5      (       d   eUR                  R                  n[        [        USS9nUR                  R                  U:  d   eg )NatolgMbP?r   )r   rO   rN   r   r   TOLr   nanisfiniterE   r$   r   )rH   fr/   m1s       r1   test_expTestAAA.test_expf   s    FF=!q!-(!#6QrvvY'{{1RVV9%%%%""qt,$$r)))r3   c                 B   [         R                  " [         R                  [        -  5      n[	        [        U5      n[        U" [        5      US[        -  SS9  [        [         R                  " [         R                  " UR                  5       5      5      SSS9  [        [         R                  " [         R                  " UR                  5       S-
  5      5      S[        S9  [         R                  " [         R                  " UR                  5       5      5      S:  d   eg )	Nr   gz]ʂ>rT   r   r   gLa㧝=rS         ?vIh%<=)r   tanpirN   r   r   rU   minabsr,   r)   r+   rH   rX   r/   s      r1   test_tanTestAAA.test_tanr   s    FF255=()q!-(!"s(Hrvvaggi0115Arvvaggi#o67EvvbffQZZ\*+e333r3   c                    [         R                  " SS/5      n[         R                  " SS/5      n[        XSS9n[        U" U5      U[        S9  [        UR                  5       S5        [        UR                  5       S5        [        UR                  5       S	5        [        UR                  U5        [        UR                  U5        [        UR                  S
S
/5        [        UR                  SS/5        [         R                  " / SQ5      n[         R                  " / SQ5      n[        XSS9n[        U" U5      U[        S9  [        [         R                  " UR                  5       5      [         R                  " SS/5      5        [        [         R                  " UR                  5       5      [         R                  " SS/5      5        [        [         R                  " UR                  5       5      [         R                  " SS/5      5        [        UR                  U5        [        UR                  U5        [        UR                  / SQ5        [        UR                  / SQ5        g )Nr   r      r_   r   rS   r^   g      ?gUUUUUU?g;f?)r   r   rh   )r   r   r   gȢ<?gÙt?gfMvg7п)3Ey?ri   ri   )r   r   r   )r   arrayr   r   rU   r)   r+   r,   r   r$   r%   r(   r&   sort)rH   r.   rX   r/   s       r1   test_short_casesTestAAA.test_short_cases|   s    HHaVHHaV5!!ac*	3'

d+	3'Q%%q)Q%%q)		$57H#IJQXX1v& HHYHHY5!!ac*	*!24E FG	I

-!35G HI	K	*BGGQFO<Q%%q)Q%%q)		 $7 	8QXXy)r3   c                    [         R                  " SS5      n[         R                  " U5      S-  n[        X5      n[        USS-  U-  R	                  [         R
                  5      5      n[        USU-  R	                  [         R
                  5      5      n[        U" S5      SU" S5      -  5        [        U" S5      SS-  U" S5      -  5        g )	Ng333333?g      ?      ?      ?rh   i7  g      ,y        ?gffffff?)r   r    rO   r   r#   
complex128r   )rH   r.   rX   r1r2r3s         r1   test_scale_invarianceTestAAA.test_scale_invariance   s    KKS!FF1I YQVaZ''67Wq[((78RXwD12RWafr#w./r3   c                     [         R                  R                  S5      nUR                  S5      SUR                  S5      -  -   nS n[	        X#" U5      5      n[        U" S5      U" S5      [        S9  g )Nl   (pg98B i'  y              @c                 F    [         R                  " SU -
  5      SU S-  -   -  $ )N   r   rh   )r   logr.   s    r1   rX    TestAAA.test_log_func.<locals>.f   s!    66!a%=A1H--r3   r   rS   )r   r   r   standard_normalr   r   rU   )rH   r-   r.   rX   r/   s        r1   test_log_funcTestAAA.test_log_func   sf    ii##$78&c.A.A%.H)HH	. 1Q4L!ad-r3   c                     [         R                  " SS5      n[        U[        R                  R                  U5      5      n[        U" S5      [        R                  R                  S5      SS9  g )Nr
   r   g)\(?V瞯<rS   )r   r    r   scipyspecialgammar   rH   r.   r/   s      r1   test_infinite_dataTestAAA.test_infinite_data   sL    KKA5==&&q)*$!4!4T!:Gr3   c                 (   [         R                  " SS5      n[         R                  " SS9   [         R                  " U5      U-  nS S S 5        [	        UW5      n[        U" S5      [         R                  " S5      S-  SS9  g ! , (       d  f       NC= f)Nr      ignore)invalidrh   r   rS   )r   r    errstater!   r   r   )rH   xrX   r/   s       r1   test_nanTestAAA.test_nan   sd    KK2[[*q	AA +1I!bffQi!m%8 +*s   B
Bc                    [         R                  " SSSS9n[        U[         R                  " U5      U-  5      n[         R                  " [         R
                  " UR                  5       5      S:  5      n[        UR                  5       U   SSS9  [        US	[        R                  R                  U5      -  5      n[         R                  " [        UR                  5       S
-
  5      S:  5      n[        UR                  5       U   SSS9  g )Ng1Zdrh   i  r   :0yE>r   r   rS   ro   r
   y            )r   r    r   rO   flatnonzerorc   r)   r   r+   r   r   r   )rH   r   r/   iis       r1   test_residuesTestAAA.test_residues   s    KKs+266!9q=!^^BFF1779-45

R(!%8Femm11!445^^C	R 01D89

R('>r3   zfunc,atol,rtolc                 :    [         R                  " U S-   S-   5      $ )Nr^   y        {Gz?r   rc   r   s    r1   <lambda>TestAAA.<lambda>   s    C%)@r3   g-a=gHz>c                 :    [         R                  " SSU -
  -  5      $ )Nr   g?)r   r!   r   s    r1   r   r      s    4!8)=r3   vIh%L=c                 :    [         R                  " SU S-  -  5      $ )Nr
   rh   r   rO   r   s    r1   r   r      s    AqD	):r3   gG@
X=r   c                 :    [         R                  " SU S-  -  5      $ )Nirh   r   r   s    r1   r   r      s    QT	):r3   gvIh%l=c                 :    [         R                  " SSU -
  -  5      $ )Ng333333?r   r   s    r1   r   r      s    S1W)>r3   +=c                 F    SS[         R                  " SU S-   -  5      -   -  $ )Nr   r   r^   r   r   s    r1   r   r      s    AbffS!c'].C,C)Dr3   c                 4    [         R                  " U S-
  5      $ )Ngffffff?r   r   s    r1   r   r      s    D)9r3   ư>c                     [         R                  " SS9   U" [        5      nS S S 5        [        [	        [
        U" [
        5      5      " [        5      WX#S9  g ! , (       d  f       N<= f)Nr   )divider]   )r   r   PTSr   r   rN   )rH   funcrT   r   rX   s        r1   test_basic_functionsTestAAA.test_basic_functions   sG     [[)S	A *M4+>?D	1 *)s   A
A&c                    S n[        [        U" [        5      5      n[        [        R                  " UR                  5       UR                  5       -   5      SSS9  S n[        [        U" [        5      5      n[        UR                  5       R                  5       SSS9  [        [        [        R                  " S[        R                  -  [        -  5      5      n[        [        R                  " [        R                  " UR                  5       5      5      S   S	SS9  S
 n[        [        U" [        5      5      n[        UR                  5       S   UR                  5       S   -  SSS9  g )Nc                 0    U S-   U S-   -  U S-   U S-   -  -  $ )Nr   rh          rz   s    r1   rX   ,TestAAA.test_poles_zeros_residues.<locals>.f   s%    aCAaC=QqSQqSM22r3   r   -q=rS   c                 $    SSU -   -  SU S-
  -  -   $ )Nrh   r   rx   y               @r   rz   s    r1   rX   r      s    a!e9q!b&z))r3   r   r      g?c                     U S-
  U S-   -  $ )Ny      @      @rh   r   rz   s    r1   rX   r      s    L1q5))r3   r   y            )r   rN   r   r   sumr)   r,   r+   prodr!   ra   rk   rc   rd   s      r1   test_poles_zeros_residues!TestAAA.test_poles_zeros_residues   s    	3q/0qwwy177945sG	*q/0

))+Rd;rvvbh}&<=>qwwy 1226%H	*q/0	!QWWYq\1EFr3   r   c                 .    [         R                  " U 5      $ N)r   
zeros_likerz   s    r1   r   r      s    a(8r3   c                     U $ r   r   rz   s    r1   r   r      s    Ar3   c                     SU -  $ )Nr   r   rz   s    r1   r   r      s    QSTUQUr3   c                     U S-  U -   $ )Nrh   r   rz   s    r1   r   r      s    1qr3   c                     U S-  U -   $ )Nr   r   rz   s    r1   r   r      s    AqD1Hr3   c                     SSU -   -  $ )Nr   g?r   rz   s    r1   r   r      s    37r3   c                     SSSU -  -   -  $ )Nr   r   r   rz   s    r1   r   r      s    q!bd(|r3   c                     SSU -   U S-  -   -  $ )Nr   r   rh   r   rz   s    r1   r   r      s    1q51a4<(8r3   c                     SSU S-  -   -  $ )Nr   g)\(?r   r   rz   s    r1   r   r      s    AtaQRd{Or3   c                 r    [        [        [        U" [        5      5      " [        5      U" [        5      SS9  g )Nr   rS   )r   r   rN   r   )rH   r   s     r1    test_polynomials_and_reciprocals(TestAAA.test_polynomials_and_reciprocals   s(     	M4+>?DS		/r3   c                 t   [         R                  " [         R                  " SSS[         R                  -  -   SS95      n[	        U[         R
                  " [         R                  U-  S-  5      5      n[        [         R                  " [         R                  " UR                  5       5      5      S S / SQS	S
9  g )N      r^                 .@r   r   rh   r   )r   r   r   r   g1E2>r   )
r   rO   r    ra   r   r`   r   rk   rc   r)   r   s      r1   test_spiralTestAAA.test_spiral   su    FF2;;tS3ruu9_$?@266"%%'!)$%qwwy 122A64Pr3   c           	      T   [         R                  " [         R                  " SSS[         R                  -  -   SS95      n[        R
                  " [        5         [        U[         R                  " [         R                  U-  S-  5      SSS	S
9nS S S 5        [         R                  " [         R                  " WR                  5       5      S:  5      n[        R
                  " [        5         UR                  5       S:  d   e S S S 5        [         R                  " [         R                  " UR                  5       5      S:  5      U:  d   e[        U" U5      [         R                  " [         R                  U-  S-  5      SSS9  g ! , (       d  f       N= f! , (       d  f       N= f)Nr   r^   r   r   r   rh   r   <   F)r   r@   clean_upr   r   gAfc=gAfc=r]   )r   rO   r    ra   rB   rL   rM   r   r`   r   rc   r+   r   r   )rH   r.   r/   
n_spuriouss       r1   test_spiral_cleanupTestAAA.test_spiral_cleanup   s   FF2;;tS3ruu9_$?@ \\.)ArvvbeeAgai(qBOA *VVBFF1::<0589
\\.)::<1$$$ * vvbffQZZ\*U23j@@@!bffRUU1WQY/e%H *) *)s   6F,F
F
F'r   N)__name__
__module____qualname____firstlineno__rI   rB   markthread_unsaferP   rZ   re   rl   rt   r}   r   r   r   parametrizer   r   r   r   r   __static_attributes__r   r3   r1   r9   r9   R   s7   
( [[D D
*4*B0.H
9? [[-@%N=udK:GQG:E1E>qIDeTR94FHI1I1G& [[V8+~02D35K8:SUV
/V
/Q
 [[I Ir3   r9   c            
          \ rS rSrS rS rS r\R                  R                  SS/ SQ4S/ S	Q4S
/ SQ4S/ SQ4S/ SQ4/5      S 5       r
\R                  R                  S\" S5      5      S 5       rS rS r\R                  R                  S/ SQ5      \R                  R                  SSS/5      S 5       5       rS rS rSrg) TestFloaterHormanni	  c                     SSUS-  -   -  $ )Nr   rh   r   )rH   r.   s     r1   rungeTestFloaterHormann.runge
  s    !ad(|r3   c                 R    S[         R                  " U5      U-   -  [        U5      -  $ )Nr
   )r   r6   r   )rH   nds      r1   scaleTestFloaterHormann.scale  s#    biilQ&')A,66r3   c                    [         R                  " [        SS9   [        S//S/SS9  S S S 5        [         R                  " [        SS9   [        S/SSS9  S S S 5        [         R                  " [        SS9   [        S/SS/SS//SS9  S S S 5        [         R                  " [        SS9   [        [        R
                  /S/SS9  S S S 5        [         R                  " [        S	S9   [        S/S/S
S9  S S S 5        [         R                  " [        S	S9   [        S/S/SS9  S S S 5        [         R                  " [        5         [        S/S/SS9  S S S 5        g ! , (       d  f       GN== f! , (       d  f       GN!= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       N= f! , (       d  f       g = f)Nz`x`r<   r   r   z`y`	dimensionr   r>   z`d`r
   r           )rB   rC   rD   r   r   rE   rF   rG   s    r1   test_ivTestFloaterHormann.test_iv  s:   ]]:U3&uqcQ7 4]]:U3&sA3 4]]:[9&saVaV,<B :]]:X6&x!: 7]]:U3&sQC26 4]]:U3&sQC26 4]]9%&sQC37 &% 433399663333%%sS   E
E18F,F)F%F6G
E.1
F 
F
F"%
F36
G
Gz
d,expectedr   )r   r   r   r   r   r   r   r   r   r   r   r   )r   rh   rh   rh   rh   rh   rh   rh   rh   rh   r   rh   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r         r   r   r   r   r   r   r   r   )r   rx            r   r   r   r   rx   r   c                     [         R                  " S5      n[        USU-  US9n[        UR                  R                  5       U R                  UR                  U5      -  USSS9  g )Nr   r   r   r   r   rT   )r   r6   r   r   r(   ravelr   r   )rH   r   expectedr   r/   s        r1   test_uniform_grid$TestFloaterHormann.test_uniform_grid!  sS     IIbM&q#a%15		)$**QVVQ*??"	0r3   r   r   c                 x   [         R                  " SSS5      n[         R                  R                  S5      nUR	                  SSSS9nU R                  U5      nUS   US   -
  n[        X%US9nSXaS-   -  -  n[        U" U5      U R                  U5      S	US
9  [        U" U5      U R                  U5      5        g )Nr   r   3   l   M+RYr   r   r   r   g|=r]   )	r   r    r   r   r"   r   r   r   r   )	rH   r   r   r-   xxyhr/   tols	            r1   
test_rungeTestFloaterHormann.test_runge/  s    KK1b!ii##$67[[AD[)JJqMaD1Q4K&qq1qSk"tzz"~EDQqT4::a=)r3   c                    [         R                  " SS5      nXS-  -   n[        U[         R                  " U5      SS9n[         R                  " SSSS9nXDS-  -   n[	        U" U5      [         R                  " U5      SS	9  g )
Nr
   r   r      r   r   r   r   r   )r   r    r   r!   r   )rH   r   r.   r/   r   zzs         r1   test_complexTestFloaterHormann.test_complex>  sh    KKA"H&q"&&)r:[[QD)R%Z"rvvbz6r3   c                    [         R                  " SSS5      n[         R                  " SSS5      n[         R                  " U5      n[        XUR                  S-
  S9n[        X5      n[        U" U5      U" U5      SSS9  g )Nr   r   r   i  r   r   r   )r   r    r!   r   r   r	   r   )rH   r   r   r   r/   ps         r1   test_polyinterp"TestFloaterHormann.test_polyinterpF  sg    KK1b![[At$FF1I&qqvvax8#A)"qu5u=r3   y_shape))rh   )rh   r   r   )r   rx      r   xx_shaper   )r   r   c                    [         R                  " SS5      n[         R                  " [         R                  " [         R                  " U5      [        [        S[        U5      S-   5      5      5      UR                  U-   5      n[        X45      n[         R                  R                  S5      nUR                  U5      n[         R                  " [         R                  " [         R                  " U5      [        [        UR                  [        U5      UR                  -   5      5      5      UR                  U-   5      nU" U5      n	U	R                  UR                  U-   :X  d   e[        XSS9  g )Nr   r   l   wcBMYr   r   )r   r    broadcast_toexpand_dimsr!   tuplerangelenshaper   r   r   ndimr   )
rH   r  r  r   r   r/   r-   r   yyrrs
             r1   test_trailing_dim$TestFloaterHormann.test_trailing_dimO  s    KK1OONN266!9eE!S\A5E,F&GHGGg

 'q,ii##$BCZZ!__NN266":uU277CL277<R-S'TUHHw
 rUxx288g----T*r3   c                 p   [         R                  " SSSS9n[        U[         R                  " [         R                  U-  5      5      n[         R
                  " [         R                  R                  UR                  5       [         R                  " S5      5      5      R                  SS9n[        US5        g )Nr   r   r   r   r   )axisgh㈵>)r   r    r   r!   ra   rc   subtractouterr,   r6   rb   r   )rH   r   r/   errs       r1   
test_zerosTestFloaterHormann.test_zerosd  su    KK23'&q"&&q/:ffR[[&&qwwy"))B-@AEE1EM#t$r3   c                 4   [         R                  " SS5      n[        USUS-  -  5      nUR                  5       nUR                  S:  UR                  S:*  -  [         R
                  " UR                  5      S:  -  n[         R                  " U5      S:X  d   eg )Nr
   r   rh   r   r   )r   r    r   r)   r'   rc   imagr   )rH   r   r/   r  masks        r1   test_no_poles TestFloaterHormann.test_no_polesk  sw    KKA&q!AqD&1GGI"1-&1HIvvd|q   r3   r   N)r   r   r   r   r   r   r   rB   r   r   r   r  r   r   r  r  r  r  r   r   r3   r1   r   r   	  s    78" [[\	
-.	
-.	
-.	
-.	
45, 00 [[S%),* -*7> [[Y(GH[[Z3):;+ < I+&%!r3   r   )#mathr   numpyr   numpy.testingr   r   r   rB   r   scipy.interpolater   r   r	   r   float64r   rU   r    rN   logspacer   concatenater   r   float32	complex64rp   r2   int16int32int64r7   r9   r   r   r3   r1   <module>r-     sV  4   J J   V V	BHHRZZ $$$Bt,kk#qrs+nns4R4yj1#s+, C)C#DE2::rzz2<<"WX8 Y F8. C)C#DE288RXXrxx"@A4 B F4tI tIng! g!r3   