a
     ¬<b.  ã                   @   s  d dl mZ d dl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mZ d	d
„ dD ƒ\ZZZZZZZZdd„ Zdd„ Zdd„ Zdd„ Zdd„ Z dd„ Z!dd„ Z"dd„ Z#dd„ Z$dd„ Z%d d!„ Z&d"d#„ Z'd$d%„ Z(d&d'„ Z)d(S ))é    )ÚMul)ÚIÚIntegerÚRational)ÚSymbol)ÚrootÚsqrt)Úcos)ÚIntegral)Ú
sqrtdenest)Ú_subsetsÚ_sqrt_numeric_denestc                 C   s   g | ]}t |ƒ‘qS © )r   )Ú.0Úxr   r   út/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/site-packages/sympy/simplify/tests/test_sqrtdenest.pyÚ
<listcomp>   ó    r   )é   é   é   é   é   é
   é   é   c                  C   sT  t ddt  ƒtt t ddt  ƒt ddt  ƒt ddt ddt  ƒ  ƒt ddt  dt  ƒt tƒt tƒt dt ƒt dt ƒt dt ddt  ƒ ƒdt ddt  tddƒ  dt ddt  ƒ  tt ddt  ƒ dddt  tddƒ    t ddt  ƒdtddƒ td dt d   d i} | D ] }t|ƒ| | ks.J |ƒ‚q.d S )Nr   r   g      @é   r   é   r   )r   Úr6Úr2Úr3Úr7r   r   )ÚdÚir   r   r   Útest_sqrtdenest   s    00,ÿ2ø	r$   c                  C   s*  t tddt  dtddt  ƒ  ƒƒttddt  ƒ ks@J ‚tt tdt dtdt d ƒ  d ƒ ƒ} t | ƒtdt d dƒksŒJ ‚td	t ƒ}t td	| ƒƒtd	| ƒks¸J ‚td	td	dtd
t t ƒ  ƒ d  ¡ ƒ} t | ƒd	td	dttt d
 ƒ  ƒ ksJ ‚t tdt dt  ƒƒtdƒtd
dƒ td
dƒd
  ksPJ ‚t td	t td	t ƒ d  ¡ ƒƒd	t td	t ƒ ksŽJ ‚t td	t t td	t ƒ d  ¡ ƒƒd	td	t ƒ t t ksÔJ ‚td	t	dƒ t	d
ƒ td	t ƒ d  ¡ ƒ} t | ƒt	d
ƒt	dƒ d	 td	t ƒ ks.J ‚tdt
 dt tdt
 d ƒ  d ƒ} t | ƒtdt
 dt  dt  d ƒks„J ‚tdt t	dƒ dtdt d ƒ  d ƒ}t |ƒ|ksÂJ ‚t tttdƒ ƒƒtttdƒ ƒksìJ ‚tddtdƒ  dtddt  ƒ  ƒ}t |ƒ|ks&J ‚d S )Né   r   é7   r   é   éþÿÿÿéöÿÿÿr   r   r   r   r   é   r   é   )r   r   Úr29Úr5r   r!   r   Úexpandr    r	   Úr10r   )ÚeÚrÚzr   r   r   Útest_sqrtdenest2   s6    &ÿ. ,.ÿ
