o
    *Î®cœ)  ã                   @   sŽ  d dl Z d dlmZ edƒZesdZe jdd… dk rdZd dlmZ d dlm	Z	m
Z
mZmZmZ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l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* 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l7m8Z8 e.dƒ\Z9Z:Z;Z<Z=Z>Z?Z@ZAZBZCZDZEZFZGZHZIZJdd„ ZKe8dd„ ƒZLe8dd„ ƒZMdS )é    N)Úimport_moduleÚmatchpyTé   )é   é   )Úrubi_integrate)	ÚlogÚsqrtÚexpÚcosÚsinÚtanÚsecÚcscÚcot)Úatanh)Úasinh)Úacosh)Úatan)Úasin)Úacos)Ú	EllipticEÚ	EllipticFÚ
EllipticPiÚ	hypergeomÚ	rubi_testÚAppellF1)ÚIÚpi)ÚS)Úsymbols)Ú	exp_polar)Úhyper)ÚIntegral)Úsimplify)ÚXFAILz#A B C D a b c d e f g h i m n p x uc                  C   sø  t tt  tdƒ ttt   tttt  ƒ t ttdƒtdƒtdƒ t t tt  tdƒ  ttt  tdƒtdƒ   t tdƒtdƒ ttt  tdƒtdƒ   tdƒtdƒt tdƒ  ttdƒ  t ttdƒ t tdƒt t tdƒt t    tdƒt  t t tdƒt t tdƒt t     tdƒt t tdƒt t t tdƒt t t  tdƒt  t t   t   ttdƒ   tdƒt tdƒ  t t	tttt  ƒttƒ ƒ ttƒ  tdƒt tdƒ  t tttt  ƒ  gt tt  ttt   tttt  ƒ t ttdƒtdƒ tdƒ ttt  tdƒtdƒ   tdƒt t t tdƒt tt t t    tdƒt t t t   ttdƒ  tdƒt  t t	tttt  ƒttƒ ƒ ttƒ  tdƒt  t tttt  ƒ  gttt  tdƒ ttt   tt tt  ƒ t ttdƒtdƒtdƒ t t tt  tdƒtdƒ   ttt  tdƒ  t tdƒtdƒ t tt  tdƒtdƒ   tdƒtdƒt tdƒ  ttdƒ  t tdƒt  t t tt tdƒt t    tdƒttdƒ  t tdƒt t tdƒt t     tdƒt t tdƒt t t tdƒt t t  tdƒt  t t   t   ttdƒ   tdƒttdƒ  t t	tt tt  ƒtt ƒ ƒ tt ƒ  tdƒttdƒ  t tt tt  ƒ  gttt  ttt   tt tt  ƒ t ttdƒtdƒ tdƒ t tt  tdƒtdƒ   tdƒt  t t tdƒt tt tt    tdƒt t t t   ttdƒ  tdƒt t t	tt tt  ƒtt ƒ ƒ tt ƒ  tdƒt t tt tt  ƒ  gttdƒ ttt  t
  t tt  ttt    ttd	ƒttdƒ ttt  td
ƒt
   tt ttdƒ  td
ƒt
   tt t t  t ttt  td
ƒt
   ttdƒ ttdƒ  ttdƒ  td
ƒt
    ttdƒ ttdƒ  t t t t  t tdƒ ttdƒ   ttt  td
ƒt
   ttdƒ ttdƒ  t td
ƒt
    tdƒt ttt  tdƒt
   tt ttdƒ  tdƒt
    tt t t  ttt  tdƒt
   ttdƒ ttdƒ  ttdƒ  tdƒt
    ttt  tdƒt
  tt ttdƒ  tdƒt
    t tdƒ ttt  td
ƒt
   ttd
ƒtd
ƒt
 gtdƒt
 gtttt   tt t t   ƒ ttdƒ tt t t   tt t t   td
ƒt
    ttdƒ ttt  td
ƒt
   ttd
ƒtd
ƒt
 gtdƒt
 gtttt   tt tt   ƒ ttdƒ tt t t   tt tt   td
ƒt
    gt tt  ttt   ttt   ttt   ttdƒt t t t t td
