U
    L?hœÄ  ã                   @   s  d 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 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 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&m'Z' ddl(m)Z) ddl*m+Z+m,Z, ddl-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4 ddl5m6Z6 ddl7m8Z8 ddl9m:Z: ddl;m<Z<m=Z=m>Z>m?Z?m@Z@ ddlAmBZBmCZC ddlDmEZE e Feded¡ZGdd ZHdd ZIdd ZJdd  ZKd!d" ZLd#d$ ZMd%d& ZNd'd( ZOd)d* ZPd+d, ZQd-d. ZRd/d0 ZSd1d2 ZTd3d4 ZUd5d6 ZVd7d8 ZWd9d: ZXd;d< ZYd=d> ZZd?d@ Z[dAdB Z\dCdD Z]dEdF Z^dGdH Z_dIdJ Z`dKdL ZadMdN ZbdOdP ZcdQdR ZddSdT ZedUdV ZfdWdX ZgdYdZ Zhd[d\ Zid]d^ Zjd_d` Zkdadb Zldcdd Zmdedf Zndgdh Zodidj Zpdkdl Zqdmdn Zrdodp Zsdqdr Ztdsdt Zududv Zvdwdx Zwdydz Zxd{d| Zyd}d~ ZzdS )zPTests for classes defining properties of ground domains, e.g. ZZ, QQ, ZZ[x] ... é    )ÚGROUND_TYPES)	ÚAlgebraicNumberÚEÚFloatÚIÚIntegerÚRationalÚooÚpiÚ_illegal)ÚS)Úexp)Úsqrt)Úsin)ÚPoly)ÚxÚyÚz)ÚZZÚQQÚRRÚCCÚFFÚGFÚEXÚEXRAWÚZZ_gmpyÚ	ZZ_pythonÚQQ_gmpyÚ	QQ_python)ÚAlgebraicField)ÚZZ_IÚQQ_I)ÚPolynomialRing)Ú	RealField)Úfield_isomorphism)Úring)Úcyclotomic_poly)Úfield)ÚFiniteExtension)ÚUnificationFailedÚGeneratorsErrorÚCoercionFailedÚNotInvertibleÚDomainError)ÚraisesÚwarns_deprecated_sympy)Úproducté   é   c                 C   s
   |   |¡S ©N©Úunify)ZK0ÚK1© r8   úX/var/www/html/venv/lib/python3.8/site-packages/sympy/polys/domains/tests/test_domains.pyr6   )   s    r6   c                      sú	  t d t dt   ks"ttt fdd tt fdd tt fdd tt fdd tt fdd tt fd	d tt fd
d tt fdd tt fdd tt fdd tksèttt fdd tt fdd tt fdd tt fdd ttttksJtttttks^tttttksrtttttkstttt	t	ksttttt
 tt
 ks¶tttt t
¡t t
¡ksÖtttttksêttt fdd ttttkstttttks$tttttks8tttttksLtttt	t	ks`ttttt
 tt
 ks|tttt t
¡t t
¡kstttttks°ttt fdd ttttksÖtttttksêtttttksþttttt ttdtd¡ks$ttttt	ks8tttt	t	ksLttttt
 tt
 kshttttt
 tt
 kstttt t
¡t t
¡ks€tttt t
¡t t
¡ksÄtttttksØttt fdd ttttksþtttttkstttttks&ttttt ttdtd¡ksLttttt	ks`tttt	t	kstttttt
 tt
 ksttttt
 tt
 ks¬ttttt
 tt
 ksÈttttt
 tt
 ksätttt t
¡t t
¡kstttt t
¡t t
¡ks$tttt t
¡t t
¡ksDtttt t
¡t t
¡ksdtttttksxttt fdd ttttkstttttks²tttttksÆtttttksÚtttt	t	ksîttttt
 tt
 ks
tttt t
¡t t
¡ks*tttttks>ttt
  t t¡¡t t
t¡ksdttt fdd tt	tt	ksttt	tt	ksttt	tt	ks²ttt	tt	ksÆttt	t	t	ksÚttt	tt
 t	t
 ksöttt	t t
¡t	 t
¡ksttt	ttks*ttt fdd ttt
 ttt
 ksXtttt
 ttt
 ksttttt
 ttt
 kstttt
 ttt
 ks¬tttt
 t	t	t
 ksÈtttt
 tt
 tt
 ksètttt
 t t
¡t t
¡kstttt
 ttks$ttt fdd tt t
¡tt t
¡ksVttt t
¡tt t
¡ksvttt t
¡tt t
¡ksttt t
¡tt t
¡ks¶ttt t
¡t	t	 t
¡ksÖttt t
¡tt
 t t