"ÿ
&ÿ
,.(.,*(r3   c                  C   sx  t tdtdƒ dt  dtdƒ  d ƒƒt t dt  ksBJ ‚t tdt dt  dtdƒ  d	 ƒƒd
t dt  ks~J ‚t tdt d dtdƒ d  dtdƒ d  d ƒƒtdƒtd tdƒ  d ksÖJ ‚t tdt dt  dt  d ƒƒdt d dt  ksJ ‚tdt dtdƒ  dtdƒ  d ƒ} t | ƒtdƒdt dt  dtdƒ   ksnJ ‚tdtdƒ dt  dtdƒ  d ƒ} t | ƒ| ks¨J ‚t tdt dt  d  ƒƒt d! t t ksÜJ ‚t td"t dt  d  ƒƒtdƒt d! t t  ksJ ‚t td"t d dt d  t	d#dƒ ƒƒt d t t d ks^J ‚t ttdt d$ ƒtdt d" ƒ ƒƒtd!t t t ƒks J ‚t tdt d"t  d%t  d& ƒƒd!t t t ksÚJ ‚d!t t t t }t t|d  
¡ ƒƒ|ksJ ‚t|d  
¡ d! ƒ} t | ƒ| ks2J ‚tdt dt  dt  d% d't  d(t  ƒ} t | ƒ| kstJ ‚d S ))Néüÿÿÿr*   r   r   é   é!   iäÿÿÿé#   éR   iùÿÿÿr   r'   é   r   iÔ  iÐ  i`  iM  é	   é   é8   iþÿÿéb   és   iY  i;  éÿÿÿÿr   é   é"   éøÿÿÿé   r   é   éš   r   é   é   r   é   )r   r   r   r   r    r!   r-   Úr15r/   r   r.   )r2   Úwr   r   r   Útest_sqrtdenest_rec@   sB    *ÿ&ÿ6ÿ"ÿ
(2(4ÿ
(ÿ
&ÿ
:0rK   c                  C   s0   t ddt dƒ  dt  ƒ} t| ƒ| ks,J ‚d S )NiÀþÿÿé    r   é@   )r   rI   r   )r2   r   r   r   Útest_issue_6241_   s    rN   c               	   C   s,  t ddt  dt t dt d ƒ  ƒ} t| ƒdt t ks@J ‚t| dddt dƒ t dƒ ksdJ ‚t t td ƒd ƒ} t| ƒ| ksˆJ ‚tt dt d	t t dt d ƒ  d
 ƒƒt dt d	t  dt  d
 ƒksØJ ‚tt ddt  ddt  t  ƒƒtd d	t  dt  ksJ ‚t dt dt d ƒt dt dt dt d ƒ  d ƒ  ƒ} t dt d ƒ}t| ƒt t| t|  t t d ƒks”J ‚t dt d dt	 d  dt dƒ d  d ƒ}t ddt  dt ddt  ƒ  ƒ}t|| ƒt	dt t	  t
dt dt d ƒt dd ks(J ‚d S )Né   r   r(   r'   r?   r   )Zmax_iterr   r   é   rD   ép   éF   é.   rA   r   r   r)   r&   r%   r   é*   F)Úevaluate)r   r/   r   r   r-   r   r,   r    rI   r!   r   )r2   r1   Únr"   r   r   r   Útest_sqrtdenest3d   s&    ($*ÿ"ÿ
<.0$.ÿrW   c                  C   s.  t dtt dt ƒ  t dƒdt   ƒ} t| ƒ}t t d ƒ}t | t|  | t|  t t t t dƒ d  ¡ }t| ƒ|ksˆJ ‚t dt t td ƒ dt  dt td ƒ  d ƒ} t| ƒtt td ƒ d ksÜJ ‚dt t dt t dt dt  ƒ  }t |d  ¡ ƒ} t| ƒ| ¡ ks*J ‚d S )NrD   r   r   r   rH   r   r   )	r   r   r-   r   rI   r    r   r/   r.   )r2   Zz1ÚcrJ   r   r   r   Útest_sqrtdenest4x   s    (:4 (rY   c                  C   sÎ  t dƒ} tdttd|  ƒd ƒ d  ¡ ƒ}t|ƒtdttd|  ƒd ƒ d ƒksXJ ‚tdttdtdƒ ƒd ƒ d  ¡ ƒ}t|ƒdttdtdƒ ƒd ƒ ks¨J ‚dtdƒ d d  ¡ }t|ƒ|ksÐJ ‚tdttdtd|  ƒ ƒd ƒ d d  ¡ ƒ}t|ƒ|ksJ ‚tdƒ}|d }ttdtdt ƒ | | d t|  ƒƒdtdt ƒ|  kshJ ‚tdt ƒ}td| tddt  ƒ dt | tddt  ƒ  d	t  d
 ƒ}t|ƒ|ksÊJ ‚d S )Nr   r   r   r   r   r?   rP   rF   rM   rQ   )r   r   r.   r   r	   r    )r   r2   rX   Úc2Úrar   r   r   Útest_sqrt_symbolic_denestˆ   s"    $,((0*ÿ
Dr\   c                  C   s@  ddl m} m} tddt d  d ƒ}tt td  }t|ƒ|ksHJ ‚td| ƒd| ks`J ‚tt|d | ddfƒƒtd| | ddfƒksJ ‚t| t|ƒ ƒ| t|ƒ ks°J ‚tt td  }t|ƒ|ksÐJ ‚td| ƒd| ksèJ ‚tt|d | ddfƒƒtd| | ddfƒksJ ‚t| t|ƒ ƒ| t|ƒ ks<J ‚d S )Nr   )r   Úyr   r   r   r   )	Z	sympy.abcr   r]   r   r    r   r   r   r
   )r   r]   r2   Zansr   r   r   Útest_issue_5857›   s     ÿ ÿ
r^   c                   C   s‚   t dƒdggksJ ‚t dƒg d¢g d¢g d¢g d¢g d¢g d¢g d	¢g d
¢g d¢g d¢g d¢g d¢g d¢g d¢g d¢gks~J ‚d S )Nr   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )r   r   r   r   )Úsubsetsr   r   r   r   Útest_subsets¬   s    ýr`   c                   C   s<   t tdtdtdƒ ƒ ƒƒtdtdtdƒ ƒ ƒks8J ‚d S )Nr   )r   r   r   r   r   r   Útest_issue_5653´   s
    ÿÿra   c                  C   sh   t dtdƒtddt  ƒ  dt  d ƒtks4J ‚dtdƒtdt ƒ  dt  } t | ƒ| ksdJ ‚d S )Nr   r   r   )r   r   r   ©r0   r   r   r   Útest_issue_12420¸   s    4 rc   c                   C   s<   t tdt ƒtddt  ƒ tddt  ƒ ƒdks8J ‚d S )Nr   r   r   r   r   )r   r   r    r   r   r   r   Útest_sqrt_ratcomb½   s    rd   c                  C   s:   t ddt dƒ t  ƒ } t| ƒdt dƒt  ks6J ‚d S )Nr(   r   r   r?   )r   r   r   rb   r   r   r   Útest_issue_18041À   s    re   c                  C   s¢   t dƒ} t dƒ}t dƒ}| |  || |  }t| |||ƒtdƒt d dtdƒ t d  ksbJ ‚ttdtdƒ ƒƒtdƒt d dtdƒ t d  ksžJ ‚d S )NrB   r?   é?   r*   r   r   )r   r   r   r   r   )ÚaÚbr1   Zd2r   r   r   Útest_issue_19914Ä   s    "ÿri   N)*Zsympy.core.mulr   Zsympy.core.numbersr   r   r   Zsympy.core.symbolr   Z(sympy.functions.elementary.miscellaneousr   r   Z(sympy.functions.elementary.trigonometricr	   Zsympy.integrals.integralsr
   Zsympy.simplify.sqrtdenestr   r   r_   r   r   r    r-   r   r!   r/   rI   r,   r$   r3   rK   rN   rW   rY   r\   r^   r`   ra   rc   rd   re   ri   r   r   r   r   Ú<module>   s,   #