
    Xh;                        d Z ddlmZmZ ddlmZmZmZ ddlm	Z	 ddl
mZ ddlmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZmZmZm Z m!Z!m"Z" ddl#m$Z$ ddl%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0 ddlm1Z1 ddl2m3Z3 ddl4m5Z5 ddl6m7Z7m8Z8 ddl9m:Z: d Z;d Z<d Z=d Z>d Z?d Z@d ZAd ZBd ZCd ZDd S )!z6Tests for solvers of systems of polynomial equations.     )ZZQQ_I)IIntegerRational)S)symbols)sqrt)QQ)UnsolvableFactorError)Options)Poly)CRootOf)solve)flatten)abcxyz)PolynomialError)solve_poly_systemsolve_triangulatedsolve_biquadraticSolveFailedsolve_genericfactor_system_boolfactor_system_condfactor_system_polyfactor_system_factor_sets_factor_sets_slow)parallel_poly_from_expr)raises)Eq)sincos)expc                  
   t          t          dz
  gt                    t          j        fgk    sJ t          t          t          z
  t          t          z
  dz
  gt          t                    J t          t          t          dz  z
  t          t          dz  z   gt          t                    t          j        t          j        fgk    sJ t          dt          z  dz
  t          t          dd          z  dt          z  z
  t          dt          z  z
  gt          t          t                    t          dd          t          d          t          d          fgk    sJ t          t          t          z  dt          z  z
  dt          dz  z  t          dz  z
  gt          t                    ddt          d           fdt          d          fgk    sJ t          t          t          dz  z
  t          t          dz  z   dz   gt          t                    t           t          t          j                  z  t          dd          ft          t          t          j                  z  t          dd          fgk    sJ t          dz  t          z   t          z   dz
  } t          t          dz  z   t          z   dz
  }t          t          z   t          dz  z   dz
  }t          d          dz
  t          d           dz
  }}t          | ||gt          t          t                    dd	d
