a
    Ÿ¬<b#  ã                   @   sl   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
 eƒ \ZZZZZZ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)Úraisesc               
   C   sÐ  t dtƒ\} }|  d¡dks J ‚|  d¡du s2J ‚|  d¡dksDJ ‚|  d¡du sVJ ‚|  d| d ¡|d kstJ ‚|  d| d ¡du sŽJ ‚|  |d | d ¡|d | d ks¸J ‚|  |d | d ¡du sÖJ ‚|  |d  | d ¡|d | d ksJ ‚|  |d  | d ¡du s&J ‚|  d|d  d|d   ¡d|d  d|  ks^J ‚|  d|d  d|d   ¡du s†J ‚|  d	|d  d|d   ¡d|d  d|  ks¾J ‚|  d	|d  d|d   ¡du sæJ ‚|  d¡dg fksþJ ‚|  d¡dg fksJ ‚|  |¡d|dfgfks4J ‚|  d|d  ¡d|dfgfksZJ ‚|  d|d  ¡d|dfgfks€J ‚|  |d
  |d  | d ¡d|d |d  | d df|d dfgfksÒJ ‚|  |d d|d   d|d   d|d   ¡d|df|d d dfgfks&J ‚|  d|d  d|  d ¡d|d dfgfks\J ‚t dtƒ\} }|  d|d  d|  d ¡d|d dfgfks J ‚t dtdƒƒ\} }|  |d d ¡d|d dfgfksÜJ ‚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s¤J ‚| |¡du s¸J ‚| |¡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s€J ‚t dtƒ\}}t d|ƒ\} }|  |d |d  ¡|d df|dfgksÌJ ‚d S )NÚxr   Té   é   é   é   Féþÿÿÿé   é   éÿÿÿÿé   é   é   é
   Úyúx,yiä²  Út)r   r   Zdup_sqf_partZ	dup_sqf_pZdup_sqf_listr   r   Zdmp_subZdmp_mulZdmp_diffZdmp_resultantZdropZdup_sqf_list_include)ÚRr   ZR1ZR2r   ÚfÚgÚAÚDÚresÚhZRtr   © r   úr/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/polys/tests/test_sqfreetools.pyÚtest_dup_sqf   sp    *."8(8(&&*ÿ
0ÿ
66*(

þÿ
$"$r!   c                     sˆ  t dtƒ\‰ } ‰ˆ  d¡dks"J ‚ˆ  d¡du s4J ‚ˆ  d¡dksFJ ‚ˆ  d¡du sXJ ‚ˆ  d¡dg fksnJ ‚ˆ  d¡dgks‚J ‚t dtƒ\‰ } ‰}ˆ  t¡du s¦J ‚ˆ  td	 ¡d
u s¼J ‚ˆ  t¡du sÎJ ‚ˆ  td	 ¡d
u säJ ‚ˆ  t¡du söJ ‚ˆ  td	 ¡d
u sJ ‚ˆ  t	¡du s"J ‚ˆ  t	d	 ¡d
u s:J ‚ˆ  t
¡d
u sNJ ‚ˆ  t
d	 ¡d
u sfJ ‚ˆ  t¡du szJ ‚ˆ  t¡t ksJ ‚ˆ  t
¡| ˆ | ks¬J ‚t dtƒ\‰ } ‰}}ˆ  t¡du sÔJ ‚ˆ  t¡tksèJ ‚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s†J ‚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s&J ‚| d	  d	|   d }ˆ  |¡d| d d	fgks\J ‚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>‰   ó    ztest_dmp_sqf.<locals>.<lambda>)r   r   Zdmp_sqf_partZ	dmp_sqf_pr"   Zdmp_sqf_list_includeÚf_0Úf_1Úf_2Úf_3Úf_5Úf_4Úf_6r   r   ÚNotImplementedError)r   Úzr   r   r   r#   r    Útest_dmp_sqfY   sH    <:<: r/   c                     s  t dtƒ\‰ } | d d| d   | d  d| d   }ˆ  |¡| df| d dfgksXJ ‚| 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sJ ‚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    r$   •   r%   z#test_dup_gff_list.<locals>.<lambda>)r   r   r3   r   Ú
ValueError)r   r   r   r   r4   r    Útest_dup_gff_listŒ   s    ("dFr6   N)Ú__doc__Zsympy.polys.ringsr   Zsympy.polys.domainsr   r   r   Zsympy.polys.specialpolysr   Zsympy.testing.pytestr   r&   r'   r(   r)   r+   r*   r,   r!   r/   r6   r   r   r   r    Ú<module>   s   N3