U
    ZÊ¹jê  ã                   @   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
 ddlmZ ddlmZ ddlmZmZ ddl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!m"Z" dd„ Z#dd„ Z$dd„ Z%dd„ Z&dd„ Z'dS )z:Tests for tools for constructing domains for expressions. é    )Úconstruct_domain)ÚZZÚQQÚZZ_IÚQQ_IÚRRÚCCÚEX)Ú	RealField)ÚComplexField)ÚCatalanÚGoldenRatio)ÚEÚFloatÚIÚRationalÚpi)ÚS)Úexp)Úsqrt)Úsin)ÚxÚyc                  C   s@	  t dddgƒttdƒtdƒtdƒgfks,t‚t dddgdd�ttdƒtdƒtdƒgfks\t‚t tjtdƒtdƒgƒttdƒtdƒtdƒgfks’t‚t tjtdƒtdƒgdd�ttdƒtdƒtdƒgfksÌt‚t tjtdƒgƒttddƒtdƒgfksøt‚t ddtjgƒ} t| d tƒ�st‚| d t	dƒt	dƒt	d	ƒgk�s@t‚t dt
tjgƒ} t| d tƒ�sdt‚| d tdƒtd
ƒtd	ƒgk�sˆt‚t dt
 gƒttddƒgfk�s¬t‚t ddt
  gƒttddƒgfk�sÔt‚t dt
gƒttddƒtddƒgfk�sþt‚t dt
d gƒttddƒtdtjƒgfk�s.t‚t dtdƒgd d�ttdƒttdƒƒgfk�s`t‚t dtdƒgdd�ttdƒttdƒƒgfk�s’t‚t dtdƒgd d�ttdƒttdƒƒgfk�sÄt‚t tttƒgƒtttƒtttƒƒgfk�sòt‚t tttƒttƒgƒtttƒtttƒƒtttƒƒgfk�s0t‚t tdƒ¡}t dtjtdƒgdd�|| d¡| tj¡| tdƒ¡gfk�s‚t‚t tdƒtdƒ ¡}t dtdƒtdƒgdd�|| d¡| tdƒ¡| tdƒ¡gfk�sàt‚tt }t dt dgƒ|| dt ¡| d¡gfk�st‚tttf }t dt dt gƒ|| dt ¡| dt ¡gfk�s`t‚tt }t td dgƒ|| td ¡| d¡gfk�sšt‚tttf }t td dt gƒ|| td ¡| dt ¡gfk�sàt‚tt }t dt t
gƒ|| dt ¡| t
¡gfk�st‚tttf }t dt t
t gƒ|| dt ¡| t
t ¡gfk�s`t‚tt }t td t
gƒ|| td ¡| t
¡gfk�sšt‚tttf }t td t
t gƒ|| td ¡| t
t ¡gfk�sàt‚t	t }t td dgƒ|| td ¡| d¡gfk�st‚t	ttf }t td dt gƒ|| td ¡| dt ¡gfk�s`t‚tt }t t
t d dgƒ|| t
t d ¡| d¡gfk�s¢t‚tttf }t t
t d dt gƒ|| t
t d ¡| dt ¡gfk�sðt‚tt }t td t
d gƒ|| td ¡| t
d ¡gfk�s2t‚tttf }t td t
d t gƒ|| td ¡| t
d t ¡gfk�s€t‚t t¡}t dt dgƒ|| dt ¡| d¡gfk�s¼t‚t tt¡}t dt dt gƒ|| dt ¡| dt ¡gfk�st‚t	 t¡}t dt dgƒ|| dt ¡| d¡gfk�s>t‚t	 tt¡}t dt dt gƒ|| dt ¡| dt ¡gfk�s„t‚tdd�t }t t d¡t gƒ|| t d¡t ¡gfk�sÆt‚t dƒttdƒfk�sàt‚t tdƒd ƒttddƒfk�	st‚t tddƒƒttddƒfk�	s&t‚t i ƒti fk�	s<t‚d S )Né   é   é   T)Úfieldg…ëQ¸	@r   g      ð?g      à?y              ð?g       @g      @©Ú	extensioné   g      @iP  )Úprecéd   )r   r   ÚAssertionErrorr   r   ZOneZHalfÚ
isinstancer
   r   r   r   r   r   r   r   r	   r   r   Úalgebraic_fieldÚconvertZ
frac_fieldr   Zevalfr   )ÚresultÚalgÚdom© r)   úa/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/polys/tests/test_constructor.pyÚtest_construct_domain   sØ    ,06:,$$$(*0222.>$ÿ
&ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
"ÿ
ÿ
"ÿ

ÿ
ÿ

ÿ
ÿ
ÿ
$"r+   c                  C   sf   t t d t d dd�} t | ¡}t| d | dgdd�|| | d ¡| | ¡| d¡gfksbt‚d S )Nr   r   F)Úevaluater   Tr   )r   r   r   r   r$   r   r%   r"   )Úwr'   r)   r)   r*   Útest_complex_exponential    s    
þþr.   c                   C   s˜   t dttƒidd�tdtttƒƒifks,t‚t dtidd�tdttƒifksPt‚t ddidd�tddifkspt‚t dtidd�tdttƒifks”t‚d S )N)r   F)Z	composite)r   r   r   )r   r   )r   r   r   r	   r"   r   r)   r)   r)   r*   Útest_composite_option«   s    ÿÿ
ÿÿr/   c                  C   s²   t dƒ} t dƒ}ddddddd	d
d| |fD ]6}t|gƒ}t|d d ƒ}t|| ƒ| dk s*t‚q*t| gƒ}|d d }|d dksˆt‚t|gƒ}|d d }|d dks®t‚d S )Nz1.01z1.0000000000000000000001r   g{®Gáz„?g�íµ ÷Æ°>g‚vIhÂ%<=g›+¡†›„=g¼‰Ø—²Òœ<g#B’¡œÇ;g0Žä.ÿ++gYóøÂn¥r   g¸ÔJzî�5)r   r   ÚfloatÚabsr"   )Úf1Úf2Úur&   Úvr   r)   r)   r*   Útest_precision¹   s     ÿ


r6   c                  C   sx   t ttfD ]<} t| ƒd t|  ks&t‚tt|  ƒd tt| f ks
t‚q
ttƒd tks\t‚ttt ƒd tkstt‚d S )Nr   )	r   r   r   r   r   r"   r   r   r	   )Únr)   r)   r*   Útest_issue_11538Ë   s
    "r8   N)(Ú__doc__Zsympy.polys.constructorr   Zsympy.polys.domainsr   r   r   r   r   r   r	   Zsympy.polys.domains.realfieldr
   Z sympy.polys.domains.complexfieldr   Z
sympy.corer   r   Zsympy.core.numbersr   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.abcr   r   r+   r.   r/   r6   r8   r)   r)   r)   r*   Ú<module>   s"   $ 