
    sg                         d Z ddlmZmZmZmZmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZ d Zd	 Zd
 Zd Zd Zy)z9Tests for high-level polynomials manipulation functions.     )
symmetrizehornerinterpolaterational_interpolateviete)MultivariatePolynomialError)S)symbols)raises)abcdexyzc                     t        dt        t        t              dk(  sJ t        dt        t        t              dk(  sJ t        t        z   t        z   } t        t        z  t        t        z  z   t        t        z  z   }t        d      dk(  sJ t        dd      ddg fk(  sJ t        t              t        dfk(  sJ t        t        dz         t        dz   dfk(  sJ t        t        t        t              t        t        z   t         fk(  sJ t        t        dz   t        t              t        t        z   dz   t         fk(  sJ t        t        t        t        t              | t         t        z
  fk(  sJ t        t        dz   t        t        t              | dz   t         t        z
  fk(  sJ t        t        dz  t        t        t              | dz  d|z  z
  t        dz   t        dz  z
  fk(  sJ t        t        dz  t        dz  z         dt        z  t        z  t        t        z   dz  z   dfk(  sJ t        t        dz  t        dz  z
        dt        z  t        z  t        t        z   dz  z   dt        dz  z  fk(  sJ t        t        d	z  t        dz  z   t        t        dz  z  z   t
        t        d	z  z  z   t        t              d
t        z  t        z  t        t        z   z  dt        z  t        z  t        z  z
  t        t        t        z   dz  z  z   t        t        z   d	z  z   t        dz  dt        z
  z  t        d	z  t
        dz
  z  z   fk(  sJ t        d      x}\  }}}t        t        dz   t        t        t        d|      |dz   t         t        z
  |t        t        z   t        z   f|t        t        z  t        t        z  z   t        t        z  z   f|t        t        z  t        z  fgfk(  sJ t        g d      g dk(  sJ t        g dd      g dg fk(  sJ t        t        t        z   t        t        z
  g      t        t        z   dft        t        z   dt        z  fgk(  sJ y )Nr   )r   r      r   r   T)formal      zu:3)r   r
   r   r   r   )r   )r   r   )r   r   )r   r   r   r   r   r   r
   )s1s2Uu0u1u2s         S/var/www/html/venv/lib/python3.12/site-packages/sympy/polys/tests/test_polyfuncs.pytest_symmetrizer$      s   aAq!V+++aAq!V+++	
QB	
1qsQqSBa=F"""a%!Q333a=QF"""a!eQ
***aA1q51"+---a!eQ"q1uqy1"o555aAq!b1"q&\111a!eQ1%"q&1"q&)9999adAq!$Q21uq!t|(DDDDadQTk"r!tAvQ
':A&>>>>adQTk"r!tAvQ
':Bq!tG&DDDDadQTkAadF*Qq!tV3Q:	AaQ!A#a%'	!Aq1uqjL	0AEA:	=	
Aq1u1a!e	$	&& & & u~%ARa!eQ1T1=	a!a2q1uqy/B!ac	AaC+@2qs1u+NOP P P i $<<<<i-2JB1OOOOq1ua!en%1q5!*q1ubdm)DDDD    c                     t        d      dk(  sJ t        d      dk(  sJ t        t              t        k(  sJ t        t        dz         t        dz   k(  sJ t        t        dz  dz         t        dz  dz   k(  sJ t        t        dz  t        z         t        dz   t        z  k(  sJ t        t        dz  t        z   dz         t        dz   t        z  dz   k(  sJ t        dt        dz  z  dt        dz  z  z   dt        dz  z  z   d	t        z  z   d
z         dt        z  dz   t        z  dz   t        z  d	z   t        z  d
z   k(  sJ t        t        t        dz  z  t        t        dz  z  z   t        t        dz  z  z   t
        t        z  z   t        z         t        t        z  t        z   t        z  t        z   t        z  t
        z   t        z  t        z   k(  sJ t        dt        dz  z  t        dz  z  dt        dz  z  t        z  z   dt        z  t        dz  z  z   t        t        z  z   t              dt        z  dz   t        z  t        z  dt        z  dz   t        z  z   t        z  k(  sJ t        dt        dz  z  t        dz  z  dt        dz  z  t        z  z   dt        z  t        dz  z  z   t        t        z  z   t              dt        z  dz   t        z  t        z  dt        z  dz   t        z  z   t        z  k(  sJ y )Nr   r   r   	         r            )wrt)r   r   r   r   r   r   r   r    r%   r#   test_hornerr/   9   s   !9>>!9>>!9>>!a%=AE!!!!Q$(q!tax'''!Q$(Aqy(((!Q$(Q,AE19q=000	!Q$1a4!AqD& 1Q3&*,23A#'1q!0Ca0G/JQ/NO O O	!Q$1a4!AqD& 1Q3&*,23A#'1q!0Ca0G/JQ/NO O O !AqD&A+!Q$q(1Q3q!t83ac9qA	!aGG!a{G#$%F& & & &!AqD&A+!Q$q(1Q3q!t83ac9qA	!aGG!a{G#$%F& & & &r%   c                     t        g dt              t        dz  k(  sJ t        g dt              t        d      t        dz  z  dz  t        d      t        dz  z  z
  t        d      t        z  dz  z   dz
  k(  sJ t        g dt              t        dz  k(  sJ t        g d	t              d
t        dz  z   k(  sJ t        ddddt              d
t        dz  z   k(  sJ t        dddddt              t        d       t        dz  z  dz  t        d      t        dz  z  z   t        d      t        z  dz  z
  dz   k(  sJ t        g dt              t        d      t        dz  z  dz  t        d      t        dz  z  dz  z   t        d      t        dz  z  dz  z   t        d      t        z  dz  z
  dz   k(  sJ t        dd      dk(  sJ t        dd
      t        j                  u sJ t        t        d
fd ft              t        j                  u sJ t        t        d
ddit              t        j                  u sJ t        dt        fd!ft              t        dz  dt        z  z
  dz   k(  sJ y )"N)r   r(   r'      r   )r   r(   r'      r   r)   !   r'   ))r   r   )r   r(   )r   r'   ))r   r   r   r,   )r   
   r   r,   r5   r      )r,   r*   r)   r'         i     )r   r   )r   r+   r4   )r,   r*   )r   r(   ir(   i           iO  i  r+   )r'   r(   r'   )r   r'   r1   )r   r   r:   )r   r   r	   Oner.   r%   r#   test_interpolater?   N   s1   }a(AqD000}a(AaDAIaK!A$q!t),CaeAgai,ORS,SSSS/3q!t;;;0!4AqD@@@1r*A.!ad(:::1rb115	
2q!tB2q!t#agail2S89 9 9@!D	#q!tC!C&A+c/)AcF1a4KO;agaimKaOP P Py!$)))z1%...A'+quu4441a|Q'155000A'+q!taczA~===r%   c                  N   t        d      \  } }g d}g d}g d}t        t        t        ||            d      d| dz  z  dz   | z  k(  sJ t        t        t        ||            d      d| dz  z  dz   | z  k(  sJ t        t        t        ||            d|      d	|dz  z  d
z
  |dz   z  k(  sJ t        t	        dd            }g d}t        t        t        ||            d      d| dz  z  d| dz  z  z   d| dz  z  z
  d| z  z   dz
  | dz  d| dz  z  z   d| z  z
  dz   z  k(  sJ y )Nzx,y)r   r   r   r(   r,   r+   )x            i8  ir  )i.ii      i^  i  r   <   r   )XrE   i  r      )
l*oW6 l5(  lutNlKnlvvIO~l)*U_Vlfg<AldH+L;lP@\SQBlsG/KTr,   l]s[Nqr(   l   >"=4 l   76]l   Q{ r'   )r
   r   listziprange)r   r   xdataydata1ydata2ydatas         r#   test_rational_interpolaterQ   _   sw   5>DAqE+F,FS%7 8!<	!Q$w|Q  S%7 8!<	!Q$w|Q  S%7 8!qA
1a4x#~A! ! !qEE  S%6 7;!Q$q!t/1457G7IJa4!AqD&=1Q3.356 6 6r%   c                  L   t        d      \  } t        t        t        dz  z  t        t        z  z   t
        z   | gt              | z   t         t        z  f| z  t
        t        z  fgk(  sJ t        t        d        t        t        fd       t        t        fd       y )Nzr1, r2r   c                  $    t        dg t              S )Nr   r   r   r.   r%   r#   <lambda>ztest_viete.<locals>.<lambda>{   s    uQA r%   c                  2    t        t        dz  dz    g      S )Nr   r   rT   r1s   r#   rU   ztest_viete.<locals>.<lambda>|   s    uQTAXt4 r%   c                  4    t        t        t        z    g      S )N)r   r   r   rW   s   r#   rU   ztest_viete.<locals>.<lambda>~   s    a!ebT0B r%   )	r
   r   r   r   r   r   r   
ValueErrorr   )r2rX   s    @r#   
test_vieter\   u   s    XFB	!Q$1q2r(A',.GaRT?RUAaCL*IJ J J :./
:45
&(BCr%   N)__doc__sympy.polys.polyfuncsr   r   r   r   r   sympy.polys.polyerrorsr   sympy.core.singletonr	   sympy.core.symbolr
   sympy.testing.pytestr   	sympy.abcr   r   r   r   r   r   r   r   r$   r/   r?   rQ   r\   r.   r%   r#   <module>rd      sG    ?  # % ' , , ,$EN&*>"6,	Dr%   