|||f|||fgk    sJ ddg}t          t          t          dz  t          dz  z
            t          t          dz
            g          |k    sJ t          t          dz  t          dz  z
  t          dz
  gt          t                    |k    sJ t          t          dz  t          dz  z
  t          dz
  g          |k    sJ t          t          t          t          z  z   dz
  t          t          t          z  z   dz
  gt          t                    ddgk    sJ t          t          d            t          t          d            t          t          d            t          t          d            t          t          d            t          t          dz  t          z
  dz   gt          gd          g k    sJ t          t           d            t          t          dz
  t          dz  t          z
  dz   z  t          dz  dz
  gt          t          gd          ddgk    sJ t          t           d            d S )N            
   )r   r   r   r   r+   r   r+   r   r+   r   r   r+   r0   r+   r+      ))r+   r,   c                  `    t          t          dz  t          dz  z
  gt          t                    S )Nr-   r   r   r        r/var/www/tools.fuzzalab.pt/emblema-extractor/venv/lib/python3.11/site-packages/sympy/solvers/tests/test_polysys.py<lambda>z(test_solve_poly_system.<locals>.<lambda>@   s!    (91a4!Q$;-A(N(N r<   c                      t          t          dt          z  t          dz  z  t          z   t          dz  t          z  z   t          dz  t           dz
  z  dz   g          S )Nr8   r,   r6   )r   r   r   r   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>A   sK    (9	
BqDAIMAqDF"AqD1"q&MA$56)8 )8 r<   c                  >    t          dt          z  gt                    S Nr+   r   r   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>C   s    $5qseQ$?$? r<   c                  L    t          t          dz
  gt          t          f          S rA   r:   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>E        (9Q3&1a&) ) r<   c                  L    t          t          dz
  gt          t          f          S rA   )r   r   r   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>G   rD   r<   Fstrictc                  Z    t          t          dz  t          z
  dz   gt          gd          S )Nr.   r+   TrF   rB   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>M   s-    *;	
AAD+* +* +* r<   c                      t          t          dz
  t          dz  t          z
  dz   z  t          dz  dz
  gt          t          gd          S )Nr+   r.   r,   TrF   r:   r;   r<   r=   r>   z(test_solve_poly_system.<locals>.<lambda>S   sC    $q1uq!tax!|&<ad1f%E&'VD: : : r<   )r   r   r   Oner   Zeror   r   r   r
   r   Halfr   r%   NotImplementedErrorr   r   )f_1f_2f_3r   r   solutions         r=   test_solve_poly_systemrR      s   a!eWa((aeXJ6666a!eQUQY/A66>>>a!Q$hAqD11a88afaf=M<NNNNNacAgq!Q'7!A#'=q1Q3wGAqQQ
1a..'!**gbkk	234 4 4 4 acAaCi1a4!Q$7A>>	!d1ggXDGG-. . . . a!Q$hAqD15q!<<"T!&\\/8B??	+aQVnhr1oo-NOP P P P Q$(Q,
C
ad(Q,
C
a%!Q$,
C77Q;a1qAc3_aA66	Iy1a)aAY?@ @ @ @  Hd1a4!Q$;//a!e=>>(JJJJadQTk1q511a88HDDDDadQTk1q5122h>>>>	
QqS1a!A#gk"Aq* *.6-?@ @ @ @  N NOOO
 !8 !8 9 9 9
???@@@
 ! !   
 ! !   
 adQhl^aS???2EEEE
  #* #* + + + q1uq!tax!|4adQh?!Q$)+ + +/6.?@ @ @ @
 : :; ; ; ; ;r<   c            
      4    t          t          t          fddi           t          t          dz  dt          dz  z  z
  t          dz  t          z
  dz   g           t	          dt	          d          t
          z  z
             t          dd          t	          d          t
          z  dz  z
  ft	          dt	          d          t
          z  z
            t          dd          t	          d          t
          z  dz  z
  ft	          dt	          d          t
          z  z              t          dd          t	          d          t
          z  dz  z   ft	          dt	          d          t
          z  z             t          dd          t	          d          t
          z  dz  z   fgk    sJ t          dt          z  t          z
  t          dz
  t          dz  t          z
  dz   z  g d	          t          dd          dfgk    sJ t          t           fd
           d S )Ndomainr   r,   r+   r0   r-   r.   FrF   c                      t          dt          z  t          z
  t          dz
  t          dz  t          z
  dz   z  g d          S )Nr,   r+   r.   TrF   )r   r   r   	NewOptions   r=   r>   z$test_solve_generic.<locals>.<lambda>d   sB    -	
1q1q51a4!8a<()9T+C +C +C r<   )	r   r   r   r   r
   r   r   r%   r   rV   s   @r=   test_solve_genericrX   W   s   A4 011I!Q$1a4-AA6	BB2Q	>"""HQNNT!WWQYq[$@A"tAwwqy.!!8Aq>>DGGAIaK#?@2Q	>"""HQNNT!WWQYq[$@A"tAwwqy.!!8Aq>>DGGAIaK#?@BB B B B 	
1q1q51a4!8a<()9UD D D
1a..!	      #C #C #C #C D D D D Dr<   c                  	   t          d          \  } }}}}t          dz
  dz  t          dz
  dz  z   |dz  z
  }t          dz
  dz  t          dz
  dz  z   |dz  z
  }t          d|dz  z  dz
            }d|z
  dz  }d|z   dz  }	t	          ||gt          t                    ||	f|	|fgk    sJ t          dz
  dz  t          dz
  dz  z   |dz  z
  }t          dz
  dz  t          dz
  dz  z   |dz  z
  }t	          ||gt          t                    dt          d|z  dz
  d|z  dz   z            dz  z
  t          dd          fdt          d|z  dz
  d|z  dz   z            dz  z   t          dd          fgk    sJ d t          dz
  dz  t          dz
  dz  z   |dz  z
  }t          |z
  dz  t          dz
  dz  z   |dz  z
  }t	          ||gt          t                    }
t          |
          dk    rt          d |
D                       sJ t          fdt          |
          D                       sJ t          | z
  dz  t          |z
  dz  z   |dz  z
  }t          |z
  dz  t          |z
  dz  z   |dz  z
  }t	          ||gt          t                    }
t          |
          dk    rt          d |
D                       sJ t          fd	t          |
          D                       sJ t          t          z  t          z
  t          dz  t          z
  f}t          |          t          dit          d
t          d
igk    sJ t          t          z  t          z
  t          dz  t          z
  f}t          |          t          dit          d
t          d
igk    sJ t          t          f}||fD ]/}t          |g|R  \  \  t          t          fd           0t          dz  t          dz  z   dz
  t          dz  dz
  f}t          |g|R  \  \  t                    g dk    sJ ddg}t          dz  t          dz  z   dz
  t          dz  dz
  f}t          |g|R  \  \  t                    |k    sJ t          dz  t          dz  z   dz
  t          dz  t          z
  t          dz  z   dz
  f}t          |g|R  \  \  t                    |k    sJ d S )Nzx0 y0 x1 y1 rr+   r,   r-   c                 6    | j         o| j        t          j        u S N)is_Powr)   r   rL   )exprs    r=   r>   z(test_solve_biquadratic.<locals>.<lambda>y   s    ;QV); r<   c              3   <   K   | ]}t          |          d k    V  dS r,   Nlen.0rs     r=   	<genexpr>z)test_solve_biquadratic.<locals>.<genexpr>   ,      #@#@ACFFaK#@#@#@#@#@#@r<   c              3   J   K   | ]}|                               d k    V  dS r+   N)countrc   rd   querys     r=   re   z)test_solve_biquadratic.<locals>.<genexpr>   s2      <<qqwwu~~"<<<<<<r<   c              3   <   K   | ]}t          |          d k    V  dS r_   r`   rb   s     r=   re   z)test_solve_biquadratic.<locals>.<genexpr>   rf   r<   c              3   d   K   | ]*}t          |                                        d k    V  +dS rh   )ra   findrj   s     r=   re   z)test_solve_biquadratic.<locals>.<genexpr>   s:      @@1s166%==!!Q&@@@@@@r<   r   c                  &    t                     S r[   )r   )fgopts   r=   r>   z(test_solve_biquadratic.<locals>.<lambda>   s    $5aC$@$@ r<   ))r0   r0   )r0   r+   r4   r5   )r   r0   )r   r+   )r	   r   r   r
   r   r   ra   allr   r   r$   r%   r   r   )x0y0x1y1rd   rN   rO   sr   r   results1s2gensseqansrp   rq   rr   rk   s                   @@@@r=   test_solve_biquadraticr   h   sQ   00BBAq51*Az