¡ksúttt t
¡t t
¡t t
¡k	s ttt t
¡ttk	s:ttt fdd ttttk	s`tttttk	sttttttk	stttttk	stttt	tk	s°ttttt
 tk	sÈtttt t
¡tk	sâtttttk	sötd S )Nr3   é   c                      s
   t  tS r4   ©r6   r   r8   ©ÚF3r8   r9   Ú<lambda>1   ó    z#test_Domain_unify.<locals>.<lambda>c                      s
   t  tS r4   ©r6   r   r8   r<   r8   r9   r>   2   r?   c                      s
   t  tS r4   ©r6   r!   r8   r<   r8   r9   r>   3   r?   c                      s
   t  tS r4   ©r6   r"   r8   r<   r8   r9   r>   4   r?   c                      s
   t  tS r4   )r6   ÚALGr8   r<   r8   r9   r>   5   r?   c                      s
   t  tS r4   ©r6   r   r8   r<   r8   r9   r>   6   r?   c                      s
   t  tS r4   ©r6   r   r8   r<   r8   r9   r>   7   r?   c                      s   t  tt S r4   ©r6   r   r   r8   r<   r8   r9   r>   8   r?   c                      s   t  t t¡S r4   ©r6   r   Ú
frac_fieldr   r8   r<   r8   r9   r>   9   r?   c                      s
   t  tS r4   ©r6   r   r8   r<   r8   r9   r>   :   r?   c                      s
   t  S r4   r5   r8   ©r=   ÚF5r8   r9   r>   =   r?   c                      s   t  t S r4   )r6   r   r8   rJ   r8   r9   r>   >   r?   c                      s   t   t¡S r4   )r6   rH   r   r8   rJ   r8   r9   r>   ?   r?   c                      s
   t t S r4   r;   r8   r<   r8   r9   r>   A   r?   c                      s
   t t S r4   r@   r8   r<   r8   r9   r>   K   r?   c                      s
   t t S r4   rA   r8   r<   r8   r9   r>   U   r?   r2   c                      s
   t t S r4   rB   r8   r<   r8   r9   r>   b   r?   c                      s
   t t S r4   rD   r8   r<   r8   r9   r>   s   r?   c                      s
   t t S r4   rE   r8   r<   r8   r9   r>   ~   r?   c                      s   t tt  S r4   rF   r8   r<   r8   r9   r>      r?   c                      s   t t t¡ S r4   rG   r8   r<   r8   r9   r>      r?   c                      s
   t t S r4   rI   r8   r<   r8   r9   r>      r?   )r   r6   ÚAssertionErrorr/   r*   r   r   rC   r   r   r   rH   r   r!   r"   Úalgebraic_fieldr   r   r   r8   r8   rJ   r9   Útest_Domain_unify,   sÚ      &  &     &  $     $&rN   c                   C   sŽ  t t t¡tt t¡kstt t t¡tt t¡ks<tt t t¡tt t¡ksZtt t t¡tt t¡ksxtt tt t¡t t¡kstt tt t¡t t¡ksŽtt tt t¡t t¡ksÒtt tt t¡t t¡ksðtt t tt¡tt tt¡kstt t tt¡tt tt¡ks8tt t tt¡tt tt¡ks\tt t tt¡tt tt¡kstt tt tt¡t tt¡ks€tt tt tt¡t tt¡ksÈtt tt tt¡t tt¡ksìtt tt tt¡t tt¡kstt t t¡tt t¡ks0tt t t¡tt t¡ksPtt t t¡tt t¡ksptt t t¡tt t¡kstt tt t¡t t¡ks°tt tt t¡t t¡ksÐtt tt t¡t t¡ksðtt tt t¡t t¡kstt t tt¡tt tt¡ks4tt t tt¡tt tt¡ksXtt t tt¡tt tt¡ks|tt t tt¡tt tt¡ks tt tt tt¡t tt¡ksÄtt tt tt¡t tt¡ksètt tt tt¡t tt¡kstt tt tt¡t tt¡ks0tt t t¡t t¡t t¡ksVtt t t¡t t¡t t¡ks|tt t t¡t t¡t t¡ks¢tt t t¡t t¡t t¡ksÈtt t tt¡t t¡t tt¡ksòtt t tt¡t t¡t tt¡kstt t tt¡t t¡t tt¡ksFtt t tt¡t t¡t tt¡ksptt t t¡t tt¡t tt¡kstt t t¡t tt¡t tt¡ksÄtt t t¡t tt¡t tt¡ksîtt t t¡t tt¡t tt¡kstt t tt¡t tt¡t ttt¡ksFtt t tt¡t tt¡t ttt¡ksttt t tt¡t tt¡t ttt¡ks¢tt t tt¡t tt¡t ttt¡ksÐtt t t¡t t¡t t¡ksött t t¡t t¡t t¡kstt t t¡t t¡t t¡ksBtt t t¡t t¡t t¡kshtt t tt¡t t¡t tt¡kstt t tt¡t t¡t tt¡ksŒtt t tt¡t t¡t tt¡ksætt t tt¡t t¡t tt¡kstt t t¡t tt¡t tt¡ks:tt t t¡t tt¡t tt¡ksdtt t t¡t tt¡t tt¡kstt t t¡t tt¡t tt¡ksžtt t tt¡t tt¡t ttt¡ksætt t tt¡t tt¡t ttt¡k	stt t tt¡t tt¡t ttt¡k	sBtt t tt¡t tt¡t ttt¡k	sptt t t¡t t¡t t¡k	stt t t¡t t¡t t¡k	sŒtt t t¡t t¡t t¡k	sâtt t t¡t t¡t t¡k
stt t tt¡t t¡t tt¡k
s2tt t tt¡t t¡t tt¡k
s\tt t tt¡t t¡t tt¡k
stt t tt¡t t¡t tt¡k
s°tt t t¡t tt¡t tt¡k
sÚtt t t¡t tt¡t tt¡kstt t t¡t tt¡t tt¡ks.tt t t¡t tt¡t tt¡ksXtt t tt¡t tt¡t ttt¡kstt t tt¡t tt¡t ttt¡ksŽtt t tt¡t tt¡t ttt¡ksâtt t tt¡t tt¡t ttt¡kstt t t¡t t¡t t¡ks6tt t t¡t t¡t t¡ks\tt t t¡t t¡t t¡kstt t t¡t t¡t t¡ksštt t tt¡t t¡t tt¡ksÒtt t tt¡t t¡t tt¡ksütt t tt¡t t¡t tt¡ks&tt t tt¡t t¡t tt¡ksPtt t t¡t tt¡t tt¡ksztt t t¡t tt¡t tt¡ks€tt t t¡t tt¡t tt¡ksÎtt t t¡t tt¡t tt¡ksøtt t tt¡t tt¡t ttt¡ks&tt t tt¡t tt¡t ttt¡ksTtt t tt¡t tt¡t ttt¡kstt t tt¡t tt¡t ttt¡ks°td S r4   )	r6   r   Ú	poly_ringr   rL   r   r   rH   r   r8   r8   r8   r9   Útest_Domain_unify_compositeŠ   sÀ    $$$$$$$$        $$$$$$$$&&&&********....&&&&********....&&&&********....&&&&********...rP   c                  C   s\  t  td¡} t  td¡}t  tdtd¡}|  |¡|ksBt|  | ttf ¡| ttf ksdt| ttf  | ¡| ttf kst|  |  tt¡¡|  tt¡ksšt|  tt¡ | ¡|  tt¡ksÊt|  |ttf ¡|ttf ksìt| ttf  |¡|ttf kst|  | tt¡¡| tt¡ks4t|  tt¡ |¡| tt¡ksXtd S )Nr:   é   )r   rM   r   r6   rL   r   r   rH   )Zsqrt5Zsqrt7Zsqrt57r8   r8   r9   Útest_Domain_unify_algebraic  s    """""$$rR   c            	      C   sÂ  t ttd d ttd} t ttd d ttd}t ttd d ttt d}t ttd d ttt d}|  | ¡| kst| |¡|kst| |¡|ksŠt| |¡|ksžt|  t¡| ksÊt|  t¡|ksÜt| t¡|ksît| t¡|kst|  tt ¡|kst|  tt ¡|ks2t| tt ¡|ksJt| tt ¡|ksbt| t¡|ksvt| t¡|kst| t¡|kst| t¡|ks²t| tt ¡|ksÊt| tt ¡|ksât| tt ¡|ksút| tt ¡|kstt ttd d ttt d}| t¡|ksDt| tt ¡|ks\t| tt ¡|kstt| tttf ¡|kstt ttd d ttttf d}| tt ¡|ksÊt| tttf ¡|ksæt| tttf ¡|kst| ttttf ¡|ks tt ttd d ttd}t ttd d ttd}t ttd d t|d}| |¡|kst| |¡|kst| |¡|ksªt| |¡|ksŸtd S )Nr2   ©Údomain)	r)   r   r   r   r   r   r6   rL   r   )	ZKxZZZKxQQZKxZZyZKxQQyÚKZKzZKxÚKyZKxyr8   r8   r9   Ú!test_Domain_unify_FiniteExtension2  sR    "rW   c                   C   s    t tdd  t tdd  d S )Nc                   S   s   t ttf  t ttf¡S r4   )r   r   r   Úunify_with_symbolsr   r8   r8   r8   r9   r>   f  r?   z0test_Domain_unify_with_symbols.<locals>.<lambda>c                   S   s   t  t ttf ttf¡S r4   )r   rX   r   r   r   r8   r8   r8   r9   r>   g  r?   )r/   r*   r8   r8   r8   r9   Útest_Domain_unify_with_symbolse  s    rY   c                   C   s   dt kdkstdtkdks tdtkdks0tdtkdks@tdtkdksPtdtkdks`tdtttf kdksxtdtttf kdkstdtttf kdksštdt kdksžtdtkdksÈtdtkdksØtdtkdksètdtkdksøtdtkdks
tdtttf kdks$tdtttf kdks>tdtttf kdksXtdt kdksjtdtkdks|tdtkdkstdtkdks tdtkdks²tdtkdksÄtdtttf kdksÞtdtttf kdksøtdtttf kdkstt	ddt kdks*tt	ddtkdksBtt	ddtkdksZtt	ddtkdksrtt	ddtkdkstt	ddtkdks¢tt	ddtttf kdksÂtt	ddtttf kdksâtt	ddtttf kdkstt	dd	t kdkstt	dd	tkdks2tt	dd	tkdksJtt	dd	tkdksbtt	dd	tkdksztt	dd	tkdkstt	dd	tttf kdks²tt	dd	tttf kdksÒtt	dd	tttf kdksòtd
t kdkstd
tkdkstd
tkdks(td
tkdks:td
tkdksLtd
tkdks^td
tttf kdksxtd
tttf kdkstd
tttf kdks¬tdt kdksŸtdtkdksÐtdtkdksâtdtkdksôtdtkdkstdtkdkstdtttf kdks2tdtttf kdksLtdtttf kdksftt
tkdksxtt
tttf kdkstt
tttf kdks¬tt
 tkdksÀtt
 tkdksÔtt
 tkdksètt
 tttf kdkstt
 tttf kdks ttdt kdks6ttdtkdksLttdtkdksbttdtkdksxttdtkdksttdtkdks€ttdtttf kdksÂttdtttf kdksàttdtttf kdksþtdtd d t kdkstdtd d tkdks:tdtd d tkdksXtdtd d tkdksvtdtd d tkdkstdtd d tkdks²tdtd d tttf kdksØtdtd d tttf kdksþtdtd d tttf kdks$ttdt kdks:ttdtkdksPttdtkdksfttdtkdks|ttdtkdksttdtkdksšttdtttf kdksÆttdtttf kdksättdtttf kdk	sttd d t kdk	sttd d tkdk	s6ttd d tkdk	sPttd d tkdk	sjttd d tkdk	sttd d tkdk	sttd d tt kdk	sŒttd d tt kdk	sÚttd d tt kdk	søttd d tttf kdk
sttd d tttf kdk
s<ttd d tttf kdk
s^ttd td  t kdk
s|ttd td  tkdk
sttd td  tkdk
sžttd td  tkdk
sÖttd td  tkdk
sôttd td  tkdksttd td  tt kdks4ttd td  tt kdksVttd td  tt kdksxttd td  tttf kdksttd td  tttf kdksÄttd td  tttf kdksêtt	ddt td  t ttttf kdkstd S )Nr   Téùÿÿÿé   éÿÿÿÿrQ   Fr3   r:   g      @çëQž	@r2   é   )r   rL   r   r   r   r   rC   r   r   r   r	   r   r   r   r8   r8   r8   r9   Útest_Domain__contains__i  sö          &&&""""""&&&r_   c                   C   s®   t ddt t dt ¡kdks$tdt t t¡kdks>ttd td  t dt dt ¡kdksjttt t dt t¡kdksttt t tdt ¡kdksªtd S )Nr2   r3   r^   T)r   r   r   rH   rL   r   r8   r8   r8   r9   Útest_issue_14433õ  s
    $, r`   c                   C   s6  t jdksttjdkstt t jdks.ttt jdks@tt ttf jdksVttttf jdksltt  t¡jdkstt t¡jdkstt  tt¡jdksªtt tt¡jdksÀttjdksÎttjdksÜtt	jdksêtt  
¡ t ksútt 
¡ t kstt t  
¡ t t ks&ttt  
¡ tt ks@tt ttf  
¡ t ttf ksbttttf  
¡ tttf kstt  t¡ 
¡ t t ks tt t¡ 
¡ tt ksŒtt  tt¡ 
¡ t ttf ksÞtt tt¡ 
¡ tttf ks tt 
¡ tkstt 
¡ tks$tttdd  d S )NTFc                   S   s   t  ¡ S r4   )rC   Úget_ringr8   r8   r8   r9   r>     r?   z&test_Domain_get_ring.<locals>.<lambda>)r   Zhas_assoc_RingrL   r   r   r   rH   r   r   rC   ra   r/   r.   r8   r8   r8   r9   Útest_Domain_get_ringý  s4    """"rb   c                   C   sf  t jdksttjdksttjdks*ttjdks8ttjdksFttt jdksXttt jdksjttttf jdksttttf jdkstt  	¡ t ksŠtt 	¡ tks¶tt 	¡ tksÆtt 	¡ tksÖtt 	¡ tksættt  	¡ t 
t¡ksttt  	¡ t 
t¡ksttttf  	¡ t 
tt¡ks@ttttf  	¡ t 
tt¡ksbtd S )NT)r   Zhas_assoc_FieldrL   r   r   r   rC   r   r   Ú	get_fieldrH   r8   r8   r8   r9   Útest_Domain_get_field  s$    "rd   c                  C   sP  t dtttttttt tt tt tt tt g} | D ]}| D ]}|t  	|¡|t ksbt
|ttf  	|¡|ttf kst
| t¡ 	|¡| t¡ks¢t
| tt¡ 	|¡| tt¡ksÄt
| t¡ 	|¡| t¡ksât
| tt¡ 	|¡| tt¡kst
| t¡ 	|¡| t¡ks&t
| tt¡ 	|¡| tt¡ksBt
qBq8d S )Nr:   )r   r   r   rC   r   r   r   r   r   Z
set_domainrL   r   rH   Úold_poly_ringÚold_frac_field)ÚdomsZD1ZD2r8   r8   r9   Útest_Domain_set_domain5  s    4

""$ rh   c                  C   s|   t dttttg} ttg}| | D ]T}||t | t¡| 	t¡| 
t¡fD ]*}|| krf|jdksttqJ|jdksJtqJq"d S )Nr:   TF)r   r   r   rC   r   r   r   r   rH   re   rf   Zis_ExactrL   )ÚexactZinexactÚDÚRr8   r8   r9   Útest_Domain_is_ExactC  s    (rl   c                   C   sJ  t  ¡ t kstt ¡ tks tt ¡ tks0tt ¡ tks@tt ¡ tksPtt ¡ tks`ttt	  ¡ tt	 ksxttt	  ¡ tt	 ksttt	  ¡ tt	 ksšttt	  ¡ tt	 ksÀttt	t
f  ¡ tt	t
f ksàttt	t
f  ¡ tt	t
f ksttt	t
f  ¡ tt	t
f ks$ttt	t
f  ¡ tt	t
f ksFtt t	¡ ¡ t t	¡ksdtt t	¡ ¡ t t	¡kstt t	¡ ¡ t t	¡ks tt t	¡ ¡ t t	¡ksŸtt t	t
¡ ¡ t t	t
¡ksàtt t	t
¡ ¡ t t	t
¡kstt t	t
¡ ¡ t t	t
¡ks$tt t	t
¡ ¡ t t	t
¡ksFtt t	¡ ¡ t t	¡ksdtt t	¡ ¡ t t	¡kstt t	¡ ¡ t t	¡ks tt t	¡ ¡ t t	¡ksŸtt t	t
¡ ¡ t t	t
¡ksàtt t	t
¡ ¡ t t	t
¡kstt t	t
¡ ¡ t t	t
¡ks$tt t	t
¡ ¡ t t	t
¡ksFtt t	¡ ¡ t t	¡ksdtt t	¡ ¡ t t	¡kstt t	¡ ¡ t t	¡ks tt t	¡ ¡ t t	¡ksŸtt t	t
¡ ¡ t t	t
¡ksàtt t	t
¡ ¡ t t	t
¡kstt t	t
¡ ¡ t t	t
¡ks$tt t	t
¡ ¡ t t	t
¡ksFtd S r4   )r   Z	get_exactrL   r   r   r   r   r"   rC   r   r   rH   re   rf   r8   r8   r8   r9   Útest_Domain_get_exactN  sL     """"""""""""""rm   c                  C   sÔ   t ddft ddft ddffD ]P\} }| | t |  t¡|  t¡|  t¡fD ]"}|jdks`t| ¡ |ksNtqNq"tt	t
ttfD ]L}||t | t¡| t¡| t¡fD ]"}|jdksŒt| ¡ dksªtqªqd S )Nr3   r:   rQ   FTr   )r   r   rH   re   rf   Zhas_CharacteristicZerorL   Zcharacteristicr   r   r!   r"   rC   )ÚFÚcrk   rj   r8   r8   r9   Útest_Domain_characteristicw  s    *((rp   c                     s
  dddddg} dddddg}dddddg}t t tt t t¡   dd	 | D |ks^td
d	 | D |ksttfdd	| D |kst fdd	| D |ksštfdd	| D |ksÂt t¡dksØt   t¡dksît t¡dkstd S )Néþÿÿÿr\   r   r^   r2   FTc                 S   s   g | ]}t  t |¡qS r8   )r   Úis_unit©Ú.0Únr8   r8   r9   Ú
<listcomp>  s     z'test_Domain_is_unit.<locals>.<listcomp>c                 S   s   g | ]}t  t |¡qS r8   )r   rr   rs   r8   r8   r9   rv     s     c                    s   g | ]}    |¡qS r8   ©rr   rs   )ÚZZxr8   r9   rv     s     c                    s   g | ]}    |¡qS r8   rw   rs   )ÚQQxr8   r9   rv     s     c                    s   g | ]}    |¡qS r8   rw   rs   )ÚQQxfr8   r9   rv     s     )r   r   r   rH   rL   rr   )ZnumsZinvringZinvfieldr8   )ry   rz   rx   r9   Útest_Domain_is_unit  s    r{   c                     s\  dd   fdd} dd }t  td¡}t  td¡}tt ||ttttg}t|D ]@\}}||d  D ]*}||D ]}||D ]}	| ||	 qqtqhqTt  	d	¡t d
dks®t
tdt\}
}t 	|| ¡dksÒt
t 	|| |
 ¡ ¡dksît
t 	tdd¡tddkst
t 	tdd¡tddks.t
t  tdt¡t ddksNt
t t ddt ¡tdksnt
t tddt¡tt ddt ddkst
t tt ddt ddt¡tddksÊt
t  t¡}t t¡}t t }tt }	||||	g}t||D ],\}}| | t¡|¡| t¡kst
q| t ddt ¡|t ddksXt
d S )Nc                 S   sH   t | t |ks&td| ||||f | |ksDtd| ||||f d S )Nz%s, %s: %s %s -> %s)ÚtyperL   )Úe1Úe2r7   ÚK2ÚK3r8   r8   r9   Úcheck_element  s    &z*test_Domain_convert.<locals>.check_elementc                    s~   |   |¡} | | j| ¡|j| ||  | |j|¡|j| ||  | | j| ¡|j| ||  | |j|¡|j| || d S r4   )r6   Úconvert_fromÚoneÚzero)r7   r   r   ©r   r8   r9   Úcheck_domains  s
    
z*test_Domain_convert.<locals>.check_domainsc              
   S   s:   | | t  | t | t tf |  t ¡|  t¡|  t t¡g}|S r4   )r   r   rH   )rU   Údomainsr8   r8   r9   Úcomposite_domains  s      
  
ýz.test_Domain_convert.<locals>.composite_domainsr2   r3   gLoûñW5l   Ó$7ûq/ l                                r   r   r^   g      à?g      è?é   )r   rM   r   r   r"   r!   r   r   Ú	enumerateÚconvertrL   r&   Ú	to_domainr   rH   r   r1   Ú
from_sympy)r   r   ZQQ2ZQQ3rg   Úir7   r   r   ZK4rk   ZxrZKsZKaZKbr8   r   r9   Útest_Domain_convert  s:    
    ..

&r   c                  C   sÄ   t t dfttddfttddfttddfttdfttddfttdfttdftt 	t
d¡fg	} | D ]N\}}ttfD ]<}| 	| |¡¡}| ||¡|ksšt| ||¡|kstqqpd S )Nr3   r^   r2   )r   r   r!   r"   r   r   r   r   rC   r   r   Úto_sympyr   rL   )Úelementsrk   ÚeZEEÚelemr8   r8   r9   Útest_EX_convertË  s    



÷r   c                  C   sŸ   t  t¡} t t }|  t¡|  | t¡|¡ks2t| t¡| |  t¡| ¡ksRtt  tt¡} t t }|  t¡|  | t¡|¡kstt tt¡} t t }|  t¡|  | t¡|¡ksºtd S r4   )r   re   r   r   rL   r   r   )r7   r   r8   r8   r9   Ú!test_GlobalPolynomialRing_convertà  s    
   r   c                  C   s$   t dt\} t ¡ |  ¡ ks td S ©NÚ )r&   r   rO   r   rL   )rk   r8   r8   r9   Útest_PolynomialRing__initñ  s    r   c                  C   s$   t dt\} t ¡ |  ¡ ks td S r   )r(   r   rH   r   rL   )rn   r8   r8   r9   Útest_FractionField__initö  s    r   c                  C   s`   t  t¡} |  t ddt ¡|  tdd¡ks0tt  t¡} |  tdt¡|  td¡ks\td S )Nr2   r3   )	r   rH   r   r   r   r   rL   r   r   ©rU   r8   r8   r9   Útest_FractionField_convertû  s    
