
    \hv[                        S r SSKJr  SSKJs  Jr  SSKJrJrJrJ	r	J
r  SSKJrJrJr  SSKJrJr  SSKJrJrJr  SSKJr  SS	KJr  SS
KJrJr  SSKJr  SSK J!r!  SSK"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)J*r*  SSK+J,r,  SSK-J.r.J/r/J0r0J1r1J2r2J3r3  S r4S r5S r6S r7S r8S r9S r:S r;S r<\*S 5       r=S r>S r?S r@S  rAS! rBS" rCS# rDS$ rES% rFS& rGS' rHS( rIS) rJS* rKS+ rLS, rMS- rNS. rOS/ rPS0 rQS1 rR\*S2 5       rSS3 rTS4 rUg)5z@Tests for the implementation of RootOf class and related tools.     )PolyN)rootofRootOfCRootOfRootSum_pure_key_dict)MultivariatePolynomialErrorGeneratorsNeededPolynomialError)FunctionLambda)FloatIRational)Eq)S)explog)sqrt)tan)Integral)legendre_poly)solve)raisesslow)	unchanged)abxyzrc                     [        [        S5      S:X  d   e[        [        S5      S:X  d   e[        [        [        R                  5      S:X  d   e[        [        S-
  S5      S:X  d   e[        [        S-
  S5      S:X  d   e[        [        S-   S5      S:X  d   e[        [        S-   S5      S:X  d   e[        [        S-  S[        -  -   S-   S5      S[        [        S5      -  -
  :X  d   e[        [        S-  S[        -  -   S-   S5      S[        [        S5      -  -   :X  d   e[        [        S-  S[        -  -   S-   S5      S[        [        S5      -  -   :X  d   e[        [        S-  S[        -  -   S-   S5      S[        [        S5      -  -
  :X  d   e[        [        S-  S[        -  -   S-   SSS9n [        U [        5      S	L d   e[        [        S-  S[        -  -   S-   SSS9n [        U [        5      S	L d   e[        [        S-  S[        -  -   S-   SSS9n [        U [        5      S	L d   e[        [        S-  S[        -  -   S-   SSS9n [        U [        5      S	L d   e[        [        S-
  [        S-   -  SSS9S:X  d   e[        [        S-
  [        S-   -  SSS9S:X  d   e[        [        S-
  [        S-   -  SSS9S:X  d   e[        [        S-
  [        S-   -  SSS9S:X  d   e[        [        S-
  [        S-   -  SS	S9S:X  d   e[        [        S-
  [        S-   -  SS	S9S:X  d   e[        [        S-
  [        S-   -  SS	S9S:X  d   e[        [        S-
  [        S-   -  SS	S9S:X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      S:X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-
  [        S-  [        -   S-   -  S
5      S:X  d   e[        [        S-
  [        S-  [        -   S-   -  S5      [        [        S-  [        -   S-   S5      :X  d   e[        [        S-  S[        S-  -  -   S5      S
:X  d   e[        [        S-  S[        S-  -  -   S5      S:X  d   e[        [        S-  S[        S-  -  -   S5      S:X  d   e[        [        S-  S[        S-  -  -   S5      S:X  d   e[        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        S 5        [        [        [        [        -
  [        5      S5      [        :X  d   e[        [        [        S-  [        -
  [        5      S5      [        [        5      * :X  d   e[        [        [        S-  [        -
  [        5      S5      [        [        5      :X  d   e[        [        [        S-  [        -
  [        5      S5      [        [!        SS5      -  :X  d   e[        [        [        S-  -  [        [        -  -   S[        -  -   [        S5      S:X  d   e[        [        S 5        [        [        S-  [        -   S-   S5      R"                  S	L d   eg )Nr            FradicalsT   c                      [        SS5      $ Nr   r        Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_rootoftools.py<lambda>&test_CRootOf___new__.<locals>.<lambda>U   
    VAq\r2   c                      [        SS5      $ Nr%   r   r0   r1   r2   r3   r4   r5   V   r6   r2   c                  6    [        [        S[        5      S5      $ r/   r   r   r   r1   r2   r3   r4   r5   X       F41:q$9r2   c                  6    [        [        S[        5      S5      $ r8   r:   r1   r2   r3   r4   r5   Y   r;   r2   c                  0    [        [        [        -
  S5      $ r/   r   r   r    r1   r2   r3   r4   r5   Z   s    F1q5!$4r2   c                  4    [        [        [        5      S5      $ r/   )r   r   r   r1   r2   r3   r4   r5   \   s    F3q61$5r2   c                  N    [        [        S-  [        -
  [        S5      -   S5      $ Nr'   r&   r   )r   r   r   r1   r2   r3   r4   r5   ^   s    q!tax$q'/A1(Er2   c                  D    [        [        S-  [        -
  [        -   S5      $ )Nr'   r   )r   r   r   r1   r2   r3   r4   r5   _   s    q!tax!|Q(?r2   c                  .    [        [        S-  S-
  S5      $ )Nr&   r%   r,   r   r   r1   r2   r3   r4   r5   a       vadQh3r2   c                  .    [        [        S-  S-
  S5      $ )Nr&   r%   r+   rD   r1   r2   r3   r4   r5   b   rE   r2   c                  .    [        [        S-  S-
  S5      $ Nr&   r%   rD   r1   r2   r3   r4   r5   c       vadQh2r2   c                  .    [        [        S-  S-
  S5      $ )Nr&   r%   r'   rD   r1   r2   r3   r4   r5   d   rI   r2   c                  6    [        [        S-  S-
  [        5      $ rH   rD   r1   r2   r3   r4   r5   e   s    vadQh2r2   c                  T    [        [        S-  [        -   S[        -  -   [        S5      $ rA   r>   r1   r2   r3   r4   r5   o   s    q!tax!A#~q!(Dr2   )r   r   r   Zeror   r   
isinstancer   r   r
   r   NotImplementedError
IndexError
ValueErrorr   r    r   is_commutativer"   s    r3   test_CRootOf___new__rT       s;   !Q<1!R=A!QVV!!!!a%q   !a%!!!!a%r!!!!a%"""!Q$1*q.!$QtAwY666!Q$1*q.!$QtAwY666!Q$1*q."%aQi777!Q$1*q."%aQi777q!taczA~q51Aa D(((q!taczA~q51Aa D(((q!taczA~rE2Aa D(((q!taczA~rE2Aa D(((1q51q5/1u5;;;1q51q5/1u5:::1q51q5/26!;;;1q51q5/26"<<<1q51q5/1t4:::1q51q5/1t49991q51q5/25:::1q51q5/25;;;1q51a4!8a<(!,q!tax!|Q0GGGG1q51a4!8a<(!,1111q51a4!8a<(!,q!tax!|Q0GGGG1q51a4!8a<(!,q!tax!|Q0GGGG1q51a4!8a<("-1q1a1HHHH1q51a4!8a<("-1q1a1HHHH1q51a4!8a<("-2221q51a4!8a<("-1q1a1HHHH!Q$1a4-#r)))!Q$1a4-#q(((!Q$1a4-#q(((!Q$1a4-#q(((
12
12
?9:
?9:
?45
?56
 EF
 ?@
:34
:34
:23
:23
:23$q1ua.!$)))$q!tax#Q'DG8333$q!tax#Q'47222$q!tax#Q'1hq!n+<<<<!AqD&1Q3,1$a+r111
 DE!Q$(Q,"11T999r2   c                      [        [        S-  [        -   S-   S5      n U R                  (       d   eU R                  [	        5       :X  d   e[        [        S 5        g )Nr'   r   c                  f    [        [        [        S-  [        [        -  -   S-   [        5      S5      $ Nr'   r%   r   )r   r   r   r    r1   r2   r3   r4   )test_CRootOf_attributes.<locals>.<lambda>|   s"    tAqD1Q3JNA/F(Jr2   )r   r   	is_numberfree_symbolssetr   rO   rS   s    r3   test_CRootOf_attributesr\   t   sH    q!tax!|QA;;;>>SU"""
  JKr2   c                     [        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   e[        [        S-  [        -   S-   S5      [        [        S-  [        -   S-   S5      :H  SL d   eg Nr'   r   Tr%   Fr&   r>   r1   r2   r3   test_CRootOf___eq__r_      s<   1a4!8a<#vadQhlA'>>4GGG1a4!8a<#vadQhlA'>>5HHH1a4!8a<#vadQhlA'>>4GGG1a4!8a<#vadQhlA'>>5HHH1a4!8a<#vadQhlA'>>4GGG1a4!8a<#vadQhlA'>>4GGG1a4!8a<#vadQhlA'>>5HHH1a4!8a<#vadQhlA'>>4GGG1a4!8a<#vadQhlA'>>5HHH1a4!8a<#vadQhlA'>>4GGGr2   c                     [        S5      n [        S-  [        -   S-   n[        US5      n[        US5      n[        X#5      [        R
                  L d   e[        X"5      [        R                  L d   e[        [        U[        5      (       d   e[        US5      [        R
                  L d   e[        U[        R                  5      [        R
                  L d   e[        U[        5      [        R
                  L d   e[        [        X " S5      5      (       d   e[        U5      nU H4  nUR                  (       d  M  [        X%5      [        R
                  L a  M4   e   [        US5      nU H4  nUR                  (       d  M  [        X%5      [        R                  L a  M4   e   [        S-  [        -   S-   n[        U5      n[        S5       VVs/ s H!  od  H  n[        [        X5      U5      PM     M#     snnR                  S5      S:X  d   e[        [        US5      S[        R                  -   5      S:X  d   eg s  snnf )Nfr'   r&   r%   r   TF)r   r   r   r   r   falsetruer   Infinityr   r   is_realrangecountImaginaryUnit)ra   eqr"   r1solsijs           r3   test_CRootOf___eval_Eq__ro      s   A	
AABr1A	ABa9a8qvvRAa8qwwa'''a8qwwRAaD!!!!
)C999a8qww&&&  	r1A999a8qvv%%%  
AAB
)C*/( 
(QCqBvb}a C ( 

%+  fRmQ01U:::
s   (Ic                     [        [        S-  [        -   S-   S5      R                  SL d   e[        [        S-  [        -   S-   S5      R                  SL d   e[        [        S-  [        -   S-   S5      R                  SL d   eg r^   )r   r   re   r1   r2   r3   test_CRootOf_is_realrq      sw    !Q$(Q,"**d222!Q$(Q,"**e333!Q$(Q,"**e333r2   c                  \    [        [        S-  [        -   S-   S5      R                  SL d   eg )Nr'   r   T)r   r   
is_complexr1   r2   r3   test_CRootOf_is_complexrt      s)    !Q$(Q,"--555r2   c                     [        [        S-  [        -   S-   S5      R                  SL d   e[        [        S-  [        -   S-   S5      R                  SL d   e[        [        S-  [        -   S-   S5      R                  SL d   eg )Nr'   r   Tr%   r&   )r   r   is_algebraicr1   r2   r3   test_CRootOf_is_algebraicrw      sw    !Q$(Q,"//4777!Q$(Q,"//4777!Q$(Q,"//4777r2   c                      [        [        S-  [        -   S-   S5      R                  [        [        5      [        [        S-  [        -   S-   S5      :X  d   eg rW   )r   r   subsr    r1   r2   r3   test_CRootOf_subsrz      sC    !Q$(Q,"''1-1q1a1HHHHr2   c                      [        [        S-  [        -   S-   S5      R                  [        5      S:X  d   e[        [        S-  [        -   S-   S5      R                  [        5      S:X  d   eg rW   )r   r   diffr    r1   r2   r3   test_CRootOf_diffr}      sZ    !Q$(Q,"''*a///!Q$(Q,"''*a///r2   c                  f   [        [        S-  [        -   S-   S5      R                  SS9n U R                  [	        S5      5      (       d   e[        [        S-  [        -   S-   S5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      * 5      (       d   e[        [        S-  [        -   S-   S	5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      5      (       d   e[        S
[        SS9nUR                  5        Vs/ s H  n[        UR                  " S5      5      PM      nnU/ SQ:X  d   e[        [        S-  S[        -  -
  S-   S5      R                  SS9nUR                  [	        S5      5      (       d   e[        [        S-  S[        -  -
  S-   S5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      5      (       d   e[        [        S-  S[        -  -
  S-   S	5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      5      (       d   e[        [        S-  S[        -  -
  S-   S5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      5      (       d   e[        [        S-  S[        -  -
  S-   S
5      R                  SS9R                  5       u  pUR                  [	        S5      5      (       d   eUR                  [	        S5      5      (       d   e[        [        [        S-  S	[        S
-  -  -   [        S-  -   S-
  S5      R                  S5      5      S:X  d   eS[        S-  -  S[        S-  -  -   S[        S-  -  -   S [        S!-  -  -   S"[        S#-  -  -   S$[        S%-  -  -   S&[        S-  -  -   S'[        S
-  -  -
  S([        S-  -  -
  S)[        S	-  -  -
  S*[        -  -   S+-   n[        US5      R                  S	5      R                  5       u  px[        US	5      R                  S	5      R                  5       u  pXy:X  d   eX:  d   eX* :X  d   e[        [        S,[        5      S#5      nUR                  " S	5      UR                  " S-5      R                  S	5      :X  d   e[        [        S	-  S-   SS.S/9n[        [        S	-  S-   SS.S/9nUR                  S
5      [	        S0S
5      [        -  :X  d   eUR                  S
5      [	        S1S
5      [        -  :X  d   e[        [        S
[        S-  -  S2[        S-  -  -   S[        S	-  -  -   S#-   S5      R                  S5      5      S3:X  d   e[        S4[        S%-  -  S5[        S
-  -  -
  S6[        S	-  -  -   S-
  S5      n	U	R                  S	5      (       d   e[        [        [        S2-  S7[        S8-  -  -   S9[        S-  -  -   S:[        S-  -  -   S;[        S!-  -  -   S<[        S%-  -  -   S=[        S
-  -  -   S>[        S	-  -  -   S?-   S5      R                  S	5      5      S@:X  d   e[        [        [        S
-  S[        S	-  -  -   S-   S5      R                  S	5      5      SA:  d   e[        S5       Vs/ s H   n[        [        S-  [        -   S-   U5      PM"     nnUS   R!                  5         U H|  nUR#                  5       nUR                  S	5        XR#                  5       :w  d   eUR!                  5         XR#                  5       :X  d   eXR$                  " UR&                  6 :X  a  M|   e   g s  snf s  snf )BNr'   r      nz-1.2134116627622296341r%   z0.60670583138111481707z1.45061224918844152650r&   r-   Tpolys   z-0.86113631159405258z-0.33998104358485626z0.33998104358485626z0.86113631159405258      z-1.84208596619025438271z-0.351854240827371999559z-1.709561043370328882010z+1.709561043370328882010z+1.272897223922499190910z-0.719798681483861386681z+0.719798681483861386681l       @ z147.i    i: 
   i 	   izg   i`jH   il   i i@B i < i  i - i   @   d   Fr)   g      g      ?   z-0.976i`b i  T          i  i@  iV  i  i\ i ie z-3.4*Ig?)r   r   evalf
epsilon_eqr   as_real_imagr   
real_rootsstrr   r   r   _eval_evalfr   absrf   _reset_get_intervalfuncargs)realreimpr"   rootsri   r   r   cdr0rj   rm   ris                  r3   test_CRootOf_evalfr      sr   !Q$(Q,"((2(.D??5!9:;;;;AqD1HqL!$**R*0==?FB==% 89::::==% 899::::AqD1HqL!$**R*0==?FB==789999==789999a$'A#$<<>2>aSR\>E2
      
1qs
R	#	)	)B	)	/B==89::::AqD1Q3JOQ'---3@@BFB==9:;;;;==9:;;;;AqD1Q3JOQ'---3@@BFB==9:;;;;==9:;;;;AqD1Q3JOQ'---3@@BFB==9:;;;;==9:;;;;AqD1Q3JOQ'---3@@BFB==9:;;;;==9:;;;; vadQq!tVmad*[8!<>>qABfLLL
B,B
&!Q$
6!Q$
FA A&(0A68?1EA1%'.qy1367B "a=??1**,DA"a=??1**,DA6M65L57N7}R#Q'A33q6QSSXZZ]"""	1q!e	,B	1q!e	,B447eD!nq((((447eCma'''' va1fr!Q$w&AqD014a8::1=>(JJJ 	ad
T!Q$Y&AqD014a8A== vaebBh&QU2T!R%Z?ad
AqD[!#)!Q$;/18A>AaD%& & & vadR1Wnq(!,..q12S888 +0(3(Q1q1a	 (A3aDKKM
Q$$&&&&
		$$&&&&FFAFFO### E 3@ 	4s   &%`)*'`.c                      [         S-  * S-   n [        U S5      nUR                  R                  5       [         S-  S-
  :X  d   eUR                  " 5         UR                  [
        R                  ;   d   eg )Nr&   r   )r   r   polyas_exprr   rootoftools_reals_cachera   r"   s     r3   test_issue_24978r     sb     
A	A1A66>>q!tax''' CCE66[-----r2   c                     [        [        S-  S[        -  -
  S-   S5      n U R                  " 5         U R                  " 5       n[        [        S-  S[        -  -
  S-   S5      n U R                  " 5         U R                  " 5       nX:X  d   eg )Nr   r   r%   )r   r   r   r   )r"   r   r   s      r3   test_CRootOf_evalf_caching_bugr   (  sm    q!taczB"ACCE	Aq!taczB"ACCE	A6M6r2   c                  l   [        [        S-  [        -   S-   5      R                  5       [        [        S-  [        S-  -
  S-   S5      /:X  d   e[        [        S-  [        -   S-   5      R                  SS9[        [        S-  [        S-  -
  S-   S5      /:X  d   e[        S[        S	-  -  S
[        S-  -  -
  S[        S-  -  -
  S[        -  -
  S-
  [        SS9n [        R                  " U 5      [        S5      [        S5      [        S5      [        S5      S-  /:X  d   e[        [        S-  [        S5      [        S-  -  -   S-
  [        SS9R                  5       [        [        S-  S[        S	-  -  -
  S[        S-  -  -
  S-   S5      /:X  d   e[        [        S-  [        S5      [        S-  -  -   S-
  [        SS9R                  5       [        [        S
-  S[        S-  -  -
  S[        S-  -  -
  S-   S5      /:X  d   e[        [        S-  [        S-  -   S-
  S5      n[        [        S-  U[        -  -   S-
  [        SS9R                  5       [        [        S-  S[        S-  -  -
  [        S-  -   S
[        S-  -  -   S[        S-  -  -
  S
[        S
-  -  -
  S[        S-  -  -   S[        S-  -  -   [        S-  -
  S-
  S5      /:X  d   e[        [        S-
  [        [        S5      -
  S-  -  [        SS9R                  5       [        S5      [        S5      [        S5      /:X  d   eg )Nr   r%   r'   r&   r   Fr)   r+   r-   r   r   r   ZZ)domainr$   T	extension   r   r      r   )r   r   r   r   r   r   r   r    )r   r"   s     r3   test_CRootOf_real_rootsr   2  s   1q1((*vadQTkAoq/I.JJJJ1q1((%(8V	1q!ta> =    	R1Wr!Q$wAqD(1Q3.2AdCAa QrUAbE1R5!B%'$BBBB 1tAwq!t|#a'd;FFHq!ta1f}qAv%)1-M    1tAwA~%)1=HHJq"uqAv~!Q$&*A.O    	q!tad{Q"A1qs
QT2==?q"uqBwB&ArE1AaeG;!R%xAqD&!#$QT6*,-qD134567	9   147Q&T:EEG	!d1gtAw  r2   c            
         [        [        S-  [        -   S-   5      R                  5       [        [        S-  [        S-  -
  S-   S5      [	        SS5      [        S5      [        -  S-  -
  [	        SS5      [        S5      [        -  S-  -   [        [        S-  [        S-  -
  S-   S5      [        [        S-  [        S-  -
  S-   S5      /:X  d   e[        [        S-  [        -   S-   5      R                  SS9[        [        S-  [        S-  -
  S-   S5      [        [        S-  [        -   S-   SSS9[        [        S-  [        -   S-   SSS9[        [        S-  [        S-  -
  S-   S5      [        [        S-  [        S-  -
  S-   S5      /:X  d   e[        [        S-  [        S5      [        S-  -  -   S-
  [        S	S
9R                  5       [        [        S-  S[        S-  -  -
  S[        S-  -  -
  S-   S5      [        [        S-  S[        S-  -  -
  S[        S-  -  -
  S-   S5      [        [        S-  S[        S-  -  -
  S[        S-  -  -
  S-   S5      /:X  d   e[        [        S-
  [        [        S5      -
  S-  -  [        [        -
  -  [        [        -   -  [        S	S
9R                  5       [        S5      [        S5      [        S5      [        * [        /:X  d   e[        [        S-  [        S-  -
  [        S	S
9R                  5       [        S5      S-  [        S-  -   [        S5      * S-  [        S-  -
  /:X  d   eg )Nr   r%   r'   r&   r   r$   Fr)   Tr   r   r-   )r   r   	all_rootsr   r   r   r   r   r1   r2   r3   test_CRootOf_all_rootsr   O  s   1q1'')q!tad{Q"Q$q'!)A+%Q$q'!)A+%q!tad{Q"q!tad{Q".    1q1'''7q!tad{Q"q!tax!|Q/q!tax!|Q/q!tad{Q"q!tad{Q"<    1tAwq!t|#a'd;EEGq!ta1f}qAv%)1-q!ta1f}qAv%)1-q!ta1f}qAv%)1-   147Q&!A#.!A#6TJTTV	!d1gtAwA   1qs
A.88:	!Q1	
1a!A#  r2   c                  8   [        S[        SS9n U R                  5        Vs/ s H  oR                  " SS9PM     nnU H  n[	        U[
        5      (       a  M   e   U Vs/ s H  n[        UR                  S5      5      PM     nnU/ SQ:X  d   eg s  snf s  snf )Nr-   Tr      r   r   r   )r   r   r   eval_rationalrN   r   r   r   )r   r"   r   roots       r3   test_CRootOf_eval_rationalr   u  s    a$'A,-LLN;Nq__r"NE;$)))) )./S_E/    	 < 0s   B!$Bc                     [        [        S-  S[        -  -   S-   5      n [        R                  " 5         [        U S5      nUR                  [
        R                  ;  d   eUR                  [
        R                  ;  d   eUR                  " 5         UR                  [
        R                  ;   d   eUR                  [
        R                  ;  d   e[        R                  " 5         [        U S5      nUR                  [
        R                  ;  d   eUR                  [
        R                  ;  d   eUR                  " 5         UR                  [
        R                  ;   d   eUR                  [
        R                  ;   d   e[        [        S-  S-
  [        S-  S-   -  5      n [        R                  " 5         [        U S5      nUR                  [
        R                  ;   d   eUR                  [
        R                  ;  d   e[        R                  " 5         [        U S5      nUR                  [
        R                  ;   d   eUR                  [
        R                  ;   d   eg )Nr'   r&   r   r%   )	r   r   r   clear_cacher   r   r   _complexes_cacher   r   s     r3   test_CRootOf_lazyr     s   QTAaCZ!^A 1A66111116655555GGI66[-----6655555 1A66111116655555GGI66[-----66[11111 	adQhA"#A 1A66[-----6655555 1A66[-----66[11111r2   c                  ~
   [         S-  [         -   S-   n [        [        [        [        [         -  5      5      n[	        X5      n[        U[        5      SL d   e[	        U S-  U5      S[	        X5      -  :X  d   e[	        [         S-
  U S-  -  U5      [        S[         -  5      S[	        X5      -  -   :X  d   e[        [	        [         S-
  U S-  -  U5      5      [        [        S[         -  5      S[	        X5      -  -   5      :X  d   e[        [        S 5        [        [        S 5        [	        U [        5      [	        U [        [         [        [         5      5      5      :X  d   e[	        U [        5      [	        U [        [         [        [         5      5      5      :X  d   e[        [	        U SS9[        5      SL d   e[	        U 5      S	:X  d   e[	        U [        [         [         5      5      S	:X  d   e[	        U [        [         [         S-  5      5      S
:X  d   e[	        U [        [         S5      5      S:X  d   e[	        U [        [         S5      5      S:X  d   e[	        U SS9R                  SL d   e[	        U [        [         S[         [         S-  -   -  5      5      [        SS5      :X  d   e[	        U [        [         [        [         [         S-  -   -  5      5      [        SS5      [        -  :X  d   e[	        [         S-  S-
  [        [         S[         S-  -  5      [         5      S:X  d   e[	        [         S-  [        -
  [        [         S[         S-  -  5      [         5      S[        -  :X  d   e[	        [         S-  S-
  [        [         [        [         S-  -  5      [         5      S[        -  :X  d   e[	        [         S-  [        -
  [        [         [        [         S-  -  5      [         5      S[        -  [        -  :X  d   e[	        [         S-  S-
  [        [         [        [         5      5      SS9[        S5      [        S5      -   :X  d   e[	        [         S-  [        [         -  -   [        S-  -   [         [         5      [	        [         S-  [         -   S-   [        [         [!        [        [         -  5      5      5      :X  d   e[	        [        S-  [         S-  -  [        [         -  -   S-   [         [         5      [	        [         S-  [         -   S-   [        [         [!        [         [        -  5      5      5      :X  d   eg )Nr'   Tr&   r   c                  B    [        [        S-  [        -   [        -   5      $ Nr'   )r   r   r    r1   r2   r3   r4   &test_RootSum___new__.<locals>.<lambda>  s    1q10Er2   c                  0    [        [        S-  S-   S 5      $ )Nr&   r'   c                     U $ Nr1   )r   s    r3   r4   8test_RootSum___new__.<locals>.<lambda>.<locals>.<lambda>  s    1r2   )r   r   r1   r2   r3   r4   r     s    wq!tax=r2   F)autor   r(   r%   r   r   )	quadraticr$   )r   r   r"   r   r   rN   hashr   r	   rQ   r   rR   r   r    r!   r   r   )ra   grl   s      r3   test_RootSum___new__r     s   	1q1Aq#ac(AAa!T)))1a4q...AE1a4<#s1Q3x!GAM/'AAAA Q1a()T#ac(Qwq}_2L-MMMM
&(EF
:=>1c?ga3q6):;;;;1c?ga3q6):;;;;gae,g6$>>>1:??1fQl#q(((1fQ1o&",,,1fQl#q(((1fQl#q(((15!00D8881fQ1q!t8-.(2q/AAA1fQ1q!t8-.(2q/!2CCCC1a4!8VAqAv.2a7771a4!8VAqAv.2ac9991a4!8VAqAv.2ac9991a4!8VAqAv.2ac!e;;;	1q&CF#t58;B#a&8HI I I 1a4!A#:1$c1-1q1fQAaC123 3 31a419qs?Q&Q/1q1fQAaC123 3 3r2   c            
         [        [        S-  [        -   S-   [        [        [	        [        5      5      5      R
                  [        5       :X  d   e[        [        S-  [        -   S-   [        [        [	        [        [        -  5      5      5      R
                  [        1:X  d   e[        [        S-  [        -   [        -   [        [        [	        [        [        -  5      5      [        5      R
                  [        [        1:X  d   eg r   )	r   r   r   r"   r   rZ   r[   r   r    r1   r2   r3   test_RootSum_free_symbolsr     s    1a4!8a<3q6!23@@CEIII1a4!8a<3qs8!45BBqcIII	1q1fQAaC)1..:lq!fE E Er2   c                  >   [        [        [        [        5      5      n [        [        S-  [        -   S-   U 5      [        [        S-  [        -   S-   U 5      :H  SL d   e[        [        S-  [        -   S-   U 5      [        [        S-  [        -   S-   U 5      :H  SL d   e[        [        S-  [        -   S-   U 5      [        [        S-  [        -   S-   U 5      :H  SL d   e[        [        S-  [        -   S-   U 5      [        [        S-  [        -   S-   U 5      :H  SL d   eg )Nr'   r%   Tr&   F)r   r   r   r   r    ra   s    r3   test_RootSum___eq__r     s    q#a&AAqD1HqL!$1q1a(@@TIIIAqD1HqL!$1q1a(@@TIIIAqD1HqL!$1q1a(@@UJJJAqD1HqL!$1q1a(@@UJJJr2   c                     [        [        S-  S-   [        5      n [        U [         5      SL d   eU R	                  5       [        [
        * 5      [        [
        5      -   :X  d   e[        [        S-  [        -   [        [        5      n [        U [         5      SL d   eU R	                  5       [        [        [        * 5      * 5      [        [        [        * 5      5      -   :X  d   eg )Nr&   r%   T)r   r   r   rN   doitr   r   r   rss    r3   test_RootSum_doitr     s    	A3	Bb'"d***779QB#a&((((	A3	"Bb'"d***779T1"XIT1"X6666r2   c                  f   [        [        S-  S-   [        5      n U R                  SSS9R	                  [        S5      5      (       d   eU R                  SSS9R	                  [        S5      5      (       d   e[        [        S-  [        -   [        [        5      n U R                  5       U :X  d   eg )	Nr&   r%   r   T)r   chopz1.0806046117362794348r   z1.08060461173628)r   r   r   r   r   r   r   r   s    r3   test_RootSum_evalfr     s    	A3	B88bt8$//6M0NOOOO88bt8$//6H0IJJJJ	A3	"B88:r2   c                  "   [         S-  [         -   S-   n [        [        [        [        [         -  5      5      n[        [        [        [        [        [         -  5      -  5      n[	        X5      R                  [         5      [	        X5      :X  d   eg r   )r   r   r"   r   r   r|   )ra   r   hs      r3   test_RootSum_diffr     s`    	1q1Aq#ac(Aq!C!H*A1=a GAM111r2   c                     [         S-  [         -   S-   n [        [        [        [        [         -  5      5      n[        S-  [        -   S-   n[        [        [        [        [        -  5      5      n[        X5      R                  [        S5      [        X5      :X  d   e[        X5      R                  [         [        5      [        X#5      :X  d   eg )Nr'   r%   )r   r   r"   r   r    r   ry   )ra   r   FGs       r3   test_RootSum_subsr     s    	1q1Aq#ac(A	1q1Aq#ac(A1=a#wq}4441=a#wq}444r2   c                     [        [        S-  [        -
  S-   [        [        [        [        [        -
  -  5      5      S[        -  S-
  [        S-  [        -
  S-   -  :X  d   eS[        S-  -  S[        S-  -  -   S[        -  -   S-   n [        [        [        [	        S	[        S-  -  S-  S
[        S-  -  S-  -
  S[        S-  -  S-  -
  [        [        SS5      -  -
  S-
  [        [        5      -   5      -  5      n[        X5      R                  [        5      S[        S[        -  5      -  S[        [        5      -  -
  S-   [        [        5      -  [        S[        -  5      [        S[        -  5      -
  S-   -  * S-  :X  d   eg )Nr   r%   r-      r'   s   r&      ii5  iq  }   r   r   )r   r!   r   r   r   r   r   r|   )ra   r   s     r3   test_RootSum_rationalr     sm   	1q1fQ1q5	*,01!a!Q$(Q,/GH H H 	AqD3q!t8bd"Q&Aq!Cad
1tAqDy{"SAXaZ/!HS!4D2DDqH3q6QS S 	TA 1=a 	
3qs8aAh		"CF*C!Hs1Q3x,?!,CD%FFG%H H H Hr2   c                     [         S-  [        -
  S-  [         S-  [        -
  S-  -  n [        [         S[	        [         5      -  S-   5      n[        [         [	        [         5      5      n[        [         S-  [        -
  U[         5      n[        [         S-  [        -
  U[         5      n[        X[         5      R                  5       SU-  SU-  S/:X  d   eg )	Nr'   r&   r-   r   r   r   r   ~   )r   r   r   r   r   r   as_ordered_terms)ra   r   r   r   rj   s        r3   test_RootSum_independentr   (  s    	
AAq!tax!m#Aq!CF(Q,Aq#a&A	A1a	 B	A1a	 B1,,.2b5"R%2EEEEr2   c                     [        [        S-  [        -
  S-   [        5      R                  5       n [        S5       Vs/ s H   n[	        [        S-  [        -
  S-   U5      PM"     nn[        U 5      [        U5      :X  d   eg s  snf )Nr   r%   )r   r   r   rf   r   	frozenset)l1rm   l2s      r3   test_issue_7876r   4  si    	adQhlA		(	(	*B+08	48a&AAq
!8B	4R=IbM))) 
5s   'Bc                      [        S[        S-  -  S-
  5      n [        U R                  5       5      S:X  d   e[        S[        S-  -  S-
  5      n [        U R                  5       5      S:X  d   eg )Nr   r   r   r   )r   r   lenr   r   s    r3   test_issue_8316r   :  s`    Qq!tVaZAq{{}"""Qq!tVb[Aq{{}"""r2   c                  2  ^ SSK Jm  U4S jn U " [        [        S-  S[        S-  -  -   S-   5      5      S:X  d   eU " [        [        S-  5      5      S:X  d   eU " [        S/S-  S	/-   [        5      5      S:X  d   eU " [        [        S-  S-   5      5      S:X  d   eU " [        [        S-  S-   5      5      S:X  d   eU " [        [        S-  S-
  5      5      S:X  d   eU " [        [        S
-  S-
  5      5      S:X  d   eU " [        [        S
-  S-   5      5      S:X  d   eU " [        / SQ[        5      5      S:X  d   eU " [        [        S-  [        -   S-   5      5      S:X  d   eU " [        [        S
-  [        -   S-   5      5      S:X  d   eS nU " U" S	SS5      5      S
:X  d   eU " U" S	SS5      5      S:X  d   eU " U" SSS5      5      S:X  d   eU " U" SSS
5      5      S
:X  d   eU " U" S	SS
5      5      S:X  d   eU " U" S	SS
5      5      S:X  d   eg )Nr   )_imag_count_of_factorc                 P   > [        U4S jU R                  5       S    5       5      $ )Nc              3   >   >#    U  H  u  pT" U5      U-  v   M     g 7fr   r1   ).0ra   mr   s      r3   	<genexpr>7test__imag_count.<locals>.imag_count.<locals>.<genexpr>D  s%       37!(+A-s   r%   )sumfactor_list)r   r   s    r3   
imag_count$test__imag_count.<locals>.imag_countC  s(     	  	r2   r   r   r&   r%   r'   r$   r-   )r%   r&   r'   c                 z    [        [        U -
  [        U-
  -  R                  [        [        U-  5      [        5      $ r   )r   r   ry   )rj   r2r   s      r3   qtest__imag_count.<locals>.qQ  s-    a"fq2v&,,Q15q99r2   r(   )sympy.polys.rootoftoolsr   r   r   )r  r  r   s     @r3   test__imag_countr
  A  s   = d1a4"QT'>A-./1444d1a4j!Q&&&dA3q5B4<+,111d1a4!8n%***d1a4!8n%***d1a4!8n%***d1a4!8n%***d1a4!8n%***d9a()Q...d1a4!8a<()Q...d1a4!8a<()Q...:aBl#q(((aAqk"a'''a1aj!Q&&&a1aj!Q&&&aAqk"a'''aBl#q(((r2   c                      [        [        S-  S[        S-  -  -   S-   S5      n U R                  " 5       nU R                  (       a  UR                  UR
                  -  S::  d   eg )Nr-   r&   r%   r   )r   r   r   is_imaginaryaxbx)r"   rm   s     r3   test_RootOf_is_imaginaryr  [  sP    q!ta1f}q !$A	A>>add144i1n,,nr2   c                      [         S-  S[         -  -   S-   n [        U S5      R                  5       n[        U S5      R                  5       nUR                  U5      (       d   eUR                  U5      (       d   eg )Nr'   r   r%   r   )r   r   r   is_disjoint)ri   iriis      r3   test_is_disjointr  a  si    	
A!aB	A	$	$	&B	A	$	$	&B>>">>"r2   c                    ^ ^ [        5       m[        T;   SL d   eST;   SL d   eST[        '   [        T;   d   e[        T;   d   eT[           S:X  d   e[        [        U4S j5        U4S jm [        [
        U 4S j5        g )NFr%   c                     > T S   $ Nr%   r1   )r   s   r3   r4   $test_pure_key_dict.<locals>.<lambda>q  s	    QqTr2   c                    > STU '   g )Nr&   r1   )kr   s    r3   dont test_pure_key_dict.<locals>.dontr  s    !r2   c                     > T " S5      $ r  r1   )r  s   r3   r4   r  t  s	    tAwr2   )Dr   r    r   KeyErrorrQ   )r  r   s   @@r3   test_pure_key_dictr   i  sv    	AFuFuAaD6M66M6Q4199
8\"
:'r2   c                  X  ^^ [         R                  " 5         [        S5       V s/ s H#  n [        [        S-  S[        -  -   S-   U 5      PM%     sn mT V s/ s H  o R	                  S5      PM     sn [        SS5      [        SS5      [        S	-  S-  -
  [        SS5      [        S	-  S-  -   /:X  d   eTS
   R                  5         T V s/ s H  o R	                  SS5      PM     sn [        SS5      [        SS5      [        S-  S-  -
  [        SS5      [        S-  S-  -   /:X  d   e[        TS
   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   eTS
   R                  5         T V s/ s H  o R	                  SS5      PM     sn [        SS5      [        SS5      [        S-  S-  -
  [        SS5      [        S-  S-  -   /:X  d   e[        TS
   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   e[        TS   R                  5       R                  5      S:  d   eTS
   R                  5         T V s/ s H  o R	                  SS9PM     sn [        SS5      [        SS5      [        S-  S-  -
  [        SS5      [        S-  S-  -   /:X  d   e[        [        TS
   R                  5       R                  5      TS
   -  5      S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   eTS
   R                  5         T V s/ s H  o R	                  SS9PM     sn [        SS5      [        SS5      [        S-  S-  -
  [        SS5      [        S-  S-  -   /:X  d   e[        [        TS
   R                  5       R                  5      TS
   -  5      S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   e[        [        TS   R                  5       R                  5      TS   -  5      R                  5       S:  d   eTS
   R                  5         T V s/ s H  o R                  S5      PM     sn mT V s/ s H  n [        U 5      PM     sn / SQ:X  d   e[!        UU4S  j[        [#        T5      5       5       5      (       d   eg s  sn f s  sn f s  sn f s  sn f s  sn f s  sn f s  sn f s  sn f )!Nr'   r   r%   g?i   r      i%  r   g-C6?i  i   iS i   r&   i/i4N  i  r   i'iV i3 i    i;e {Gz?i i   i'SgMbP?)z-0.10z0.05 - 3.2*Iz0.05 + 3.2*Ic              3   z   >#    U  H0  n[        TU   TU   -
  TU   -  R                  5       5      S :  v   M2     g7f)r$  N)r   r   )r   rm   r   ts     r3   r   ,test_eval_approx_relative.<locals>.<genexpr>  s9     K]sQqTAaD[!A$&))+,t3]s   8;)r   r   rf   r   r   r   r   r   r   r   dxdyr   r   eval_approxr   allr   )rm   r   r&  s    @@r3   test_eval_approx_relativer,  w  s   .3Ah7hA1q!	$h7A+,-1aOOD!1-cHR-#c	9SAcE#I%2' ' ' ' aDKKM123AOOD$'3cHT51AfHVOCu&/81 1 1 1 QqT!$$%,,,QqT!$$%,,,QqT!$$%,,,QqT!$$%,,,QqT!$$%,,,aDKKM123AOOD$'3v 66& Hv6&082 2 2 2 QqT!$$%,,,QqT!$$%,,,QqT!$$%,,,QqT!$$%,,,QqT!$$%,,, aDKKM*+,!QOOaO !,'"HVW$='	'@Q$Q!AgIg$5517 7 7 7 q1##%(()!A$./$666q1##%(()!A$./113d:::q1##%(()!A$./113d:::q1##%(()!A$./113d:::q1##%(()!A$./113d:::aDKKM*+,!QOOaO !,'"HWh$?!I+hBV$V(#a	k(&::1< < < < q1##%(()!A$./$666q1##%(()!A$./113d:::q1##%(()!A$./113d:::q1##%(()!A$./113d:::q1##%(()!A$./113d:::aDKKM#$%1aq	1%AAqCFA #1 1 1 1KU3q6]KKKKK_ 	8- 4 4 - - 	&s/   *^^	^^/^^^"4^'c                      [        [        S-  [        -
  S-   S5      n [        [        [        S[        45      n[	        [
        X5      (       d   eg )Nr   r%   r   )r   r   r   r    r   r   )r"   r   s     r3   test_issue_15920r.    s?    q!tax!|QAQ1IARr2   c            
         [         S-  [         -
  S-   n [        [        U 5      R                  5       5      S:X  d   e[        [        U R	                  [         [        [         5      5      5      R                  5       5      S:X  d   e[        [        U R	                  [         [        [        5      5      5      R                  5       5      S:X  d   eg )Nr'   r%   z[CRootOf(x**3 - x + 1, 0)])r    r   r   r   ry   r   r   )ri   s    r3   test_issue_19113r0    s    	
AABtBx""$%)EEEEtBGGAs1v&'224 
)* * *tBGGAs1v&'224 
)* * *r2   )V__doc__sympy.polys.polytoolsr   r	  r   r   r   r   r   r   r   r  sympy.polys.polyerrorsr	   r
   r   sympy.core.functionr   r   sympy.core.numbersr   r   r   sympy.core.relationalr   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympy.integrals.integralsr   sympy.polys.orthopolysr   sympy.solvers.solversr   sympy.testing.pytestr   r   sympy.core.exprr   	sympy.abcr   r   r   r    r!   r"   rT   r\   r_   ro   rq   rt   rw   rz   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.  r0  r1   r2   r3   <module>rA     s0   F & - -   3 3 3 $ " = 9 8 . 0 ' . % & &Q:hLH;6468I0 X$ X$v	.:#L)2X.3bEK	725	H	F*#)4-( 1L 1Lh*r2   