Ë
    7^(h§  ã                   óà   — 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(y)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 ‚t        dd«      D � cg c]  } t        t        | «      «      ‘Œ }} t        t        dd¬«      j                  «       D � cg c]  } | j                  d«      ‘Œ c} «      t        t        t        |«      D � cg c]  } t        | Ž j                  d«      ‘Œ c} «      «      k(  sJ ‚y c c} w c c} w c c} w )Nc                  ó"   — t        dt        «      S ©Nr   )r   r   © ó    úa/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/sympy/polys/tests/test_specialpolys.pyú<lambda>z+test_swinnerton_dyer_poly.<locals>.<lambda>   s   € Ô3°A´qÓ9€ r   é   T©Úpolysé   é   é
   é   é   é(   é   i`  iÀ  i@  é   )r
   Ú
ValueErrorr   r   r   Úranger   r   ÚstrÚ	all_rootsÚnÚsortedr	   r   )ÚiÚps     r   Útest_swinnerton_dyer_polyr3      sb  € Ü
Œ:Ñ9Ô:ä ¤1¨DÔ1´T¼!¸Q¹$À¹(³^ÒCÐCÐCä ¤1Ó%¬¨A©°©Ò1Ð1Ð1Ü ¤1Ó%¬¨A©°´1°a±4±©¸!Ñ);Ò;Ð;Ð;ÜØ	Œ1óÜ�A‘˜œ1˜a™4™‘ #¤a¨¡d¡(Ñ*¨S´°A±©XÑ5¸Ñ;ò<ð <ð <ô "' q¨!£Ö-˜AŒŒe�A‹h�Ð-€AÐ-ÜÜ˜Q dÔ+×5Ñ5Ó7ö9˜1�—‘�A•ò 9ó 
ä”¬}¸QÓ/?Ö@¨!œ˜a˜Ÿ™ 1�Ò@ÓAÓBòCð Cñ Cùò 	.ùò9ùâ@s   ÃE=ÄFÅF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 ‚y )
Nc                  ó"   — t        dt        «      S r   )r   r   r   r   r   r   z&test_cyclotomic_poly.<locals>.<lambda>/   s   € œ¨q´!Ó4€ r   r    Tr!   r#   r&   r$   r*   r)   )r
   r+   r   r   r   r   r   r   Útest_cyclotomic_polyr6   .   sñ   € Ü
Œ:Ñ4Ô5ä˜1œa tÔ,´´Q¸±U³Ò;Ð;Ð;ä˜1œaÓ ¤A¨¡EÒ)Ð)Ð)Ü˜1œaÓ ¤A¨¡EÒ)Ð)Ð)Ü˜1œaÓ ¤A q¡D¬1¡H¨q¡LÒ0Ð0Ð0Ü˜1œaÓ ¤A q¡D¨1¡HÒ,Ð,Ð,Ü˜1œaÓ ¤A q¡D¬1¨a©4¡K´!°Q±$Ñ$6¼Ñ$:¸QÑ$>Ò>Ð>Ð>Ü˜1œaÓ ¤A q¡D¬1¡H¨q¡LÒ0Ð0Ñ0r   c                  óÈ  — 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 ‚y )	Nc                  ó6   — 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                  ó6   — t        dt        t        t        «      S )Nr*   r:   r   r   r   r   z%test_symmetric_poly.<locals>.<lambda>=   s   € œ~¨a´´A´qÓ9€ r   r    Tr!   r   r#   r&   )r
   r+   r   r   r   r   r   r   r   r   Útest_symmetric_polyr<   ;   sð   € Ü
Œ:Ñ:Ô;Ü
Œ:Ñ9Ô:ä˜!œQ¤¤1¨DÔ1´T¼!¼a¹%Ä!¹)³_ÒDÐDÐDÜ˜!œa¤¤A˜Y¨dÔ3´t¼AÄ¹EÄA¹I³ÒFÐFÐFä˜!œQ¤¤1Ó%¨Ò*Ð*Ð*Ü˜!œQ¤¤1Ó%¬¬Q©´©Ò2Ð2Ð2Ü˜!œQ¤¤1Ó%¬¬1©¬q´©s©´Q´q±S©Ò8Ð8Ð8Ü˜!œQ¤¤1Ó%¬¬1©¬Q©Ò.Ð.Ñ.r   c                  ó\  — t        t        dddd¬«      } t        | «      j                  «       dk(  sJ ‚t	        d„ t        | «      j                  «       D «       «      du sJ ‚t        t        dddd¬«      } | j                  «       dk(  sJ ‚t	        d„ | j                  «       D «       «      du sJ ‚y )	Nr%   éœÿÿÿéd   Fr!   c              3   ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­w©r>   r?   Nr   ©Ú.0Úcoeffs     r   ú	<genexpr>z#test_random_poly.<locals>.<genexpr>L   s   è ø€ ÒE¨ˆt�uÖ# ×#Ð#ÑEùó   ‚Tc              3   ó<   K  — | ]  }d |cxk  xr dk  nc –— Œ y­wrA   r   rB   s     r   rE   z#test_random_poly.<locals>.<genexpr>Q   s   è ø€ Ò?¨ˆt�uÖ# ×#Ð#Ñ?ùrF   )r   r   r   ÚdegreeÚallÚcoeffs)Úpolys    r   Útest_random_polyrL   H   sš   € Ü”q˜"˜d C¨uÔ5€Dä�‹:×ÑÓ "Ò$Ð$Ð$ÜÑE´°d³×1BÑ1BÓ1DÔEÓEÈÑMÐMÐMä”q˜"˜d C¨tÔ4€Dà�;‰;‹=˜BÒÐÐÜÑ?°·±³Ô?Ó?À4Ñ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 ‚y )Nzx:4, y:4r   r    r#   r&   r$   c                  ó2   — 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   € Ü˜1œa¤! Q ¨Ó0ð r   c                  ó@   — t        dt        t        t        z   dfd«      S rO   ©r   r   r   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>j   s   € Ü˜1œa¤!¤a¡%¨ ¨VÓ4ð r   c                  ó@   — t        dt        t        z   t        dfd«      S rO   rQ   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>l   s   € Ü˜1œa¤!™e¤a¨ V¨VÓ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   € Ü˜1˜a ¨Ó0ð r   c                  ó   — t        dddd«      S )Nr#   r&   rT   )r)   rU   r'   rV   r   r   r   r   z)test_interpolating_poly.<locals>.<lambda>p   s   € Ü˜1˜a ¨Ó3ð r   )r    r#   )r&   r$   )r   r   r   r
   r+   )Úx0Úx1Úx2Úx3Úy0Úy1Úy2Úy3s           r   Útest_interpolating_polyr`   T   sÏ  € Ü%,¨ZÓ%8Ñ"€BˆˆB��B˜˜B ä˜a¤Ó# qÒ(Ð(Ð(Ü˜a¤Ó# rÒ)Ð)Ð)ä˜a¤Ó#Ø
ŒA�‰F‰�R˜"‘WÑ ¤A¨¡F¡¨R°"©WÑ 5Ñ5ò6ð 6ð 6ô ˜a¤Ó#Ø
ŒA�‰F‰”Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2Ø
ŒA�‰F‰”Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2ñ	3à
ŒA�‰F‰”Q˜‘VÑ˜r B™w¨¨b©Ñ1Ñ2ñ	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ô Œ:ñ 1ô 2ä
Œ:ñ 5ô 6ä
Œ:ñ 5ô 6ä
Œ:ñ 1ô 2ä
Œ:ñ 4ô 5ä˜a¤ F¨FÓ3°qÒ8Ð8Ð8Ü˜a¤ F¨FÓ3°qÒ8Ð8Ð8Ü˜a¤ F¨FÓ3´q¸1±uÒ<Ð<Ñ<r   c                  óp  — t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚y c c}w c c}w ©Nr    r&   )r   r   r   ÚrepÚto_list©ÚfÚgÚhÚFÚGÚHÚts          r   Útest_fateman_poly_F_1rm   w   ó®   € Ü˜qÓ!�G€A€qˆ!Ü" 1¤bÓ)�G€A€qˆ!à'(¨!¨Q iÖ1 ˆQ�U‰U�]‰]�_Ò1°a¸¸A°YÒ>Ð>Ð>ä˜qÓ!�G€A€qˆ!Ü" 1¤bÓ)�G€A€qˆ!à'(¨!¨Q iÖ1 ˆQ�U‰U�]‰]�_Ò1°a¸¸A°YÒ>Ð>Ñ>ùò 2ùò
 2ó   «!B.Â!B3c                  óp  — t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚y c c}w c c}w rb   )r   r   r   rc   rd   re   s          r   Útest_fateman_poly_F_2rq   ƒ   rn   ro   c                  óp  — t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚t        d«      \  } }}t        dt        «      \  }}}| ||fD �cg c]  }|j                  j	                  «       ‘Œ c}|||gk(  sJ ‚y c c}w c c}w rb   )r   r   r   rc   rd   re   s          r   Útest_fateman_poly_F_3rs   �   rn   ro   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   r3   r6   r<   rL   r`   rm   rq   rs   r   r   r   ú<module>r      sg   ðÙ Bå Ý %Ý 9Ý (Ý .Ý &Ý 3Ý '÷÷ ÷ ñ ÷ Ñ òCò"
1ò
/ò	Hò =òF	?ò	?ó	?r   