!AqD
(Cq51*Az
!AqD
(CQq!tVaZA	
Q	A	
Q	Ac3ZA..Aq6Aq62BBBBBq51*Az
!AqD
(Cq51*Az
!AqD
(Cc3ZA..
dAaC!GacAg&'')
)8Aq>>	:
dAaC!GacAg&'')
)8Aq>>	:	<< < < < <;Eq5A+Q

"QT
)Cr6A+Q

"QT
)CSz1a00Fv;;!#@#@#@#@#@ @ @<<<<GFOO<<<<<<<<r6A+R!
#ad
*Cr6A+R!
#ad
*CSz1a00Fv;;!#@#@#@#@#@ @ @@@@@@@@@@@@@
A#'1a4!8	B99!Q!Q1.....
A#'1a4!8	B99!Q!Q1.....q6DBx B B-c9D999A{@@@@@@AAAAa4!Q$;?AqD1H
%C)#5555KFQCQ3'' ,, ,, ,, , , , ,F
Ca4!Q$;?AqD1H
%C)#5555KFQCQ3''3....a4!Q$;?AqD1Hq!tOa/
0C)#5555KFQCQ3''3......r<   c                     t           dz  t          z   t          z   dz
  } t           t          dz  z   t          z   dz
  }t           t          z   t          dz  z   dz
  }t          d          dz
  t          d           dz
  }}t	          | ||gt           t          t                    g dk    sJ t          j        t          d                    }t	          | ||gt           t          t          |          ddd|||f|||fgk    sJ t          t          dz  dt          z  z   dz
  d          t          t          dz  dt          z  z   dz
  d          }}t	          | ||gt           t          t          d	
          ddd|||f|||fgk    sJ d S )Nr,   r+   )r1   r2   r3   rT   r1   r2   r3   r   T	extension)r   r   r   r
   r   r   algebraic_fieldr   )rN   rO   rP   r   r   doms         r=   test_solve_triangulatedr      s   