&
r   c                   C   sx   t  ttt¡t tttf ks tt t  tt¡t tttf ksBtt  t¡ tt¡t  ttt¡ksftttdd  d S )Nc                   S   s   t t  t¡S r4   )r   r   Úinjectr8   r8   r8   r9   r>     r?   ztest_inject.<locals>.<lambda>)	r   r   r   r   r   rL   rH   r/   r+   r8   r8   r8   r9   Útest_inject  s     "$r   c                     s^  t  t¡t kstt t  t¡t ks(tt ttf  t¡t t ksFtt  t¡ t¡t ks^tt  tt¡ t¡t  t¡ks~tt t t  t¡t t kstt t t  t¡t t ksºtt  t¡t  t¡t t ksÚtt  t¡t  t¡t  t¡ksüttttd d tt t d tttd d tt d}   t¡| ksHttt	 fdd d S )Nr2   r^   rS   c                      s
      t¡S r4   )Údropr   r8   ©rV   r8   r9   r>     r?   ztest_drop.<locals>.<lambda>)
r   r   r   rL   r   rH   r)   r   r/   r+   r   r8   r   r9   Ú	test_drop	  s      "r    c                  C   sf   t  ddddg¡} tdd | D s(tt  ddddgg¡} tdd | d D r^t| dksbtd S )	Nr^   r2   r3   r   c                 s   s   | ]}t  |¡V  qd S r4   ©r   Úof_type©rt   Úeltr8   r8   r9   Ú	<genexpr>  s     z"test_Domain_map.<locals>.<genexpr>c                 s   s   | ]}t  |¡V  qd S r4   r¡   r£   r8   r8   r9   r¥      s     r   )r   ÚmapÚallrL   Úlen)Úseqr8   r8   r9   Útest_Domain_map  s    rª   c                   C   s  t ttf t ttf kdks ttttf tttf kdks@tt ttf tttf kdks`ttttf t ttf kdkstt  tt¡t  tt¡kdks tt tt¡t tt¡kdksÀtt  tt¡t tt¡kdksàtt tt¡t  tt¡kdkstt t tt kstd S )NTF)r   r   r   rL   r   rH   r$   r   r8   r8   r8   r9   Útest_Domain___eq__#  s           "r«   c                  C   sž   t  td¡} | jjttd d ks*t| jt	ks8tt	 td¡} | jjttd d ksbt| jt	kspt|  td¡} | jjttd dtd   d ksŠt| jt	ksŽtd S ©Nr2   r3   r   é
   r^   )
r   rM   r   ÚextÚminpolyr   r   rL   Údomr   )Úalgr8   r8   r9   Útest_Domain__algebraic_field3  s    (r²   c                  C   sž   t td d } t td d }t td dtd   d }t | ¡}|jj| ksVt|jtksdtt | ¡}|jj| ks~t|jtkst| |¡}|jj|ksŠt|jtksŽtd S r¬   )	r   r   r   Zalg_field_from_polyr®   r¯   rL   r°   r   )ÚfÚgÚhr±   r8   r8   r9   Útest_Domain_alg_field_from_polyA  s    


r¶   c                  C   s   t  d¡} | jjttdks"t| jtks0tt d¡}|jjttdksRt|jtks`t| d¡}t	|j| jd k	st|jtkstd S )Né   r3   r   )
r   Zcyclotomic_fieldr®   r¯   r   r'   rL   r°   r   r%   )rU   rn   r   r8   r8   r9   Útest_Domain_cyclotomic_fieldS  s    


