
    \h-                     F   S 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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JrJrJrJrJrJr  SSK J!r!  SSK"J#r#  \" S5      u  r$r%r&r'r(r)r*r+r,r-r.\" SSS9u  r/r0S r1S r2S r3S r4S r5S r6S r7S r8S r9S r:S r;g)z@Tests for useful utilities for higher level polynomial classes.     )Mul)Integerpi)Eq)S)Symbolsymbols)exp)sqrt)cossin)Integral)raises)_nsort
_sort_gens_unify_gens_analyze_gens_sort_factorsparallel_dict_from_exprdict_from_expr)PolynomialError)ZZzx,y,z,p,q,r,s,t,u,v,wzA,BF)commutativec                  h   [        S5      n U S   U S   U S   U S   /n[        U 5      U:X  d   e[        [        U SS9S   5      S:X  d   e[        S5      [        S	5      [        S
5      pCn[        X#U45      XBU/:X  d   e[	        S5      S-  [        S5      S-  -   S-
  n[        U/5      U/:X  d   eg )NaP  [3/2 + sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) - 4/sqrt(-7/3 +
    61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3)) -
    61/(18*(-415/216 + 13*I/12)**(1/3)))/2 - sqrt(-7/3 + 61/(18*(-415/216
    + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3))/2, 3/2 - sqrt(-7/3
    + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3))/2 - sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) -
    4/sqrt(-7/3 + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3)) - 61/(18*(-415/216 + 13*I/12)**(1/3)))/2, 3/2 +
    sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) + 4/sqrt(-7/3 +
    61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3)) -
    61/(18*(-415/216 + 13*I/12)**(1/3)))/2 + sqrt(-7/3 + 61/(18*(-415/216
    + 13*I/12)**(1/3)) + 2*(-415/216 + 13*I/12)**(1/3))/2, 3/2 + sqrt(-7/3
    + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3))/2 - sqrt(-14/3 - 2*(-415/216 + 13*I/12)**(1/3) +
    4/sqrt(-7/3 + 61/(18*(-415/216 + 13*I/12)**(1/3)) + 2*(-415/216 +
    13*I/12)**(1/3)) - 61/(18*(-415/216 + 13*I/12)**(1/3)))/2]   r   T)	separatediii   )r   r   lenr
   r   r   )ransbcas        X/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_polyutils.pytest__nsortr'       s    	 B 	CA  Q41quae
