a
    <bR                     @   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rD|dk sHJ d S )Nx      d   r   gq=
ףp?gGz?r   r   r   Zans r   p/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/solvers/tests/test_numeric.pytest_nsolve_fail   s    ,r   c                  C   s:   t d} t| d d|   d | d  d}|dks6J d S )Nr   r      g g      r   r   r   r   r   test_nsolve_denominator   s    "r   c                     sV  t dttdt  dk s&J ttd ddtd d dksRJ 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 qt 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 sRJ d S )!Nr   r   gV瞯<ic                      s   t td  dS )Nr   r   r   r   r   r   r   <lambda>&       ztest_nsolve.<locals>.<lambda>c                      s   t td  d ddS )Nr   r   r    r   r!   r   r   r"   '   r#   x1x2r   r      mpmath)modules))r   )r   )   r+   )r,   :0yE>)Ztolg|=yzr+   c                    s,   t f| }t | ddks(J |S )Nr   r-   )r   r   )x0rootFfr   r.   r/   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f2r0   Zf3r5   r8   r   r2   r   test_nsolve    sJ    ,$( 

(rC   c                  C   s6   t d} tt| | dk f| d df| ddks2J d S )Nr   r   r   Tr7   )r   r   r
   r!   r   r   r   test_issue_6408J   s    rD   c                  C   s4   t d\} }tt| | | ddf|ddks0J d S )Nx yr      r   r7   )r   r   r   r   r.   r   r   r   test_issue_6408_integralO   s    rH   c                  C   sR   dd l } d| j_td}|d t }t||d}tttd| dk sNJ d S )Nr      r   r         @睗[%)	r'   mpZdpsr   r   r   r@   r	   r:   )r'   r   e1qr   r   r   test_increased_dpsT   s    rO   c                  C   s   t d\} }t| d t | ddd}tttd| dk sBJ t|tsPJ t|d |  | d t f| |fddd}t|tsJ |j	dksJ tttd|d	  dk sJ ttttd|d
  dk sJ t
dd |D sJ d S )NrE   r   r   rI   precrK   )r   r   )r   r   r   r   c                 s   s   | ]}t |tV  qd S )N)
isinstancer   ).0ir   r   r   	<genexpr>j   r#   z(test_nsolve_precision.<locals>.<genexpr>)r   r   r   r@   r	   r:   rR   r   r   shapeall)r   r.   ZsolZsolsr   r   r   test_nsolve_precision_   s    ("&rX   c                  C   s   t d\} }t| d d dtdt ks.J t| d d ttdt ksPJ t| d d |d d g| |gttgttdt tdt gksJ t| d d |d d g| |gttgttdt tdt gksJ d S )NrE   r   y              ?r6   )r   r   r	   r   r   rG   r   r   r   test_nsolve_complexl   s
    ""HrY   c                  C   s   t d\} }t| d d ddd| tdigks4J t| d d tdd| tdt igks`J t| d |d  d | d |d  d g| |gddgdd| td|tdigksJ d S )	NrE   r   r   T)dictr6   rF   rJ   )r   r   r	   r   rG   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s4J d S )Nr   r   r   r   r   rP   )r   r   r   r:   r!   r   r   r   test_nsolve_rational   s    r\   c                  C   sV   t td} t ddg}| | }t|| || ks6J t|j| j|j| ksRJ d S )Nzt s      )r   r   r   r<   )r   r0   Zeqnr   r   r   test_issue_14950   s
    r_   N)+Zsympy.core.numbersr   r   r   r   Zsympy.core.relationalr   Zsympy.core.symbolr   r   Z(sympy.functions.elementary.miscellaneousr	   Z$sympy.functions.elementary.piecewiser
   Z(sympy.functions.elementary.trigonometricr   Zsympy.integrals.integralsr   Zsympy.matrices.denser   r'   r   r   Zsympy.solversr   Zsympy.utilities.lambdifyr   Zsympy.testing.pytestr   r   Zsympy.utilities.decoratorr   r   r   rC   rD   rH   rO   rX   rY   r[   r\   r_   r   r   r   r   <module>   s2   
	*

	