
    MZd#                     p    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 Zd Zd Zy	)
zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raisesc            
      &   t        dt              \  } }| j                  d      dk(  sJ | j                  d      du sJ | j                  d      dk(  sJ | j                  d      du sJ | j                  d|z  dz         |dz   k(  sJ | j                  d|z  dz         du sJ | j                  |dz  |z   dz         |dz  |z   dz   k(  sJ | j                  |dz  |z   dz         du sJ | j                  |dz   |z   dz         |dz  |z
  dz
  k(  sJ | j                  |dz   |z   dz         du sJ | j                  d|dz  z  d|dz  z  z         d|dz  z  d|z  z   k(  sJ | j                  d|dz  z  d|dz  z  z         du sJ | j                  d	|dz  z  d|dz  z  z         d|dz  z  d|z  z
  k(  sJ | j                  d	|dz  z  d|dz  z  z         du sJ | j	                  d      dg fk(  sJ | j	                  d      dg fk(  sJ | j	                  |      d|dfgfk(  sJ | j	                  d|dz  z        d|dfgfk(  sJ | j	                  d|dz  z        d|dfgfk(  sJ | j	                  |d
z   |dz  z   |z   dz
        d|dz  |dz  z   |z   dz   df|dz
  dfgfk(  sJ | j	                  |dz  d|dz  z  z   d|dz  z  z   d|dz  z  z         d|df|dz  dz   dfgfk(  sJ | j	                  d|dz  z  d|z  z   dz         d|dz   dfgfk(  sJ t        dt
              \  } }| j	                  d|dz  z  d|z  z   dz         d|dz   dfgfk(  sJ t        dt        d            \  } }| j	                  |dz  dz         d|dz   dfgfk(  sJ t        dt        d            \  } }| j	                  |dz  d|dz  z  z   d|dz  z  z   |z         d|df|dz   df|dz   dfgfk(  sJ t        dt              \  }}t        dt        d            \  }}|dz  dz   }|dz  dz   }|j                  |      |k(  sJ |j                  |      |dz   k(  sJ |j                  |      du sJ |j                  |      du sJ t        dt              \  } }}|dz  d|dz  z  z
  dz   }|dz  d
|dz  z  z
  d
|dz  z  z   dz   }|| j                  || j                  | j                  |d      |            }}| j                  ||      }	d|dz  z  dz   j                  |      }
| j                  |      j	                  |	      d|
dfgfk(  sJ t        dt              \  }}t        d|      \  } }| j                  |dz  |dz  z        |dz  df|dfgk(  sJ y )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   s                D/usr/lib/python3/dist-packages/sympy/polys/tests/test_sqfreetools.pytest_dup_sqfr.      s   R=DAq>>!!!!;;q>T!!!>>!!!!;;q>T!!!>>!A#'"a!e+++;;qsQw4'''>>!Q$(Q,'1a4!8a<777;;q!tax!|$,,,>>1a4%!)a-(AqD1HqL888;;1uqy1}%--->>!AqD&1QT6/*a1fqsl:::;;qAv!Q$'5000>>"QT'AadF*+qAv!|;;;;;r!Q$w1a4'(E111>>!B'''>>!B'''>>!aVH--->>!AqD&!a1a&]222>>!AqD&!a1a&]222>>1a4%!Q$,*Q./	q!tad{Q"A&Q
345 5 5>>!Q$1a4-"QT'1AadF:;
q!fq!taxm$%& & & >>!AqD&1Q3,*+QUAJ</@@@@R=DAq>>!AqD&1Q3,*+QUAJ</@@@@RUDAq>>!Q$(#QUAJ<'8888RUDAq>>!R%!AqD&.1QT61A56	
aV!eQZ!eQZ 	  
 bMEBbeEB	1qA	1qA??1"""??1Q&&&<<?d"""<<?e###5"oGAq!	1qAvA	1qAv!Q$"Aaii199QZZ1%5q9:qA
//!Q
C	
1a4!!A66!9!!#&5Aq6(*;;;;bMEBR=DAq!!!Q$q!t),!Q$QF0CCCC    c                     t        dt              \  } j                  d      dk(  sJ j                  d      du sJ j                  d      dk(  sJ j                  d      du sJ j	                  d      dg fk(  sJ j                  d      dgk(  sJ t        dt              \  } }j                  t              du sJ j                  t        d	z        d
u sJ j                  t              du sJ j                  t        d	z        d
u sJ j                  t              du sJ j                  t        d	z        d
u sJ j                  t              du sJ j                  t        d	z        d
u sJ j                  t              d
u sJ j                  t        d	z        d
u sJ j                  t              du sJ j                  t              t         k(  sJ j                  t              | z   |z
  k(  sJ t        dt              \  } }}j                  t              du sJ j                  t              t        k(  sJ t        dt              \  } | dz   | dz  z   | z   dz
  }j	                  |      d| dz  | d	z  z   | z   dz   df| dz
  d	fgfk(  sJ j                  |      | dz   | d	z  z
  | z
  dz
  df| dz
  d	fgk(  sJ t        dt              \  } | dz   | dz  z   | z   dz
  }j	                  |      d| dz  | d	z  z   | z   dz   df| dz
  d	fgfk(  sJ j                  |      | dz   | d	z  z
  | z
  dz
  df| dz
  d	fgk(  sJ | d	z   d	| z  z   dz
  }j                  |      d| dz
  d	fgk(  sJ t        dt        d	            \  } t        t        fd       y )Nr   r   Tr   r   r   )r   r   zx,y,zr   Fzx,y,z,tr
   r   r   r   )r   r   c                  2     j                  dz  dz         S )Nr   r   )dmp_sqf_list)r#   r   s   r-   <lambda>ztest_dmp_sqf.<locals>.<lambda>   s    q!tax(@ r/   )r   r   dmp_sqf_part	dmp_sqf_pr2   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   s       @@r-   test_dmp_sqfr@   Y   s
   5"oGAq!>>!!!!;;q>T!!!>>!!!!;;q>T!!!>>!B'''!!!$000gr"JAq!Q;;st###;;sAv%''';;st###;;sAv%''';;st###;;sAv%''';;st###;;sAv%''';;su$$$;;sAv%''';;st###>>#3$&&&>>#!a%!)+++B'MAq!Q;;st###>>##%%%R=DAq	
