
    sg                         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 Zd Zd	 Zd
 Zy)zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raises)MPQc            
      &   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                U/var/www/html/venv/lib/python3.12/site-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                  B   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 d	z  dz   d	z  | d	z  d	| z  z   d	z   z  }j                  |      d
u sJ j	                  |      d| d	z  d	| z  z   d	z   dfd	z  dz   d	fgf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(@ r0   )r   r   dmp_sqf_part	dmp_sqf_pr3   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_sqfrA   Z   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!*(====	
AAq!taczA~&A;;q>U""">>!adQqSj1na%81a4!8Q-$H IIII5"Q% GAq!
 @Ar0   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.   r4   z#test_dup_gff_list.<locals>.<lambda>   s    q~~a0 r0   )r   r   rG   r   
ValueError)r   r'   r(   r$   s      @r.   test_dup_gff_listrI      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1r0   c                     t        g dt              \  } }}}|dz  d|dz  z  z
  dz   j                         t        dd      |dz  d|dz  z  z
  dz   dfgfk(  sJ |dz  d|dz  z  z
  dz   j                         t        dd      |dz  d|dz  z  z
  dz   dfgfk(  sJ |dz  d|dz  z  z
  dz   j                         t        dd      |dz  d|dz  z  z
  dz   dfgfk(  sJ y )N)r   r   r@   r   r   )r   r   sqf_listr	   )r$   r   r   r@   s       r.   test_issue_26178rL      s   or*JAq!QqD1QT6MA'')c!Ah!Q$1a4-!:KQ9O8P-QQQQqD1QT6MA'')c!Ah!Q$1a4-!:KQ9O8P-QQQQqD1QT6MA'')c!Ah!Q$1a4-!:KQ9O8P-QQQQr0   N)__doc__sympy.polys.ringsr   sympy.polys.domainsr   r   r   sympy.polys.specialpolysr   sympy.testing.pytestr   sympy.external.gmpyr	   r8   r9   r:   r;   r=   r<   r>   r/   rA   rI   rL    r0   r.   <module>rT      sJ    H " * * , ' #$+I !S#sCcKD\4Bn	2Rr0   