Q$(Q,
C
ad(Q,
C
a%!Q$,
C77Q;a1qAsCoq!Q77)))* * * * 
T!WW
%
%CsCoq!QsCCC	Iy1a)aAY?@ @ @ @ 1a4!A#:>1%%wq!taczA~q'A'AqAsCoq!Q$GGG	Iy1a)aAY?@ @ @ @ @ @r<   c                     t          t          dz
  dz  dz  t          t          dd          z
  dz  dz  z   dz
  t          gt          t                    } | dt          j        dt          d          z  z
  fdt          j        dt          d          z  z   fgk    sJ t          t          dz
  dz  dz  t          d	z
  dz  dz  z   dz
  t          gt          t                    } t          |           dk    sJ | d         d         dk    sJ | d         d                             d
d          sJ | d         d         dk    sJ | d         d                             dd          sJ d S )Nr.   r,   i r/   r+   r      iW  g      ?g7g   mBgG@)	r   r   r   r   r   rL   r
   ra   
epsilon_eq)rootss    r=   test_solve_issue_3686r      s^   Q
6 1Q!R5H14LV4S SWXXZ[\^_abccEa"T$ZZ-/01afr$t**}6L2MNNNNNQ
6 1QZ!OF4J JaOQRSUVXYZZEu::????8A;!8A;!!"3T:::::8A;!8A;!!"2D9999999r<   c                     t          t          dz  dt          z  z   dz   g          t          dz   ggk    sJ t          t          dz  dt          z  z   dz   t          dz  dt          z  z   dz   g          t          dz   t          dz   ggk    sJ t          t          dz  dz   g          t          dz  dz   ggk    sJ t          g           g gk    sJ t          t          dz  t          dz  z   dt          z  t          z  z   t          dz  dz
  gt          d                    t          t          z   t          t          d          z   gt          t          z   t          t          d          z
  ggk    sJ t          t          dz  dz   t          dz  dz   gd          t          t          z   t          t          z   gt          t          z   t          t          z
  gt          t          z
  t          t          z   gt          t          z
  t          t          z
  ggk    sJ t          t          dz  dz   t          dz  dz   gt
                    t          t          z   t          t          z   gt          t          z   t          t          z
  gt          t          z
  t          t          z   gt          t          z
  t          t          z
  ggk    sJ t          dg          g gk    sJ t          dg          g k    sJ t          dt          g          t          ggk    sJ t          ddt          g          g k    sJ t          t          dz  dz
  t          d	z  dz
  g          t          dz  dz   t          dz  t          z   dz   gt          dz  dz   t          dz  t          z
  dz   gt          dz  dz   t          dz   gt          dz  dz   t          dz
  gt          dz   t          dz  t          z   dz   gt          dz   t          dz  t          z
  dz   gt          dz
  t          dz  t          z   dz   gt          dz
  t          dz  t          z
  dz   gt          dz   t          dz   gt          dz   t          dz
  gt          dz
  t          dz   gt          dz
  t          dz
  ggk    sJ t          t          dz
  t          dz
  z  t          dz
  t          d
z
  z  g          t          dz
  t          d
z
  gt          dz
  ggk    sJ t          t          t                    dz  t          t                    dz  z   dz
  t          g          t          t          t                    dz  t          t                    dz  z   dz
  ggk    sJ t          t          t                    dz  t          t                    dz  z   dz
  g          t          t                    dz  t          t                    dz  z   dz
  ggk    sJ t          t          t                    dz  t          t                    dz  z   g          t          t                    dz  t          t                    dz  z   ggk    sJ t          t          t          z  t          t          g          t          t          ggk    sJ t          t          t          z  t          t          gt          t          g          g k    sJ t          t          dz  t          z  t          gt          t          g          t          t          ggk    sJ t          t          t          z  t          dz
  z  t          t          z  t          gt          t          g          g k    sJ t          t          t          z  t          dz
  z  t          t          z  t          gt          t          t          g          t          dz
  t          t          gt          t          t          ggk    sJ t          t          t          z  t          dz
  z  t          t          z  t          g          t          dz
  t          t          gt          t          t          gt          dz
  t          t          gt          t          t          gt          t          t          gt          t          t          ggk    sJ t          t          dz  dz
  gt          g          g k    sJ t          t          dz  dz
  gt          g          t          dz  dz
  ggk    sJ t          t          t                    dz  t          t                    dz  z
  t          t                    dz  t          t                    dz  z   dz
  g          t          t                    dz  t          t                    dz  z   dz
  t          t                    t          t                    z   gt          t                    dz  t          t                    dz  z   dz
  t          t                     t          t                    z   ggk    sJ t          t          t                    t          t                    z   dz  dz
  t          t                    dz  t          t                    dz  z
  t          dt          z            z
  g          t          t                    dz  t          t                    dz  z
  t          dt          z            z   t          t                    t          t                    z   dz   gt          t                    dz  t          t                    dz  z
  t          dt          z            z   t          t                    t          t                    z   dz
  ggk    sJ t          t          t                    t          t                    z   t          t                    z  dz
  t          t                    t          t                    z
  t          t                    z  dz
  g          t          t                    t          t                    z  t          t                    t          t                    z  z   dz
  t          t                     t          t                    z  t          t                    t          t                    z  z   dz
  ggk    sJ d S )Nr,   r+   r   T)gaussianr   r   r6      r-   )r!   r   r   r
   r   r   r   r'   r(   r   r   r   r)   r;   r<   r=   test_factor_systemr      s
   !Q$1*q.)**Qy8888!Q$1*q.!Q$1*q.9::QA?OOOOO!Q$($$1a4!8*5555$$$$!Q$A+!A-q!tax8DGGLLL	
QDGG	
QDGGQ    
 !Q$(AqD1H-===	
QA	
QA	
QA	
QA	B     !Q$(AqD1H-d;;;	
QA	
QA	
QA	
QA	@     !"%%%%!####!a!!qcU****!Q##r))))!Q$(AqD1H-..	
A1a4!8a< 	
A1a4!8a< 	
A1q5	
A1q5	
Q1q1	
Q1q1	
Q1q1	
Q1q1	
QA	
QA	
QA	
QA3     1q51q5/AEAE?;<<	
QA	
QA    
 #a&&!)c!ffai/!3Q788	
CFFAIA	!A%&=     #a&&!)c!ffai/!3455	QSVVQY		"#:     #a&&!)c!ffai/011	QSVVQY	6     !A#q!%%1a&1111!A#q!q!f--3333!q&1*a1a&11q!fX====!A#q1u+qsA.A772====!A#q1u+qsA.Aq	::	
Q1	
Aq	?    
 !A#q1u+qsA.//	
Q1	
Aq		
Q1	
Aq		
Aq		
Aq	4     !Q$(aS))R////!Q$(aS))q!taxj\9999#a&&!)c!ffai/QSVVQY1F1JKLL	QSVVQY		"CFFSVVO4	QSVVQY		"SVVGc!ff$45Q    
 3q66CFF?Q.2CFFAIA	4ICPQRSPSHH4TUVV	QSVVQY	QqS	)3q66CFF?Q+>?	QSVVQY	QqS	)3q66CFF?Q+>?[    
 3q66CFF?CFF2Q6Q#a&&#a&&8PST8TUVV	QAQA	&	*SVVGCFFNSVVCFF],JQ,NO[      r<   c            	      \   d } d }d }d }t           | t          dz  dz
             | t          dz  dz
            g           | t          dz              | t          dz             g | t          dz              | t          dz
            g | t          dz              | t          dz
            g | t          dz
             | t          dz
            ggk    sJ t           | t          dz  dz
            g           | t          dz             g | t          dz
            ggk    sJ t           |t          dz  t          z  t          z
             |t          dz  t          z  t          z
            g           |t          dz             g |t          dz
            g |t                     |t                    ggk    sJ t           | t          dz  t          dz
  dz  z             | t          t          dz
  z            g           | t                    g | t          dz
            ggk    sJ t           |t          dz  t          t          z  z              |t          dz  t          t          z  z             g           |t          t          z              |t          t          z             g |t                    ggk    sJ t           |t          dz
  t          dz
  z             |t
          dz
  t          dz
  z            g           |t          dz
            g |t          dz
             |t
          dz
            ggk    sJ t           |t          dz  dz             g           |t          t          z             g |t          t          z
            ggk    sJ t          g           g gk    sJ t           | d          g          g k    sJ t           | d	           | t                    g           | t                    ggk    sJ d S )
