
    \h                         S r SSKJr  SSKJr  SSKJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SS	KJr  SS
KJrJrJrJrJrJrJrJrJrJrJr  SSKJrJrJ r   S r!S r"S r#S r$S r%S r&S r'S r(g)z<Tests for functions for generating interesting polynomials.     )Add)symbols)sqrt)prime)ZZ)Poly)permute_signs)raises)swinnerton_dyer_polycyclotomic_polysymmetric_polyrandom_polyinterpolating_polyfateman_poly_F_1dmp_fateman_poly_F_1fateman_poly_F_2dmp_fateman_poly_F_2fateman_poly_F_3dmp_fateman_poly_F_3)xyzc                  &   [        [        S 5        [        S[        SS9[	        [        S-  S-
  5      :X  d   e[        S[        5      [        S-  S-
  :X  d   e[        S[        5      [        S-  S[        S-  -  -
  S-   :X  d   e[        S[        5      [        S	-  S
[        S-  -  -
  S[        S-  -  -   S[        S-  -  -
  S-   :X  d   e[        SS5       V s/ s H  n [        [        U 5      5      PM     nn [        [        SSS9R                  5        V s/ s H  o R                  S5      PM     sn 5      [        [        [        U5       V s/ s H  n [        U 6 R                  S5      PM     sn 5      5      :X  d   eg s  sn f s  sn f s  sn f )Nc                  "    [        S[        5      $ Nr   )r   r        [/var/www/auris/envauris/lib/python3.13/site-packages/sympy/polys/tests/test_specialpolys.py<lambda>+test_swinnerton_dyer_poly.<locals>.<lambda>   s    3Aq9r      Tpolys      
         (      i`  i  i@     )r
   
ValueErrorr   r   r   ranger   r   str	all_rootsnsortedr	   r   )ips     r   test_swinnerton_dyer_polyr4      sp   
:9:1D1T!Q$(^CCC1%A1111%A1a4!);;;;	1A1a4#ad(*SAX5;< < < "'q!-AeAhA-Qd+55797 A79 
}Q/?@/?!a1/?@ABC C C 	.9@s   FF	!Fc                  6   [        [        S 5        [        S[        SS9[	        [        S-
  5      :X  d   e[        S[        5      [        S-
  :X  d   e[        S[        5      [        S-   :X  d   e[        S[        5      [        S-  [        -   S-   :X  d   e[        S[        5      [        S-  S-   :X  d   e[        S[        5      [        S-  [        S-  -   [        S-  -   [        -   S-   :X  d   e[        S	[        5      [        S-  [        -
  S-   :X  d   eg )
Nc                  "    [        S[        5      $ r   )r   r   r   r   r   r   &test_cyclotomic_poly.<locals>.<lambda>/   s    q!4r   r!   Tr"   r$   r'   r%   r+   r*   )r
   r,   r   r   r   r   r   r   test_cyclotomic_polyr8   .   s    
:451at,QU;;;1a AE)))1a AE)))1a AqD1HqL0001a AqD1H,,,1a AqD1a4K!Q$$6$:Q$>>>>1a AqD1HqL000r   c                     [        [        S 5        [        [        S 5        [        S[        [        [
        SS9[        [        [        -   [
        -   5      :X  d   e[        S[        [        [
        4SS9[        [        [        -   [
        -   5      :X  d   e[        S[        [        [
        5      S:X  d   e[        S[        [        [
        5      [        [        -   [
        -   :X  d   e[        S[        [        [
        5      [        [        -  [        [
        -  -   [        [
        -  -   :X  d   e[        S[        [        [
        5      [        [        -  [
        -  :X  d   eg )	Nc                  6    [        S[        [        [        5      $ )Nr   r   r   r   r   r   r   r   %test_symmetric_poly.<locals>.<lambda><   s    ~b!Q:r   c                  6    [        S[        [        [        5      $ )Nr+   r<   r   r   r   r   r=   =   s    ~aAq9r   r!   Tr"   r   r$   r'   )r
   r,   r   r   r   r   r   r   r   r   test_symmetric_polyr?   ;   s    
::;
:9:!Q1D1T!a%!)_DDD!aAYd3tAEAIFFF!Q1%***!Q1%Q222!Q1%1qsQqS888!Q1%1Q...r   c                  X   [        [        SSSSS9n [        U 5      R                  5       S:X  d   e[	        S [        U 5      R                  5        5       5      SL d   e[        [        SSSSS9n U R                  5       S:X  d   e[	        S U R                  5        5       5      SL d   eg )	Nr&   d   Fr"   c              3   L   #    U  H  nS Us=:*  =(       a    S:*  Os  v   M     g7frA   rB   Nr   .0coeffs     r   	<genexpr>#test_random_poly.<locals>.<genexpr>L   s"     E1Dtu####1D   "$Tc              3   L   #    U  H  nS Us=:*  =(       a    S:*  Os  v   M     g7frD   r   rE   s     r   rH   rI   Q   s      ?tu####rJ   )r   r   r   degreeallcoeffs)polys    r   test_random_polyrP   H   s    q"dCu5D:"$$$Ed1B1B1DEEMMMq"dCt4D;;=B???4GGGr   c                     [        S5      u  pp#pEpg[        S[        5      S:X  d   e[        S[        5      U:X  d   e[        S[        5      U[        U-
  -  X-
  -  U[        U -
  -  X-
  -  -   :X  d   e[        S[        5      U[        U-
  -  [        U-
  -  X-
  X-
  -  -  U[        U -
  -  [        U-
  -  X-
  X-
  -  -  -   U[        U -
  -  [        U-
  -  X -
  X!-
  -  -  -   :X  d   e[        S[        5      U[        U-
  -  [        U-
  -  [        U-
  -  X-
  X-
  -  X-
  -  -  U[        U -
  -  [        U-
  -  [        U-
  -  X-
  X-
  -  X-
  -  -  -   U[        U -
  -  [        U-
  -  [        U-
  -  X -
  X!-
  -  X#-
  -  -  -   U[        U -
  -  [        U-
  -  [        U-
  -  X0-
  X1-
  -  X2-
  -  -  -   :X  d   e[        [        S 5        [        [        S 5        [        [        S	 5        [        [        S
 5        [        [        S 5        [        S[        SS5      S:X  d   e[        S[        SS5      S:X  d   e[        S[        SS5      [        S-   :X  d   eg )Nzx:4, y:4r   r!   r$   r'   r%   c                  2    [        S[        [        S4S5      $ Nr$   )r!   r'   )r   r   r   r   r   r   )test_interpolating_poly.<locals>.<lambda>h   s    1a!Q0r   c                  @    [        S[        [        [        -   S4S5      $ rS   r   r   r   r   r   r   r   rT   j   s    1a!a%V4r   c                  @    [        S[        [        -   [        S4S5      $ rS   rV   r   r   r   r   rT   l   s    1a!eaVV4r   c                      [        SSSS5      $ )Nr$   r'   r%   r+   )r*      r   r   r   r   r   rT   n   s    1a0r   c                      [        SSSS5      $ )Nr$   r'   rY   )r*   rZ   r(   r[   r   r   r   r   rT   p   s    1a3r   )r!   r$   )r'   r%   )r   r   r   r
   r,   )x0x1x2x3y0y1y2y3s           r   test_interpolating_polyre   T   s   %,Z%8"BBBBa#q(((a#r)))a#
AFRWAFRW 556 6 6 a#
AFQVrw12
AFQVrw12	3
AFQVrw12	33 3 3
 a#
AFQVa"f%"'':BG'DE
AFQVa"f%"'':BG'DE	F
AFQVa"f%"'':BG'DE	F 	AFQVa"f%"'':BG'DE	FF F F : 1 2
: 5 6
: 5 6
: 1 2
: 4 5aFF3q888aFF3q888aFF3q1u<<<r   c                  l   [        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   e[        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   eg s  snf s  snf Nr!   r'   )r   r   r   repto_listfghFGHts          r   test_fateman_poly_F_1rr   w       q!GA!"1b)GA!'(Qi1iUU]]_i1aAY>>>q!GA!"1b)GA!'(Qi1iUU]]_i1aAY>>> 2
 2   #B,=#B1c                  l   [        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   e[        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   eg s  snf s  snf rg   )r   r   r   rh   ri   rj   s          r   test_fateman_poly_F_2rv      rs   rt   c                  l   [        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   e[        S5      u  pn[        S[        5      u  p4nXU4 Vs/ s H  ofR                  R	                  5       PM     snX4U/:X  d   eg s  snf s  snf rg   )r   r   r   rh   ri   rj   s          r   test_fateman_poly_F_3rx      rs   rt   N))__doc__sympy.core.addr   sympy.core.symbolr   (sympy.functions.elementary.miscellaneousr   sympy.ntheory.generater   sympy.polys.domains.integerringr   sympy.polys.polytoolsr   sympy.utilities.iterablesr	   sympy.testing.pytestr
   sympy.polys.specialpolysr   r   r   r   r   r   r   r   r   r   r   	sympy.abcr   r   r   r4   r8   r?   rP   re   rr   rv   rx   r   r   r   <module>r      sg    B  % 9 ( . & 3 '     C"
1
/	H =F	?	?	?r   