o
    Ï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J ‚t dtt  tƒthksJ ‚t ttƒtƒttƒthks)J ‚t ttƒtttƒƒ tƒttƒttƒtttƒƒthksFJ ‚t ttttƒt ƒ tƒttttƒ ƒtttƒhksbJ ‚t ttddƒ tttƒƒ tƒttƒttddƒ tttƒƒthks…J ‚t ttƒtƒtttƒhks”J ‚t t	ttƒtƒtƒtttƒt	ttƒtƒhks¬J ‚t ttƒt
ttƒtƒ tƒtttƒt	ttƒtƒt	ttƒtƒhksÎJ ‚d S )Né   é   é6   )r%   ÚxÚyr   r   r   r   r   r-   r   r   © r3   r3   úSD:\Projects\ConvertPro\env\Lib\site-packages\sympy/integrals/tests/test_heurisch.pyÚtest_components   s*   ÿÿ ÿ
ÿÿ"ÿr5   c                	   C   s0   t ttttttttƒ ƒ ƒ tƒtƒsJ ‚d S ©N)Ú
isinstancer,   r1   r   r"   r3   r3   r3   r4   Útest_issue_10680+   s   0r8   c                   C   s,   t tttttƒƒ ƒtddfƒdksJ ‚d S )Néÿÿÿÿr.   r   )r,   r   r1   r   Úabsr3   r3   r3   r4   Útest_issue_21166/   s   ,r;   c                   C   sd   t dtƒtks	J ‚t ttƒtd d ksJ ‚t td tƒtd d ks%J ‚tttƒtt ks0J ‚d S )Nr.   é   r/   é   )r&   r1   r'   r2   r3   r3   r3   r4   Útest_heurisch_polynomials3   s   r>   c                   C   sN  t dt tƒttƒksJ ‚t ddt  tƒttd ƒksJ ‚t dtttƒ  tƒttttƒ ƒks3J ‚t dtd  dtd  d  tƒdtdtd  d ƒ d dtdtd  d ƒ d fv sbJ ‚t dtd  dtd  d  tƒdtdtd  d ƒ d ksƒJ ‚t dtd  tƒdt ks’J ‚t dtd  tƒddtd   ks¥J ‚d S )	Nr.   r<   é   é   é   éþÿÿÿr9   é   )r&   r1   r   r   r2   r3   r3   r3   r4   Útest_heurisch_fractions;   s   "*ÿÿ6ÿB*rD   c                   C   s    t ttƒtƒtttƒ t ksJ ‚t tdt ƒtƒt ttdƒ  tttƒ  ks+J ‚t ttd ƒtƒtttd ƒ dt  dt ttƒ dt  fv sNJ ‚d S )Né   r<   )r&   r   r1   r3   r3   r3   r4   Útest_heurisch_logL   s   "4JrF   c                  C   s  t ttƒtƒttƒksJ ‚t tt ƒtƒtt ƒ ksJ ‚t tdt ƒtƒtdt ƒd ks0J ‚t tttƒ tƒtttƒ ttƒ ksEJ ‚t tttd ƒ tƒttd ƒd ksZJ ‚t ttd  ƒtƒd u shJ ‚t dt tƒdt tdƒ ksyJ ‚t tdt  tƒtdt  tdƒ dt tdƒd   ks˜J ‚t ttt t tddftddfƒjtƒttt  t td  ksºJ ‚t ttt tddfƒjtƒtt ttƒ ksÒJ ‚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J ‚d S )Nr/   r<   rB   r.   rE   )
r&   r   r1   r   r"   Úzr2   Úfunctionr   r   )Zantir3   r3   r4   Útest_heurisch_expR   s    &**">D0>2rI   c                   C   sš  t ttƒtƒttƒ ksJ ‚t tttƒ d tƒttttƒ  ks#J ‚t ttƒtƒttƒks0J ‚t ttƒtƒtdttƒd  ƒd tttƒt ƒtt  tttƒt ƒtt  fv s\J ‚t ttƒttƒ tƒttƒ ttƒ ksrJ ‚t ttƒttƒ tƒttƒ ttƒ ksˆJ ‚t ttƒttƒ tƒttƒd d ttƒd  d fv s¦J ‚t ttƒttƒ tƒtttƒƒks¹J ‚t ttdt ƒ tƒtdt ƒd ttdt ƒ d  ksØJ ‚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J ‚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sHJ ‚t ttƒttƒd d  tƒtttƒƒ ksaJ ‚t dttƒd  tƒdtdƒ ttdƒttd ƒ d ƒ d ks…J ‚t dttƒ ttƒ ttƒd d  tƒttdƒttƒ d ƒttdƒttƒ d ƒ ksµJ ‚t dttƒ tƒdtttd ƒƒ ksËJ ‚d S )Nr.   r<   é   é1   rC   é   rE   )r&   r   r1   r   r	   r   r   r   r2   r   r   r   r   r   r   r3   r3   r3   r4   Útest_heurisch_trigonometricf   s>   *
ý,,<&>8
ÿÿ>ÿÿ2H8ÿÿ0rM   c                   C   sâ   t ttƒtƒttƒksJ ‚t ttƒtƒttƒksJ ‚t tttƒ tƒtttƒ ttƒ ks/J ‚t tttƒ tƒtttƒ ttƒ ksDJ ‚t tttd ƒ tƒtd ttd ƒ d ttd ƒ ttdtd  ƒ d  ksoJ ‚d S ©Nr<   rC   )r&   r   r1   r   r   r   r3   r3   r3   r4   Útest_heurisch_hyperbolic‡   s   **ÿ:ÿrO   c                   C   sœ   t ttƒttƒ tƒttƒttƒ d ttƒttƒ d  ks!J ‚t tttt ƒ ƒtƒdt tttt ƒ ƒ tt ƒ dtttt ƒ ƒ  ksLJ ‚d S ©Nr<   )r&   r   r1   r   r   r   r3   r3   r3   r4   Útest_heurisch_mixed’   s   BZrQ   c                  C   sÒ  t dttƒ tƒdttƒ ksJ ‚t dttƒd  tƒdttƒ ks$J ‚t ttƒd tƒdttƒd  d ks9J ‚t ttƒtttƒƒ tƒdtttƒƒd  d ksTJ ‚tdƒ} t t| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   ksƒJ ‚tt| ttƒ ƒtƒtdttƒ tttƒ|  ƒ |  dtttƒ|  ƒ | d   t| dƒfdƒks¶J ‚tdd	d
} tt| ttƒ ƒtƒd| d  t| ttƒ ƒ dttƒ t| ttƒ ƒ |   ksçJ ‚d S )Nr.   r<   rE   rB   r?   r2   r   )r   TT©Zpositive)	r&   r   r1   r   r   r   r'   r   r
   ©r2   r3   r3   r4   Útest_heurisch_radicals—   s    "&*6.