Nc                 ,    t          | t                    S r[   )r   r   es    r=   r>   z)test_factor_system_poly.<locals>.<lambda>+  s    41:: r<   c                 ^    t          | t          t          t          t          f                   S Nr   )r   r   r   r   r   r   s    r=   r>   z)test_factor_system_poly.<locals>.<lambda>,  s    T!Qr!Q$x000 r<   c                 :    t          | t          t                    S r   )r   r   r   r   s    r=   r>   z)test_factor_system_poly.<locals>.<lambda>-  s    DAd+++ r<   c                 F    t          | t          t          t          f          S r[   )r   r   r   r   r   s    r=   r>   z)test_factor_system_poly.<locals>.<lambda>.  s    T!aAY'' r<   r,   r+   r6   r-   r   )r    r   r   r   r   r   r   )pxpxabpxIpxyzs       r=   test_factor_system_polyr   )  s   		B00D
+
+C''Drr!Q$(||RR1q\\:;;	AEBBq1uII	AEBBq1uII	AEBBq1uII	AEBBq1uII	@     rr!Q$(||n--22a!e99+1q5		{1KKKKKttAqDFQJ//ad1fqj1A1ABCC	a!e	a!e	a$$q''H     rr!Q$Az/22BBq!a%yMMBCC	A	AEH    
 ttAqD1Q3J//adQqSj1A1ABCC	a!edd1q5kk"	a	H    
 ttQUQUO44ddAEAE?6K6KLMM	a!e	a!edd1q5kk"R    
 ss1a4!8}}o..CCAJJ<##a!e**2NNNNNb!!bT))))rr!uug&&",,,,rr!uubbeen--22a55'::::::r<   c            	      l	   t          t          dz  dz
  t          dz  dz
  g          t          dz   t          dz   gt          dz   t          dz
  gt          dz   t          dz
  gt          dz
  t          dz
  ggk    sJ t          dg          g k    sJ t          dg          g gk    sJ t          dt          g          g k    sJ t          dt          g          t          ggk    sJ t          g           g gk    sJ t          t          dz  t          t          z  z   g          t          t          z   gt          ggk    sJ t          t          dz
  t          dz
  z  t          dz
  t          dz
  z  gt          g          t          dz
  gt          dz
  t          dz
  ggk    sJ t          t          t          dz
  z  t          gt          g          t          dz
  t          gt          t          ggk    sJ t          t          t          z  t          dz
  z  t          t          z  t
          gt          t          g          t          dz
  t          t
          gt          t          t
          gt          dz
  t          t
          gt          t          t
          gt          t          t
          gt          t          t
          ggk    sJ t          t          t          dz
  z  t          gt          t          g          t          dz
  t          gt          t          ggk    sJ t          t          t          z  t          t          gt          t          g          t          t          ggk    sJ t          t          t          z  t          t          z  gt          t          g          t          gt          t          ggk    sJ t          t          t          z  t          z  t          gt          t          g          t          t          gt          t          t          z  ggk    sJ t          t          t          z  t          z  t          g          t          t          gt          t          gt          t          ggk    sJ t          t          dz  t          z  t          gt          t          g          t          t          gt          t          ggk    sJ d S )Nr,   r+   r6   r   r-   )r   r   r   r   r   r   r;   r<   r=   test_factor_system_condr   V  s   qAvz16A:677	
