o
    à8Va^,  ã                   @   sÔ  d dl mZmZmZmZmZmZmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z 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- edƒ\Z.Z/Z0Z1edƒZ2dd„ Z3d	d
„ Z4dd„ Z5dd„ Z6dd„ Z7dd„ Z8dd„ Z9dd„ Z:dd„ Z;dd„ Z<dd„ Z=dd„ Z>dd „ Z?d!d"„ Z@d#d$„ ZAd%d&„ ZBe(d'd(„ ƒZCd)d*„ ZDd+d,„ ZEd-d.„ ZFd/d0„ ZGe*d1d2„ ƒZHd3d4„ ZId5d6„ ZJd7d8„ ZKe*d9d:„ ƒZLe*d;d<„ ƒZMd=d>„ ZNd?S )@é    )"ÚRationalÚsqrtÚsymbolsÚsinÚexpÚlogÚsinhÚcoshÚcosÚpiÚIÚerfÚtanÚasinÚasinhÚacosÚatanÚFunctionÚ
DerivativeÚdiffÚsimplifyÚLambertWÚNeÚ	PiecewiseÚSymbolÚAddÚratsimpÚIntegralÚSumÚbesseljÚbesselkÚbesselyÚjnÚtanh)Ú
componentsÚheurischÚheurisch_wrapper)ÚXFAILÚskipÚslowÚ	ON_TRAVIS)Ú	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   © r2   r2   úE/usr/lib/python3/dist-packages/sympy/integrals/tests/test_heurisch.pyÚtest_components   s*   ÿÿ ÿ
ÿÿ"ÿr4   c                	   C   s0   t ttttttttƒ ƒ ƒ tƒtƒsJ ‚d S ©N)Ú
isinstancer+   r0   r   r   r2   r2   r2   r3   Útest_issue_10680   s   0r7   c                   C   s,   t tttttƒƒ ƒtddfƒdksJ ‚d S )Néÿÿÿÿr-   r   )r+   r   r0   r   Úabsr2   r2   r2   r3   Ú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%   r0   r&   r1   r2   r2   r2   r3   Útest_heurisch_polynomials#   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;   é   é   é   éþÿÿÿr8   é   )r%   r0   r   r   r1   r2   r2   r2   r3   Útest_heurisch_fractions+   s   "*ÿÿ6ÿB*rC   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   r0   r2   r2   r2   r3   Útest_heurisch_log<   s   "4JrE   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 ‚d S )Nr.   r;   rA   r-   rD   )	r%   r   r0   r   r   Úzr1   Úfunctionr   r2   r2   r2   r3   Útest_heurisch_expB   s    &**">D4rH   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   rB   é   rD   )r%   r   r0   r
   r   r   r   r   r1   r   r   r   r   r	   r#   r2   r2   r2   r3   Útest_heurisch_trigonometricQ   s>   *
ý,,<&>8
ÿÿ>ÿÿ2H8ÿÿ0rL   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;   rB   )r%   r   r0   r	   r   r   r2   r2   r2   r3   Útest_heurisch_hyperbolicq   s   **ÿ:ÿrN   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   r0   r   r
   r   r2   r2   r2   r3   Útest_heurisch_mixed|   s   BZrO   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;   rD   rA   r>   r1   r   )r   TT©Zpositive)	r%   r   r0   r   r
   r   r&   r   r   ©r1   r2   r2   r3   Útest_heurisch_radicals   s    "&*6.
ÿD
þ.ÿrR   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 rM   )r%   r   r0   r   r   r   r2   r2   r2   r3   Útest_heurisch_special’   s   4<rS   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%   r0   r1   r   r   r   r   rF   r2   r2   r2   r3   Útest_heurisch_symbolic_coeffs—   s   "*8rU   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 )Nr1   r-   r;   r   r8   TrP   )r   r&   r0   r   r   r   r   r   rQ   r2   r2   r3   Ú"test_heurisch_symbolic_coeffs_1130   s   >ÿ

þ6rV   c                   C   sò  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 ‚d S )
Nr-   rI   r;   ©Zhintsé   iùÿÿÿé	   rB   rD   )	r%   r   r0   r   r   r   r   r   r   r2   r2   r2   r3   Útest_heurisch_hacking¦   s*   6ÿ6ÿ ÿ ÿÿ ÿ ÿrZ   c                   C   s   t ttƒtƒd u sJ ‚d S r5   )r%   r,   r0   r2   r2   r2   r3   Ú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;   rD   )r   r,   r0   r%   r   )Zdfr2   r2   r3   Ú!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)r1   r0   r&   r   r   r   r   )r,   r2   r2   r3   Útest_heurisch_wrapperÉ   s   
<
ÿ((ÿr]   c                   C   s2   t dtdttƒd    tƒtttƒƒksJ ‚d S rT   )r%   r0   r   r   r2   r2   r2   r3   Útest_issue_3609Ö   s   2r^   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 r2   )Zhas)Ú.0Úarg©r0   r2   r3   Ú
<listcomp>â   s    z6test_pmint_rat.<locals>.drop_const.<locals>.<listcomp>)Zis_Addr   Úargs)Úexprr0   r2   ra   r3   Ú
drop_constà   s   z"test_pmint_rat.<locals>.drop_constrI   é   rB   r;   é   r?   r@   rD   r>   )r0   r   r   r%   )re   r,   Úgr2   r2   r3   Útest_pmint_ratÜ   s   XH ri   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-   )r0   r   r   r%   ©r,   rh   r2   r2   r3   Útest_pmint_trigë   s    2rk   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 travis.r-   r;   )r*   r(   r0   r   r   r   r%   rj   r2   r2   r3   Útest_pmint_logexpñ   s
   H0rm   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;   rD   r-   rg   rB   )r   r0   r   r   r   r   r   r%   rj   r2   r2   r3   Útest_pmint_erfý   s   :Prn   c                  C   s:   t tƒ} tt tƒ t tt tƒ  }t| tƒ|ksJ ‚d S r5   )r   r0   r%   rj   r2   r2   r3   Útest_pmint_LambertW  s   ro   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   Únur0   r   r%   r"   rj   r2   r2   r3   Útest_pmint_besselj	  s   $
rq   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 )Nrl   r;   rA   r-   rD   r>   )r*   r(   r0   r   rp   r!   r%   r    rj   r2   r2   r3   Útest_pmint_bessel_products  s   LLrr   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 )Nrl   c                 S   s   t t| ƒƒS r5   )r   r   ra   r2   r2   r3   Úomega.  s   z%test_pmint_WrightOmega.<locals>.omegar-   r;   )	r*   r(   r0   r
   r   r   r   r   r%   )rs   r,   rh   r2   r2   r3   Útest_pmint_WrightOmega*  s   @$rt   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;   rW   g      à?g      ð?)r%   r   r0   r   r2   r2   r2   r3   Útest_RR6  s   *ÿru   N)OZsympyr   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#   Zsympy.integrals.heurischr$   r%   r&   Zsympy.testing.pytestr'   r(   r)   r*   Zsympy.integrals.integralsr+   r0   r1   rF   rp   r,   r4   r7   r:   r=   rC   rE   rH   rL   rN   rO   rR   rS   rU   rV   rZ   r[   r\   r]   r^   ri   rk   rm   rn   ro   rq   rr   rt   ru   r2   r2   r2   r3   Ú<module>   sL     	