ÿD
þ.ÿrT   c                   C   sp   t ttƒtƒtttƒ ttd  ƒttƒ  ksJ ‚t ttd  ƒttƒ tƒttƒttƒd  d ks6J ‚d S rN   )r&   r!   r1   r   r   r	   r3   r3   r3   r4   Útest_heurisch_special¨   s   4<rU   c                   C   s„   t dtt  tƒttt ƒksJ ‚t dttdƒ  tƒtttdƒ ƒks&J ‚ttt ttt t ƒtƒtƒƒttt t ƒks@J ‚d S ©Nr.   r<   )r&   r1   r2   r   r   r$   r   rG   r3   r3   r3   r4   Útest_heurisch_symbolic_coeffs­   s   "*8rW   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s=J ‚t ddd} tdtd |   tƒttt| ƒ ƒt| ƒ ks\J ‚d S )Nr2   r.   r<   r   r9   TrR   )r   r'   r1   r   r   r   r
   r   rS   r3   r3   r4   Ú"test_heurisch_symbolic_coeffs_1130³   s   >ÿ

þ6rX   c                	   C   sN  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-J ‚t tddtd   ƒtg dttddtd   ƒ d tdƒttdƒt ƒ d  ksZJ ‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ks{J ‚t dtddtd   ƒ tg dtdƒttdƒt ƒ d ksœJ ‚t tdtd  ƒtg dtdt ƒttdƒt ƒ d ks»J ‚t dtddtd   ƒ tg dtttdd	ƒ ƒd ksÙJ ‚t dtddtd   ƒ tg dtttdd	ƒ ƒd ks÷J ‚t dtd	td  d ƒ tg dtd	ƒt	d	t td	ƒtd	td  d ƒ  ƒ d	 ks%J ‚d S )
Nr.   rJ   r<   ©Úhintsé   iùÿÿÿé	   rC   rE   )
r&   r   r1   r   r   r   r	   r!   r   r   r3   r3   r3   r4   Útest_heurisch_hacking¼   s0   6ÿ6ÿ ÿ ÿÿ ÿ ÿ 2ÿr]   c                   C   s   t ttƒtƒd u sJ ‚d S r6   )r&   r-   r1   r3   r3   r3   r4   Útest_heurisch_functionÔ   s   r^   c                  C   s„   t ttƒtƒ} tttƒ|  tƒttƒd d ksJ ‚tttƒd |  tƒttƒd d ks/J ‚t| ttƒ tƒtttƒƒks@J ‚d S )Nr<   rE   )r   r-   r1   r&   r   )Zdfr3   r3   r4   Ú!test_heurisch_function_derivative×   s   &*&r_   c                  C   s,  dt t  } t| tƒttt  ƒksJ ‚dt t  } t| tƒttt  ƒ ks'J ‚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sYJ ‚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”J ‚d S )Nr.   r<   r   T)r2   r1   r'   r   r   r
   r   )r-   r3   r3   r4   Útest_heurisch_wrapperä   s   
