
    wg                         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*y)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        y )N            
   )r   r   r   r   r   r   r   r   r   r   r   r   r    r   r      ))r   r   c                  P    t        t        dz  t        dz  z
  gt        t              S )Nr   r   r   r        e/home/mcse/projects/flask/flask-venv/lib/python3.12/site-packages/sympy/solvers/tests/test_polysys.py<lambda>z(test_solve_poly_system.<locals>.<lambda>8   s    (91a4!Q$;-A(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   sF    (9	
BqDAIMAqDF"AqD1"q&MA$56)8 r,   c                  2    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                  >    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                  >    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                  L    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   s9    $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(aeeXJ666a!eQUQY/A6>>>a!Q$hAqD11a8affaff=M<NNNNacAgq!Q'7!A#'=q1Q3wGAqQ
1a.'!*gbk	234 4 4 acAaCi1a4!Q$7A>	!d1gXDG-. . . a!Q$hAqD15q!<"T!&&\/8B?	+aQVVnhr1o-NOP P P Q$(Q,
C
ad(Q,
C
a%!Q$,
C7Q;a1qAc3_aA6	Iy1a)aAY?@ @ @  Hd1a4!Q$;/a!e=>(JJJadQTk1q511a8HDDDadQTk1q512h>>>	
QqS1a!A#gk"Aq*.6-?@ @ @  NO
 !8 9
??@
 ! 
 ! 
 adQhl^aS?2EEE
  #* + q1uq!tax!|4adQh?!Q$)+/6.?@ @ @
 :;r,   c            
      ^    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
       y )NdomainZZr   r   r    r   r   Fr6   c                  v    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>\   s6    -	
1q1q51a4!8a<()9T+C r,   )	r   r   r   r   r   r   r   r   r
   rI   s   @r-   test_solve_genericrK   O   s   A4 01I!Q$1a4-AA6	B2Q	>""HQNT!WQYq[$@A"tAwqy.!8Aq>DGAIaK#?@2Q	>""HQNT!WQYq[$@A"tAwqy.!8Aq>DGAIaK#?@BB B B 	
1q1q51a4!8a<()9UD
1a.!	     #C 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| \  \  t        t        fd       + t        dz  t        dz  z   dz
  t        dz  dz
  f}t        |g| \  \  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| \  \  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| \  \  t              |k(  sJ y )Nzx0 y0 x1 y1 rr   r   r   c                 V    | j                   xr | j                  t        j                  u S N)is_Powexpr   r<   )exprs    r-   r.   z(test_solve_biquadratic.<locals>.<lambda>q   s    ;QVV); r,   c              3   8   K   | ]  }t        |      d k(    ywr   Nlen.0rs     r-   	<genexpr>z)test_solve_biquadratic.<locals>.<genexpr>x        #@ACFaK#@   c              3   F   K   | ]  }|j                        d k(    ywr   N)countrW   rX   querys     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>y   s     <qqwwu~"<s   !c              3   8   K   | ]  }t        |      d k(    ywrS   rT   rV   s     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>   rZ   r[   c              3   X   K   | ]!  }t        |j                              d k(   # ywr]   )rU   findr_   s     r-   rY   z)test_solve_biquadratic.<locals>.<genexpr>   s#     @1s166%=!Q&@s   '*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ansre   rf   rg   r`   s                   @@@@r-   test_solve_biquadraticrt   `   su   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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0Fv;!#@#@ @@@<GFO<<<<r6A+R!
#ad
*Cr6A+R!
#ad
*CSz1a0Fv;!#@#@ @@@@@@@@
A#'1a4!8	B9!Q!Q1....
A#'1a4!8	B9!Q!Q1....q6DBx B-c9D9A{@AB a4!Q$;?AqD1H
%C)#55KFQCQ3' ,, , , ,F
Ca4!Q$;?AqD1H
%C)#55KFQCQ3'3...a4!Q$;?AqD1Hq!tOa/
0C)#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 y )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_triangulatedrx      s    
Q$(Q,
C
ad(Q,
C
a%!Q$,
C7Q;a1qAsCoq!Q7)* * * 

T!W
%CsCoq!QsC	Iy1a)aAY?@ @ @r,   c                  N   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   j                  d
d      sJ | d   d   dk(  sJ | d   d   j                  dd      sJ y )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}      s8   Q
6 1Q!R5H14LV4S SWXXZ[\^_abcEa"T$Z-/01affr$t*}6L2MNNNNQ
6 1QZ!OF4J JaOQRSUVXYZEu:??8A;!8A;!!"3T:::8A;!8A;!!"2D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   rt   rx   r}   r+   r,   r-   <module>r      sa    < 5 5 " % 9 0 8 + & ' -   '2 2 : '6;rD"5/p@ 
:r,   