
    sg-                     L   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;y)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                  l   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 y )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        S/var/www/html/venv/lib/python3.12/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!qA1a)Aq	)))A	CFAI!A1#;1#    c                  z   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 y )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                     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 y )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                  x   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 y 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                     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 y )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            	      @   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        y )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                  L    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 r(   )r   r   r,   r4   r5   r   r   r   r*   r(   r&   test__dict_from_expr_if_gensrT      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                     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 y )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!$
!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                      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 y )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                     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 y )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                      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        y )Nr   r   rE   rH   )rE   )r   c                  L    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 r(   )r   r   r,   r   r   r   r*   r(   r&   test_parallel_dict_from_exprre   !  sz    "Bq!Hb	1a/ $  '
{'!*= '
{'!*=?ABFF F F ?HIr(   c                      t        t        t        d            t        d       t        d      dt        ffk(  sJ t	        t
        d        t	        t
        d        y )Nr   ra   c                  J    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    N166$: r(   )r   r   r,   r   r   r   r*   r(   r&   test_dict_from_exprrj   (  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wrc   rd   r'   r2   r7   r:   r@   rT   rZ   r\   r_   re   rj   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(   