
    g-                     Z   d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZ ddlmZ ddlmZ dd	lmZ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 ddl m!Z! ddl"m#Z#  ed          \  Z$Z%Z&Z'Z(Z)Z*Z+Z,Z-Z. edd          \  Z/Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d Z9d Z:d Z;dS )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                     t          d          } | d         | d         | d         | d         g}t          |           |k    sJ t          t          | d          d                   dk    sJ t          d          t          d	          t          d
          }}}t          |||f          |||gk    sJ t	          d          dz  t          d          dz  z   dz
  }t          |g          |gk    sJ d S )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        \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_polyutils.pytest__nsortr'       s   	 B 	C 	CA  Q41quae
$C!99va4(((+,,1111%jj#d))SZZ!qA1a)Aq	))))A	CFFAI!A1#;;1#    c                     t          g           dk    sJ t          t          g          t          fk    sJ t          t          g          t          fk    sJ t          t          g          t          fk    sJ t          t          t          g          t          t          fk    sJ t          t          t          g          t          t          fk    sJ t          t          t          g          t          t          fk    sJ t          t          t          t          g          t          t          t          fk    sJ t          t          t          t          gt                    t          t          t          fk    sJ t          t          t          t          gt                    t          t          t          fk    sJ t          t          t          t          gt                    t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd	          t          t          t          fk    sJ t          t          t          t          gd
          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gt          dg          t          t          t          fk    sJ t          t          t          t          gt          dg          t          t          t          fk    sJ t          t          t          t          gt          dg          t          t          t          fk    sJ t          t          t          t          gt          dg          t          t          t          fk    sJ t          t          t          t          gddg          t          t          t          fk    sJ t          t          t          t          gddg          t          t          t          fk    sJ t          t          t          t          gddg          t          t          t          fk    sJ t          t          t          t          gddg          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gd          t          t          t          fk    sJ t          t          t          t          gdd          t          t          t          fk    sJ t          t          t          t          gdd          t          t          t          fk    sJ t          t          t          t          gdd          t          t          t          fk    sJ t	          d          } t          | g          | fk    sJ t          t          | g          t          | fk    sJ t          d          }t          |          |k    sJ d S )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4q!QiQ'''Aq!94444q!QiQ'''Aq!94444q!QiS)))aAY6666q!QiS)))aAY6666q!QiS)))aAY6666q!QiU+++1ay8888q!QiU+++1ay8888q!QiU+++1ay8888q!QiU+++1ay8888q!QiV,,,Aq	9999q!QiV,,,Aq	9999q!QiV,,,Aq	9999q!QiV,,,Aq	9999q!QiaX...1a);;;;q!QiaX...1a);;;;q!QiaX...1a);;;;q!QiaX...1a);;;;q!Qic3Z000Q1I====q!Qic3Z000Q1I====q!Qic3Z000Q1I====q!Qic3Z000Q1I====q!Qik222q!Qi????q!Qik222q!Qi????q!Qik222q!Qi????q!QiSw777Aq!9DDDDq!QiSw777Aq!9DDDDq!QiSw777Aq!9DDDD 