rž   c            	      C   sª  t dt\} }}tdt\}}}|d |d  |d  }|d |d  d }|d |d  }| ¡  ||  ¡ ¡d ksxt| ¡  ||  ¡ ¡|d d |d d  ksšt| ¡  ||  ¡ ¡|d |d  ksÐtt dt\} }}tdt\}}}|d |d  |d  }|d |d  d }|d |d  }| ¡  ||  ¡ ¡d ksJt| ¡  ||  ¡ ¡|d d |d d  ks|t| ¡  ||  ¡ ¡|d |d  ksŠtd S )Núx,yr2   r^   r   )r(   r   r&   r   Zfrom_FractionFieldrL   r   )	rn   r   r   rk   ÚXÚYr³   rŽ   rµ   r8   r8   r9   Ú&test_PolynomialRing_from_FractionFielda  s     0(2rŒ   c                  C   sž   t dt\} }}tdt\}}}d|d  d|d   }|d d |d d  }| ¡  ||  ¡ ¡d|d  d|d   kst| ¡  ||  ¡ ¡d|d  d|d   d ksŽtd S )Nr¹   r3   r2   r:   é   )r&   r   r(   r   r   Zfrom_PolynomialRingrL   )rk   r   r   rn   rº   r»   r³   rŽ   r8   r8   r9   Ú&test_FractionField_from_PolynomialRingy  s    0rŸ   c                   C   s@   t d t dd¡dkstt d t dd¡dks<td S )Nr3   r^   Tr:   )r   r¢   rL   r8   r8   r8   r9   Útest_FF_of_type  s    r¿   c                   C   s0   t t tt krtt  t¡t t¡kr,td S r4   )r   r   r   rL   rH   r8   r8   r8   r9   Útest___eq__  s    rÀ   c                   C   s   t  tj¡t  d¡kstt  td¡t  d¡ks6tt  tj¡t  d¡ksPtt  td¡t  d¡ksltt  td¡t  td ¡ ¡kstd S )Nr   g        r^   g      ð?)	r   r   r   ÚZeroZdtyperL   ÚOner   Zevalfr8   r8   r8   r9   Útest_RealField_from_sympy  s
    rÃ   c                     s   t ttg dd td d D  } tttttfD ]H | D ]>tkrP tkrPq: ksdt ft	t
 fdd q:q2d S )Nc                 S   s   g | ]}t |qS r8   )Úfloat)rt   r   r8   r8   r9   rv     s    z*test_not_in_any_domain.<locals>.<listcomp>r3   c                      s
      ¡S r4   )r   r8   ©r°   r   r8   r9   r>      r?   z(test_not_in_any_domain.<locals>.<lambda>)Úlistr   r   r   r   r   r   r   rL   r/   r,   )Úcheckr8   rÅ   r9   Útest_not_in_any_domain  s    
