U
    —9%e´0  ã                   @   sT  d dl mZ d dlmZ d dlmZmZ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mZmZ d dlmZmZmZmZ d d	lmZ d d
lmZ d dlmZm Z m!Z!m"Z"m#Z#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl,m-Z- d dl.m/Z/ d dl0m1Z1 d dl2m3Z3m4Z4m5Z5 d dl6m7Z7m8Z8m9Z9m:Z: d dl,m;Z; edƒ\Z<Z=Z>Z?edƒZ@dd„ ZAdd„ ZBdd„ ZCdd„ ZDdd„ ZEd d!„ ZFd"d#„ ZGd$d%„ ZHd&d'„ ZId(d)„ ZJd*d+„ ZKd,d-„ ZLd.d/„ ZMd0d1„ ZNd2d3„ ZOd4d5„ ZPe7d6d7„ ƒZQd8d9„ ZRd:d;„ ZSd<d=„ ZTd>d?„ ZUe9d@dA„ ƒZVdBdC„ ZWdDdE„ ZXdFdG„ ZYe9dHdI„ ƒZZe9dJdK„ ƒZ[dLdM„ Z\dNdO„ Z]dPS )Qé    )ÚSum)ÚAdd)Ú
DerivativeÚFunctionÚdiff)ÚIÚRationalÚpi)ÚNe)ÚSymbolÚsymbols)ÚLambertWÚexpÚlog)ÚasinhÚcoshÚsinhÚtanh©Úsqrt)Ú	Piecewise)ÚacosÚasinÚatanÚcosÚsinÚtan)ÚbesseljÚbesselkÚbesselyÚjn)Úerf)ÚIntegral)Úratsimp)Úsimplify)Ú
componentsÚheurischÚheurisch_wrapper)ÚXFAILÚskipÚslowÚON_CI)Ú	integratezx,y,z,nuÚfc                   C   s¨  t tt tƒthkst‚t dtt  tƒthks4t‚t ttƒtƒttƒthksRt‚t ttƒtttƒƒ tƒttƒttƒtttƒƒthksŒt‚t ttttƒt ƒ tƒttttƒ ƒtttƒhksÄt‚t ttddƒ tttƒƒ tƒttƒttddƒ tttƒƒthkst‚t t	tƒtƒtt	tƒhks,t‚t t
t	tƒtƒtƒtt	tƒt
t	tƒtƒhks^t‚t t	tƒtt	tƒtƒ tƒtt	tƒt
t	tƒtƒt
t	tƒtƒhks¤t‚d S )Né   é   é6   )r%   ÚxÚyÚAssertionErrorr   r   r   r   r   r-   r   r   © r4   r4   úb/var/www/html/Darija-Ai-API/env/lib/python3.8/site-packages/sympy/integrals/tests/test_heurisch.pyÚtest_components   s*    ÿÿ ÿ

