
    Rie#                     x    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d	S )
zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raisesc            
         t          dt                    \  } }|                     d          dk    sJ |                     d          du sJ |                     d          dk    sJ |                     d          du sJ |                     d|z  dz             |dz   k    sJ |                     d|z  dz             du sJ |                     |dz  |z   dz             |dz  |z   dz   k    sJ |                     |dz  |z   dz             du sJ |                     |dz   |z   dz             |dz  |z
  dz
  k    sJ |                     |dz   |z   dz             du sJ |                     d|dz  z  d|dz  z  z             d|dz  z  d|z  z   k    sJ |                     d|dz  z  d|dz  z  z             du sJ |                     d	|dz  z  d|dz  z  z             d|dz  z  d|z  z
  k    sJ |                     d	|dz  z  d|dz  z  z             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z  z            d|dfgfk    sJ |                     d|dz  z            d|dfgfk    s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 |                     |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 |                     d|dz  z  d|z  z   dz             d|dz   dfgfk    sJ t          dt
                    \  } }|                     d|dz  z  d|z  z   dz             d|dz   dfgfk    sJ t          dt          d                    \  } }|                     |dz  dz             d|dz   dfgfk    sJ t          dt          d                    \  } }|                     |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   }|                    |          |k    sJ |                    |          |dz   k    sJ |                    |          du s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   }||                     ||                     | 	                    |d          |                    }}| 
                    ||          }	d|dz  z  dz                       |          }
|                     |                              |	          d|
dfgfk    sJ t          dt                    \  }}t          d|          \  } }|                     |dz  |dz  z            |dz  df|dfgk    sJ d S )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                Blib/python3.11/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7;;q!tax!|$$,,,,>>1a4%!)a-((AqD1HqL8888;;1uqy1}%%---->>!AqD&1QT6/**a1fqsl::::;;qAv!Q$''50000>>"QT'AadF*++qAv!|;;;;;;r!Q$w1a4'((E1111>>!B''''>>!B''''>>!aVH---->>!AqD&!!a1a&]2222>>!AqD&!!a1a&]2222>>1a4%!Q$,*Q.//	q!tad{Q"A&Q
345 5 5 5>>!Q$1a4-"QT'1AadF:;;
q!fq!taxm$%& & & & >>!AqD&1Q3,*++QUAJ</@@@@@R==DAq>>!AqD&1Q3,*++QUAJ</@@@@@RUUDAq>>!Q$(##QUAJ<'88888RUUDAq>>!R%!AqD&.1QT61A566	
aV!eQZ!eQZ 	   
 bMMEBbeeEB	1qA	1qA??1""""??1Q&&&&<<??d""""<<??e####5"ooGAq!	1qAvA	1qAv!Q$"Aaii199QZZ1%5%5q99::qA
//!Q

C	
1a4!!A66!99!!#&&5Aq6(*;;;;;bMMEBR==DAq!!!Q$q!t),,!Q$QF0CCCCCCC    c                     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    sJ                     d          dgk    sJ t          dt                    \  } }                    t                    du sJ                     t          d	z            d
u sJ                     t                    du sJ                     t          d	z            d
u sJ                     t                    du sJ                     t          d	z            d
u sJ                     t                    du sJ                     t          d	z            d
u sJ                     t                    d
u sJ                     t          d	z            d
u sJ                     t                    du sJ                     t                    t           k    sJ                     t                    | z   |z
  k    sJ t          dt                    \  } }}                    t                    du sJ                     t                    t          k    sJ t          dt                    \  } | 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                     |          | 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
  }                    |          d| dz  | d	z  z   | z   dz   df| dz
  d	fgfk    s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
  }                    |          d| dz
  d	fgk    sJ t          dt          d	                    \  } t          t          f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                  :                          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"ooGAq!>>!!!!!;;q>>T!!!!>>!!!!!;;q>>T!!!!>>!B''''!!!$$0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L!!!$$1a4%!Q$,*:Q*>)BQUAJ(OOOOO5"ooGAq!	
A1q1A>>!q!tad{Q':A&>Q
%K LLLLL!!!$$1a4%!Q$,*:Q*>)BQUAJ(OOOOO	
A!aA!!!$$1q5!*(=====5"Q%%  GAq!
 @ @ @ @ @AAAAAr/   c                     t          dt                    \  } | dz  d| dz  z  z   | dz  z
  d| dz  z  z
  }                    |          | 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   }                    |          | 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           d S )Nr
   r   r   r   r   r   	      r      r   i  r   i  i<  i  i  i@  c                  .                          d          S )Nr   )dup_gff_list)r#   s   r-   r3   z#test_dup_gff_list.<locals>.<lambda>   s    q~~a00 r/   )r   r   rF   r   
ValueError)r
   r&   r'   r#   s      @r-   test_dup_gff_listrH      sS   R==DAq	1qAv1qAv%A>>!!Q!a% 4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R
:00001111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      s    H H " " " " " " * * * * * * * * * * , , , , , , ' ' ' ' ' '$+GII !S#sCcKD KD KD\0B 0B 0Bf	2 	2 	2 	2 	2r/   