
    e!hX<                         d dl mZ d dlZd dlmZmZmZ d dlZd dl	Z	d dl
mZmZmZ d ej                  ej                        j                   z  Z ej$                  ddd	      Z ej(                  d
d dd      Z ej,                  eddd    d geg      Zej.                  j1                  deeg      ej.                  j1                  dej2                  ej                  ej4                  ej6                  g      d               Zej.                  j1                  deeg      ej.                  j1                  dej:                  ej<                  ej>                  g      d               Z  G d d      Z! G d d      Z"y)    )	factorialN)assert_allcloseassert_equalassert_array_less)AAAFloaterHormannInterpolatorBarycentricInterpolatorg     @     numi
   i  )baser   methoddtypec                    t        j                  |      j                  dz  dz  }| t        u r|dz  }t         j                  j                  d      }t        j                  dd|      } | |t        j                  |            }|j                  ddd      j                  |      }t         ||      t        j                  |      |        ||      j                  |k(  sJ | t        u re|j                  j                  |k(  sJ |j                  j                  |k(  sJ |j                  j                  |j                   j                  k(  sJ |j"                  j                  |k(  sJ |j%                         j                  t        j&                  |d	      k(  sJ |j)                         j                  t        j&                  |d	      k(  sJ |j+                         j                  t        j&                  |d	      k(  sJ y )
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          r/var/www/html/diagnosisapp-backend/venv/lib/python3.12/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                 T   t        j                  d|      } | ||      }|j                  j                  t        j                  |d      k(  sJ | t
        u r|j                  j                  t        j                  |d      k(  sJ |j                  j                  t        j                  |d      k(  sJ |j                  j                  t        j                  |d      k(  sJ |j                         j                  t        j                  |d      k(  sJ |j                         j                  t        j                  |d      k(  sJ |j                         j                  t        j                  |d      k(  sJ  ||      j                  t        j                  |d      k(  sJ y )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                      e Zd Zd Zej
                  j                  d        Zd Zd Z	d Z
d Zd Zd Zd	 Zd
 Zej
                  j!                  dd ddfd ddfd ddfd ddfd ddfd ddfd ddfg      d        Zd Zej
                  j!                  dd d d  d! d" d# d$ d% d& g	      d'        Zd( Zej
                  j                  d)        Zy*)+TestAAAc                    t        j                  t        d      5  t        dgddg       d d d        t        j                  t        d      5  t        dgdggdgdgg       d d d        t        j                  t        d      5  t        t        j
                  gdg       d d d        t        j                  t              5  t        dgdgd       d d d        t        j                  t        d	      5  t        dgdgd
       d d d        y # 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   bxY w# 1 sw Y   y xY w)Nz	same sizematchr   r   z1-Dfiniter5   	max_termsgreaterr
   )pytestraises
ValueErrorr   r   inf	TypeErrorselfs    r1   test_input_validationzTestAAA.test_input_validationS   s   ]]:[9 	aV	]]:U3 	(!qc
aS1#J'	(]]:X6 	1#	]]9% 	)aSC(	)]]:Y7 	(aSB'	( 	(	 		( 	(	 		) 	)	( 	(s;   DDD+D79EDD(+D47E Ec                     t        j                  t        d      5  t        t        t        j                  t              d       d d d        y # 1 sw Y   y xY w)Nz
AAA failedr;   r   r>   )rA   warnsRuntimeWarningr   UNIT_INTERVALr   exprF   s    r1   test_convergence_errorzTestAAA.test_convergence_error_   s>    \\.= 	Drvvm4C	D 	D 	Ds   *AAc                    t        j                  t              }t        t        |      }t	         |t              |t
               t         |t         j                        t         j                         t        j                   |t         j                              sJ |j                  j                  }t        t        |d      }|j                  j                  |k  sJ y )NatolgMbP?r   )r   rM   rL   r   r   TOLr   nanisfiniterD   r$   r   )rG   fr/   m1s       r1   test_expzTestAAA.test_expf   s    FF=!q!-(!#6QrvvY'{{1RVV9%%%""qt,$$r)))r3   c                 D   t        j                  t         j                  t        z        }t	        t        |      }t         |t              |dt        z  d       t        t        j                  t        j                  |j                                     dd       t        t        j                  t        j                  |j                         dz
              dt               t        j                  t        j                  |j                                     dkD  sJ y )	Nr   gz]ʂ>rQ   r   r   gLa㧝=rP         ?vIh%<=)r   tanpirL   r   r   rR   minabsr,   r)   r+   rG   rU   r/   s      r1   test_tanzTestAAA.test_tanr   s    FF255=()q!-(!"s(Hrvvaggi0115Arvvaggi#o67EvvbffQZZ\*+e333r3   c                    t        j                  ddg      }t        j                  ddg      }t        ||d      }t         ||      |t               t        |j                         d       t        |j                         d       t        |j                         d	       t        |j                  |       t        |j                  |       t        |j                  d
d
g       t        |j                  ddg       t        j                  g d      }t        j                  g d      }t        ||d      }t         ||      |t               t        t        j                  |j                               t        j                  ddg             t        t        j                  |j                               t        j                  ddg             t        t        j                  |j                               t        j                  ddg             t        |j                  |       t        |j                  |       t        |j                  g d       t        |j                  g d       y )Nr   r      r[   r   rP   rZ   g      ?gUUUUUU?g;f?)r   r   rc   )r   r   r   gȢ<?gÙt?gfMvg7п)3Ey?rd   rd   )r   r   r   )r   arrayr   r   rR   r)   r+   r,   r   r$   r%   r(   r&   sort)rG   r.   rU   r/   s       r1   test_short_caseszTestAAA.test_short_cases|   s    HHaVHHaV15!!ac*	3'

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