<
ÿ((ÿr`   c                   C   s2   t dtdttƒd    tƒtttƒƒksJ ‚d S rV   )r&   r1   r   r   r3   r3   r3   r4   Útest_issue_3609ò   s   2ra   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sbJ ‚d S )Nc                    s"   | j rt‡ fdd„| jD ƒŽ S | S )Nc                    s   g | ]	}|  ˆ ¡r|‘qS r3   )Úhas)Ú.0Úarg©r1   r3   r4   Ú
<listcomp>ÿ   s    z6test_pmint_rat.<locals>.drop_const.<locals>.<listcomp>)Zis_Addr   Úargs)Úexprr1   r3   re   r4   Ú
drop_constý   s   z"test_pmint_rat.<locals>.drop_constrJ   é   rC   r<   é   r@   rA   rE   r?   )r1   r   r#   r&   )ri   r-   Úgr3   r3   r4   Útest_pmint_ratù   s   XH rm   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s2J ‚d S )Nr<   r.   )r1   r   r   r&   ©r-   rl   r3   r3   r4   Útest_pmint_trig	  s    2ro   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sMJ ‚d S )NúToo slow for CI.r.   r<   )r+   r)   r1   r   r   r#   r&   rn   r3   r3   r4   Útest_pmint_logexp  s
   H0rq   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sPJ ‚d S )Nr<   rE   r.   rk   rC   )r   r1   r!   r   r	   r   r#   r&   rn   r3   r3   r4   Útest_pmint_erf  s   :Prr   c                  C   s:   t tƒ} tt tƒ t tt tƒ  }t| tƒ|ksJ ‚d S r6   )r   r1   r&   rn   r3   r3   r4   Útest_pmint_LambertW"  s   rs   c                  C   sÌ   t td tƒt ttƒ } tttƒ tt ttƒƒ }t| tƒ|ks"J ‚tt ttƒ tt td tƒ  t } t ttƒ}t| tƒ|ksBJ ‚ttd tƒtttƒ } tttƒ ttttƒƒ }t| tƒ|ksdJ ‚d S )Nr.   )r   Únur1   r   r&   r    rn   r3   r3   r4   Útest_pmint_besselj)  s   $
ru   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sCJ ‚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€J ‚d S )Nrp   r<   rB   r.   rE   r?   )r+   r)   r1   r   rt   r   r&   r   rn   r3   r3   r4   Útest_pmint_bessel_products9  s   LLrv   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sEJ ‚d S )Nrp   c                 S   s   t t| ƒƒS r6   )r   r   re   r3   r3   r4   ÚomegaN  s   z%test_pmint_WrightOmega.<locals>.omegar.   r<   )	r+   r)   r1   r   r   r   r   r   r&   )rw   r-   rl   r3   r3   r4   Útest_pmint_WrightOmegaJ  s   @$rx   c                   C   sR   t tddtd   ƒtg ddt tdtd  d ƒ dtdt ƒ  ks'J ‚d S )Nr.   g      Ð?r<   rY   g      à?g      ð?)r&   r   r1   r   r3   r3   r3   r4   Útest_RRW  s   *ÿry   c                     sX   t dƒ\} ‰ tdƒ| ƒ}‡ fdd„}t||ƒ|ƒ}t|| ƒ| ƒ}|| || ¡ks*J ‚d S )Nzt RrG   c                    s   | t ˆ d | d  ƒ S rP   r   re   ©ÚRr3   r4   r-   k  s   ztest_issue_22527.<locals>.f)r   r   r,   Úsubs)ÚtrG   r-   ZUzZUtr3   rz   r4   Ú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   rG   rt   r-   r5   r8   r;   r>   rD   rF   rI   rM   rO   rQ   rT   rU   rW   rX   r]   r^   r_   r`   ra   rm   ro   rq   rr   rs   ru   rv   rx   ry   r~   r3   r3   r3   r4   Ú<module>   sl     !	