Brdu$$$$q"g1b'))))233Aa==Ar(   c                  F   t          g g           dk    sJ t          t          gt          g          t          fk    sJ t          t          gt          g          t          fk    sJ t          t          t          gt          g          t          t          fk    sJ t          t          gt          t          g          t          t          fk    sJ t          t          t          gt          t          g          t          t          fk    sJ t          t          t          gt          t          g          t          t          fk    sJ t          t          gt          g          t          t          fk    sJ t          t          gt          g          t          t          fk    sJ t          t          gt          t          g          t          t          fk    sJ t          t          t          gt          g          t          t          fk    sJ t          t          t          t          gt          t          t          g          t          t          t          fk    sJ t          t          t          t          gt          t          t          g          t          t          t          fk    sJ t          t          t          t          gt          t          t          g          t          t          t          fk    sJ t          t          t          t          gt          t          t          g          t          t          t          fk    sJ t          t          t          t          gt          t          t
          t          t          g          t          t          t          t
          t          t          fk    sJ d S )Nr*   )r   r,   yztr-   r.   r*   r(   r&   test__unify_gensr7   w   sy   r2"$$$$sQC  QD((((sQC  QD((((1vs##1v----sQF##1v----1v1v&&1a&00001v1v&&1a&0000sQC  QF****sQC  QF****sQF##1v----1vs##1v----1ay1a),,Aq	99991ay1a),,Aq	99991ay1a),,Aq	99991ay1a),,Aq	99991ay1aAq/22q!Q1a6HHHHHHHr(   c                     t          t          t          t          f          t          t          t          fk    sJ t          t          t          t          g          t          t          t          fk    sJ t          t          t          t          gf          t          t          t          fk    sJ t          t          t          t          ff          t          t          t          fk    sJ d S N)r   r,   r4   r5   r*   r(   r&   test__analyze_gensr:      s    !Q##1ay0000!Q##1ay00001a)&&1a)33331a)&&1a)333333r(   c                  p   t          g d          g k    sJ t          g d          g k    sJ g dddgdgg} dgddgg dg}t          | d          |k    sJ ddgg dddgdgg} dgddgddgg dg}t          | d          |k    sJ ddgg dddgdgg} dgddgddgg dg}t          | d          |k    sJ g ddfddgdfdgdfg} dgdfddgdfg ddfg}t          | d          |k    sJ ddgdfg ddfddgdfdgdfg} dgdfddgdfddgdfg ddfg}t          | d          |k    sJ ddgdfg ddfddgdfdgdfg} dgdfddgdfddgdfg ddfg}t          | d          |k    sJ ddgdfg ddfddgdfdgdfg} dgdfddgdfddgdfg ddfg}t          | d          |k    sJ d S )NT)multipleF)r   r      r   r   )r   )FGs     r&   test__sort_factorsr@      s   d+++r1111e,,,2222	QFQC A
q!fiii AU+++q0000
QQFQC(A
q!fq!fiii(AU+++q0000
QQFQC(A
q!fq!fiii(AU+++q0000
))Q1a&!sAh/A#qQFA;A/AT***a////a&!yyy!n1vqkQC8<A#qQFA;!Qiii^<AT***a////a&!yyy!n1vqkQC8<A#qQFA;!Qiii^<AT***a////a&!yyy!n1vqkQC8<A#qQFA;!Qiii^<AT***a//////r(   c            	      4   t          t          d          t          f          dt          d          it          ffk    sJ t          t          d          t          t          f          dt          d          it          t          ffk    sJ t          t          d          t          t          t          f          dt          d          it          t          t          ffk    sJ t          t          d          t          f          dt          d          it          ffk    sJ t          t          d          t          t          f          dt          d          it          t          ffk    sJ t          t          d          t          t          t          f          dt          d          it          t          t          ffk    sJ t          t          d          t          z  t          f          dt          d          it          ffk    sJ t          t          d          t          z  t          t          f          dt          d          it          t          ffk    sJ t          t          d          t          z  t          t          t          f          d	t          d          it          t          t          ffk    sJ t          t          d          t          d
z  z  t          f          dt          d          it          ffk    sJ t          t          d          t          d
z  z  t          z  t          t          f          dt          d          it          t          ffk    sJ t          t          d          t          d
z  z  t          z  t          dz  z  t          t          t          f          dt          d          it          t          t          ffk    sJ t          t          dt          z  z   dt          z  z   t          f          t          d          dt          z  dt          z  z   dt          ffk    sJ t          t          dt          z  z   dt          z  z   t          t          f          t          d          t          d          dt          z  dt          t          ffk    sJ t          t          dt          z  z   dt          z  z   t          t          t          f          t          d          t          d          t          d          dt          t          t          ffk    sJ t          t          t          z  dt          z  t          z  z   dt          z  t          z  z   t          f          t          dt          z  z   dt          z  t          z  dt          ffk    sJ t          t          t          z  dt          z  t          z  z   dt          z  t          z  z   t          t          f          t          d          dt          z  dt          z  dt          t          ffk    sJ t          t          t          z  dt          z  t          z  z   dt          z  t          z  z   t          t          t          f          t          d          t          d          t          d          dt          t          t          ffk    sJ t          dt          z  t          z  t          f          ddt          z  it          ffk    sJ t          t          t          t          ddf          t          z             dddt          t          t          t          ddf          ffk    sJ t          t          d            d S )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                  \    t          dt          z  t          z  t          t          f          S )Nr   rC   )r   r4   r,   r*   r(   r&   <lambda>z.test__dict_from_expr_if_gens.<locals>.<lambda>   s    N1a46A$G$G$G r(   )r   r   r,   r4   r5   r   r   r   r*   r(   r&   test__dict_from_expr_if_gensrT      sL   1$     %)72;;$7!#>? ? ? ?1a&" " "'-wr{{&;aV%DE E E E1a)% % %*3WR[[)AAq!9(MN N N N A4! ! !&*GCLL%9A4$@A A A AAq6# # #(.'=1v&FG G G G' q!9  #,gcll";aAY!GH H H H AQD" " "'+WR[[&9A4%@A A A AAQF$ $ $)/(=1v'FG G G G'
 1I  $-wr{{#;aAY"GH H H H AqDt% % %*.)<qd(CD D D DAqD!Q) ) ).4gbkk-BQF,KL L L L'"++ad*1,QU2	1a:   !72;;/!Q;< < < < !ac'AaC-qd333

!A#!)	,	,qd34 4 4 4!ac'AaC-q!f555!**gajj!A#	>	>AGH H H H!ac'AaC-q!Qi888 "1::'!**
> 
>@A1ay	JJ J J J !A#!A+!A-QD999AaCqs1u	%	%t,- - - -!A#!A+!A-QF;;;!**ac1Q3	7	7!Q@A A A A!A#!A+!A-Q1I>>> "1::'!**
> 
>@A1ay	JJ J J J !Q$q&t,,,$1t0DDDDD(1q!Qi001455AHQAq	$:$: ;:= = = = =
?GGHHHHHr(   c                     t          t          d                    dt          d          idfk    sJ t          t                    dt          d          it          ffk    sJ t          t                    dt          d          it          ffk    sJ t          t          t          z            dt          d          it          t          ffk    sJ t          t          t          z             t          d          t          d          dt          t          ffk    sJ t          t	          d                    dt          d          it	          d          ffk    sJ t          t	          d          d	          dt	          d          idfk    sJ t          t          t          z  t
          t                   
          dt          it          ffk    sJ t          t          t          z  t
          t                   
          dt          it          ffk    sJ t          dt	          d          z  t          z  t          z  t          z  d           ddit          t          t          t	          d          ffk    sJ t          dt	          d          z  t          z  t          z  t          z  d          ddt	          d          z  it          t          t          ffk    sJ t          dt	          d          z  t          z  t          z  t          z  d          ddt	          d          z  it          t          t          ffk    sJ t          t                    t          t                    z  t          t                    t          t                    z  z   t          t                    t          t                    z  z   t          t                    t          t                    z  z   } t          |           dddddt          t                    t          t                    t          t                    t          t                    ffk    sJ d S )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_gensrZ      s   '"++&&B+<b*AAAAA!$

!3aT :::::!$

!3aT :::::!A#FGAJJ#7!Q"@@@@@	A #AJJ

;;aVDE E E E $q''""gajj'9DGG:&FFFFF$q''%000b$q'']B4GGGGG!A#be,,,$QD0AAAAA!A#be,,,$QD0AAAAA!D	  !# # #(4a'81aT!WW:M&NO O O O!D	  !# # #(11T!WW9'=1bz&JK K K K !D	  !# # #(11T!WW9'=1bz&JK K K K 	As1vvAs1vv%As1vv5As1vvEA!q"* "*,/FFCFFCFFCFF+K!M M M M M M Mr(   c                     t          t          dt          z  z   dt          z  z   t	          d          gt          f          t	          d          dt          z  dt          z  z   ddt	          d          igt          ffk    sJ d S )Nr   r=   rK   rC   r   rM   rE   )r   r,   r4   r5   r   r*   r(   r&   %test__parallel_dict_from_expr_if_gensr\     s    "A!GacM71::#>aTJJJ1Q319
-
-gajj/A	BQDIJ J J J J Jr(   c                  <   t          t          t          z  t          d          g          dt          d          idt          d          igt          t          ffk    sJ t          t          t          z  dt          z  t          d          g          dt          d          idt          d          idt          d          igt          t          t          ffk    sJ t          t          t          t          dz  d	
          f          ddigt          ffk    sJ d S )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571::
 4	51v>? ? ? ?"AaC1gajj#9::g  WQZZ(9gajj*A
CEF1I	OO O O O #C1a4%$@$@$@#BCC)qd     r(   c                  >   t          t          t          d          t          t          dz  d          g          t          d           t          d          dt          d           t          d          dgt          ffk    sJ t	          t
          d            d S )Nr   r   rE   rH   )rE   )r   c                  \    t          t          t          z  t          t          z  z
  g          S r9   )r   ABr*   r(   r&   rS   z.test_parallel_dict_from_expr.<locals>.<lambda>%  s    $;QqS1Q3YK$H$H r(   )r   r   r,   r   r   r   r*   r(   r&   test_parallel_dict_from_exprre   !  s    "Bq!HHb	1a/ / $   '

{'!**== '

{'!**==?ABFF F F F ?HHIIIIIr(   c                      t          t          t          d                    t          d           t          d          dt          ffk    sJ t	          t
          d            t	          t
          d            d S )Nr   ra   c                  Z    t          t          t          z  t          t          z  z
            S r9   )r   rc   rd   r*   r(   r&   rS   z%test_dict_from_expr.<locals>.<lambda>+  s    N1Q319$=$= r(   c                  4    t          t          j                  S r9   )r   r   truer*   r(   r&   rS   z%test_dict_from_expr.<locals>.<lambda>,  s    N16$:$: r(   )r   r   r,   r   r   r   r*   r(   r&   test_dict_from_exprrj   (  sw    "Q((##71::	.	.56 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wrc   rd   r'   r2   r7   r:   r@   rT   rZ   r\   r_   re   rj   r*   r(   r&   <module>r}      sQ   F F       , , , , , , , , $ $ $ $ $ $ " " " " " " / / / / / / / / 6 6 6 6 6 6 9 9 9 9 9 9 ? ? ? ? ? ? ? ? . . . . . . ' ' ' ' ' '                  3 2 2 2 2 2 " " " " " "")'*A"B"B 1aAq!Q1awu%(((1  88 8 8vI I I44 4 4%0 %0 %0P0I 0I 0IfM M M<J J J
  J J J< < < < <r(   