U
    L?hA8  ã                   @   s  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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/m0Z0 d dl1m2Z2 d dl3m4Z4 d dl5m6Z6 d dl7m8Z8m9Z9m:Z: d dl;m<Z<m=Z= d dl-m>Z> d dl?m@Z@ edƒ\ZAZBZCZDedƒZEdd„ ZFdd„ ZGdd„ ZHdd „ ZId!d"„ ZJd#d$„ ZKd%d&„ ZLd'd(„ ZMd)d*„ ZNd+d,„ ZOd-d.„ ZPd/d0„ ZQd1d2„ ZRd3d4„ ZSd5d6„ ZTd7d8„ ZUe<d9d:„ ƒZVd;d<„ ZWd=d>„ ZXd?d@„ ZYdAdB„ ZZdCdD„ Z[dEdF„ Z\dGdH„ Z]dIdJ„ Z^e=dKdL„ ƒZ_dMdN„ Z`dOdP„ ZadQdR„ ZbdSdT„ ZcdUdV„ Zde=dWdX„ ƒZedYdZ„ Zfd[S )\é    )ÚSum)ÚAdd)Ú
DerivativeÚFunctionÚdiff)ÚIÚRationalÚpi)ÚEqÚNe)ÚSymbolÚsymbols)ÚLambertWÚexpÚlog)ÚasinhÚcoshÚsinhÚtanh©Úsqrt)Ú	Piecewise)ÚacosÚasinÚatanÚcosÚsinÚtan)ÚbesseljÚbesselkÚbesselyÚjn)Úerf)ÚIntegral)ÚAnd)ÚMatrix)Úratsimp)Úsimplify)Ú
componentsÚheurischÚheurisch_wrapper)ÚXFAILÚslow)Ú	integrate)ÚSz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   © r6   r6   úU/var/www/html/venv/lib/python3.8/site-packages/sympy/integrals/tests/test_heurisch.pyÚtest_components   s*    ÿÿ ÿ

ÿ
ÿ
"ÿr8   c                	   C   s0   t ttttttttƒ ƒ ƒ tƒtƒs,t‚d S ©N)Ú
isinstancer-   r3   r   r#   r5   r6   r6   r6   r7   Útest_issue_10680/   s    r;   c                   C   s,   t tttttƒƒ ƒtddfƒdks(t‚d S )Néÿÿÿÿr0   r   )r-   r   r3   r   Úabsr5   r6   r6   r6   r7   Útest_issue_211663   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 )Nr0   é   r1   é   )r)   r3   r5   r*   r4   r6   r6   r6   r7   Útest_heurisch_polynomials7   s    rA   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 )	Nr0   r?   é   é   é   éþÿÿÿr<   é   )r)   r3   r   r5   r   r4   r6   r6   r6   r7   Útest_heurisch_fractions?   s    "*ÿÿ6ÿD rG   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   r3   r5   r6   r6   r6   r7   Útest_heurisch_logP   s    "4rI   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 )Nr1   r?   rE   r0   rH   )r)   r   r3   r5   r   r#   Úzr4   Úfunctionr   r   )Úantir6   r6   r7   Útest_heurisch_expV   s     &**"@F2>rM   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 )Nr0   r?   é   é1   rF   é   rH   )r)   r   r3   r   r5   r	   r   r   r   r4   r   r   r   r   r   r   r6   r6   r6   r7   Útest_heurisch_trigonometricj   s>    *ý
,.>(@8
ÿÿ>ÿÿ2H8ÿÿrQ   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?   rF   )r)   r   r3   r   r5   r   r   r6   r6   r6   r7   Útest_heurisch_hyperbolic‹   s    ** ÿ:ÿrS   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   r3   r   r   r5   r   r6   r6   r6   r7   Útest_heurisch_mixed–   s    BrU   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 )Nr0   r?   rH   rE   rB   r4   r   )r   TT©Úpositive)
r)   r   r3   r5   r   r   r   r*   r   r   ©r4   r6   r6   r7   Útest_heurisch_radicals›   s     "&*6.ÿDþ.ÿrY   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 rR   )r)   r"   r3   r   r   r	   r5   r6   r6   r6   r7   Útest_heurisch_special¬   s    4rZ   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 ©Nr0   r?   )	r)   r3   r4   r   r5   r   r'   r   rJ   r6   r6   r6   r7   Útest_heurisch_symbolic_coeffs±   s    "*r\   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 )Nr4   r0   r?   r   r<   TrV   )	r   r*   r3   r   r   r   r   r5   r   rX   r6   r6   r7   Ú"test_heurisch_symbolic_coeffs_1130·   s    >ÿ
þ
r]   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 )
Nr0   rN   r?   ©Úhintsé   iùÿÿÿé	   rF   rH   )r)   r   r3   r   r5   r   r   r	   r"   r   r   r6   r6   r6   r7   Útest_heurisch_hackingÀ   s0    6ÿ6ÿ ÿ ÿ
ÿ
 ÿ
 ÿ
 2ÿrb   c                   C   s   t ttƒtƒd kst‚d S r9   )r)   r/   r3   r5   r6   r6   r6   r7   Útest_heurisch_functionØ   s    rc   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?   rH   )r   r/   r3   r)   r5   r   )Údfr6   r6   r7   Ú!test_heurisch_function_derivativeÛ   s    &*re   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 )Nr0   r?   r   T)r4   r3   r*   r   r5   r   r   r   )r/   r6   r6   r7   Útest_heurisch_wrapperè   s    
