U
    ˜9%e.  ã                   @   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   úc/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/simplify/tests/test_sqrtdenest.pyÚ
<listcomp>   s     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.t|ƒ‚q.d S )Nr   r   g      @é   r   é   r   )r   Úr6Úr2Úr3Úr7r   r   ÚAssertionError)ÚdÚir   r   r   Útest_sqrtdenest   s$       
 
0,ÿ $ø	r$   c                  C   s*  t tddt  dtddt  ƒ  ƒƒttddt  ƒ ks@t‚tt tdt dtdt d ƒ  d ƒ ƒ} t | ƒtdt d dƒksŒt‚td	t ƒ}t td	| ƒƒtd	| ƒks¸t‚td	td	dtd
t t ƒ  ƒ d  ¡ ƒ} t | ƒd	td	dttt d
 ƒ  ƒ kst‚t tdt	 dt  ƒƒtdƒtd
dƒ td
dƒd
  ksPt‚t td	t td	t	 ƒ d  ¡ ƒƒd	t td	t	 ƒ ksŽt‚t td	t t td	t	 ƒ d  ¡ ƒƒd	td	t	 ƒ t t ksÔt‚td	t
dƒ t
d
ƒ td	t	 ƒ d  ¡ ƒ} t | ƒt
d
ƒt
dƒ d	 td	t	 ƒ ks.t‚tdt dt tdt d ƒ  d ƒ} t | ƒtdt dt  dt  d ƒks„t‚tdt t
dƒ dtdt d ƒ  d ƒ}t |ƒ|ksÂt‚t tttdƒ ƒƒtttdƒ ƒksìt‚tddtdƒ  dtddt  ƒ  ƒ}t |ƒ|ks&t‚d S )Né   r   é7   r   é   éþÿÿÿéöÿÿÿr   r   r   r   r   é   r   é   )r   r   Úr29Úr5r!   r   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sBt‚t tdt dt  dtdƒ  d	 ƒƒd
t dt  ks~t‚t tdt d dtdƒ d  dtdƒ d  d ƒƒtdƒtd tdƒ  d ksÖt‚t tdt dt  dt  d ƒƒdt d dt  kst‚tdt dtdƒ  dtdƒ  d ƒ} t | ƒtdƒdt dt  dtdƒ   ksnt‚tdtdƒ dt  dtdƒ  d ƒ} t | ƒ| ks¨t‚t tdt dt  d  ƒƒt	 d! t t ksÜt‚t td"t dt  d  ƒƒtdƒt	 d! t t  kst‚t td"t d dt d  t
d#dƒ ƒƒt	 d t t d ks^t‚t ttdt d$ ƒtdt d" ƒ ƒƒtd!t t t ƒks t‚t tdt d"t  d%t  d& ƒƒd!t t t ksÚt‚d!t t t t }t t|d  ¡ ƒƒ|kst‚t|d  ¡ d! ƒ} t | ƒ| ks2t‚tdt	 dt  dt  d% d't  d(t  ƒ} t | ƒ| kstt‚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!   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,t‚d S )NiÀþÿÿé    r   é@   )r   rI   r   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@t‚t| dddt dƒ t dƒ ksdt‚t t td ƒd ƒ} t| ƒ| ksˆt‚tt dt d	t t dt d ƒ  d
 ƒƒt dt d	t  dt  d
 ƒksØt‚tt ddt  ddt  t  ƒƒtd d	t  dt  kst‚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”t‚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(t‚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,   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ˆt	‚t dt t td ƒ dt  dt td ƒ  d ƒ} t| ƒtt td ƒ d ksÜt	‚dt t dt t dt dt  ƒ  }t |d  ¡ ƒ} t| ƒ| ¡ ks*t	‚d S )NrD   r   r   r   rH   r   r   )
r   r   r-   r   rI   r   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sXt‚tdttdtdƒ ƒd ƒ d  ¡ ƒ}t|ƒdttdtdƒ ƒd ƒ ks¨t‚dtdƒ d d  ¡ }t|ƒ|ksÐt‚tdttdtd|  ƒ ƒd ƒ d d  ¡ ƒ}t|ƒ|kst‚tdƒ}|d }ttdtdt ƒ | | d t|  ƒƒdtdt ƒ|  ksht‚tdt ƒ}td| tddt  ƒ dt | tddt  ƒ  d	t  d
 ƒ}t|ƒ|ksÊt‚d S )Nr   r   r   r   r   r?   rP   rF   rM   rQ   )r   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sHt‚td| ƒd| ks`t‚tt	|d | ddfƒƒt	d| | ddfƒkst‚t| t|ƒ ƒ| t|ƒ ks°t‚tt td  }t|ƒ|ksÐt‚td| ƒd| ksèt‚tt	|d | ddfƒƒt	d| | ddfƒkst‚t| t|ƒ ƒ| t|ƒ ks<t‚d S )Nr   )r   Úyr   r   r   r   )
Z	sympy.abcr   r]   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t‚t dƒddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddgddddggksºt‚d S )Nr   r   r   )Úsubsetsr!   r   r   r   r   Útest_subsets¬   s$    
 
 
 
 

 
 
 
 

 
 
 
 
ýr`   c                   C   s<   t tdtdtdƒ ƒ ƒƒtdtdtdƒ ƒ ƒks8t‚d S )Nr   )r   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s4t‚dtdƒtdt ƒ  dt  } t | ƒ| ksdt‚d S )Nr   r   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s8t‚d S )Nr   r   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s6t‚d S )Nr(   r   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sbt‚ttdtdƒ ƒƒtdƒt d dtdƒ t d  ksžt‚d S )NrB   r?   é?   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,   #