-!35G HI	K	*BGGQFO<Q%%q)Q%%q)		 $7 	8QXXy)r3   c                    t        j                  dd      }t        j                  |      dz  }t        ||      }t        |ddz  |z  j	                  t         j
                              }t        |d|z  j	                  t         j
                              }t         |d      d |d      z         t         |d      ddz   |d      z         y )	Ng333333?g      ?      ?      ?rc   i7  g      ,y        ?gffffff?)r   r    rM   r   r#   
complex128r   )rG   r.   rU   r1r2r3s         r1   test_scale_invariancezTestAAA.test_scale_invariance   s    KKS!FF1I AYQVaZ''67Wq[((78RXwD12RWafr#w./r3   c                     t         j                  j                  d      }|j                  d      d|j                  d      z  z   }d }t	        | ||            }t         |d       |d      t               y )Nl   (pg98B i'  y              @c                 D    t        j                  d| z
        d| dz  z   z  S )N   r   rc   )r   logr.   s    r1   rU   z TestAAA.test_log_func.<locals>.f   s!    66!a%=A1H--r3   r   rP   )r   r   r   standard_normalr   r   rR   )rG   r-   r.   rU   r/   s        r1   test_log_funczTestAAA.test_log_func   sf    ii##$78&c.A.A%.H)HH	. 1Q4L!ad-r3   c                     t        j                  dd      }t        |t        j                  j                  |            }t         |d      t        j                  j                  d      d       y )Nr
   r   g)\(?V瞯<rP   )r   r    r   scipyspecialgammar   rG   r.   r/   s      r1   test_infinite_datazTestAAA.test_infinite_data   sL    KKA5==&&q)*$!4!4T!:Gr3   c                 "   t        j                  dd      }t        j                  d      5  t        j                  |      |z  }d d d        t	        |      }t         |d      t        j                  d      dz  d       y # 1 sw Y   @xY w)Nr      ignore)invalidrc   rw   rP   )r   r    errstater!   r   r   )rG   xrU   r/   s       r1   test_nanzTestAAA.test_nan   sk    KK2[[* 	q	AA	1I!bffQi!m%8	 	s   BBc                 "   t        j                  ddd      }t        |t        j                  |      |z        }t        j                  t        j
                  |j                               dk        }t        |j                         |   dd       t        |d	t        j                  j                  |      z        }t        j                  t        |j                         d