QA	
QA	
QA	
QA	<     qc""b((((qc""rd****q!f%%++++q!f%%1#....b!!bT))))q!taczl++Q!~====AAQQ@1#FF	
Q	
QAK    
 qAE{A.44!a%aV8LLLLLqsAaCy!A#q1Aq6::	
Q1	
Aq		
Q1	
Aq		
Aq		
Aq	?     q!A#wlQF33Q
QF7KKKKKqsAqkAq6221vh>>>>qsAaCj1a&11qcAq6]BBBBqs1uaj1a&11q!fq!A#h5GGGGGqs1uaj))q!fq!fq!f-EEEEEq!tAvqkAq6221v1v6FFFFFFFr<   c                  x   t           t          dz
  z  t          dz
  z  t          t          dz
  z  t          dz
  z  t          dz
  z  g} t	          | t          t          g          t          t          dz
  d          t          t           d          t          t          d          z  z  t          t           d          t          t          dz
  d          z  z  t          t           d          t          t          dz
  d          z  z  t          t          d          t          t          dz
  d          z  z  t          t          dz
  d          t          t          dz
  d          z  z  t          t          dz
  d          t          t          dz
  d          z  z  k    sJ t	          t          dz
  gt          g          t          t          dz
  d          k    sJ t	          t          dz
  t          dz
  z  gt          g          t          t          dz
  d          t          t          dz
  d          z  k    sJ t	          g t          g          dk    sJ t	          dgt          g          dk    sJ t	          dgt          g          dk    sJ t	          t           gt          g          t          t           d          k    sJ t	          t           t          z  t          t           gt          t          g          t          t           d          t          t          d          z  k    sJ t	          t           t          z  t          t          z  t          z  t           gt          t          g          t          t           d          t          t          d          z  t          t           d          t          t          d          z  z  t          t           d          t          t          d          z  z  k    sJ t	          t           t          z  t          t          z  gt          t          g          t          t          d          t          t           d          t          t          d          z  z  k    sJ t	          t           t          z  t          z  t          gt          t          g          t          t          d          t          t          d          z  t          t          d          t          t           t          z  d          z  z  k    sJ t	          t           dz  t          z  t          gt          t          g          t          t           d          t          t          d          z  t          t          d          t          t          d          z  z  k    sJ t	          t           t          z  t          z  t          t          z  t          z  gt          t          t          g          t          t          d          t          t           d          t          t          d          z  z  t          t           d          t          t          d          z  z  t          t          d          t          t          d          z  z  t          t          d          t          t          d          z  z  k    sJ t	          t           t          dz
  z  t          gt          g          t          t           d          t          t          d          z  t          t          dz
  d          t          t          d          z  z  k    sJ d S )Nr+   r,   r   TF)r   r   r   r   r   r&   r   )eqss    r=   test_factor_system_boolr     se   a!e9a!eaQiQ/Q7