$C!9va4(+,111%j#d)SZ!A1)q	)))A	CFAI!A1#;1#    c                      [        / 5      S:X  d   e[        [        /5      [        4:X  d   e[        [        /5      [        4:X  d   e[        [        /5      [        4:X  d   e[        [        [        /5      [        [        4:X  d   e[        [        [        /5      [        [        4:X  d   e[        [        [        /5      [        [        4:X  d   e[        [        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /[        S9[        [        [        4:X  d   e[        [        [        [        /[        S9[        [        [        4:X  d   e[        [        [        [        /[        S9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /S	S9[        [        [        4:X  d   e[        [        [        [        /S
S9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /[        S/S9[        [        [        4:X  d   e[        [        [        [        /[        S/S9[        [        [        4:X  d   e[        [        [        [        /[        S/S9[        [        [        4:X  d   e[        [        [        [        /[        S/S9[        [        [        4:X  d   e[        [        [        [        /SS/S9[        [        [        4:X  d   e[        [        [        [        /SS/S9[        [        [        4:X  d   e[        [        [        [        /SS/S9[        [        [        4:X  d   e[        [        [        [        /SS/S9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SS9[        [        [        4:X  d   e[        [        [        [        /SSS9[        [        [        4:X  d   e[        [        [        [        /SSS9[        [        [        4:X  d   e[        [        [        [        /SSS9[        [        [        4:X  d   e[	        S5      n [        U /5      U 4:X  d   e[        [        U /5      [        U 4:X  d   e[        S5      n[        U5      U:X  d   eg )N )wrtxpqzx,qzq,xzp,qzq,pzx, qzq, xzp, qzq, pz	x > p > q)sortz	p > x > qz	p > q > xzq > p)r+   r/   zq > xzp > xz
1z x0,x1,x2,x10,x11,x12,x20,x21,x22)r   r,   r-   r.   r   r	   )n1Xs     r&   test__sort_gensr2   <   s   b>Rqc?qd"""qc?qd"""qc?qd"""q!f!Q'''q!f!Q'''q!f!Q'''q!Qi Q1I---q!QiQ'Aq!9444q!QiQ'Aq!9444q!QiQ'Aq!9444q!QiS)aAY666q!QiS)aAY666q!QiS)aAY666q!QiU+1ay888q!QiU+1ay888q!QiU+1ay888q!QiU+1ay888q!QiV,Aq	999q!QiV,Aq	999q!QiV,Aq	999q!QiV,Aq	999q!QiaX.1a);;;q!QiaX.1a);;;q!QiaX.1a);;;q!QiaX.1a);;;q!Qic3Z0Q1I===q!Qic3Z0Q1I===q!Qic3Z0Q1I===q!Qic3Z0Q1I===q!Qik2q!Qi???q!Qik2q!Qi???q!Qik2q!Qi???q!QiSw7Aq!9DDDq!QiSw7Aq!9DDDq!QiSw7Aq!9DDD 
Brdu$$$q"g1b')))23Aa=Ar(   c                     [        / / 5      S:X  d   e[        [        /[        /5      [        4:X  d   e[        [        /[        /5      [        4:X  d   e[        [        [        /[        /5      [        [        4:X  d   e[        [        /[        [        /5      [        [        4:X  d   e[        [        [        /[        [        /5      [        [        4:X  d   e[        [        [        /[        [        /5      [        [        4:X  d   e[        [        /[        /5      [        [        4:X  d   e[        [        /[        /5      [        [        4:X  d   e[        [        /[        [        /5      [        [        4:X  d   e[        [        [        /[        /5      [        [        4:X  d   e[        [        [        [        /[        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /[        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /[        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /[        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /[        [        [
        [        [        /5      [        [        [        [
        [        [        4:X  d   eg )Nr*   )r   r,   yztr-   r.   r*   r(   r&   test__unify_gensr7   w   s   r2"$$$sQC QD(((sQC QD(((1vs#1v---sQF#1v---1v1v&1a&0001v1v&1a&000sQC QF***sQC QF***sQF#1v---1vs#1v---1ay1a),Aq	9991ay1a),Aq	9991ay1a),Aq	9991ay1a),Aq	9991ay1aAq/2q!Q1a6HHHHr(   c                     [        [        [        [        45      [        [        [        4:X  d   e[        [        [        [        /5      [        [        [        4:X  d   e[        [        [        [        /45      [        [        [        4:X  d   e[        [        [        [        445      [        [        [        4:X  d   eg N)r   r,   r4   r5   r*   r(   r&   test__analyze_gensr:      s    !Q#1ay000!Q#1ay0001a)&1a)3331a)&1a)333r(   c                     [        / SS9/ :X  d   e[        / SS9/ :X  d   e/ SQSS/S//n S/SS// SQ/n[        U SS9U:X  d   eSS// SQSS/S//n S/SS/SS// SQ/n[        U SS9U:X  d   eSS// SQSS/S//n S/SS/SS// SQ/n[        U SS9U:X  d   e/ SQS4SS/S4S/S4/n S/S4SS/S4/ SQS4/n[        U SS9U:X  d   eSS/S4/ SQS4SS/S4S/S4/n S/S4SS/S4SS/S4/ SQS4/n[        U SS9U:X  d   eSS/S4/ SQS4SS/S4S/S4/n S/S4SS/S4SS/S4/ SQS4/n[        U SS9U:X  d   eSS/S4/ SQS4SS/S4S/S4/n S/S4SS/S4SS/S4/ SQS4/n[        U SS9U:X  d   eg )NT)multipleF)r   r      r   r   )r   )FGs     r&   test__sort_factorsr@      so   d+r111e,222	QFQC A
q!fi AU+q000
QQFQC(A
q!fq!fi(AU+q000
QQFQC(A
q!fq!fi(AU+q000
Q1a&!sAh/A#qQFA;A/AT*a///a&!y!n1vqkQC8<A#qQFA;!Qi^<AT*a///a&!y!n1vqkQC8<A#qQFA;!Qi^<AT*a///a&!y!n1vqkQC8<A#qQFA;!Qi^<AT*a///r(   c            	         [        [        S5      [        4S9S[        S5      0[        44:X  d   e[        [        S5      [        [        4S9S[        S5      0[        [        44:X  d   e[        [        S5      [        [        [        4S9S[        S5      0[        [        [        44:X  d   e[        [        S5      [        4S9S[        S5      0[        44:X  d   e[        [        S5      [        [        4S9S[        S5      0[        [        44:X  d   e[        [        S5      [        [        [        4S9S[        S5      0[        [        [        44:X  d   e[        [        S5      [        -  [        4S9S[        S5      0[        44:X  d   e[        [        S5      [        -  [        [        4S9S[        S5      0[        [        44:X  d   e[        [        S5      [        -  [        [        [        4S9S	[        S5      0[        [        [        44:X  d   e[        [        S5      [        S
-  -  [        4S9S[        S5      0[        44:X  d   e[        [        S5      [        S
-  -  [        -  [        [        4S9S[        S5      0[        [        44:X  d   e[        [        S5      [        S
-  -  [        -  [        S-  -  [        [        [        4S9S[        S5      0[        [        [        44:X  d   e[        [        S[        -  -   S[        -  -   [        4S9[        S5      S[        -  S[        -  -   S.[        44:X  d   e[        [        S[        -  -   S[        -  -   [        [        4S9[        S5      [        S5      S[        -  S.[        [        44:X  d   e[        [        S[        -  -   S[        -  -   [        [        [        4S9[        S5      [        S5      [        S5      S.[        [        [        44:X  d   e[        [        [        -  S[        -  [        -  -   S[        -  [        -  -   [        4S9[        S[        -  -   S[        -  [        -  S.[        44:X  d   e[        [        [        -  S[        -  [        -  -   S[        -  [        -  -   [        [        4S9[        S5      S[        -  S[        -  S.[        [        44:X  d   e[        [        [        -  S[        -  [        -  -   S[        -  [        -  -   [        [        [        4S9[        S5      [        S5      [        S5      S.[        [        [        44:X  d   e[        S[        -  [        -  [        4S9SS[        -  0[        44:X  d   e[        [        [        [        SS45      [        -   5      SSS.[        [        [        [        SS45      44:X  d   e[        [        S 5        g )N   gensr   r   r   r   r   r   ir   r   r   r   r   r      )rK   )rK   r      )rK   r   rL   r   r=   r   rH   rE   )rI   r   r   rF   )rJ   )r   r   r   r   r   r   )r   r   rI   rN   )r   r   r   )r   r   r   )r   r   r   )rN   rI   c                  F    [        S[        -  [        -  [        [        4S9$ )Nr   rC   )r   r4   r,   r*   r(   r&   <lambda>.test__dict_from_expr_if_gens.<locals>.<lambda>   s    N1a46A$Gr(   )r   r   r,   r4   r5   r   r   r   r*   r(   r&   test__dict_from_expr_if_gensrU      s   1$ %)72;$7!#>? ? ?1a&"'-wr{&;aV%DE E E1a)%*3WR[)AAq!9(MN N N A4!&*GCL%9A4$@A A AAq6#(.'=1v&FG G G'q!9#,gcl";aAY!GH H H AQD"'+WR[&9A4%@A A AAQF$)/(=1v'FG G G'
1I$-wr{#;aAY"GH H H AqDt%*.)<qd(CD D DAqD!Q).4gbk-BQF,KL L L'"+ad*1,QU2	1a: !72;/!Q;< < < !ac'AaC-qd3
!A#!)	,qd34 4 4!ac'AaC-q!f5!*gaj!A#	>AGH H H!ac'AaC-q!Qi8"1:'!*
>@A1ay	JJ J J !A#!A+!A-QD9AaCqs1u	%t,- - -!A#!A+!A-QF;!*ac1Q3	7!Q@A A A!A#!A+!A-Q1I>"1:'!*
>@A1ay	JJ J J !Q$q&t,$1t0DDDD(1q!Qi0145AHQAq	$: ;:= = = =
?GHr(   c                     [        [        S5      5      S[        S5      0S4:X  d   e[        [        5      S[        S5      0[        44:X  d   e[        [        5      S[        S5      0[        44:X  d   e[        [        [        -  5      S[        S5      0[        [        44:X  d   e[        [        [        -   5      [        S5      [        S5      S.[        [        44:X  d   e[        [	        S5      5      S[        S5      0[	        S5      44:X  d   e[        [	        S5      SS	9S[	        S5      0S4:X  d   e[        [        [        -  [
        [           S
9S[        0[        44:X  d   e[        [        [        -  [
        [           S
9S[        0[        44:X  d   e[        S[	        S5      -  [        -  [        -  [        -  S S9SS0[        [        [        [	        S5      44:X  d   e[        S[	        S5      -  [        -  [        -  [        -  SS9SS[	        S5      -  0[        [        [        44:X  d   e[        S[	        S5      -  [        -  [        -  [        -  SS9SS[	        S5      -  0[        [        [        44:X  d   e[        [        5      [        [        5      -  [        [        5      [        [        5      -  -   [        [        5      [        [        5      -  -   [        [        5      [        [        5      -  -   n [        U 5      SSSSS.[        [        5      [        [        5      [        [        5      [        [        5      44:X  d   eg )NrB   r*   rH   r   rP   )rI   rN   r   F)greedy)domainr=   )	extension)r   r   r   r   T)r   r   r   ))r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )	r   r   r,   r4   r   r   r   r   r   )fs    r&   test__dict_from_expr_no_gensr[      s'   '"+&B+<b*AAAA!$
!3aT ::::!$
!3aT ::::!A#FGAJ#7!Q"@@@@	A#AJ
;aVDE E E $q'"gaj'9DG:&FFFF$q'%0b$q']B4GGGG!A#be,$QD0AAAA!A#be,$QD0AAAA!D	 !#(4a'81aT!W:M&NO O O!D	 !#(11T!W9'=1bz&JK K K !D	 !#(11T!W9'=1bz&JK K K 	As1vAs1v%As1v5As1vEA!q"*,/FCFCFCF+K!M M M Mr(   c                      [        [        S[        -  -   S[        -  -   [	        S5      /[        4S9[	        S5      S[        -  S[        -  -   S.S[	        S5      0/[        44:X  d   eg )Nr   r=   rK   rC   r   rM   rE   )r   r,   r4   r5   r   r*   r(   r&   %test__parallel_dict_from_expr_if_gensr]     sf    "A!GacM71:#>aTJ1Q319
-gaj/A	BQDIJ J Jr(   c                     [        [        [        -  [        S5      /5      S[        S5      0S[        S5      0/[        [        44:X  d   e[        [        [        -  S[        -  [        S5      /5      S[        S5      0S[        S5      0S[        S5      0/[        [        [        44:X  d   e[        [        [        [        S-  S	S
945      SS0/[        44:X  d   eg )Nr=   rP   r   rF   r   rQ   rO   rG   F)evaluate)r=   )r   r,   r4   r   r5   r   r*   r(   r&   %test__parallel_dict_from_expr_no_gensr`     s    "AaC#4571:
 4	51v>? ? ?"AaC1gaj#9:g WQZ(9gaj*A
CEF1I	OO O O #C1a4%$@#BC)qd  r(   c                      [        [        [        S5      [        [        S-  S5      /5      [        S5      * [        S5      S.[        S5      * [        S5      S./[        44:X  d   e[	        [
        S 5        g )Nr   r   rE   rH   )rE   )r   c                  L    [        [        [        -  [        [        -  -
  /5      $ r9   )r   ABr*   r(   r&   rS   .test_parallel_dict_from_expr.<locals>.<lambda>%  s    $;QqS1Q3YK$Hr(   )r   r   r,   r   r   r   r*   r(   r&   test_parallel_dict_from_exprrg   !  sz    "Bq!Hb	1a/ $  '
{'!*= '
{'!*=?ABFF F F ?HIr(   c                      [        [        [        S5      5      [        S5      * [        S5      S.[        44:X  d   e[	        [
        S 5        [	        [
        S 5        g )Nr   rb   c                  J    [        [        [        -  [        [        -  -
  5      $ r9   )r   rd   re   r*   r(   r&   rS   %test_dict_from_expr.<locals>.<lambda>+  s    N1Q319$=r(   c                  4    [        [        R                  5      $ r9   )r   r   truer*   r(   r&   rS   rj   ,  s    N166$:r(   )r   r   r,   r   r   r   r*   r(   r&   test_dict_from_exprrm   (  sN    "Q(#71:	.56 6 6
?=>
?:;r(   N)<__doc__sympy.core.mulr   sympy.core.numbersr   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   r	   &sympy.functions.elementary.exponentialr
   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   r   sympy.integrals.integralsr   sympy.testing.pytestr   sympy.polys.polyutilsr   r   r   r   r   r   r   sympy.polys.polyerrorsr   sympy.polys.domainsr   r,   r4   r5   r-   r.   r!   sr6   uvwrd   re   r'   r2   r7   r:   r@   rU   r[   r]   r`   rg   rm   r*   r(   r&   <module>r      s    F  , $ " / 6 9 ? . '   3 "")*A"B 1aAq!Q1au%(188vI44%0P0IfM<J
J<r(   