U
    ˜9%e#  ã                   @   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 t‚|  d¡dks2t‚|  d¡dksDt‚|  d¡dksVt‚|  d| d ¡|d kstt‚|  d| d ¡dksŽt‚|  |d | d ¡|d | d ks¸t‚|  |d | d ¡dksÖt‚|  |d  | d ¡|d | d kst‚|  |d  | d ¡dks&t‚|  d|d  d|d   ¡d|d  d|  ks^t‚|  d|d  d|d   ¡dks†t‚|  d	|d  d|d   ¡d|d  d|  ks¾t‚|  d	|d  d|d   ¡dksæt‚|  d¡dg fksþt‚|  d¡dg fkst‚|  |¡d|dfgfks4t‚|  d|d  ¡d|dfgfksZt‚|  d|d  ¡d|dfgfks€t‚|  |d
  |d  | d ¡d|d |d  | d df|d dfgfksÒt‚|  |d d|d   d|d   d|d   ¡d|df|d d dfgfks&t‚|  d|d  d|  d ¡d|d dfgfks\t‚t dtƒ\} }|  d|d  d|  d ¡d|d dfgfks t‚t dtdƒƒ\} }|  |d d ¡d|d dfgfksÜt‚t dtdƒƒ\} }|  |d d|d   d|d   | ¡d|df|d df|d dfgfks@t‚t dtƒ\}}t dtdƒƒ\}}|d d }|d d }| |¡|ksŒt‚| |¡|d ks¤t‚| |¡dks¸t‚| |¡dksÌt‚t dtƒ\} }}|d d|d   d }|d d
|d   d
|d   d }||  ||  	|  
|d¡|¡¡ }}|  ||¡}	d|d  d  |¡}
|  |¡ |	¡d|
dfgfks€t‚t dtƒ\}}t d|ƒ\} }|  |d |d  ¡|d df|dfgksÌt‚d S )NÚxr   Té   é   é   é   Féþÿÿÿé   é   éÿÿÿÿé   é   é   é
   Úyúx,yiä²  Út)r   r   Zdup_sqf_partÚAssertionErrorZ	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    úa/var/www/html/Darija-Ai-API/env/lib/python3.8/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"t‚ˆ  d¡dks4t‚ˆ  d¡dksFt‚ˆ  d¡dksXt‚ˆ  d¡dg fksnt‚ˆ  d¡dgks‚t‚t dtƒ\‰ } ‰}ˆ  t¡dks¦t‚ˆ  td	 ¡d
ks¼t‚ˆ  t¡dksÎt‚ˆ  td	 ¡d
ksät‚ˆ  t	¡dksöt‚ˆ  t	d	 ¡d
kst‚ˆ  t
¡dks"t‚ˆ  t
d	 ¡d
ks:t‚ˆ  t¡d
ksNt‚ˆ  td	 ¡d
ksft‚ˆ  t¡dkszt‚ˆ  t¡t kst‚ˆ  t¡| ˆ | ks¬t‚t dtƒ\‰ } ‰}}ˆ  t¡dksÔt‚ˆ  t¡tksèt‚t dtƒ\‰ } | d  | d  |  d }ˆ  |¡d| d | d	  |  d df| d d	fgfksLt‚ˆ  |¡| d  | d	  |  d df| d d	fgks†t‚t dtƒ\‰ } ‰| d  | d  |  d }ˆ  |¡d| d | d	  |  d df| d d	fgfksìt‚ˆ  |¡| d  | d	  |  d df| d d	fgks&t‚| d	  d	|   d }ˆ  |¡d| d d	fgks\t‚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_partr   Z	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    <:<: r0   c                     s  t dtƒ\‰ } | d d| d   | d  d| d   }ˆ  |¡| df| d dfgksXt‚| 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t‚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   r4   r   r   Ú
ValueError)r   r   r   r    r5   r!   Útest_dup_gff_listŒ   s    ("dFr7   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"   r0   r7   r    r    r    r!   Ú<module>   s   N3