8CcAq6**
1q5!a88bAhh	 a88bQll"	$ a88bQll"	$ a88bQll"		$
 a!eQ<<"QUA,,&	( a!eQ<<"QUA,,&	(    q1ugs++r!a%||;;;;AA/!55AE11q5RS9TTTTTb1#&&$....qcA3''4////qcA3''50000qcA3''2a883333q1uamaV441a2a888KKKKK!QqSUAA77
1a2a88a88bAhh<  a88bAhh<         
 !QqSzAq622bAhh1XX1a 7" " " " " !AqzAq622
1a2a88	AqBqsAJJ	7          1Q{QF33
1a2a88	AqBq!HH	8     qs1uac!enq!Qi88
1aa88bAhh	 a88bAhh	  a88bAhh	  a88bAhh		     q!a%y!nqc22	AqBq!HH	a!eQ<<"Q(("	$     r<   c                     ddl m d
fd	} ddgddggddgddggdgddgdggg}|D ]$}t          |          t          |          k    sJ %t	          d	          D ].} |             }t          |          t          |          k    sJ /d S )Nr   )randintr-   r,   r/   c                 B    fdt          |           D             S )Nc           	      \    g | ](}fd t           d                    D             )S )c                 (    g | ]} d           S )r   r;   )rc   _max_valr   s     r=   
<listcomp>zOtest_factor_sets.<locals>.generate_random_system.<locals>.<listcomp>.<listcomp>  s%    GGGQWWQ  GGGr<   r+   range)rc   r   r   	n_factorsr   s     r=   r   zDtest_factor_sets.<locals>.generate_random_system.<locals>.<listcomp>  sU     
 
 
 HGGGG%90E0E*F*FGGG
 
 