ÿrÈ   c                     st  t d} | d}|  |¡r"|dks&t| d}|  |¡r@|dksDt| d}|  |¡r^|dksbt| d}|  |¡r||dkst| d}|  |¡r|dkst| | d}|  |¡rŒ|dksÀt| | d}|  |¡rÞ|dksât| | d}|  |¡r|dkst| | d}|  |¡r*|dks.t| | d}|  |¡rP|dksTt| d }|  |¡rt|dksxt| d }|  |¡r|dkstd| d }|  |¡rŸ|dksÂt| dd }|  |¡rä|dksèt| d| d }|  |¡r|dkst| d| d }|  |¡r8|dks<td| d }|  |¡r^|dksbt| dd }|  |¡r|dkst| d| d }|  |¡r®|dks²t| d| d }|  |¡rØ|dksÜtd| d }|  |¡rþ|dkst| dd }|  |¡r$|dks(t| d| d }|  |¡rN|dksRt| d| d }|  |¡rx|dks|td| d }|  |¡r|dks¢t| dd }|  |¡rÄ|dksÈt| d| d }|  |¡rî|dksòt| d| d }|  |¡r|dkst| dd }|  |¡r>|dksBt| dd }|  |¡rd|dksht| dd }|  |¡r|dkstt d}|dd }| |¡rž|dksŒt|dd }| |¡rÞ|dksâtt| dd	ksøtt| dd
kstt d  dd }  |¡r8|dks<t dd }  |¡r^|dksbt dd }  |¡r|dkst dd }  |¡rª|dks®ttdkrÜtt fdd tt fdd ttdd  ttdd  tdD ]<tdD ]*tdkràt	 $   k k ksDtW 5 Q R X t	 $   kkksttW 5 Q R X t	 $   kkks€tW 5 Q R X t	 $   kkksÔtW 5 Q R X nXtt
 fdd tt
 fdd tt
 fdd tt
 fdd qq ttd ksVt td dksptd S )Nr3   r   r^   r2   r   rQ   l    hí] lýÿÿÿ hí] FTr:   r\   Zflintc                      s    dd S )Nr   r\   r8   r8   ©rK   r8   r9   r>     r?   z%test_ModularInteger.<locals>.<lambda>c                      s    dd S )Nr:   r\   r8   r8   rÉ   r8   r9   r>     r?   c                   S   s   t dS ©Nr   ©r   r8   r8   r8   r9   r>     r?   c                   S   s   t dS )NgÍÌÌÌÌÌ @rË   r8   r8   r8   r9   r>     r?   c                      s     k S r4   r8   r8   ©rK   Zn1Zn2r8   r9   r>     r?   c                      s     kS r4   r8   r8   rÌ   r8   r9   r>     r?   c                      s     kS r4   r8   r8   rÌ   r8   r9   r>     r?   c                      s     kS r4   r8   r8   rÌ   r8   r9   r>     r?   )r   r¢   rL   Úboolr   r/   r-   Ú