z
        dk        }t        |j                         |   dd       y )Ng1Zdrc   i  r   :0yE>r   rw   rP   ri   r
   y            )r   r    r   rM   flatnonzeror_   r)   r   r+   rx   ry   rz   )rG   r   r/   iis       r1   test_residuesz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                 8    t        j                  | dz   dz         S )NrZ   y        {Gz?r   r_   r   s    r1   <lambda>zTestAAA.<lambda>   s    C%)@ r3   g-a=gHz>c                 8    t        j                  dd| z
  z        S )Nr   g?)r   r!   r   s    r1   r   zTestAAA.<lambda>   s    4!8)= r3   vIh%L=c                 8    t        j                  d| dz  z        S )Nr
   rc   r   rM   r   s    r1   r   zTestAAA.<lambda>   s    AqD	): r3   gG@
X=r   c                 8    t        j                  d| dz  z        S )Nirc   r   r   s    r1   r   zTestAAA.<lambda>   s    QT	): r3   gvIh%l=c                 8    t        j                  dd| z
  z        S )Ng333333?r   r   s    r1   r   zTestAAA.<lambda>   s    S1W)> r3   +=c                 D    ddt        j                  d| dz   z        z   z  S )Nr   r   rZ   r   r   s    r1   r   zTestAAA.<lambda>   s!    AbffS!c'].C,C)D r3   c                 2    t        j                  | dz
        S )Ngffffff?r   r   s    r1   r   zTestAAA.<lambda>   s    D)9 r3   ư>c           	          t        j                  d      5   |t              }d d d        t         t	        t
         |t
                    t              ||       y # 1 sw Y   ;xY w)Nr   )dividerY   )r   r   PTSr   r   rL   )rG   funcrQ   r   rU   s        r1   test_basic_functionszTestAAA.test_basic_functions   sS     [[) 	S	A	?M4+>?D4	1	 	s   AA'c                    d }t        t         |t                    }t        t        j                  |j                         |j                         z         dd       d }t        t         |t                    }t        |j                         j                         dd       t        t        t        j                  dt        j                  z  t        z              }t        t        j                  t        j                  |j                                     d   d	d       d
 }t        t         |t                    }t        |j                         d   |j                         d   z  dd       y )Nc                 0    | dz   | dz   z  | dz   | dz   z  z  S )Nr   rc          rs   s    r1   rU   z,TestAAA.test_poles_zeros_residues.<locals>.f   s%    aCAaC=QqSQqSM22r3   r   -q=rP   c                 $    dd| z   z  d| dz
  z  z   S )Nrc   r   rq   y               @r   rs   s    r1   rU   z,TestAAA.test_poles_zeros_residues.<locals>.f   s    a!e9q!b&z))r3   r   r      g?c                     | dz
  | dz   z  S )Ny      @      @rc   r   rs   s    r1   rU   z,TestAAA.test_poles_zeros_residues.<locals>.f   s    L1q5))r3   r   y            )r   rL   r   r   sumr)   r,   r+   prodr!   r]   rf   r_   r`   s      r1   test_poles_zeros_residuesz!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                 ,    t        j                  |       S N)r   
zeros_likers   s    r1   r   zTestAAA.<lambda>   s    a(8 r3   c                     | S r   r   rs   s    r1   r   zTestAAA.<lambda>   s    A r3   c                     d| z  S )Nr   r   rs   s    r1   r   zTestAAA.<lambda>   s    QSTUQU r3   c                     | dz  | z   S )Nrc   r   rs   s    r1   r   zTestAAA.<lambda>   s    1q r3   c                     | dz  | z   S )Nr   r   rs   s    r1   r   zTestAAA.<lambda>   s    AqD1H r3   c                     dd| z   z  S )Nr   g?r   rs   s    r1   r   zTestAAA.<lambda>   s    37 r3   c                     ddd| z  z   z  S )Nr   r   r   rs   s    r1   r   zTestAAA.<lambda>   s    q!bd(| r3   c                     dd| z   | dz  z   z  S )Nr   r   rc   r   rs   s    r1   r   zTestAAA.<lambda>   s    1q51a4<(8 r3   c                     dd| dz  z   z  S )Nr   g)\(?r   r   rs   s    r1   r   zTestAAA.<lambda>   s    AtaQRd{O r3   c           	      x    t         t        t         |t                    t               |t              d       y )Nr   rP   )r   r   rL   r   )rG   r   s     r1    test_polynomials_and_reciprocalsz(TestAAA.test_polynomials_and_reciprocals   s+     	?M4+>?DS		/r3   c                 v   t        j                  t        j                  dddt         j                  z  z   d            }t	        |t        j
                  t         j                  |z  dz              }t        t        j                  t        j                  |j                                     d d g dd	
       y )N      rZ                 .@r   r   rc   r   )r   r   r   r   g1E2>r   )
r   rM   r    r]   r   r\   r   rf   r_   r)   r{   s      r1   test_spiralzTestAAA.test_spiral   su    FF2;;tS3ruu9_$?@266"%%'!)$%qwwy 122A64Pr3   c                 :   t        j                  t        j                  dddt         j                  z  z   d            }t	        j
                  t              5  t        |t        j                  t         j                  |z  dz        ddd	
      }d d d        t        j                  t        j                  j                               dk        }t	        j
                  t              5  |j                         dk\  sJ 	 d d d        t        j                  t        j                  |j                               dk        |k  sJ t         ||      t        j                  t         j                  |z  dz        dd       y # 1 sw Y   xY w# 1 sw Y   xY w)Nr   rZ   r   r   r   rc   r   <   F)r   r?   clean_upr   r   gAfc=gAfc=rY   )r   rM   r    r]   rA   rJ   rK   r   r\   r   r_   r+   r   r   )rG   r.   r/   
n_spuriouss       r1   test_spiral_cleanupzTestAAA.test_spiral_cleanup   s"   FF2;;tS3ruu9_$?@ \\.) 	PArvvbeeAgai(qBOA	PVVBFF1::<0589
\\.) 	%::<1$$$	% vvbffQZZ\*U23j@@@!bffRUU1WQY/e%H	P 	P	% 	%s   8F+FFFN)__name__
__module____qualname__rH   rA   markthread_unsaferN   rW   ra   rg   rn   ru   r|   r   r   parametrizer   r   r   r   r   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            
          e Zd Zd Zd Zd Zej                  j                  ddg dfdg dfd	g d
fdg dfdg dfg      d        Z	ej                  j                  d e
d            d        Zd Zd Zej                  j                  dg d      ej                  j                  dddg      d               Zd Zd Zy)TestFloaterHormannc                     dd|dz  z   z  S )Nr   rc   r   )rG   r.   s     r1   rungezTestFloaterHormann.runge
  s    !ad(|r3   c                 P    dt        j                  |      |z   z  t        |      z  S )Nr
   )r   r6   r   )rG   nds      r1   scalezTestFloaterHormann.scale  s#    biilQ&')A,66r3   c                    t        j                  t        d      5  t        dggdgd       d d d        t        j                  t        d      5  t        dgdd       d d d        t        j                  t        d      5  t        dgddgddggd       d d d        t        j                  t        d      5  t        t        j
                  gdgd       d d d        t        j                  t        d	      5  t        dgdgd
       d d d        t        j                  t        d	      5  t        dgdgd       d d d        t        j                  t              5  t        dgdgd       d d d        y # 1 sw Y   SxY w# 1 sw Y   -xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   xY w# 1 sw Y   {xY w# 1 sw Y   y xY w)Nz`x`r;   r   r   z`y`	dimensionr   r=   z`d`r
   r           )rA   rB   rC   r   r   rD   rE   rF   s    r1   test_ivzTestFloaterHormann.test_iv  s}   ]]:U3 	8&uqcQ7	8]]:U3 	4&sA3	4]]:[9 	C&saVaV,<B	C]]:X6 	;&x!:	;]]:U3 	7&sQC26	7]]:U3 	7&sQC26	7]]9% 	8&sQC37	8 	8	8 	8	4 	4	C 	C	; 	;	7 	7	7 	7	8 	8sS   E?FF=F&?F23F>%G
?F	FF#&F/2F;>G
Gz
d,expectedr   )r   r   r   r   r   r   r   r   r   r   r   r   )r   rc   rc   rc   rc   rc   rc   rc   rc   rc   r   rc   )r   r   r   r   r   r   r   r   r   r   r   r   )r   r         r   r   r   r   r   r   r   r   )r   rq            r   r   r   r   rq   r   c                     t        j                  d      }t        |d|z  |      }t        |j                  j                         | j                  |j                  |      z  |dd       y )Nr   r   r   rw   r   rQ   )r   r6   r   r   r(   ravelr   r   )rG   r   expectedr   r/   s        r1   test_uniform_gridz$TestFloaterHormann.test_uniform_grid!  sS     IIbM&q#a%15		)$**QVVQ*??"	0r3   r   r   c                    t        j                  ddd      }t         j                  j                  d      }|j	                  ddd      }| j                  |      }|d   |d   z
  }t        |||      }d||dz   z  z  }t         ||      | j                  |      d	|
       t         ||      | j                  |             y )Nr   r   3   l   M+RYr   r   r   r   g|=rY   )	r   r    r   r   r"   r   r   r   r   )	rG   r   r   r-   xxyhr/   tols	            r1   
test_rungezTestFloaterHormann.test_runge/  s    KK1b!ii##$67[[AD[)JJqMaD1Q4K&q!q1QqSk"tzz"~EDQqT4::a=)r3   c                    t        j                  dd      }||dz  z   }t        |t        j                  |      d      }t        j                  ddd      }||dz  z   }t	         ||      t        j                  |      d	       y )
Nr
   r   r      r   r   r   r   r   )r   r    r   r!   r   )rG   r   r.   r/   r   zzs         r1   test_complexzTestFloaterHormann.test_complex>  sl    KKA"H&q"&&)r:[[QD)"R%Z"rvvbz6r3   c                    t        j                  ddd      }t        j                  ddd      }t        j                  |      }t        |||j                  dz
        }t        ||      }t         ||       ||      dd       y )Nr   r   r   i  r   r   r   )r   r    r!   r   r   r	   r   )rG   r   r   r   r/   ps         r1   test_polyinterpz"TestFloaterHormann.test_polyinterpF  sk    KK1b![[At$FF1I&q!qvvax8#Aq)"qu5u=r3   y_shape))rc   )rc   r   r   )r   rq      r   xx_shaper   )r   r   c                    t        j                  dd      }t        j                  t        j                  t        j                  |      t        t        dt        |      dz                     |j                  |z         }t        ||      }t         j                  j                  d      }|j                  |      }t        j                  t        j                  t        j                  |      t        t        |j                  t        |      |j                  z                     |j                  |z         } ||      }	|	j                  |j                  |z   k(  sJ t        |	|d       y )Nr   r   l   wcBMYr   r   )r   r    broadcast_toexpand_dimsr!   tuplerangelenshaper   r   r   ndimr   )
rG   r   r   r   r   r/   r-   r   yyrrs
             r1   test_trailing_dimz$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----BT*r3   c                 t   t        j                  ddd      }t        |t        j                  t         j                  |z              }t        j
                  t         j                  j                  |j                         t        j                  d                  j                  d      }t        |d       y )Nr   r   r   r   r   )axisgh㈵>)r   r    r   r!   r]   r_   subtractouterr,   r6   r^   r   )rG   r   r/   errs       r1   
test_zeroszTestFloaterHormann.test_zerosd  su    KK23'&q"&&q/:ffR[[&&qwwy"))B-@AEE1EM#t$r3   c                 ,   t        j                  dd      }t        |d|dz  z        }|j                         }|j                  dk\  |j                  dk  z  t        j
                  |j                        dk  z  }t        j                  |      dk(  sJ y )Nr
   r   rc   r   r   )r   r    r   r)   r'   r_   imagr   )rG   r   r/   r   masks        r1   test_no_polesz TestFloaterHormann.test_no_polesk  sw    KKA&q!AqD&1GGI"1-&1HIvvd|q   r3   N)r   r   r   r   r   r   rA   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   rA   rx   scipy.interpolater   r   r	   r   float64r   rR   r    rL   logspacer   concatenater   r   float32	complex64rj   r2   int16int32int64r7   r9   r   r   r3   r1   <module>r     s^  4   J J   V V	HBHHRZZ $$$Bt,bkk#qrs+bnns4R4yj1#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   