A1q1A>>!q!tad{Q':A&>Q
%K LLLL!!!$1a4%!Q$,*:Q*>)BQUAJ(OOOO5"oGAq!	
A1q1A>>!q!tad{Q':A&>Q
%K LLLL!!!$1a4%!Q$,*:Q*>)BQUAJ(OOOO	
A!aA!!!$1q5!*(====5"Q% GAq!
 @Ar/   c                     t        dt              \  } | dz  d| dz  z  z   | dz  z
  d| dz  z  z
  }j                  |      | df| dz   dfgk(  sJ | dz  d| d	z  z  z
  d
| dz  z  z   d| dz  z  z
  d| dz  z  z   d| dz  z  z
  d| dz  z  z   d| dz  z  z
  d| z  z   }j                  |      | dz  d| z  z
  dz   df| dz  d| z  z
  dz   df| dfgk(  sJ t        t        fd       y )Nr
   r   r   r   r   r   	      r      r   i  r   i  i<  i  i  i@  c                  &     j                  d      S )Nr   )dup_gff_list)r#   s   r-   r3   z#test_dup_gff_list.<locals>.<lambda>   s    q~~a0 r/   )r   r   rF   r   
ValueError)r
   r&   r'   r#   s      @r-   test_dup_gff_listrH      s0   R=DAq	1qAv1qAv%A>>!!Q!a% 4444	1r!Q$wQT!C1H,tAqDy8419DtAqDyPSWXY[\X\S\\_bcd_ddA>>!!Q$1*q.!!4q!taczA~q6IAq6 RRRR
:01r/   N)__doc__sympy.polys.ringsr   sympy.polys.domainsr   r   r   sympy.polys.specialpolysr   sympy.testing.pytestr   r7   r8   r9   r:   r<   r;   r=   r.   r@   rH    r/   r-   <module>rO      sA    H " * * , '$+I !S#sCcKD\0Bf	2r/   