
    g                         d Z ddlmZ ddlmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZmZmZmZmZmZmZ ddlmZmZm Z  d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(dS )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            	         t          t          d            t          dt          d          t	          t          dz  dz
            k    sJ t          dt                    t          dz  dz
  k    sJ t          dt                    t          dz  dt          dz  z  z
  dz   k    sJ t          dt                    t          d	z  d
t          dz  z  z
  dt          dz  z  z   dt          dz  z  z
  dz   k    sJ d t          dd          D             } t          d t          dd                                          D                       t          t          d t          |           D                                 k    sJ d S )Nc                  ,    t          dt                    S Nr   )r   r        _/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/polys/tests/test_specialpolys.py<lambda>z+test_swinnerton_dyer_poly.<locals>.<lambda>   s    3Aq99 r      Tpolys      
         (      i`  i  i@  c                 F    g | ]}t          t          |                    S r   )r   r   .0is     r   
<listcomp>z-test_swinnerton_dyer_poly.<locals>.<listcomp>(   s$    ---AeAhh---r      c                 8    g | ]}|                     d           S r&   )nr+   s     r   r.   z-test_swinnerton_dyer_poly.<locals>.<listcomp>)   s.     9 9 91A 9 9 9r   c                 F    g | ]}t          |                     d           S r1   )r   r2   r+   s     r   r.   z-test_swinnerton_dyer_poly.<locals>.<listcomp>+   s&    @@@!a1@@@r   )
r
   
ValueErrorr   r   r   rangestr	all_rootssortedr	   )ps    r   test_swinnerton_dyer_polyr:      s   
:99:::1D111T!Q$(^^CCCC1%%A11111%%A1a4!);;;;;	1 A1a4#ad(*SAX5;< < < < 	.-q!---A 9 9Qd+++55779 9 9 
 
@@}Q/?/?@@@AABBC C C C C Cr   c                     t          t          d            t          dt          d          t	          t          dz
            k    sJ t          dt                    t          dz
  k    sJ t          dt                    t          dz   k    sJ t          dt                    t          dz  t          z   dz   k    sJ t          dt                    t          dz  dz   k    sJ t          dt                    t          dz  t          dz  z   t          dz  z   t          z   dz   k    sJ t          d	t                    t          dz  t          z
  dz   k    sJ d S )
Nc                  ,    t          dt                    S r   )r   r   r   r   r   r   z&test_cyclotomic_poly.<locals>.<lambda>/   s    q!44 r   r    Tr!   r#   r&   r$   r/   r)   )r
   r4   r   r   r   r   r   r   test_cyclotomic_polyr=   .   s/   
:445551at,,,QU;;;;1a  AE))))1a  AE))))1a  AqD1HqL00001a  AqD1H,,,,1a  AqD1a4K!Q$$6$:Q$>>>>>1a  AqD1HqL000000r   c                  r   t          t          d            t          t          d            t          dt          t          t
          d          t          t          t          z   t
          z             k    sJ t          dt          t          t
          fd          t          t          t          z   t
          z             k    sJ t          dt          t          t
                    dk    sJ t          dt          t          t
                    t          t          z   t
          z   k    sJ t          dt          t          t
                    t          t          z  t          t
          z  z   t          t
          z  z   k    sJ t          dt          t          t
                    t          t          z  t
          z  k    sJ d S )	Nc                  D    t          dt          t          t                    S )Nr   r   r   r   r   r   r   r   z%test_symmetric_poly.<locals>.<lambda><   s    ~b!Q:: r   c                  D    t          dt          t          t                    S )Nr/   rA   r   r   r   r   z%test_symmetric_poly.<locals>.<lambda>=   s    ~aAq99 r   r    Tr!   r   r#   r&   )r
   r4   r   r   r   r   r   r   r   r   test_symmetric_polyrC   ;   s6   
:::;;;
:99:::!Q1D111T!a%!)__DDDD!aAYd333tAEAIFFFF!Q1%%****!Q1%%Q2222!Q1%%1qsQqS8888!Q1%%1Q......r   c                     t          t          dddd          } t          |                                           dk    sJ t	          d t          |                                           D                       du sJ t          t          dddd          } |                                 dk    sJ t	          d |                                 D                       du sJ d S )	Nr%   d   Fr!   c              3   6   K   | ]}d |cxk    odk    nc V  dS rE   rF   Nr   r,   coeffs     r   	<genexpr>z#test_random_poly.<locals>.<genexpr>L   s>      EEtu########EEEEEEr   Tc              3   6   K   | ]}d |cxk    odk    nc V  dS rH   r   rI   s     r   rK   z#test_random_poly.<locals>.<genexpr>Q   s>      ??tu########??????r   )r   r   r   degreeallcoeffs)polys    r   test_random_polyrQ   H   s    q"dCu555D::"$$$$EEd1B1B1D1DEEEEEMMMMq"dCt444D;;==B???????4GGGGGGr   c                     t          d          \  } }}}}}}}t          dt                    dk    sJ t          dt                    |k    sJ t          dt                    |t          |z
  z  | |z
  z  |t          | z
  z  || z
  z  z   k    sJ t          dt                    |t          |z
  z  t          |z
  z  | |z
  | |z
  z  z  |t          | z
  z  t          |z
  z  || z
  ||z
  z  z  z   |t          | z
  z  t          |z
  z  || z
  ||z
  z  z  z   k    sJ t          dt                    |t          |z
  z  t          |z
  z  t          |z
  z  | |z
  | |z
  z  | |z
  z  z  |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   |t          | z
  z  t          |z
  z  t          |z
  z  || z
  ||z
  z  ||z
  z  z  z   k    sJ t          t          d            t          t          d            t          t          d	            t          t          d
            t          t          d            t          dt          dd          dk    sJ t          dt          dd          dk    sJ t          dt          dd          t          dz   k    sJ d S )Nzx:4, y:4r   r    r#   r&   r$   c                  >    t          dt          t          dfd          S Nr#   )r    r&   )r   r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>h   s    1a!Q00 r   c                  N    t          dt          t          t          z   dfd          S rT   r   r   r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>j   s     1a!a%V44 r   c                  N    t          dt          t          z   t          dfd          S rT   rV   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>l   s     1a!eaVV44 r   c                  &    t          dddd          S )Nr#   r&   r$   r/   )r)      r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>n   s    1a00 r   c                  &    t          dddd          S )Nr#   r&   rY   )r)   rZ   r'   r[   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>p   s    1a33 r   )r    r#   )r&   r$   )r   r   r   r
   r4   )x0x1x2x3y0y1y2y3s           r   test_interpolating_polyre   T   sZ   %,Z%8%8"BBBBa##q((((a##r))))a##
AFR"WAFR"W 556 6 6 6 a##
AFQVrBwb12
AFQVrBwb12	3
AFQVrBwb12	33 3 3 3
 a##
AFQVa"f%R"r'':BG'DE
AFQVa"f%R"r'':BG'DE	F
AFQVa"f%R"r'':BG'DE	F 	AFQVa"f%R"r'':BG'DE	FF F F F : 1 1 2 2 2
: 5 5 6 6 6
: 5 5 6 6 6
: 1 1 2 2 2
: 4 4 5 5 5aFF33q8888aFF33q8888aFF33q1u<<<<<<r   c                     t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ d S )Nr    c                 @    g | ]}|j                                         S r   repto_listr,   ts     r   r.   z)test_fateman_poly_F_1.<locals>.<listcomp>{   "    111QU]]__111r   r&   c                 @    g | ]}|j                                         S r   rh   rk   s     r   r.   z)test_fateman_poly_F_1.<locals>.<listcomp>   rm   r   )r   r   r   fghFGHs         r   test_fateman_poly_F_1rv   w       q!!GAq!"1b))GAq!11q!Qi111aAY>>>>q!!GAq!"1b))GAq!11q!Qi111aAY>>>>>>r   c                     t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ d S )Nr    c                 @    g | ]}|j                                         S r   rh   rk   s     r   r.   z)test_fateman_poly_F_2.<locals>.<listcomp>   rm   r   r&   c                 @    g | ]}|j                                         S r   rh   rk   s     r   r.   z)test_fateman_poly_F_2.<locals>.<listcomp>   rm   r   )r   r   r   ro   s         r   test_fateman_poly_F_2r{      rw   r   c                     t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ t          d          \  } }}t          dt                    \  }}}d | ||fD             |||gk    sJ d S )Nr    c                 @    g | ]}|j                                         S r   rh   rk   s     r   r.   z)test_fateman_poly_F_3.<locals>.<listcomp>   rm   r   r&   c                 @    g | ]}|j                                         S r   rh   rk   s     r   r.   z)test_fateman_poly_F_3.<locals>.<listcomp>   rm   r   )r   r   r   ro   s         r   test_fateman_poly_F_3r      rw   r   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   r:   r=   rC   rQ   re   rv   r{   r   r   r   r   <module>r      s   B B       % % % % % % 9 9 9 9 9 9 ( ( ( ( ( ( . . . . . . & & & & & & 3 3 3 3 3 3 ' ' ' ' ' '                                   C C C"
1 
1 
1
/ 
/ 
/	H 	H 	H =  =  =F	? 	? 	?	? 	? 	?	? 	? 	? 	? 	?r   