o
    jg                     @   s  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d Z&dd Z'dd Z(dd Z)d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                  C   s  t td gttjfgksJ t tt tt d gttd u s!J t ttd  ttd  gtttjtjfgks:J t dt d ttdd dt  tdt  gttttddtdtdfgksdJ t tt dt  dtd  td  gttddt	d fdt	dfgksJ t ttd  ttd  d gttt
 t	tj tddft
t	tj tddfgksJ td t t d } ttd  t d }tt td  d }t	dd t	d d }}t | ||gtttdd	d
|||f|||fgksJ ddg}t ttd td  ttd g|ksJ t td td  td gtt|ks,J t td td  td g|ks?J t ttt  d ttt  d gttddgksZJ ttdd  ttdd  ttdd  ttdd  ttdd  t td t d gtgddg ksJ ttdd  t td td t d  td d gttgddddgksJ ttdd  d S )N            
   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r      ))r   r   c                   S   s   t td td  gttS )Nr   r   r   r    r(   r(   X/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/solvers/tests/test_polysys.py<lambda>8   s    z(test_solve_poly_system.<locals>.<lambda>c                   S   s<   t tdt td  t td t  td t d  d gS )Nr&   r   r$   )r   r   r   r   r(   r(   r(   r)   r*   9   s    6c                   S   s   t dt gtS Nr   r   r   r(   r(   r(   r)   r*   ;   s    c                   S   s   t td gttfS r+   r'   r(   r(   r(   r)   r*   =       c                   S   s   t td gttfS r+   )r   r   r   r(   r(   r(   r)   r*   ?   r-   Fstrictc                   S   s   t td t d gtgddS )Nr   r   Tr.   r,   r(   r(   r(   r)   r*   E   s    c                   S   s2   t td td t d  td d gttgddS )Nr   r   r   Tr.   r'   r(   r(   r(   r)   r*   K   s   $ )r   r   r   Oner   Zeror   r   r   r   r   Halfr   r   NotImplementedErrorr   r	   )f_1f_2f_3absolutionr(   r(   r)   test_solve_poly_system   sV   $24*"0.*&"
(*
r:   c                      sP  t ttfddi ttd dtd   td t d g tdtdt   tddtdt d  ftdtdt  tddtdt d  ftdtdt   tddtdt d  ftdtdt  tddtdt d  fgks|J tdt t td td t d  g dd	tdddfgksJ tt fd
d d S )NdomainZZr   r   r   r   r   Fr.   c                      s.   t dt t td td t d  g ddS )Nr   r   r   Tr.   )r   r   r   r(   	NewOptionr(   r)   r*   \   s    &z$test_solve_generic.<locals>.<lambda>)	r
   r   r   r   r   r   r   r   r	   r(   r(   r=   r)   test_solve_genericO   s   (.,.,&r?   c                     s@  t d\} }}}}td d td d  |d  }td d td d  |d  }td|d  d }d| d }d| d }	t||gtt||	f|	|fgksQJ td d td d  |d  }td d td d  |d  }t||gttdtd| d d| d  d  tddfdtd| d d| d  d  tddfgksJ dd td d td d  |d  }t| d td d  |d  }t||gtt}
t|
dkrtdd |
D sJ tfd	dt|
D sJ t|  d t| d  |d  }t| d t| d  |d  }t||gtt}
t|
dkr.td
d |
D s0J tfddt|
D s@J tt t td t f}t	|tditdtdigks]J tt t td t f}t	|tditdtdigkszJ ttf}||fD ]}t
|g|R  \\ tt fdd qtd td  d td d f}t
|g|R  \\ t g dksJ ddg}td td  d td d f}t
|g|R  \\ t |ksJ td td  d td t td  d f}t
|g|R  \\ t |ksJ d S )Nzx0 y0 x1 y1 rr   r   r   c                 S   s   | j o| jtju S N)is_Powexpr   r2   )exprr(   r(   r)   r*   q   s    z(test_solve_biquadratic.<locals>.<lambda>c                 s       | ]	}t |d kV  qdS r   Nlen.0rr(   r(   r)   	<genexpr>x       z)test_solve_biquadratic.<locals>.<genexpr>c                 3   s    | ]
}|  d kV  qdS r   N)countrH   queryr(   r)   rK   y   s    c                 s   rD   rE   rF   rH   r(   r(   r)   rK      rL   c                 3   s"    | ]}t | d kV  qdS rM   )rG   findrH   rO   r(   r)   rK      s     r   c                      s   t  S r@   )r   r(   )fgoptr(   r)   r*      s    ))r   r   )r   r   r"   r#   )r   r   )r   r   )r   r   r   r   r   r   rG   allr   r   r   r   r   r   )x0y0x1y1rJ   r4   r5   sr7   r8   results1s2gensseqansr(   )rR   rS   rT   rP   r)   test_solve_biquadratic`   sV     $  ,,  "  & ""  ,ra   c                  C   s   t d t t d } t td  t d }t t td  d }tdd td d }}t| ||gt ttg dks<J ttd}t| ||gt tt|dddd|||f|||fgks^J d S )Nr   r   )r   r    r!   )r;   r   r    r!   )r   r   r   r   r   r   algebraic_field)r4   r5   r6   r7   r8   domr(   r(   r)   test_solve_triangulated   s   rd   c                  C   s  t td d d ttdd d d  d tgtt} | dtjdtd  fdtjdtd  fgks5J t td d d td	 d d  d tgtt} t| dksUJ | d d dks_J | d d d
dskJ | d d dksuJ | d d ddsJ d S )Nr   r   i r   r   r      iW  g      ?g7g   mBgG@)	r   r   r   r   r   r2   r   rG   
epsilon_eq)rootsr(   r(   r)   test_solve_issue_3686   s   640rh   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   r:   r?   ra   rd   rh   r(   r(   r(   r)   <module>   s*    98