o
    oh                     @   s   d 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
 ddlmZ e \ZZZZZZZdd Zd	d
 Zdd Zdd ZdS )zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raises)MPQc               
   C   s  t dt\} }| ddksJ | ddu sJ | ddks"J | ddu s+J | d| d |d ks:J | d| d du sGJ | |d | d |d | d ks\J | |d | d du skJ | |d  | d |d | d ksJ | |d  | d du sJ | d|d  d|d   d|d  d|  ksJ | d|d  d|d   du sJ | d	|d  d|d   d|d  d|  ksJ | d	|d  d|d   du sJ | ddg fksJ | ddg fksJ | |d|dfgfksJ | d|d  d|dfgfks&J | d|d  d|dfgfks9J | |d
  |d  | d d|d |d  | d df|d dfgfksbJ | |d d|d   d|d   d|d   d|df|d d dfgfksJ | d|d  d|  d d|d dfgfksJ t dt\} }| d|d  d|  d d|d dfgfksJ t dtd\} }| |d d d|d dfgfksJ t dtd\} }| |d d|d   d|d   | d|df|d df|d dfgfksJ t dt\}}t dtd\}}|d d }|d d }|||ks?J |||d ksKJ ||du sUJ ||du s_J t dt\} }}|d d|d   d }|d d
|d   d
|d   d }|| || | 	|d|}}| 
||}	d|d  d |}
| ||	d|
dfgfksJ t dt\}}t d|\} }| |d |d  |d df|dfgksJ d S )Nxr   T            F               
   yx,yi  t)r   r   dup_sqf_part	dup_sqf_pdup_sqf_listr   r   dmp_subdmp_muldmp_diffdmp_resultantdropdup_sqf_list_include)Rr	   R1R2r   fgADreshRtr    r,   v/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/polys/tests/test_sqfreetools.pytest_dup_sqf   sp   *, 6&6&&&*
0
66*(


$"$4r.   c                     s  t dt\ }  ddksJ  ddu sJ  ddks#J  ddu s,J  ddg fks7J  ddgksAJ t dt\ } } tdu sSJ  td	 d
u s^J  tdu sgJ  td	 d
u srJ  tdu s{J  td	 d
u sJ  t	du sJ  t	d	 d
u sJ  t
d
u sJ  t
d	 d
u sJ  tdu sJ  tt ksJ  t
|  | ksJ t dt\ } }} tdu sJ  ttksJ t dt\ } | d  | d  |  d } |d| d | d	  |  d df| d d	fgfksJ  || d  | d	  |  d df| d d	fgks9J t dt\ } | d  | d  |  d } |d| d | d	  |  d df| d d	fgfkslJ  || d  | d	  |  d df| d d	fgksJ | d	  d	|   d } |d| d d	fgksJ d	 d d	 | d	 d	|   d	  } |d
u sJ  |d| d	 d	|   d	 dfd	 d d	fgfksJ t dtd	\ } tt fdd d S )Nr   r   Tr
   r   r   )r   r   zx,y,zr   Fzx,y,z,tr	   r   r   r   )r   r   c                      s     d d S )Nr   r   )dmp_sqf_listr,   r"   r   r,   r-   <lambda>   s    ztest_dmp_sqf.<locals>.<lambda>)r   r   dmp_sqf_part	dmp_sqf_pr/   dmp_sqf_list_includef_0f_1f_2f_3f_5f_4f_6r   r   NotImplementedError)r	   zr   r%   r,   r0   r-   test_dmp_sqfZ   sN   <:<: $<r>   c                     s  t dt\ } | d d| d   | d  d| d   } || df| d dfgks,J | d d| d	   d
| d   d| d   d| d   d| d   d| d   d| d   d|   } || d d|   d df| d d|   d df| dfgksJ tt fdd d S )Nr	   r   r   r   r   r   	      r      r
   i  r   i  i<  i  i  i@  c                      s
     dS )Nr   )dup_gff_listr,   r"   r,   r-   r1      s   
 z#test_dup_gff_list.<locals>.<lambda>)r   r   rB   r   
ValueError)r	   r%   r&   r,   rC   r-   test_dup_gff_list   s   ("dDrE   c                  C   s   t g dt\} }}}|d d|d   d  tdd|d d|d   d dfgfks/J |d d|d   d  tdd|d d|d   d dfgfksSJ |d d|d   d  tdd|d d|d   d dfgfkswJ d S )N)r	   r   r=   r   r   )r   r   sqf_listr   )r"   r	   r   r=   r,   r,   r-   test_issue_26178   s   HHLrG   N)__doc__sympy.polys.ringsr   sympy.polys.domainsr   r   r   sympy.polys.specialpolysr   sympy.testing.pytestr   sympy.external.gmpyr   r5   r6   r7   r8   r:   r9   r;   r.   r>   rE   rG   r,   r,   r,   r-   <module>   s    N7