a
    {d                     @   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 sBJ t ttd  ttd  gtttjtjfgkstJ 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sJ t tt dt  dtd  td  gttddt	d fdt	dfgksJ 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srJ 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s4J t td td  td gtt|ks^J t td td  td g|ksJ t ttt  d ttt  d gttddgksJ 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s(J ttdd  t td td t d  td d gttgddddgksvJ 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(   i/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/sympy/solvers/tests/test_polysys.py<lambda>8       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   6c                   S   s   t dt gtS Nr   r   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*   =   s   c                   S   s   t td gttfS r,   )r   r   r   r(   r(   r(   r)   r*   ?   s   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   ZOner   ZZeror   r   r   r   r   Halfr   r   NotImplementedErrorr   r	   )f_1f_2f_3abZsolutionr(   r(   r)   test_solve_poly_system   sV    $24*
"0

.*&"
(*
r7   c                      sR  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sJ tdt t td td t d  g dd	tdddfgks<J tt fd
d d S )NdomainZ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(   Z	NewOptionr(   r)   r*   \   s   &z$test_solve_generic.<locals>.<lambda>)	r
   r   r   r   r   r   r   r   r	   r(   r(   r9   r)   test_solve_genericO   s    (.,.,&
r:   c                     sH  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sJ 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sTJ 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rdtd
d |
D shJ tfddt|
D sJ tt t td t f}t	|tditdtdigksJ tt t td t f}t	|tditdtdigksJ ttf}||fD ]4}t
|g|R  \\ tt fdd qt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sDJ d S )Nzx0 y0 x1 y1 rr   r   r   c                 S   s   | j o| jtju S N)Zis_Powexpr   r0   )exprr(   r(   r)   r*   q   r+   z(test_solve_biquadratic.<locals>.<lambda>c                 s   s   | ]}t |d kV  qdS r   Nlen.0rr(   r(   r)   	<genexpr>x   r+   z)test_solve_biquadratic.<locals>.<genexpr>c                 3   s   | ]}|  d kV  qdS r   N)countrA   queryr(   r)   rD   y   r+   c                 s   s   | ]}t |d kV  qdS r>   r?   rA   r(   r(   r)   rD      r+   c                 3   s    | ]}t | d kV  qdS rE   )r@   findrA   rG   r(   r)   rD      r+   r   c                      s   t  S r;   )r   r(   )fgoptr(   r)   r*      r+   ))r   r   )r   r   r"   r#   )r   r   )r   r   )r   r   r   r   r   r   r@   allr   r   r   r   r   r   )Zx0Zy0x1y1rC   r2   r3   sr5   r6   results1s2ZgensseqZansr(   )rJ   rK   rL   rH   r)   test_solve_biquadratic`   sV      $  ,,
  &   & ""  ,rU   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sxJ ttd}t| ||gt tt|dddd|||f|||fgksJ d S )Nr   r   )r   r    r!   )r8   r   r    r!   )r   r   r   r   r   r   Zalgebraic_field)r2   r3   r4   r5   r6   domr(   r(   r)   test_solve_triangulated   s    rW   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sjJ t td d d td	 d d  d tgtt} t| dksJ | d d dksJ | d d d
dsJ | d d dksJ | d d ddsJ d S )Nr   r   i r   r   r      iW  g      ?g7g   mBgG@)	r   r   r   r   r   r0   r   r@   Z
epsilon_eq)rootsr(   r(   r)   test_solve_issue_3686   s    640rZ   N)+__doc__Zsympy.core.numbersr   r   r   Zsympy.core.singletonr   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   Z!sympy.polys.domains.rationalfieldr   Zsympy.polys.polyerrorsr	   Zsympy.polys.polyoptionsr
   Zsympy.polys.polytoolsr   Zsympy.solvers.solversr   Zsympy.utilities.iterablesr   Z	sympy.abcr   r   r   Zsympy.polysr   Zsympy.solvers.polysysr   r   r   r   r   r   Zsympy.testing.pytestr   r7   r:   rU   rW   rZ   r(   r(   r(   r)   <module>   s(   98