U
    ZÊ¹j~  ã                   @   s$  d dl mZ 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 )&é    )Únfloat)Ú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 sHt‚d S )NÚxé   é   éd   r   gq=
×£pÝ?g®GázÞ?©r	   r   ÚAssertionError©r   Zans© r   ú_/var/www/html/bwave/python/venv/lib/python3.8/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s6t‚d S )Nr   r   é   gÍÌÌÌÌÌ Àg      ð¿r   r   r   r   r   Útest_nsolve_denominator   s    "r!   c                     sX  t dƒ‰ttˆƒdƒt ¡  dk s&t‚ttdˆ dƒˆdƒtdˆ d dƒksRt‚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sìt‚qìt 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ƒƒƒdddgk�sÞt‚tt|dƒt|dƒt|dƒgˆˆˆgdƒ�st‚t dƒ}ttdd| d
  dd| d
   |dƒtdƒ ƒdk �sTt‚d S ) Nr   r   gVçž¯Ò<iöÿÿÿc                      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.   ç:Œ0âŽyE>)Ztolg»½×Ùß|Û=ÚyÚzr-   c                    s,   t ˆˆˆˆf| ƒ}tˆ |Ž dƒdks(t‚|S )Nr   r/   )r   r   r   )Úx0Úroot©ÚFÚfr   r0   r1   r   r   Úgetroot>   s    ztest_nsolve.<locals>.getroot)r   r   r   r   Úagü©ñÒMbP?é   gÍÌÌÌÌÌì?g333333Ó?z0.31883011387318591)r   r   r   r   Úevalfr   r   r   Ú	TypeErrorr   ÚTr   r   r
   ÚlistÚmapÚroundÚabsr   )r&   r'   Úf1Úf2r2   Zf3r7   r8   r   r4   r   Útest_nsolve!   sP    ,$(" ÿ ÿ ÿ
(ÿÿrC   c                  C   s6   t dƒ} tt| | dk f| d dfƒ| dƒdks2t‚d S )Nr   r   r   Tr   )r   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s0t‚d S )Núx yr   é   r   )r	   r   r   r   ©r   r0   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 sNt	‚d S )Nr   é€   r   r   ç      @ç�—ŒÏº[%)
r)   ÚmpZdpsr   r   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 sBt‚t|tƒsPt‚t|d |  | d t f| |fddd�}t|t	ƒs†t‚|j
dks”t‚tttƒ d¡|d	  ƒdk s¶t‚ttttƒƒ d¡|d
  ƒdk sÜt‚tdd„ |D ƒƒsòt‚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   s     z(test_nsolve_precision.<locals>.<genexpr>)r	   r   r   r@   r
   r:   r   rR   r   r   ÚshapeÚall)r   r0   ZsolZsolsr   r   r   Útest_nsolve_precision_   s    ("&rX   c                  C   sä   t dƒ\} }t| d d dƒtdƒt ks.t‚t| d d tƒtdƒt ksPt‚t| d d |d d g| |gttgƒttdƒt tdƒt gƒks˜t‚t| d d |d d g| |gttgƒttdƒt tdƒt gƒksàt‚d S )NrE   r   y              ð?ç       @)r	   r   r
   r   r   r   rG   r   r   r   Útest_nsolve_complexl   s
    ""HrZ   c                  C   sº   t dƒ\} }t| d d ddd�| tdƒigks4t‚t| d d tdd�| tdƒt igks`t‚t| d |d  d | d |d  d g| |gddgdd�| tdƒ|tdƒigks¶t‚d S )	NrE   r   r   T)ÚdictrY   rF   rJ   )r	   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s4t‚d S )Nr   r   r    r   r   rP   )r	   r   r   r:   r   r#   r   r   r   Útest_nsolve_rational�   s    r]   c                  C   s^   t tdƒƒ} t ddgƒ}| | }t|| |ƒt| ƒks:t‚t|j| j|jƒt| ƒksZt‚d S )Nzt sé   é   )r   r	   r   r   r   r<   )r   r2   Zeqnr   r   r   Útest_issue_14950†   s
    r`   N)-Zsympy.core.functionr   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   rZ   r\   r]   r`   r   r   r   r   Ú<module>   s4   
	)

	