2 
ÿ
((ÿrf   c                   C   s2   t dtdttƒd    tƒtttƒƒks.t‚d S r[   )r)   r3   r   r   r5   r6   r6   r6   r7   Útest_issue_3609ö   s    rg   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 r6   )Úhas)Ú.0Úarg©r3   r6   r7   Ú
<listcomp>  s     
 z6test_pmint_rat.<locals>.drop_const.<locals>.<listcomp>)Zis_Addr   Úargs)Úexprr3   r6   rk   r7   Ú
drop_const  s    z"test_pmint_rat.<locals>.drop_constrN   é   rF   r?   é   rC   rD   rH   rB   )r3   r   r&   r)   r5   )ro   r/   Úgr6   r6   r7   Útest_pmint_ratý   s    XHrs   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?   r0   )r3   r   r   r)   r5   ©r/   rr   r6   r6   r7   Útest_pmint_trig  s     2ru   c                  C   s’   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 r[   )r3   r   r   r&   r)   r5   rt   r6   r6   r7   Útest_pmint_logexp  s    H0rv   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?   rH   r0   rq   rF   )	r   r3   r"   r   r	   r   r&   r)   r5   rt   r6   r6   r7   Útest_pmint_erf  s    :Prw   c                  C   s:   t tƒ} tt tƒ t tt tƒ  }t| tƒ|ks6t‚d S r9   )r   r3   r)   r5   rt   r6   r6   r7   Útest_pmint_LambertW"  s    rx   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 )Nr0   )r   Únur3   r   r)   r5   r!   rt   r6   r6   r7   Útest_pmint_besselj)  s    $
rz   c                  C   sø   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szt‚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 )Nr?   rE   r0   rH   rB   )r3   r   ry   r    r)   r5   r   rt   r6   r6   r7   Útest_pmint_bessel_products:  s    LLr{   c                  C   s‚   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 )Nc                 S   s   t t| ƒƒS r9   )r   r   rk   r6   r6   r7   ÚomegaH  s    z%test_pmint_WrightOmega.<locals>.omegar0   r?   )r3   r   r   r   r   r   r)   r5   )r|   r/   rr   r6   r6   r7   Útest_pmint_WrightOmegaG  s    @$r}   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 )Nr0   g      Ð?r?   r^   ç      à?g      ð?)r)   r   r3   r   r5   r6   r6   r6   r7   Útest_RRQ  s    *ÿr   c                     sX   t dƒ\} ‰ tdƒ| ƒ}‡ fdd„}t||ƒ|ƒ}t|| ƒ| ƒ}|| || ¡ksTt‚d S )Nzt RrJ   c                    s   | t ˆ d | d  ƒ S rT   r   rk   ©ÚRr6   r7   r/   e  s    ztest_issue_22527.<locals>.f)r   r   r-   Úsubsr5   )ÚtrJ   r/   ZUzZUtr6   r€   r7   Útest_issue_22527b  s    r„   c                  C   sJ  t ddd} t| d  ddt d   ƒ}t|| g dd ks@t‚ttƒtdt d ƒ d }ttt | d  d ƒ| ddfƒ|t|  ksŽt‚tt	d  ddt d   ƒ}t|t	g dd ksÂt‚t| d  ddt d   ƒ}t|| g dd ksöt‚ttƒtdt d ƒ d }ttt t	d  d ƒt	ddfƒ|t|  ksFt‚d S )NÚrT©Úrealr?   r^   r0   r   )
r   r   r   r)   r5   r   r	   r"   r-   r3   )r…   Úar6   r6   r7   Ú%test_heurisch_complex_erf_issue_26338l  s    2r‰   c                  C   s   t dƒ} tdddd\}}}}tt| | ƒggƒ}tddƒ}dd|dd	d
dg\}}}	}
}}}||
| dt||  | ƒ  || dt||  | ƒ    }||
| t||  | ƒ t|	| | ƒd  || t||  | ƒ t|	| | ƒd    }td||k f|t||k||	k ƒf||	|kfƒ}t| |ƒ|ƒ}t|| |ƒ ggƒ}|| ||¡d  | |j	|j
¡ ||¡ }t|d |d|fƒ}|d k	sœt‚d S )NÚZ0zk01 k10 t sT©r‡   rW   éS   éd   r~   é2   g333333ã?r?   éx   r0   r   r<   )r   r   r%   r   r   r   r$   r
   r‚   ÚlhsÚrhsr-   r5   )rŠ   Zk01Zk10rƒ   ÚsÚmZ_83rˆ   ÚbÚcÚdÚer/   rr   ZAIF_btfZAIF_atfZAIF_symZaif_eqZf_vecÚ	integrandZsolutionr6   r6   r7   Útest_issue_15498{  s    
 @.,ÿ.,r™   c                  C   s˜   t tddƒ tt ƒ } dt tdƒd   tt ƒ d dt tdƒd   d  }t| t ƒ|ks`t‚t| t ƒ|ksrt‚t| t ddfƒtdƒ d ks”t‚d S )NrF   rH   rN   ra   rO   r   r0   )r3   r   r   r.   r)   r5   r-   )r˜   rL   r6   r6   r7   Útest_heurisch_issue_26930Œ  s
    8rš   c                  C   s¸  t dddd\} }}t ddd}| | t|  |d  t|ƒ|  ƒ }|| t|  |d  t|ƒ|  ƒ }t||ƒt||ƒ }| t|  |d  ƒ tt|ƒ| ƒ d|   |t|  |d  ƒ tt|ƒ | ƒ d|    ttƒ| t|ƒ t|d|   ƒ tt| ƒ| t|ƒdt| ƒ   ƒ d| tdƒd     ttƒ| t|ƒ t|d|   ƒ tt| ƒ| t|ƒdt| ƒ   ƒ d| tdƒd     }|jd	d
 ¡ |ks´t	‚d S )Nza, b, xTr‹   ÚCr†   r?   rF   rH   F)r)   )
r   r   r   r#   r	   r"   r.   ZdoitÚexpandr5   )rˆ   r”   r3   r›   Úi1Úi2ÚiÚresr6   r6   r7   Útest_heurisch_issue_26922•  s    (&..ÿZþZýÿr¡   N)gZsympy.concrete.summationsr   Zsympy.core.addr   Zsympy.core.functionr   r   r   Zsympy.core.numbersr   r   r	   Zsympy.core.relationalr
   r   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.logic.boolalgr$   Zsympy.matricesr%   Zsympy.simplify.ratsimpr&   Zsympy.simplify.simplifyr'   Zsympy.integrals.heurischr(   r)   r*   Zsympy.testing.pytestr+   r,   r-   Zsympyr.   r3   r4   rJ   ry   r/   r8   r;   r>   rA   rG   rI   rM   rQ   rS   rU   rY   rZ   r\   r]   rb   rc   re   rf   rg   rs   ru   rv   rw   rx   rz   r{   r}   r   r„   r‰   r™   rš   r¡   r6   r6   r6   r7   Ú<module>   sv    !	