ValueErrorÚranger0   Ú	TypeErrorr   r   )r=   ÚaÚF7r8   rÌ   r9   Útest_ModularInteger£  sÊ    



(((*rÓ   c                   C   s<   t tdd dd dkstt tdd ddks8td S )Nr2   iÐ  r3   iâ  ió éd   l   UUª*UUª*UUª*U)Úintr   rL   r8   r8   r8   r9   Útest_QQ_int  s    rÖ   c                   C   sd   t ddkstt ddks tt ddks0tt ddks@tt ddksPtt ddks`td S )Nr]   çžÔJzî5çvIhÂ%<=ç+¡=çVç¯Ò<ç#B¡Ç;çWw'&l¡7)r   rL   r8   r8   r8   r9   Útest_RR_double$  s    rÝ   c                  C   s   t d} t d}| jdkst|jdks,tt| d dks@tt|d dk sTtt|jd}|| d dkstt||d dkstd S )Nz1.01z1.0000000000000000000001é5   éP   r^   r×   )Úprec)r   Z_precrL   r   r$   )Úf1Úf2ZRR2r8   r8   r9   Útest_RR_Float-  s    rã   c                   C   sÜ   t djdkstt djdks$tt djdks6tt djdksHtt djdksZtt djdksltt djdks~tt d	jdkstt d
jdks¢tt djdksŽtt djdksÆtt djdksØtd S )Nr]   r×   rØ   rÙ   rÚ   rÛ   rÜ   y        ëQž	@y        vIhÂ%<=y        +¡=y        Vç¯Ò<y        #B¡Ç;y        Ww'&l¡7)r   ÚrealrL   Úimagr8   r8   r8   r9   Útest_CC_double:  s    ræ   c                     sì	  t j} dd dd|  d|  dd|   fD \}}}}t ||¡|ksHtt ||¡|ks\tt ||¡|ksptt ||¡|ksttddtddksttdddks®ttt dd dt dd ksÐttdd ¡ dksættdd ¡ dksütt t	dd¡tt	ddt	dks&tt t	ddt	¡tt	ddt	dksRtttfD ]  ddt
d	ks|t ¡  kst t¡d
ks¢t d¡dks¶t d|  ¡dksÎtttdksät dd ddksþt dd ddkst dd dks0t  ddksHt  ddks`td  d   kr ddksn td d   krŽ ddksºn t  ddksÒtd d   krø ddksþn td  ddkstd ks(td    krN ddksTn td     kr~ ddksn td d   krŒtt dd t d d ksÂn td tddksÚtd tt dd dksútd tdt dd kstd tt dd t d d ksDttd\}}d| | kshttd\}}| |  ddkstttfdd ttfdd ttfdd ttfdd ttfdd ttfdd ttfd d ttfd!d ttfd"d ttfd#d ttfd$d ttfd%d ttfd&d ttfd'd ttfd(d   t d¡ ddksŸt   dd¡t dksÜttt fd)d   t¡}t|tst|j kstt|jdkr<|jd  ¡ tks@t tkr  ¡ }t|tsbt|jt	ksrt|j j!d | kst dd dd dd ddfD ]V}	  "|	¡d*ksÄt  #|	¡d*ksØt  $|	¡d*ksìt  %|	¡d*ks¬tq¬t&t	tt	| g}
|
t' t( g7 }
t)d+kr>|
t* t+ g7 }
|
D ]D}  |d¡ ddksdt  |d|¡ ddksBtqBttfD ]H}  |dd¡ ddksŽt  |dd|¡ ddkstq tkrŠt,d,ksötd  ddkstd  dd-ks&td  ddks>td  ddksVt| ddksjt| ddks~t  -¡  kst  .¡ tk	sätqZt,d.ksžt  -¡ tksÊt  .¡  ksÜtd  dt dd ksütd  t d/d t d0 d k	s&td  ddk	s>td  ddk	sVt| t dd t d d k	st |f| ddk	st t dd t dd }  /|¡tdd1k	sÌt  0|¡tdksZtqZd S )2Nc                 S   s   g | ]}t  |¡qS r8   )r!   r   ©rt   r   r8   r8   r9   rv   L  s     z)test_gaussian_domains.<locals>.<listcomp>r:   r2   r3   r   r   r\   z3 + 4*I)NN)r2   r   )r   r2   )r3   r   r^   é   é   éüÿÿÿrZ   é   é	   r·   iÿÿÿé,   é   c                      s    d S rÊ   r8   r8   ©Úqr8   r9   r>   |  r?   z'test_gaussian_domains.<locals>.<lambda>c                      s    d S rÊ   r8   r8   rï   r8   r9   r>   }  r?   c                      s    d S rÊ   r8   r8   rï   r8   r9   r>   ~  r?   c                      s
   t  dS rÊ   ©Údivmodr8   rï   r8   r9   r>     r?   c                      s
   t  dS rÊ   rñ   r8   rï   r8   r9   r>     r?   c                      s    t  S r4   ©r   r8   rï   r8   r9   r>     r?   c                      s    t  S r4   ró   r8   rï   r8   r9   r>     r?   c                      s   t   S r4   ró   r8   rï   r8   r9   r>     r?   c                      s   t   S r4   ró   r8   rï   r8   r9   r>     r?   c                      s    t  S r4   ró   r8   rï   r8   r9   r>     r?   c                      s   t   S r4   ró   r8   rï   r8   r9   r>     r?   c                      s    t  S r4   ró   r8   rï   r8   r9   r>     r?   c                      s   t   S r4   ró   r8   rï   r8   r9   r>     r?   c                      s    t  S r4   ró   r8   rï   r8   r9   r>     r?   c                      s   t   S r4   ró   r8   rï   r8   r9   r>     r?   c                      s
      t¡S r4   )r   r
   r8   )ÚGr8   r9   r>     r?   FZgmpyz
