
    g                         d 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mZmZ ddlmZ ddlmZmZm Z m!Z!m"Z" ddlm#Z# ddl$m%Z% d Z&d Z'd Z(d Z)d Z*dS )z6Tests for solvers of systems of polynomial equations.     )IIntegerRational)S)symbols)sqrt)QQ)UnsolvableFactorError)Options)Poly)solve)flatten)xyz)PolynomialError)solve_poly_systemsolve_triangulatedsolve_biquadraticSolveFailedsolve_generic)parallel_poly_from_expr)raisesc                  
   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   r    r   r      ))r   r   c                  `    t          t          dz  t          dz  z
  gt          t                    S )Nr   r   r   r        \/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/solvers/tests/test_polysys.py<lambda>z(test_solve_poly_system.<locals>.<lambda>8   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 )Nr(   r   r&   )r   r   r   r   r+   r,   r-   r.   z(test_solve_poly_system.<locals>.<lambda>9   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>;   s    $5qseQ$?$? r,   c                  L    t          t          dz
  gt          t          f          S r1   r*   r+   r,   r-   r.   z(test_solve_poly_system.<locals>.<lambda>=        (9Q3&1a&) ) r,   c                  L    t          t          dz
  gt          t          f          S r1   )r   r   r   r+   r,   r-   r.   z(test_solve_poly_system.<locals>.<lambda>?   r4   r,   Fstrictc                  Z    t          t          dz  t          z
  dz   gt          gd          S )Nr   r   Tr6   r2   r+   r,   r-   r.   z(test_solve_poly_system.<locals>.<lambda>E   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   Tr6   r*   r+   r,   r-   r.   z(test_solve_poly_system.<locals>.<lambda>K   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_3absolutions         r-   test_solve_poly_systemrD      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domainZZr   r   r    r   r   Fr6   c                      t          dt          z  t          z
  t          dz
  t          dz  t          z
  dz   z  g d          S )Nr   r   r   Tr6   )r   r   r   	NewOptions   r-   r.   z$test_solve_generic.<locals>.<lambda>\   sB    -	
1q1q51a4!8a<()9T+C +C +C r,   )	r   r   r   r   r   r   r   r   r
   rI   s   @r-   test_solve_genericrK   O   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_Powexpr   r<   )exprs    r-   r.   z(test_solve_biquadratic.<locals>.<lambda>q   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>x   ,      #@#@ACFFaK#@#@#@#@#@#@r,   c              3   J   K   | ]}|                               d k    V  dS r   N)countrW   rX   querys     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>y   s2      <<qqwwu~~"<<<<<<r,   c              3   <   K   | ]}t          |          d k    V  dS rS   rT   rV   s     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>   rZ   r,   c              3   d   K   | ]*}t          |                                        d k    V  +dS r\   )rU   findr^   s     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>   s:      @@1s166%==!!Q&@@@@@@r,   r   c                  &    t                     S rN   )r   )fgopts   r-   r.   z(test_solve_biquadratic.<locals>.<lambda>   s    $5aC$@$@ r,   ))r    r    )r    r   r$   r%   )r   r    )r   r   )r   r   r   r   r   r   rU   allr   r   r   r   r   r   )x0y0x1y1rX   r>   r?   srA   rB   results1s2gensseqansrd   re   rf   r_   s                   @@@@r-   test_solve_biquadraticrs   `   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 d S )Nr   r   )r!   r"   r#   )rF   r!   r"   r#   )r   r   r   r   r   r	   algebraic_field)r>   r?   r@   rA   rB   doms         r-   test_solve_triangulatedrw      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?@ @ @ @ @ @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   r<   r   rU   
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,   N)+__doc__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.solvers.solversr   sympy.utilities.iterablesr   	sympy.abcr   r   r   sympy.polysr   sympy.solvers.polysysr   r   r   r   r   r   sympy.testing.pytestr   rD   rK   rs   rw   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 + + + + + + & & & & & & ' ' ' ' ' ' - - - - - -           ' ' ' ' ' '2 2 2 2 2 2 2 2 2 2 2 2 2 2 : 9 9 9 9 9 ' ' ' ' ' '6; 6; 6;rD D D"5/ 5/ 5/p@ @ @ 
: 
: 
: 
: 
:r,   