
    \h                         S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  \" 5       u  rrrrrrrS rS rS	 rS
 rg)zBTests for square-free decomposition algorithms and related tools.     )ring)FFZZQQ)f_polys)raises)MPQc            
      J   [        S[        5      u  pU R                  S5      S:X  d   eU R                  S5      SL d   eU R                  S5      S:X  d   eU R                  S5      SL d   eU R                  SU-  S-   5      US-   :X  d   eU R                  SU-  S-   5      SL d   eU R                  US-  U-   S-   5      US-  U-   S-   :X  d   eU R                  US-  U-   S-   5      SL d   eU R                  US-  * U-   S-   5      US-  U-
  S-
  :X  d   eU R                  US-  * U-   S-   5      SL d   eU R                  SUS-  -  SUS-  -  -   5      SUS-  -  SU-  -   :X  d   eU R                  SUS-  -  SUS-  -  -   5      SL d   eU R                  S	US-  -  SUS-  -  -   5      SUS-  -  SU-  -
  :X  d   eU R                  S	US-  -  SUS-  -  -   5      SL d   eU R	                  S5      S/ 4:X  d   eU R	                  S5      S/ 4:X  d   eU R	                  U5      SUS4/4:X  d   eU R	                  SUS-  -  5      SUS4/4:X  d   eU R	                  SUS-  -  5      SUS4/4:X  d   eU R	                  US
-  * US-  -   U-   S-
  5      SUS-  US-  -   U-   S-   S4US-
  S4/4:X  d   eU R	                  US-  SUS-  -  -   SUS-  -  -   SUS-  -  -   5      SUS4US-  S-   S4/4:X  d   eU R	                  SUS-  -  SU-  -   S-   5      SUS-   S4/4:X  d   e[        S[
        5      u  pU R	                  SUS-  -  SU-  -   S-   5      SUS-   S4/4:X  d   e[        S[        S5      5      u  pU R	                  US-  S-   5      SUS-   S4/4:X  d   e[        S[        S5      5      u  pU R	                  US-  SUS-  -  -   SUS-  -  -   U-   5      SUS4US-   S4US-   S4/4:X  d   e[        S[        5      u  p![        S[        S5      5      u  p4US-  S-   nUS-  S-   nUR                  U5      U:X  d   eUR                  U5      US-   :X  d   eUR                  U5      SL d   eUR                  U5      SL d   e[        S[        5      u  pnUS-  SUS-  -  -
  S-   nUS-  S
US-  -  -
  S
US-  -  -   S-   nXR                  XpR                  U R                  US5      U5      5      peU R                  XV5      n	SUS-  -  S-   R                  U5      n
U R                  U5      R	                  U	5      SU
S4/4:X  d   e[        S[        5      u  p[        SU5      u  pU R                  US-  US-  -  5      US-  S4US4/:X  d   eg )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                Z/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_sqfreetools.pytest_dup_sqfr/      s~   R=DA>>!!!!;;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=DA>>!AqD&1Q3,*+QUAJ</@@@@RUDA>>!Q$(#QUAJ<'8888RUDA>>!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"oGA!	1qAvA	1qAv!Q$"Aii99QZZ1%5q9:q
//!
C	
1a4!!A66!9!!#&5Aq6(*;;;;bMEBR=DA!!!Q$q!t),!Q$QF0CCCC    c                  z  ^^ [        S[        5      u  mn mTR                  S5      S:X  d   eTR                  S5      SL d   eTR                  S5      S:X  d   eTR                  S5      SL d   eTR	                  S5      S/ 4:X  d   eTR                  S5      S/:X  d   e[        S[        5      u  mn mnTR                  [        5      SL d   eTR                  [        S	-  5      S
L d   eTR                  [        5      SL d   eTR                  [        S	-  5      S
L d   eTR                  [        5      SL d   eTR                  [        S	-  5      S
L d   eTR                  [        5      SL d   eTR                  [        S	-  5      S
L d   eTR                  [        5      S
L d   eTR                  [        S	-  5      S
L d   eTR                  [        5      SL d   eTR                  [        5      [        * :X  d   eTR                  [        5      U T-   U-
  :X  d   e[        S[        5      u  mn mpTR                  [        5      SL d   eTR                  [        5      [        :X  d   e[        S[        5      u  mn U S-  * U S-  -   U -   S-
  nTR	                  U5      SU S-  U S	-  -   U -   S-   S4U S-
  S	4/4:X  d   eTR                  U5      U S-  * U S	-  -
  U -
  S-
  S4U S-
  S	4/:X  d   e[        S[        5      u  mn mU S-  * U S-  -   U -   S-
  nTR	                  U5      SU S-  U S	-  -   U -   S-   S4U S-
  S	4/4:X  d   eTR                  U5      U S-  * U S	-  -
  U -
  S-
  S4U S-
  S	4/:X  d   eU S	-  * S	U -  -   S-
  nTR                  U5      SU S-
  S	4/:X  d   eTS	-  S-   S	-  U S	-  S	U -  -   S	-   -  nTR                  U5      S
L d   eTR	                  U5      SU S	-  S	U -  -   S	-   S4TS	-  S-   S	4/4:X  d   e[        S[        S	5      5      u  mn m[        [        UU4S j5        g )Nr   r   Tr   r   r   )r   r   zx,y,zr   Fzx,y,z,tr   r   r   r   )r   r   c                  2   > T R                  TS-  S-   5      $ )Nr   r   )dmp_sqf_list)r$   r   s   r.   <lambda>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_sqfrB   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                    ^ [        S[        5      u  mn U S-  SU S-  -  -   U S-  -
  SU S-  -  -
  nTR                  U5      U S4U S-   S4/:X  d   eU S-  SU S	-  -  -
  S
U S-  -  -   SU S-  -  -
  SU S-  -  -   SU S-  -  -
  SU S-  -  -   SU S-  -  -
  SU -  -   nTR                  U5      U S-  SU -  -
  S-   S4U S-  SU -  -
  S-   S4U S4/:X  d   e[        [        U4S j5        g )Nr   r   r   r   r   r   	      r      r   i  r   i  i<  i  i  i@  c                  &   > T R                  S5      $ )Nr   )dup_gff_list)r$   s   r.   r4   #test_dup_gff_list.<locals>.<lambda>   s    q~~a0r0   )r   r   rH   r   
ValueError)r   r'   r(   r$   s      @r.   test_dup_gff_listrK      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                     [        / SQ[        5      u  pp#US-  SUS-  -  -
  S-   R                  5       [        SS5      US-  SUS-  -  -
  S-   S4/4:X  d   eUS-  SUS-  -  -
  S-   R                  5       [        SS5      US-  SUS-  -  -
  S-   S4/4:X  d   eUS-  SUS-  -  -
  S-   R                  5       [        SS5      US-  SUS-  -  -
  S-   S4/4:X  d   eg )N)r   r   rA   r   r   )r   r   sqf_listr	   )r$   r   r   rA   s       r.   test_issue_26178rN      s   or*JA!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	   r9   r:   r;   r<   r>   r=   r?   r/   rB   rK   rN    r0   r.   <module>rV      sJ    H " * * , ' #$+I !S#sCcKD\4Bn	2Rr0   