ƒtdƒ tt t t t tt t tt t  tt t     ttdƒ   td
ƒtdƒ ttt t tt t  tt t   t tt t tt t  tt t     ttdƒ   td
ƒtdƒ t t t t ttt t tt t  tt t     ttdƒ   td
ƒtdƒ t t t t ttdƒ   gt tt  ttt   ttt   ttt   ttdƒttt tt   tt tt   t t tt t tt t  tt t    t ttdƒ  td
ƒtdƒ t t t t ttt t tt t  tt t     ttdƒ  ttdƒ   td
ƒtdƒ t t t ttdƒ  t  tt t t  tt tt   tt tt   tttt  ƒ ttdƒ   gt tt  t ttt   ttt   ttt   ttdƒtt t t  tt t t   tt t t   t tt  td
ƒt   ttdƒ td
ƒt   tdƒt tdƒ  t t t ttdƒ tt t tt t  tt t    tdƒt  t tt t tt t  tt t    t tt  tdƒt   ttdƒ tdƒt    tdƒt  t t t ttt t tt t  tt t    t tt  tdƒt   ttdƒ tdƒt    tt t t tt  tdƒt   ttdƒ tdƒt    gttt  tdƒ t  ttt  t  ttt   ttdƒ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d
ƒt  ttdƒt t tt tdƒt     ttt  tdƒ t   ttt  td
ƒt   ttt tt  tdƒ  tdƒt  tdƒt    ttt t td
ƒt  ttdƒt t tt tdƒt      ttt  td
ƒ t   ttt  td
ƒt   ttt tt  tdƒ  td
ƒt  tdƒt  tdƒt    gg	} | D ]C}t|d |d
 ƒ}t|ƒdkrht||d
 |d dddsft||d
 |d dddsfJ ‚q6t||d
 |d dddsxJ ‚q6dS )a  
    Tests for Rubi Algebraic 1.2 rules. Parsed from Maple syntax
    All tests: http://www.apmaths.uwo.ca/~arich/IntegrationProblems/MapleSyntaxFiles/MapleSyntaxFiles.html
    Note: Some tests are commented since they depend rules other than Algebraic1.2.
    r   é   é   r   éi   é
   é   é   é   é   r   T©ÚexpandÚ_diffN)ÚaÚbÚxr   ÚeÚfr	   ÚcÚdÚarctanhÚnr   ÚgÚhr   Úmr   Úlenr   ©ÚtestÚiÚr© rB   úU/tmp/pip-target-vg8gfxp4/lib/python/sympy/integrals/rubi/rubi_tests/tests/test_1_4.pyÚtest_1    s<   þþ  þ
 þþ  þ
 þþ þ p þŒ þp þü þþ ÷<€$ûrD   c                  C   s.  t t ttt   t  ttt   ttt     t t	dƒtt t	dƒt   ttt   t  t