ZZ_I(3, 4)rq   z
QQ_I(3, 4)é$   é0   r­   )1r   ÚImaginaryUnitr!   ÚgcdrL   Zlcmr"   Zquadrantr   r   ÚstrÚparentZ_get_xyr
   Úhashrò   r/   ÚZeroDivisionErrorrÐ   r   r   r,   r   r   Ú
isinstancer#   rT   rš   ZgensZas_exprZas_AlgebraicFieldr    r®   ÚargsÚis_negativeÚis_positiveÚis_nonnegativeÚis_nonpositiver   r   r   r   r   r   Úreprra   rc   ZnumerÚdenom)r   rÑ   Úbro   Údr   ÚrZPRZAFZqir   rU   Úq2r8   )rô   rð   r9   Útest_gaussian_domainsJ  sÖ    ."*,
.,,,0>  *
(
(
$ &
 *.r	  c                   C   s  t jtjkstt jtjks ttdt d¡ks6ttdj	tjksJtt dtjks\tdtt
tt
  t
  tddt    kr dt
tt
  t
  ksŠn tdt t
tt
  t
  dt
tt
  t
    krâdt ksèn tt  tdt¡t jkstt t dt ¡tjks tt  tj¡tjks8tt  t j¡tjksPtttdd  t  ¡ t ksptt  t¡t kstt t ¡t kstd S )Nr^   r2   c                   S   s
   t  g ¡S r4   )r   r   r8   r8   r8   r9   r>   Ý  r?   ztest_EX_EXRAW.<locals>.<lambda>)r   r   r   rÁ   rL   r   rÂ   r   Ú
