o
    *ήcR                     @   s  d dl 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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
lmZ d dlmZ d dlmZmZ d dlmZ edd Z dd Z!dd Z"dd Z#dd Z$edd Z%dd Z&dd Z'dd Z(d d! Z)d"d# Z*d$S )%    )FloatIRationalpi)Eq)Symbolsymbols)sqrt)	Piecewise)sin)Integral)Matrix)mnormmpf)nsolve)lambdify)raisesXFAIL)conserve_mpmath_dpsc                  C   sL   t d} t| d d|   dd|   d  d | d}|dkr"|dk s$J d S )Nx      d   r   gq=
ףp?gGz?r   r   r   ans r   G/tmp/pip-target-vg8gfxp4/lib/python/sympy/solvers/tests/test_numeric.pytest_nsolve_fail   s   ,r   c                  C   s:   t d} t| d d|   d | d  d}|dksJ d S )Nr   r      g g      r   r   r   r   r   test_nsolve_denominator   s   "r    c                     sT  t dttdt  dk sJ ttd ddtd d dks)J ttfdd ttfdd t d} t d	}d
| d  d|d   d }| d d|   |d  d|  d }t||fj	t
| |fj	dd dD ]}t| |f|ddt  ddksJ qvt dt dt d d  }d d d   d  d  }td d   }t|||fj	t
fj	dd  fdd}ttt|dg dksJ tt|dt|dt|dggdsJ t d}ttdd| d
  dd| d
   |dtd  dk s(J d S )!Nr   r   gV瞯<ic                      s   t td  dS )Nr   r   r   r   r   r   r   <lambda>&   s    ztest_nsolve.<locals>.<lambda>c                      s   t td  d ddS )Nr   r   r!   r   r"   r   r   r#   '   s    x1x2r   r      mpmath)modules))r   )r   )   r+   )r,   :0yE>)tolg|=yzr+   c                    s,   t f| }t | ddksJ |S )Nr   r-   )r   r   )x0rootFfr   r/   r0   r   r   getroot=   s   ztest_nsolve.<locals>.getroot)r   r   r   )       @g      ?        r   agMbP?   g?g333333?z0.31883011387318591)r   r   r   r   evalfr   r   	TypeErrorr   Tr   r   r	   listmaproundabsr   )r$   r%   f1f2r1   f3r6   r9   r   r3   r   test_nsolve    sJ   ,$(

(rE   c                  C   s6   t d} tt| | dk f| d df| ddksJ d S )Nr   r   r   Tr8   )r   r   r
   r"   r   r   r   test_issue_6408J   s   .rF   c                  C   s4   t d\} }tt| | | ddf|ddksJ d S )Nx yr      r   r8   )r   r   r   r   r/   r   r   r   test_issue_6408_integralO   s   (rJ   c                  C   sR   dd l } d| j_td}|d t }t||d}tttd| dk s'J d S )Nr      r   r         @睗[%)	r'   mpdpsr   r   r   rA   r	   r;   )r'   r   e1qr   r   r   test_increased_dpsT   s   "rR   c                  C   s   t d\} }t| d t | ddd}tttd| dk s!J t|ts(J t|d |  | d t f| |fddd}t|tsCJ |j	dksJJ tttd|d	  dk s[J ttttd|d
  dk snJ t
dd |D syJ d S )NrG   r   r   rK   precrM   )r   r   )r   r   r   r   c                 s   s    | ]}t |tV  qd S )N)
isinstancer   ).0ir   r   r   	<genexpr>j   s    z(test_nsolve_precision.<locals>.<genexpr>)r   r   r   rA   r	   r;   rU   r   r   shapeall)r   r/   solsolsr   r   r   test_nsolve_precision_   s   ("&r]   c                  C   s   t d\} }t| d d dtdt ksJ t| d d ttdt ks(J t| d d |d d g| |gttgttdt tdt gksLJ t| d d |d d g| |gttgttdt tdt gkspJ d S )NrG   r   y              ?r7   )r   r   r	   r   r   rI   r   r   r   test_nsolve_complexl   s
   ""HLr^   c                  C   s   t d\} }t| d d ddd| tdigksJ t| d d tdd| tdt igks0J t| d |d  d | d |d  d g| |gddgdd| td|tdigks[J d S )	NrG   r   r   T)dictr7   rH   rL   )r   r   r	   r   rI   r   r   r   test_nsolve_dict_kwargu   s   :r`   c                  C   s8   t d} t| tdd dddtdddksJ d S )Nr   r   r   r   r   rS   )r   r   r   r;   r"   r   r   r   test_nsolve_rational   s   0ra   c                  C   sV   t td} t ddg}| | }t|| || ksJ t|j| j|j| ks)J d S )Nzt s      )r   r   r   r=   )r   r1   eqnr   r   r   test_issue_14950   s
    re   N)+sympy.core.numbersr   r   r   r   sympy.core.relationalr   sympy.core.symbolr   r   (sympy.functions.elementary.miscellaneousr	   $sympy.functions.elementary.piecewiser
   (sympy.functions.elementary.trigonometricr   sympy.integrals.integralsr   sympy.matrices.denser   r'   r   r   sympy.solversr   sympy.utilities.lambdifyr   sympy.testing.pytestr   r   sympy.utilities.decoratorr   r   r    rE   rF   rJ   rR   r]   r^   r`   ra   re   r   r   r   r   <module>   s4    
	*

	