t	dƒt t t	dƒt	dƒt t t  t t t  t ƒ ttt tt   t	dƒt  t	dƒtt  t  t   tt t	dƒt   ttt   t  t
t	dƒt t t	dƒt	dƒt t t  t t t  t ƒ ttt tt   t	dƒt  t	dƒtt  t  t    gttt   t ttt   t  ttt    ttt    t t	dƒttt   t	dƒt   ttt   t	dƒt   tt t t t	dƒt  tt t t t	dƒt   tt tt tt   t	dƒt t   tt t t t	dƒt t  t    tt	dƒ tt	dƒ  t	dƒt t  t	dƒt t   tt	dƒ tt	dƒ  t t t	dƒt  t	dƒt  tt t t	dƒt  t	dƒt t t t	dƒt  ttt tt   t	dƒt t     tt	dƒ tt	dƒ t t t	dƒt  t	dƒt  tt tt tt   t	dƒt  t	dƒt t   tt	dƒ t t t	dƒt t  t	dƒt t     ttt   t	dƒt   ttt   t  tt	dƒt t gt	dƒt gt ttt    tt tt   ƒ tt	dƒ tt	dƒ  t	dƒt  t	dƒt t  t	dƒt t  tttt    tt tt   t    gttt   t ttt    ttt   t  ttt   t  t t	dƒtt tt  ttt   t	dƒt   ttt   t  ttt   t  t
t	dƒt t t t	dƒt t ttt    tt tt   t ttt    tt tt   ƒ tt	dƒ t	dƒt  tttt    tt tt   t  tttt    tt tt   t   tttt   t	dƒt   ttt   t  ttt   t  t
t	dƒt t t t	dƒt t ttt    tt tt   t ttt    tt tt   ƒ tt	dƒ t	dƒt  tttt    tt tt   t  tttt    tt tt   t    gttt   ttt   t  ttt   t  ttt    t t	dƒtt tt   ttt   t	dƒt   ttt   t  t
t	dƒt t	dƒt t	dƒt tttt    tt tt   t ttt    tt tt   ƒ ttt tt   t	dƒt  tttt    tt tt   t   tttt   t	dƒt   ttt   t	dƒt   tt	dƒt	dƒt t gt	dƒt gtttt    tt tt   ƒ ttt tt   t	dƒt    tt tt   ttt   t	dƒt   ttt   t  t
t	dƒt t t	dƒt	dƒt t ttt    tt tt   tttt    tt tt   ƒ ttt tt   t	dƒt  tttt    tt tt   t   tttt   t	dƒt   ttt   t  tt	dƒt t gt	dƒt gt ttt    tt tt   ƒ tt t	dƒt  tttt    tt tt   t    gtt tt t   tttt   ƒtttt   ƒ tttt   ƒ  t t	dƒt	dƒ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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    tt tt   ƒ tttt   ƒ  gttt   t ttt   t  ttt   t  t t	dƒttt   t	dƒt  ttt   t  ttt   t  t
t	dƒt t t t	dƒt t ttt    tt tt   t ttt    tt tt   ƒ tt	dƒt  tttt    tt tt   t  tttt    tt tt   t   gttt   t ttt   t  ttt   t  ttt    t t	dƒtttt   t ttt   t  ttt   t  ttt    t ƒgt t	dƒ t	dƒtt    ttt  ƒtt	dƒtt   ƒ  t t	dƒt	d	ƒ t	d
ƒ tt	dƒt	dƒt t   ƒ tt	dƒ  t	dƒt	dƒ tt  t	dƒt	dƒ   tt	dƒtt   ƒ tt	dƒ   t	dƒt	dƒ tt  t	dƒt	dƒ   tt	dƒtt   ƒ tt	dƒ   t	dƒt	dƒ tt  t	dƒt	dƒ   tt	dƒtt   ƒ tt	dƒ   t	d	ƒt	dƒ ttt  ƒ tt	dƒtt   ƒ tt	dƒ   gg} | D ]C}t|d |d ƒ}t|ƒdkrƒt||d |d dddst||d |d dddsJ ‚qQt||d |d ddds“J ‚qQd S )Nr   r-   r   r   r'   r&   r   r,   éK   é€   r*   é   é    é@   Tr.   )r3   r<   r4   r5   r9   r1   r2   r6   r7   r   r   r:   r;   r   ÚAÚBÚpr@   r	   r   r#   Úarcsinr   r=   r   )r?   ÚindexrA   rB   rB   rC   Útest_27   s8   þh þþ þ 8 þþ N þþ þ B þB þ* „þ’ ø
<€$ûrO   c               	   C   sŽ   g } | D ]@}t |d |d ƒ}t|ƒdkr4t||d |d dddds3t||d |d dddds3J ‚qt||d |d ddddsDJ ‚qd S )Nr   r-   r&   r   T)r/   r0   Ú
_numericalr*   )r   r=   r   r>   rB   rB   rC   Útest_numericalJ   s   <€"ûrQ   )NÚsysÚsympy.externalr   r   ÚdisabledÚversion_infoÚsympy.integrals.rubi.rubimainr   Úsympy.functionsr   r	   r
   r   r   r   r   r   r   Ú%sympy.functions.elementary.hyperbolicr   r8   r   Úarcsinhr   ÚarccoshÚ(sympy.functions.elementary.trigonometricr   Úarctanr   rM   r   ÚarccosÚ%sympy.integrals.rubi.utility_functionr   r   r   r   r   r   Úsympy.core.numbersr   r   ÚPiÚsympy.core.singletonr   Úsympy.core.symbolr    Ú&sympy.functions.elementary.exponentialr!   Úsympy.functions.special.hyperr"   Úsympy.integrals.integralsr#   Úsympy.simplify.simplifyr$   Úsympy.testing.pytestr%   rJ   rK   ÚCÚDr1   r2   r6   r7   r4   r5   r:   r;   r@   r<   r9   rL   r3   ÚurD   rO   rQ   rB   rB   rB   rC   Ú<module>   s<    , ,