ÿ
ÿ
"ÿr6   c                	   C   s0   t ttttttttƒ ƒ ƒ tƒtƒs,t‚d S ©N)Ú
isinstancer,   r1   r   r"   r3   r4   r4   r4   r5   Útest_issue_10680+   s    r9   c                   C   s,   t tttttƒƒ ƒtddfƒdks(t‚d S )Néÿÿÿÿr.   r   )r,   r   r1   r   Úabsr3   r4   r4   r4   r5   Útest_issue_21166/   s    r<   c                   C   sd   t dtƒtkst‚t ttƒtd d ks,t‚t td tƒtd d ksJt‚tttƒtt ks`t‚d S )Nr.   é   r/   é   )r&   r1   r3   r'   r2   r4   r4   r4   r5   Útest_heurisch_polynomials3   s    r?   c                   C   sT  t dt tƒttƒkst‚t ddt  tƒttd ƒks<t‚t dtttƒ  tƒttttƒ ƒksft‚t dtd  dtd  d  tƒdtdtd  d ƒ d dtdtd  d ƒ d fksÄt‚t dtd  dtd  d  tƒdtdtd  d ƒ d kst‚t dtd  tƒdt ks(t‚t dtd  tƒddtd   ksPt‚d S )	Nr.   r=   é   é   é   éþÿÿÿr:   é   )r&   r1   r   r3   r   r2   r4   r4   r4   r5   Útest_heurisch_fractions;   s    "*ÿÿ6ÿD rE   c                   C   s    t ttƒtƒtttƒ t ks"t‚t tdt ƒtƒt ttdƒ  tttƒ  ksVt‚t ttd ƒtƒtttd ƒ dt  dt ttƒ dt  fksœt‚d S )Né   r=   )r&   r   r1   r3   r4   r4   r4   r5   Útest_heurisch_logL   s    "4rG   c                  C   s  t ttƒtƒttƒkst‚t tt ƒtƒtt ƒ ks:t‚t tdt ƒtƒtdt ƒd ks`t‚t tttƒ tƒtttƒ ttƒ ksŠt‚t tttd ƒ tƒttd ƒd ks´t‚t ttd  ƒtƒd ksÐt‚t dt tƒdt tdƒ ksòt‚t tdt  tƒtdt  tdƒ dt tdƒd   ks2t‚t ttt t tddftddfƒjtƒttt  t td  ksxt‚t t	tt tddfƒjtƒtt ttƒ ksªt‚ttƒ t
tt ƒttt
tt ƒ ƒ ttt
tt ƒ ƒ  } t ttƒtt t
tt ƒ ƒ tƒ| kst‚d S )Nr/   r=   rC   r.   rF   )r&   r   r1   r3   r   r"   Úzr2   Úfunctionr   r   )Zantir4   r4   r5   Útest_heurisch_expR   s     &**"@F2>rJ   c                   C   s¢  t ttƒtƒttƒ kst‚t tttƒ d tƒttttƒ  ksFt‚t ttƒtƒttƒks`t‚t ttƒtƒtdttƒd  ƒd tttƒt ƒtt  tttƒt ƒtt  fks¸t‚t ttƒtt	ƒ tƒttƒ tt	ƒ ksät‚t ttƒtt	ƒ t	ƒtt	ƒ ttƒ kst‚t ttƒttƒ tƒttƒd d ttƒd  d fksPt‚t ttƒttƒ tƒtttƒƒksxt‚t ttdt ƒ tƒtdt ƒd ttdt ƒ d  ks¸t‚t dt d td  ttƒ tƒdt d td ttƒ dttƒ  dt ttƒ   kst‚t t
td ƒttd ƒ tƒdt tdtd  ƒttd ƒ  tdtd  ƒt
td ƒ  tttd ƒ t
td ƒ  ks˜t‚t ttƒttƒd d  tƒtttƒƒ ksÊt‚t dttƒd  tƒdtdƒ ttdƒttd ƒ d ƒ d kst‚t dttƒ ttƒ ttƒd d  tƒttdƒttƒ d ƒttdƒttƒ d ƒ ksrt‚t dttƒ tƒdtttd ƒƒ ksžt‚d S )Nr.   r=   é   é1   rD   é   rF   )r&   r   r1   r   r3   r	   r   r   r   r2   r   r   r   r   r   r   r4   r4   r4   r5   Útest_heurisch_trigonometricf   s>    *ý
,.>(@8
ÿÿ>ÿÿ2H8ÿÿrN   c                   C   sâ   t ttƒtƒttƒkst‚t ttƒtƒttƒks4t‚t tttƒ tƒtttƒ ttƒ ks^t‚t tttƒ tƒtttƒ ttƒ ksˆt‚t tttd ƒ tƒtd ttd ƒ d ttd ƒ ttdtd  ƒ d  ksÞt‚d S ©Nr=   rD   )r&   r   r1   r   r3   r   r   r4   r4   r4   r5   Útest_heurisch_hyperbolic‡   s    ** ÿ:ÿrP   c                   C   sœ   t ttƒttƒ tƒttƒttƒ d ttƒttƒ d  ksBt‚t tttt ƒ ƒtƒdt tttt ƒ ƒ tt ƒ dtttt ƒ ƒ  ks˜t‚d S ©Nr=   )r&   r   r1   r   r   r3   r   r4   r4   r4   r5   Útest_heurisch_mixed’   s    BrR   c                  C   sØ  t dttƒ tƒdttƒ ks"t‚t dttƒd  tƒdttƒ ksHt‚t ttƒd tƒdttƒd  d ksrt‚t ttƒtttƒƒ tƒdtttƒƒd  d ks¨t‚tdƒ} t t| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   kst‚tt| ttƒ ƒtƒtdttƒ tttƒ|  ƒ |  dtttƒ|  ƒ | d   t	| dƒfdƒkspt‚tdd	d
} tt| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   ksÔt‚d S )Nr.   r=   rF   rC   r@   r2   r   )r   TT©Zpositive)
r&   r   r1   r3   r   r   r   r'   r   r
   ©r2   r4   r4   r5   Útest_heurisch_radicals—   s     "&*6.ÿDþ.ÿrU   c                   C   sp   t ttƒtƒtttƒ ttd  ƒttƒ  ks4t‚t ttd  ƒttƒ tƒttƒttƒd  d kslt‚d S rO   )r&   r!   r1   r   r   r	   r3   r4   r4   r4   r5   Útest_heurisch_special¨   s    4rV   c                   C   s„   t dtt  tƒttt ƒks"t‚t dttdƒ  tƒtttdƒ ƒksLt‚ttt ttt t ƒtƒtƒƒttt t ƒks€t‚d S ©Nr.   r=   )	r&   r1   r2   r   r3   r   r$   r   rH   r4   r4   r4   r5   Útest_heurisch_symbolic_coeffs­   s    "*rX   c                  C   s¼   t dƒ} tdtd |   tƒtttt|  ƒ ƒdt|  ƒ  ttt|  ƒ ƒdt|  ƒ   t| dƒfdt dfƒkszt‚t ddd} tdtd |   tƒttt| ƒ ƒt| ƒ ks¸t‚d S )Nr2   r.   r=   r   r:   TrS   )	r   r'   r1   r   r   r   r
   r3   r   rT   r4   r4   r5   Ú"test_heurisch_symbolic_coeffs_1130³   s    >ÿ
