o
    ą8Va#  ć                   @   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 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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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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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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   śD/usr/lib/python3/dist-packages/sympy/polys/tests/test_sqfreetools.pyŚtest_dup_sqf   sp   *, 6&6&&&*
’0
’66*(

ž
’$"$4r!   c                     st  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 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”t ksĮJ   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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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>   s    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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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$      s   
 z#test_dup_gff_list.<locals>.<lambda>)r   r   r2   r   Ś
ValueError)r   r   r   r   r3   r    Śtest_dup_gff_list   s   ("dDr5   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.   r5   r   r   r   r    Ś<module>   s    N3