r<   r   )n_eqsr   r   r   s    ``r=   generate_random_systemz0test_factor_sets.<locals>.generate_random_system  s@    
 
 
 
 
 
5\\
 
 
 	
r<   r+   r6   d   )r-   r,   r/   )randomr   r"   r#   r   )r   
test_casescaser   systemr   s        @r=   test_factor_setsr     s    
 
 
 
 
 
 Q!Q
Q!Q
q!fqcJ  = =D!!%6t%<%<<<<<<3ZZ A A''))F##'8'@'@@@@@@A Ar<   N)E__doc__sympy.polys.domainsr   r   sympy.core.numbersr   r   r   sympy.core.singletonr   sympy.core.symbolr	   (sympy.functions.elementary.miscellaneousr
   !sympy.polys.domains.rationalfieldr   sympy.polys.polyerrorsr   sympy.polys.polyoptionsr   sympy.polys.polytoolsr   sympy.polys.rootoftoolsr   sympy.solvers.solversr   sympy.utilities.iterablesr   	sympy.abcr   r   r   r   r   r   sympy.polysr   sympy.solvers.polysysr   r   r   r   r   r   r   r    r!   r"   r#   r$   sympy.testing.pytestr%   sympy.core.relationalr&   (sympy.functions.elementary.trigonometricr'   r(   &sympy.functions.elementary.exponentialr)   rR   rX   r   r   r   r   r   r   r   r   r;   r<   r=   <module>r      s   < < ) ) ) ) ) ) ) ) 5 5 5 5 5 5 5 5 5 5 " " " " " " % % % % % % 9 9 9 9 9 9 0 0 0 0 0 0 8 8 8 8 8 8 + + + + + + & & & & & & + + + + + + ' ' ' ' ' ' - - - - - - & & & & & & & & & & & & & & & & ' ' ' ' ' 'S S S S S S S S S S S S S S S S S S S S S S S S S S : 9 9 9 9 9 ' ' ' ' ' ' $ $ $ $ $ $ = = = = = = = = 6 6 6 6 6 66; 6; 6;rD D D"5/ 5/ 5/p@ @ @(
: 
: 
:e e eP*; *; *;Z+G +G +GZ3 3 3lA A A A Ar<   