þ
rY   c                	   C   sV  t tddtd   ƒtg dttddtd   ƒ d tdƒttdƒt ƒ d  ksZt‚t tddtd   ƒtg dttddtd   ƒ d tdƒttdƒt ƒ d  ks´t‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ksöt‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ks:t‚t tdtd  ƒtg dtdt ƒttdƒt ƒ d kszt‚t dtddtd   ƒ tg dttt	dd	ƒ ƒd ks¸t‚t dtddtd   ƒ tg dttt	dd	ƒ ƒd ksöt‚t dtd	td  d ƒ tg dtd	ƒt
d	t td	ƒtd	td  d ƒ  ƒ d	 ksRt‚d S )
Nr.   rK   r=   ©Úhintsé   iùÿÿÿé	   rD   rF   )r&   r   r1   r   r3   r   r   r	   r!   r   r   r4   r4   r4   r5   Útest_heurisch_hacking¼   s0    6ÿ6ÿ ÿ ÿ
ÿ
 ÿ
 ÿ
 2ÿr^   c                   C   s   t ttƒtƒd kst‚d S r7   )r&   r-   r1   r3   r4   r4   r4   r5   Útest_heurisch_functionÔ   s    r_   c                  C   s„   t ttƒtƒ} tttƒ|  tƒttƒd d ks4t‚tttƒd |  tƒttƒd d ks^t‚t| ttƒ tƒtttƒƒks€t‚d S )Nr=   rF   )r   r-   r1   r&   r3   r   )Zdfr4   r4   r5   Ú!test_heurisch_function_derivative×   s    &*r`   c                  C   s.  dt t  } t| tƒttt  ƒks&t‚dt t  } t| tƒttt  ƒ ksNt‚dt t t t   } t| tƒtttt  ƒ dt   ttt  ƒdt    tt dƒfdt dfƒks²t‚ttd t t t t   ƒ} t| tƒtttd  td t d   ƒ t d ttd  td t d   ƒ t  ks*t‚d S )Nr.   r=   r   T)r2   r1   r'   r   r3   r   r
   r   )r-   r4   r4   r5   Útest_heurisch_wrapperä   s    
2 
ÿ
((ÿra   c                   C   s2   t dtdttƒd    tƒtttƒƒks.t‚d S rW   )r&   r1   r   r   r3   r4   r4   r4   r5   Útest_issue_3609ò   s    rb   c                  C   sÈ   dd„ } t d dt d   dt d   dt   d t d dt d   d	t d   dt d    }ddt d   dt   d
t d
   t d dt d
   dt    tt ƒ }| tt|t ƒƒt ƒ|ksÄt‚d S )Nc                    s&   | j rt‡ fdd„| jD ƒŽ S | S d S )Nc                    s   g | ]}|  ˆ ¡r|‘qS r4   )Úhas)Ú.0Úarg©r1   r4   r5   Ú
<listcomp>ÿ   s     
 z6test_pmint_rat.<locals>.drop_const.<locals>.<listcomp>)Zis_Addr   Úargs)Úexprr1   r4   rf   r5   Ú
drop_constý   s    z"test_pmint_rat.<locals>.drop_constrK   é   rD   r=   é   rA   rB   rF   r@   )r1   r   r#   r&   r3   )rj   r-   Úgr4   r4   r5   Útest_pmint_ratù   s    XHrn   c                  C   sh   t tt ƒ tt ƒd  tt ƒ } t d  d t tt ƒ  ttt ƒd d ƒd  }t| t ƒ|ksdt‚d S )Nr=   r.   )r1   r   r   r&   r3   ©r-   rm   r4   r4   r5   Útest_pmint_trig	  s     2rp   c                  C   sž   t rtdƒ dt tttƒ  tttƒ ttƒ d  tttƒ ttƒ d  t } ttttƒ ttƒ ƒdtttƒ ttƒ   }tt| tƒƒ|ksšt‚d S )NúToo slow for CI.r.   r=   )r+   r)   r1   r   r   r#   r&   r3   ro   r4   r4   r5   Útest_pmint_logexp  s
    H0rr   c                  C   s¤   t td  ƒttƒ ttƒd ttƒd  ttƒ d  } ttƒtttƒd ƒ d ttƒtttƒd ƒ d  ttƒdttƒ d   }tt| tƒƒ|ks t‚d S )Nr=   rF   r.   rl   rD   )	r   r1   r!   r   r	   r   r#   r&   r3   ro   r4   r4   r5   Útest_pmint_erf  s    :Prs   c                  C   s:   t tƒ} tt tƒ t tt tƒ  }t| tƒ|ks6t‚d S r7   )r   r1   r&   r3   ro   r4   r4   r5   Útest_pmint_LambertW"  s    rt   c                  C   sÌ   t td tƒt ttƒ } tttƒ tt ttƒƒ }t| tƒ|ksDt‚tt ttƒ tt td tƒ  t } t ttƒ}t| tƒ|ks„t‚ttd tƒtttƒ } tttƒ ttttƒƒ }t| tƒ|ksÈt‚d S )Nr.   )r   Únur1   r   r&   r3   r    ro   r4   r4   r5   Útest_pmint_besselj)  s    $
rv   c                  C   s  t rtdƒ ttttƒ ttdt ƒ } dt tttƒ ttd dt ƒ d tttd tƒ ttdt ƒ d  }t| tƒ|ks†t‚ttttƒ ttdt ƒ } dt tttƒ ttd dt ƒ d tttd tƒ ttdt ƒ d  }t| tƒ|kst‚d S )Nrq   r=   rC   r.   rF   r@   )	r+   r)   r1   r   ru   r   r&   r3   r   ro   r4   r4   r5   Útest_pmint_bessel_products9  s    LLrw   c                  C   sŽ   t rtdƒ dd„ } d| tƒdt| tƒƒt| tƒ     d| tƒ  t| tƒ  }tttttƒƒ ƒttttƒƒƒ }t|tƒ|ksŠt	‚d S )Nrq   c                 S   s   t t| ƒƒS r7   )r   r   rf   r4   r4   r5   ÚomegaN  s    z%test_pmint_WrightOmega.<locals>.omegar.   r=   )
r+   r)   r1   r   r   r   r   r   r&   r3   )rx   r-   rm   r4   r4   r5   Útest_pmint_WrightOmegaJ  s    @$ry   c                   C   sR   t tddtd   ƒtg ddt tdtd  d ƒ dtdt ƒ  ksNt‚d S )Nr.   g      Ð?r=   rZ   g      à?g      ð?)r&   r   r1   r   r3   r4   r4   r4   r5   Útest_RRW  s    *ÿrz   c                     sX   t dƒ\} ‰ tdƒ| ƒ}‡ fdd„}t||ƒ|ƒ}t|| ƒ| ƒ}|| || ¡ksTt‚d S )Nzt RrH   c                    s   | t ˆ d | d  ƒ S rQ   r   rf   ©ÚRr4   r5   r-   k  s    ztest_issue_22527.<locals>.f)r   r   r,   Úsubsr3   )ÚtrH   r-   ZUzZUtr4   r{   r5   Útest_issue_22527h  s    r   N)^Zsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.functionr   r   r   Zsympy.core.numbersr   r   r	   Zsympy.core.relationalr
   Zsympy.core.symbolr   r   Z&sympy.functions.elementary.exponentialr   r   r   Z%sympy.functions.elementary.hyperbolicr   r   r   r   Z(sympy.functions.elementary.miscellaneousr   Z$sympy.functions.elementary.piecewiser   Z(sympy.functions.elementary.trigonometricr   r   r   r   r   r   Zsympy.functions.special.besselr   r   r   r    Z'sympy.functions.special.error_functionsr!   Zsympy.integrals.integralsr"   Zsympy.simplify.ratsimpr#   Zsympy.simplify.simplifyr$   Zsympy.integrals.heurischr%   r&   r'   Zsympy.testing.pytestr(   r)   r*   r+   r,   r1   r2   rH   ru   r-   r6   r9   r<   r?   rE   rG   rJ   rN   rP   rR   rU   rV   rX   rY   r^   r_   r`   ra   rb   rn   rp   rr   rs   rt   rv   rw   ry   rz   r   r4   r4   r4   r5   Ú<module>   sj    !	



