
    g                         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dS )zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raises)MPQc            
         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                ^/var/www/html/ai-engine/env/lib/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 d	z  dz   d	z  | d	z  d	| z  z   d	z   z  }                    |          d
u s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           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(@(@ 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   sW   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!*(=====	
AAq!taczA~&A;;q>>U"""">>!adQqSj1na%81a4!8Q-$H IIIII5"Q%%  GAq!
 @ @ @ @ @AAAAAr0   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.   r4   z#test_dup_gff_list.<locals>.<lambda>   s    q~~a00 r0   )r   r   rG   r   
ValueError)r   r'   r(   r$   s      @r.   test_dup_gff_listrI      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1r0   c                      t          g dt                    \  } }}}|dz  d|dz  z  z
  dz                                   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                                   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                                   t          dd          |dz  d|dz  z  z
  dz   dfgfk    sJ d S )N)r   r   r@   r   r   )r   r   sqf_listr	   )r$   r   r   r@   s       r.   test_issue_26178rL      s7   ooor**JAq!QqD1QT6MA''))c!Ahh!Q$1a4-!:KQ9O8P-QQQQQqD1QT6MA''))c!Ahh!Q$1a4-!:KQ9O8P-QQQQQqD1QT6MA''))c!Ahh!Q$1a4-!:KQ9O8P-QQQ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      s    H H " " " " " " * * * * * * * * * * , , , , , , ' ' ' ' ' ' # # # # # #$+GII !S#sCcKD KD KD\4B 4B 4Bn	2 	2 	2R R R R Rr0   