ExpressionÚexr   r   r   r   r   r/   r,   rc   r6   r8   r8   r8   r9   Útest_EX_EXRAWÌ  s    JBr  c                  C   s<   t dt tt dg} t| t dt dt tgks8td S )Nr^   r3   )r   r   ÚsortedrL   )r   r8   r8   r9   Útest_EX_orderingå  s    r  c                  C   s  t ttfD ]8} |  | d¡| dks(t|  | d¡| dks
tq
ttfD ]|} |  t¡}|  | d¡| dkstt|  | d| ¡| kst|  | d ¡| dks¬t|  | d | ¡|ksLtqLt t	 } |  | t	d ¡| dksðt|  | t	 d ¡| dksttt	 } |  |  tt	 ¡¡tddks>tt 
t	t¡} |  t¡}|| | jksht| j| || j  | kstd S )Nr2   r^   rq   r\   r   )r   r   r   Zcanonical_unitrL   r!   r"   r   r   r   rH   r   r   )rU   r   r8   r8   r9   Útest_canonical_unitê  s$    
"$
r  c                   C   s4   t td ¡ dkstt td ¡ dks0td S )Nr2   r   r   )rù   r   rú   rL   r   r8   r8   r8   r9   Útest_issue_18278  s    r  c                  C   sH   t j} dd d|  dfD \}}t |¡dks2tt |¡dksDtd S )Nc                 S   s   g | ]}t  |¡qS r8   ©r   r   rç   r8   r8   r9   rv     s     z+test_Domain_is_negative.<locals>.<listcomp>r2   r:   F)r   r÷   r   rÿ   rL   ©r   rÑ   r  r8   r8   r9   Útest_Domain_is_negative	  s    r  c                  C   sH   t j} dd d|  dfD \}}t |¡dks2tt |¡dksDtd S )Nc                 S   s   g | ]}t  |¡qS r8   r  rç   r8   r8   r9   rv     s     z+test_Domain_is_positive.<locals>.<listcomp>r2   r:   F)r   r÷   r   r   rL   r  r8   r8   r9   Útest_Domain_is_positive  s    r  c                  C   sH   t j} dd d|  dfD \}}t |¡dks2tt |¡dksDtd S )Nc                 S   s   g | ]}t  |¡qS r8   r  rç   r8   r8   r9   rv     s     z.test_Domain_is_nonnegative.<locals>.<listcomp>r2   r:   F)r   r÷   r   r  rL   r  r8   r8   r9   Útest_Domain_is_nonnegative  s    r  c                  C   sH   t j} dd d|  dfD \}}t |¡dks2tt |¡dksDtd S )Nc                 S   s   g | ]}t  |¡qS r8   r  rç   r8   r8   r9   rv      s     z.test_Domain_is_nonpositive.<locals>.<listcomp>r2   r:   F)r   r÷   r   r  rL   r  r8   r8   r9   Útest_Domain_is_nonpositive  s    r  c                  C   sJ   t t } |  t¡}|  td¡|d ks,t|  td¡|d ksFtd S )Nr3   )r   r   r   r   rL   r   )rU   ZeKr8   r8   r9   Útest_exponential_domain%  s    
r  c                  C   s  t  td¡} | jjd kstttddd}t  |¡} | jjjdksJtt j|dd} | jjjdksjtt  tdtd¡} | jjd kstt  |td¡} | jjd ks®tt jtdtddd} | jjjdksØtt  |¡} |  | dddg¡}|j|jkstd S )Nr2   Úalpha)ÚaliasÚthetar3   r^   )	r   rM   r   r®   r  rL   r   ÚnameZ
to_alg_num)Úkr  Úbetar8   r8   r9   Útest_AlgebraicField_alias,  s     

r  c                  C   sh  t  t d¡dkstt  t d¡t dks0tt  t d¡dksFtt  t d¡d ks\tt  t d¡dksrtt  t d¡t dkstt  t d¡dks¢tt  t d¡d ksžtt tdd¡dksÐtt tdd¡td	dksîtt td
d¡dkstt td
d¡td	dks(tt tdd¡dksBtt tdd¡td	dksbtt tdd¡dks|tt tdd¡d kstt tdd¡dks°tt tdd¡d ksÊtt td¡dksâtt td¡tdksþtt td¡dkstt td¡tdks2tt tdd¡dksLtt tdd¡d ksftt td¡dks~tt td¡tdkstt td¡dks²ttjt td¡tdddsÖtt td¡dksîtt td¡tdks
tt td¡dks"tt td¡d ks:tt td¡dksRttjt td¡tdddsvtt td¡dkstt td¡tdksªtt td¡dksÂtt td¡tddksàtt tdd¡dksútt tdd¡tddkstt tdd¡dks4tt tdd¡tddksTttd} |  | d¡dkstt|  | d¡| dkst|  | d¡dksšt|  | d¡| dksÄttd}| |d¡dksät| |d¡|d	ks t| |d	¡dkst| |d	¡d ks0t| |d¡dksHt| |d¡|dksdtd S )Nr   Tr2   é*   Fr   r\   rì   r3   é   ré   i÷ÿÿÿrê   é   r:   iðÿÿÿg      @g      @gÍ;f ö?rÚ   )Z	tolerancer^   éýÿÿÿrq   rQ   )	r   Z	is_squarerL   Zexsqrtr   r   Zalmosteqr   r   )ZF2rÒ   r8   r8   r9   Útest_exsqrtM  sl      $$  r#  N){Ú__doc__Zsympy.external.gmpyr   Zsympy.core.numbersr   r   r   r   r   r   r	   r
   r   Zsympy.core.singletonr   Z&sympy.functions.elementary.exponentialr   Z(sympy.functions.elementary.miscellaneousr   Z(sympy.functions.elementary.trigonometricr   Zsympy.polys.polytoolsr   Z	sympy.abcr   r   r   Zsympy.polys.domainsr   r   r   r   r   r   r   r   r   r   r   r   Z"sympy.polys.domains.algebraicfieldr    Z#sympy.polys.domains.gaussiandomainsr!   r"   Z"sympy.polys.domains.polynomialringr#   Zsympy.polys.domains.realfieldr$   Z!sympy.polys.numberfields.subfieldr%   Zsympy.polys.ringsr&   Zsympy.polys.specialpolysr'   Zsympy.polys.fieldsr(   Zsympy.polys.agca.extensionsr)   Zsympy.polys.polyerrorsr*   r+   r,   r-   r.   Zsympy.testing.pytestr/   r0   Ú	itertoolsr1   rM   rC   r6   rN   rP   rR   rW   rY   r_   r`   rb   rd   rh   rl   rm   rp   r{   r   r   r   r   r   r   r   r    rª   r«   r²   r¶   rž   rŒ   rŸ   r¿   rÀ   rÃ   rÈ   rÓ   rÖ   rÝ   rã   ræ   r	  r  r  r  r  r  r  r  r  r  r  r#  r8   r8   r8   r9   Ú<module>   s   ,8zy3 "):
|	 !