o
    h4                     @   s  d 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 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# ddl$m%Z%m&Z& dd Z'dd Z(dd Z)edd Z*dd Z+dd Z,dd Z-dS )z:Tests for tools for constructing domains for expressions.     )tooslow)construct_domain)ZZQQZZ_IQQ_IRRCCEX)	RealField)ComplexField)CatalanGoldenRatio)EFloatIRationalpi)S)exp)sqrt)sin)rootof)xyc                  C   s.	  t g dttdtdtdgfksJ t g dddttdtdtdgfks,J t tjtdtdgttdtdtdgfksGJ t tjtdtdgddttdtdtdgfksdJ t tjtdgttddtdgfkszJ t ddtjg} t| d tsJ | d tdtd	td
gksJ t dt	tjg} t| d t
sJ | d tdtdtd
gksJ t d	t	 gttd	d	gfksJ t ddt	  gttddgfksJ t dt	gttddtddgfksJ t dt	d gttddtdtjgfksJ t dtdgd dttdttdgfks'J t dtdgddttdttdgfks@J t dtdgd dttdttdgfksYJ t tttgttttttgfkspJ t tttttgtttttttttgfksJ ttd}t dtjtdgdd||d|tj|tdgfksJ ttdtd }t dtdtdgdd||d|td|tdgfksJ tt }t dt dg||dt |dgfksJ tttf }t dt dt g||dt |dt gfks'J tt }t td dg||td |dgfksDJ tttf }t td dt g||td |dt gfksgJ tt }t dt t	g||dt |t	gfksJ tttf }t dt t	t g||dt |t	t gfksJ tt }t td t	g||td |t	gfksJ tttf }t td t	t g||td |t	t gfksJ tt }t td dg||td |dgfksJ tttf }t td dt g||td |dt gfks'J tt }t t	t d dg||t	t d |dgfksHJ tttf }t t	t d dt g||t	t d |dt gfksoJ tt }t td t	d g||td |t	d gfksJ tttf }t td t	d t g||td |t	d t gfksJ tt}t dt dg||dt |dgfksJ ttt}t dt dt g||dt |dt gfksJ tt}t dt dg||dt |dgfksJ ttt}t dt dt g||dt |dt gfks9J tddt }t tdt g||tdt gfksZJ t dttdfksgJ t tdd ttddfksyJ t tddttddfksJ t i ti fksJ d S )N)         r   r   r   T)fieldgQ	@r   g      ?g      ?y              ?g       @g      @	extension   g      @iP  )precd   )r   r   r   r   OneHalf
isinstancer   r   r   r   r	   r   r   r   r
   r   r   algebraic_fieldconvert
frac_fieldr   evalfr   )resultalgdom r.   X/var/www/html/ai/venv/lib/python3.10/site-packages/sympy/polys/tests/test_constructor.pytest_construct_domain   s   *.6:,"""&(0222.>$
&











"

"







$"r0   c                  C   sf   t t d t d dd} t| }t| d | dgdd||| d || |dgfks1J d S )Nr   r   F)evaluater   Tr   )r   r   r   r   r'   r   r(   )wr,   r.   r.   r/   test_complex_exponential   s   
r3   c                  C   s   t td t d d} t td t d d}t| }t|}t| gtt| gfks.J t|gtt|gfks<J t| |gtt| t|gfksNJ t| gdd||| gfks_J t|gdd|||gfkspJ d S Nr   r   r   Tr   )r   r   r   r'   r   r
   
from_sympy)r1r2K1K2r.   r.   r/   test_rootof   s   

$
r:   c                  C   sj   t td t d d} t td t d d}t| | }t| |gdd||| ||gfks3J d S r4   )r   r   r   r'   r   r5   )r6   r7   K12r.   r.   r/   test_rootof_primitive_element   s   r<   c                   C   s   t dttiddtdtttifksJ t dtiddtdttifks(J t ddiddtddifks8J t dtiddtdttifksJJ d S )N)r   F)	composite)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 ]}t|g}t|d d }t|| | dk s0J qt| g}|d d }|d dksDJ t|g}|d d }|d dksWJ d S )Nz1.01z1.0000000000000000000001r   g{Gz?gư>gvIh%<=g+=gؗҜ<g#B;g0.++gYnr   gJz5)r   r   floatabs)f1f2ur+   vr   r.   r.   r/   test_precision   s   


rE   c                  C   sx   t ttfD ]} t| d t|  ksJ tt|  d tt| f ks#J qttd tks.J ttt d tks:J d S )Nr   )r   r   r   r   r   r   r   r
   )nr.   r.   r/   test_issue_11538   s
   "rG   N).__doc__sympy.testing.pytestr   sympy.polys.constructorr   sympy.polys.domainsr   r   r   r   r   r	   r
   sympy.polys.domains.realfieldr    sympy.polys.domains.complexfieldr   
sympy.corer   r   sympy.core.numbersr   r   r   r   r   sympy.core.singletonr   &sympy.functions.elementary.exponentialr   (sympy.functions.elementary.miscellaneousr   (sympy.functions.elementary.trigonometricr   sympyr   	sympy.abcr   r   r0   r3   r:   r<   r>   rE   rG   r.   r.   r.   r/   <module>   s.    $ 
