
    g6                    l	   d dl Z d dlmZ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 d dlmZ d dlmZmZ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 m!Z! d dl"m#Z# d dl$m%Z%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+m,Z,m-Z-m.Z. d dl/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7 d dl8m9Z9m:Z:m;Z; d dl<m=Z= d dl>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZF d dlGmHZHmIZI d dlJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZR d dlSmTZTmUZU d dlVmWZWmXZX d dlYmZZZ d dl[m\Z\ d dl]m^Z^ d dl_m`Z` d dlambZb d dlcmdZdmeZe d dlfmgZg d dlhmiZi d dljmkZk d d llmmZm d d!lnmoZo d d"lpmqZq d d#lrmsZsmtZt d d$lmuZu d d%lvmwZw d d&l]mxZx d d'lymzZz d d(l{m|Z| d d)l}m~Z~mZmZmZ d d*lmZ d d+lmZ  e!d,          \  ZZZZZZZZZZZZ e d-d./          Z ed0          Zdd2Zd3 Zed4             Zd5 Zd6 Zd7 Zd8 Zd9 Zd: Zd; Zd< Zd= Zd> Zd? Zd@ ZdA ZdB ZdC ZdD ZdE ZdF ZdG ZdH ZdI ZdJ ZdK ZdL ZdM ZdN ZdO ZdP ZdQ ZdR ZdS ZdT ZdU ZdV ZdW ZdX ZdY ZdZ Zd[ Zd\ Zd] Zd^ Zed_             Zd` Zda Zdb Zdc Zdd Zde Zdf Zdg Zdh Zdi Zdj Zdk Zdl Zdm Zdn Zdo Zdp Zdq Zdr Zds Zdt Zdu Zdv Zdw Zdx Zdy Zdz Zd{ Zd| Zd} Zd~ Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Zd Zd Zd Zd Zd Zed             Zd Zd Z	d Z
d Zd Zd Zd Zd Zed             Zed             Zd Zd Zd Zed             Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$dÄ Z%dĄ Z&edń             Z'dƄ Z(dǄ Z)dȄ Z*dɄ Z+dʄ Z,d˄ Z-d̄ Z.d̈́ Z/d΄ Z0dτ Z1dЄ Z2dф Z3d҄ Z4dӄ Z5dԄ Z6dՄ Z7dք Z8edׄ             Z9d؄ Z:dل Z;dڄ Z<dۄ Z=d܄ Z>d݄ Z?dބ Z@d߄ ZAd ZBd ZCd ZDd ZEd ZFd ZGed             ZHed             ZId ZJd ZKd ZLd ZMd ZNd ZOd ZPd ZQd ZRd ZSd ZTd ZUd ZVd ZWd ZXd ZYd ZZd Z[ed             Z\d Z]d Z^d Z_dS )    N)Sum	summation)Add)Tuple)Expr)
DerivativeFunctionLambdadiff)
EulerGamma)EIRationalnanoopizoo	all_close)EqNe)S)Symbolsymbols)sympify)Absim
polar_liftresign)LambertWexp	exp_polarlog)acoshasinhcoshcothcschsinhtanhsech)MaxMinsqrt)	Piecewise)acosasinatancossinsinctansec)
DiracDelta	Heaviside)CiEiSierferfcerfifresnelcli)gamma	polygamma)hypermeijerg)SingularityFunction)lerchphi	integrate)And)Matrix)Polyfactor)sstr)O)Interval)	gammasimp)simplify)trigsimp)IdxIndexedBase)	unchanged)floor)Integral)NonElementaryIntegral)units)raisesslowwarns_deprecated_sympywarns)SymPyDeprecationWarning)verify_numericallyzx y z a b c d e s t x_1 x_2nTintegerf   c                 V    t           t          |           j        |fi |d          S )NT)	full_prec)rN   r   evalf)era   optionss      `/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/integrals/tests/test_integrals.pyNSrl   3   s1     

 ..g..$????    c                     t          dt          z  t                    } |                     t                    t          t          dz  t          d          k    sJ t          t          d          5  t          | t                     d d d            n# 1 swxY w Y   t          t          d          5  t          | t          f           d d d            d S # 1 swxY w Y   d S )N   QQ)domainFtest_stacklevel)rL   xrI   r^   r_   rX   ps    rk   test_poly_deprecatedrw   7   sA   QqS!A;;q>>T!Q$$7777777	&	>	>	>  !Q              	&	>	>	>  QD                 s$   1BBB4CCCc                  f   dt           z  t          t           t           t          f                                          dk    sJ t          t          t           t          f                                          t          t          dt           z            z  k    sJ t          t          fd           t          t          fd           dt           dz  dz
  z  t          t           t           t          f                                                                          t          d           t          z  dz  k    sJ t          t          fd           dt           dz  dz
  z  } t          | t           t           t          f                                          dk    sJ t          | t           ddf                                          t          d           k    sJ t           t           dz  dz
  z  }t          |t           t           t          f                                          dk    sJ t          |t           ddf                                          dk    sJ t           dz  t           dz  dz
  z  }t          |t           t           t          f                                          t          u sJ t          |t           ddf                                          t          d           d	z   k    sJ dt           dz  dz
  dt           dz  z   z  z  }t          |t           t           t          f                                          t           dz  k    sJ t          |t           ddf                                          t          d           t          d          dz  z
  k    sJ d S )
N   r   c                  R    t           t                                                    S N)rX   rt   principal_valuegs   rk   <lambda>z&test_principal_value.<locals>.<lambda>F   s    xA//??AA rm   c                  F    t                                                     S r{   )rX   r|   r}   s   rk   r   z&test_principal_value.<locals>.<lambda>G   s    x{{::<< rm      c                  d    t           t          t           df                                          S Nry   )rX   rt   r   r|   )ls   rk   r   z&test_principal_value.<locals>.<lambda>K   s%    xAsA;77GGII rm   ro      )rt   rX   r   r|   yr   r[   
ValueErrortogetherr.   r   r#   r2   )dvsrd   r~   r   s       @@rk   test_principal_valuer   A   s&   	AAAB3|$$4466!;;;;AB3|$$4466"tAE{{:JJJJJ
:AAAABBB
:<<<<===	a1f\AAB3|$$4466??AAd1ggXb[QR]RRRR
:IIIIJJJ	Q!VaZAAB3|$$4466!;;;;A2qz""2244Q????	Q!VaZAAB3|$$4466!;;;;A2qz""22449999	Q!q&1*AAB3|$$4466"<<<<A2qz""2244Q!CCCC	a1fqjQaZ()AAB3|$$44662#'AAAAA2qz""2244a3q66A:8MMMMMMMrm   c                     | j         }|D ]i}|                     |                                          |                                                     |          z
                                  dk    sJ j|S )zReturn the set of symbols, s, which were used in testing that
    i.diff(s) agrees with i.doit().diff(s). If there is an error then
    the assertion will fail, causing the test to fail.r   )free_symbolsr   doitexpand)isymsr   s      rk   	diff_testr   ^   sn     >D C Cq		  16688==#3#33;;==BBBBBKrm   c                  L   t          t          t                    t          ddf          dk    sJ t          t          dz  t          dt          f          dk    sJ t          ddt	          t                    z   z  t          dt          f          t          d          k    sJ d S )Nr   ry   r   ro   )rI   r#   rt   r   r!    rm   rk   test_improper_integralr   h   s    SVVaAY''2----QWq!Rj))Q....QCFF
^aBZ00CFF::::::rm   c                     t          t          t                    } | j        t          t                    fk    sJ t          t          t          f          }|j        t          t                    fk    sJ t          t	          t
          t
          dt          f                    }|j        t          t                    fk    sJ t          t          t          t                              }|j        t          t                    fk    sJ t          t          t          t          dd          f          }|j        t          t          dd          fk    sJ t          t          t          dk              }|j        t          t          dt                    fk    sJ t          t          t          dk    t          dk     z            }|j        t          t          dd          fk    sJ d S )Nry   ro   
      )	rX   ra   limitsr   r   rt   r   rP   r   )s1s2s3s4s5s6s7s          rk   test_constructorr   n   su    
!QB9q####	!aT		B9q####	#a!Q##	$	$B9q####	!U1YY		B9q####	!a!Q(	)	)B9q!Q))))) 
!QV		B9q"b))+++++	!a!eA&	'	'B9q!Q)))))))rm   c            	         t          dt                    dk    sJ t          t          t          ddf          dk    sJ t          t          t                    t          k    sJ t          t          j        t                    t          j        u sJ t          t          t          t                    t                    dk    sJ t          t          t          t          ddf          t                    dk    sJ t          t          t          t                    t                    t          k    sJ t          t          t          t          dt          f          t                    t          k    sJ t          dz   dz  } t          t          | t          dt          f          t                    t          t          | t          dt          f          t                    	                                
                                cxk    r#dt          z   dz  
                                k    sn J t          t          | t          dt          f          t                    t          t          | t          dt          f          t                    cxk    rdk    sn J t          t          | t          dt          f          t                    t          t          | t          dt          f          t                    cxk    rdk    sn J t          t          | t                    t                    t          t          | t                    t                    cxk    rdk    sn J t          | t          t          t          f                              t                    t          | t          t          t          f                              t                    	                                
                                k    sJ t          | t          t          t          f                              t                    	                                dt          z   dz  k    sJ t          | t          t          t          f                              t                    	                                dt          z   dz   
                                k    sJ t          t          dz  t          t          dt          z  f                              t                    dt          dz  z  k    sJ t          t          t                                                    t          hk    sJ t          t          t                    t          ddf                                          t          j        t          j        t          hk    sJ t!          t          t          t          dt          z  f                    t          hk    sJ t!          t          t          t          dt          z  f                    t          t          hk    sJ t          t          t          t          t          f          dk    sJ t          t          t          t           t           f          dk    sJ t          t          t          z   t#          t                    z   t                    t          t          z  t          dz  dz  z   t#          t                    z   k    sJ t          t                    j        sJ t'          dd          }t          |t          z   t                    j        du sJ d S )	Nr   ry   ro      r   ra   Fcommutative)rX   rt   r   r   NaNr   r   trI   r   r   aatomsrd   ZeroOner   r!   is_commutativer   ri   ra   s     rk   test_basicsr      s   Aq>>QA1ay!!Q&&&&B??b    AE1&&&&A""a''''Q1I&&**a////A""a''''Q1I&&**a////	
Q
A	!aAY''++Xa!Q##Q'',,..5577   
a%!      	!aAY''++Xa!Q##Q''- - - -+,- - - - - -	!aAY''++Xa!Q##Q''- - - -+,- - - - - -	!Q##tHQNNA'>'>CCCC!CCCCCCQAq	""''**Q1I##A&&++--44667 7 7 7A1ay!!&&q))..00a!eaZ@@@@QAq	""''**//11Azk5I5I5K5KKKKKQTAq!A#;'',,Q//1QT69999Aq>>!!aS((((AaDD1a)$$**,,0BBBBBXa!QqS**++s2222Xa!QqS**++1v5555QB$$))))QRC"&&!++++ QUSVV^Q''1Q3Aa<#a&&+@@@@@A;;%%%%s&&&AAE1,555555rm   c                  0    G d dt                     }  |             }t          |dz   |          |dz  dz  |z   k    sJ t          |dz   |ddf          t          dd          k    sJ t          t          d            t          t          d            d S )	Nc                       e Zd ZdZdZdS )test_diff_wrt.<locals>.TestTN)__name__
__module____qualname__	_diff_wrtr   r   rm   rk   Testr      s        	rm   r   ry   ro   r   r   c                  B    t          t          dz   t          dz             S r   rI   rt   r   rm   rk   r   ztest_diff_wrt.<locals>.<lambda>   s    yQA66 rm   c                  H    t          t          dz   t          dz   ddf          S )Nry   r   r   r   rm   rk   r   ztest_diff_wrt.<locals>.<lambda>   s    yQQ1>> rm   )r   rI   r   r[   r   )r   r   s     rk   test_diff_wrtr      s        t    	AQUA!Q$q&1*,,,,QUQ1I&&(1a..8888
:66777
:>>?????rm   c            
      v   t          t          t          t          dt          z  dt          z  ft          t          dt          z  f                    t          hk    sJ t          t          t          t          dt          z  ft          t          dt          z  f                    t          hk    sJ t          t          t          t          dt          z  ft          t          dt          z  f                    t          t          hk    sJ t          t          t          t          t                              t          t          hk    sJ t          t          t          t          z  t          t                              t          t          hk    sJ t          t          t          t          z   t          t          dt          f                    t          hk    sJ t          t          t          t          z   t          t          t          ft          t          t          f                    t          t          hk    sJ d S )Nr   r   ro   ry   )r   rX   rt   r   r   rm   rk   test_basics_multipler      s{   Xa!QqS!A#Aqs<<==!DDDDXa!QqSAq!A#;7788QC????Xa!QqSAq!A#;7788QFBBBBXaA&&''Aq61111Xac1a(())aV3333Xa!eQAq	2233s::::Xa!eaAYAq	::;;1vEEEEEErm   c                     t          dd          \  } }t          dd          }t          | |z  |f          }|                                                                |                                                                k    sJ |                                                                |                                                                k    sJ |                                                                |                                                                k    sJ t          dd          }t          | |z  |f          }|                                                                |                                                                k    sJ |                                                                |                                                                k    sJ |                                                                |                                                                k    sJ d S )NzA BFr   rt   T)complexreal)r   r   rX   adjointr   	conjugate	transpose)ABrt   rv   s       rk   test_conjugate_transposer      s   5e,,,DAqsD!!!A1qdA99;;!1!1!3!33333;;==16688#5#5#7#77777;;==16688#5#5#7#77777sA1qdA99;;!1!1!3!33333;;==16688#5#5#7#77777;;==16688#5#5#7#7777777rm   c                     t          dt          dt          f          dk    sJ t          dt          dt          f          dt          z  k    sJ t          t          t          dt          f          t          dz  dz  k    sJ t          dt          z  t          dt          f          dt          dz  z  dz  k    sJ t          dt          dz  z  t          dt          f          t          dz  k    sJ t          dt          z  t          dt          f          t          t                    k    sJ t          dt          dz  z  t          dt          f          dt          z  dz
  k    sJ t          t          dz  dt          z  z   dz
  t          dt          f          t          dz  dz  dt          dz  z  dz  z   dt          z  z
  k    sJ t          t          dz  t                    t          dz  dz  k    sJ t          dt          z  t          z  dz  t                    dt          z  dz  t          dz  z  dz  k    sJ t	          d	          } t	          d
          }t          t
          t          z  t          dt          f          t
          t          dz  z  dz  k    sJ t          t
          t          dz  z  t          dt          f          t
          t          dz  z  dz  k    sJ t          t
          t          dz  z  | t          z  z   |z   t          dt          f          t
          t          dz  z  dz  | t          dz  z  dz  z   |t          z  z   k    sJ d S )Nr   r   ro   ry   r   r         bcr   )rI   r   rt   r#   r   r   )r   r   s     rk   test_integrationr      s   QAq	""a''''QAq	""ac))))QAq	""ad1f,,,,QqS1a)$$!Q$q0000Qq!tVaAY''1a4////QqS1a)$$A....R1Wq!Qi((AaC!G3333QTAaCZ!^aAY//1a46AadF1H3Dqs3JJJJJQT1Aa''''ac!eaZ##!ax!Q$':::::sAsAQqS1a)$$!Q$q0000Qq!tVaAY''1QT6!83333Qq!tVac\A%1ay11Qq!tVAX!Q$q5H1Q35NNNNNNNrm   c                  F   t          t          dz  t          dz  z  t          ddft          ddf          t          d          k    sJ t          t          dz  t          dz  z  t          t                    t          dd          t          dz  z  t          dz  z  k    sJ t          dt          dz   z  dt          z   dz  z  t                    t	          dt          z             t          dd          z  t	          dt          z             t          dd          z  z   t          ddt          z  z   dt          dz  z  z   z  z   k    sJ t          t          t          t          z            t          z  t          ddft          ddf          t          d           dz   k    sJ d S )	Nro   r   ry   r   	   r   r   r   )rI   rt   r   r   r#   r4   r   rm   rk   test_multiple_integrationr      s[   adQT]Q1I2qz::hqkkIIIIadQT]Aq))Xa^^QT-BAqD-IIIIIQAYAz)1--AE

8B??"SQZZA%>>A!GaPQSTPTfDTAUUV V V VS1XXaZ!QQ1I663q66'A+EEEEEErm   c                  r    t          t          t                     t          dt          f          dk    sJ d S Nr   ry   )rI   r!   rt   r   r   rm   rk   test_issue_3532r      s1    S!WWq!Rj))Q......rm   c                     t          t          t                    dz  t                    dt          t                    dz  z  dz  k    sJ t          t          t                    t                    dt          t                    dz  z  dz  k    sJ t          dt          t                    dz  z  t                    dt          t                    z  k    sJ d S )Nr   ro   r   ry   r   )rI   r.   rt   r   rm   rk   test_issue_3560r      s    T!WWaZ##qa!|A~5555T!WWa  Ad1ggqjLN2222QtAwwz\1%%DGG333333rm   c                  2    t          t          d            d S )Nc                  8    t          t          t          f          S r{   r   r   rm   rk   r   z"test_issue_18038.<locals>.<lambda>   s    9aV#4#4 rm   )r[   AttributeErrorr   rm   rk   test_issue_18038r      s    
>4455555rm   c                     t          t          t          dz  t          z  z   t          dz  z   t          t                    } t                      5  t	          | t                    }d d d            n# 1 swxY w Y   t          t          d          5  t          | t                    }d d d            n# 1 swxY w Y   t          t          d          5  t          | t                    }d d d            n# 1 swxY w Y   t          |t                     du sJ t          |t                     du sJ |j	        t          t          fk    sJ |j	        t          t          fk    sJ |
                                t          dz  dz  t          dz  t          z  dz  z   t          t          dz  z  z   k    sJ |
                                t          t          z  t          dz  t          dz  z  dz  z   t          dz  dz  z   k    sJ d S )Nro   r   Frr   Tr   )rL   rt   r   r]   rX   r^   r_   rI   
isinstancegensas_expr)rv   qxqys      rk   test_integrate_polyr     sn   QAaZ!Q$1%%A 
 	!	!  a^^              	&	>	>	>  q!__              	&	>	>	>  q!__               b$4''''b$4''''7q!f7q!f::<<1a46AqDF1H,qAv55555::<<1Q3Aad1,q!tAv5555555s6   A//A36A3B22B69B6C55C9<C9c                     t          t          t          dz  t          z  z   t          dz  z   t          t                    } t                      5  t	          | t          ddf          }d d d            n# 1 swxY w Y   t          t          d          5  t          | t          ddf          }d d d            n# 1 swxY w Y   t          t          d          5  t          | t          dt          f          }d d d            n# 1 swxY w Y   t          |t                     du sJ t          |t                     du sJ |j
        t          fk    sJ |j
        t          fk    sJ |                                t          j        t          dz  z   t          dz  z   k    sJ |                                t          dz  dz  t          t          z  z   t          dz  t          dz  z  dz  z   k    sJ d S )	Nro   r   r   ry   Frr   Tr   )rL   rt   r   r]   rX   r^   r_   rI   r   r   r   r   r   Half)rv   QxQys      rk   test_integrate_poly_definiter     sd   QAaZ!Q$1%%A		!	! $ $a!Q##$ $ $ $ $ $ $ $ $ $ $ $ $ $ $	&	>	>	> % %q1a)$$% % % % % % % % % % % % % % %	&	>	>	> & &q1a*%%& & & & & & & & & & & & & & & b$4''''b$4''''7qd????7qd????::<<16AaC<!Q$.....::<<2q57RT>BE!Q$JqL8888888s6   A22A69A6B88B<?B<DD
Dc                       t          d           t          t                    t          dz  dz  k    sJ t          t          d            t          t           fd           d S )Nr   ro   c                       t          d          S Nro   rH   r   rm   rk   r   z)test_integrate_omit_var.<locals>.<lambda>0  s    y|| rm   c                  2    t          t           z            S r{   r   r   s   rk   r   z)test_integrate_omit_var.<locals>.<lambda>1  s    y1~~ rm   )r   rI   rt   r[   r   r   s   @rk   test_integrate_omit_varr   +  sa    sAQ<<1a46!!!!
:++,,,
:----.....rm   c                  V   t          d          } t          t          t          |           z  t                    t          dz  t          |           z  dz  k    sJ t          t          dz  t          |           z  t                    t          dz  t          |           z  dz  k    sJ d S )Nr   ro   i  i  )r   rI   rt   r4   r   s    rk   test_integrate_poly_accuratelyr   4  s    sAQs1vvXq!!QT#a&&[]2222 QWSVV^Q''1d73q66>$+>>>>>>>rm   c                      t          d          } t          t          dz  |           t          dz  | z  k    sJ t          t          dz  | ddf          dt          dz  z  k    sJ d S )Nr   ro   r   ry   )r   rI   rt   r   s    rk   test_issue_3635r   =  sg    sAQT1Aa''''QTAr1:&&!AqD&000000rm   c                     t          dd          } t          t          | z  t          d          t          | dz   z  | dz   z  k    sJ t          t          |           t          z  d| z  z   dt	          |           z   z  t          d          t          |            t          |           t          z  d| z  z   dt	          |           z   z  z  dt	          |           z   z  k    sJ d S )Nr   Tpositivenonecondsry   ro   )r   rI   rt   r!   r4   r   s    rk   test_integrate_linearterm_powr   E  s    sT"""AQT1F+++q1q5z1q5/AAAAAc!ffQh1nCFF
3QfEEEQBQAaC1s1vv:..!c!ff*=> > > > > >rm   c                     t          t          t          t                    z  t                    dt          z  t          t                    dz  z  dz  k    sJ t          t          t          t                    z  t          t          t                    dz  z  z   t                    dt          z  t          t                    dz  z  dz  dt          z  t          t                    dz  z  dz  z   k    sJ d S )Nro   r   r   )rI   r   r.   rt   r   r   rm   rk   test_issue_3618r   N  s    RQZ##qtDGGQJq'88888RQZ!DGGQJ,.22	"T!WWaZAaCa!OA--. . . . . .rm   c            	      D   t          t          t          dz   t          z            t                    t	          t          t          t          dz   z            t          dz   z  t          t          dz   d          ft          df          k    sJ t          t          t          dz
  t          z            t                    t	          t          t          t          dz
  z            t          dz
  z  t          t          dz
  d          ft          df          k    sJ t          t          t          dz   t          z            t          t          dz
  t          z            z   t                    t	          t          t          t          dz
  z            t          dz
  z  t          t          dz
  d          ft          df          t	          t          t          t          dz   z            t          dz   z  t          t          dz   d          ft          df          z   k    sJ d S )Nry   r   T)rI   r3   ra   rt   r/   r4   r   r   rm   rk   test_issue_3623r   T  s   S!a%^^Q''9	QAYQ	AE1.D	,; ,; ; ; ; ;S!a%^^Q''9	QAYQ	AE1.D	,; ,; ; ; ; ;S!a%^^c1q5!)nn4a883q!a%y>>1q5)2a!eQ<<81d)DD3q!a%y>>1q5)2a!eQ<<81d)DD	EE E E E E Erm   c                     t          ddd          } t          dt          z  t          | t          z  t          z  dz            z  t          ddg          dt          t          | z            z  t          | z  z  k    sJ t          t          t          | t          z  t          z  dz            z  t          d	d          z  t          ddg          dt          t          | z            z  t          | z  z  k    sJ d S )
Nra   T)rc   nonzerog      ro   r   r          @r   )r   rI   rt   r4   r   r3   r   ra   s    rk   test_issue_3664r  ^  s    sD$///AUQYQVaZ\!2!22QAJ??C1IIr!t   QQVaZ\***Xb!__<q"ajII	#bd))RT     rm   c                      t          t          dt          dz  dt          z  z
  dz   z  t          ddf                    dk    sJ d S )Nry   ro   r      r   z1.10714871779409)rl   rX   rt   r   rm   rk   test_issue_3679r  f  sG    hq!Q$1*r/*Q1I6677;MMMMMMMrm   c                  F   ddl m}  ddlm}  | t	          t          t          dz            t                              t          d          t          t                    z   |t          d          t          z  t          t                    z            z  dz  k    sJ d S )Nr   expand_func)fresnelsro   )	sympy.core.functionr  'sympy.functions.special.error_functionsr  rI   r4   rt   r.   r   )r  r  s     rk   test_issue_3686r  k  s    //////@@@@@@;yQTA..//QR$q''!)DHH"4555a78 8 8 8 8 8rm   c                      t           j        } t           j        }t          t          | z  |z  t          d|z  d|z  f          d| z  |z  k    sJ d S )Nry   r      )rZ   mr   rI   rt   )r  r   s     rk   test_integrate_unitsr  r  sO    AAQU1Wq!A#qsm,,1Q666666rm   c                      t          t          dt          z            t                    t           t          t          dt          z            z  z   t          t          dt          z            z  z   k    sJ d S r   )rI   r    rt   r   rm   rk   test_transcendental_functionsr  x  sb    Xac]]A&&	
Qx!}}_q!A#./ / / / / /rm   c                  (   t          t          dt          z
            t          z  t          ddf          t          dz   dz  k    sJ t          t          t                    dt          z
  dz  z  t          ddf          t          dz   dz  k    sJ d S )Nry   r   ro   r   r   )rI   r#   rt   r   r   rm   rk   test_log_polylogr  }  s    SQZZ\Aq!9--"a%9999SVVQUbM)Aq!955"a%AAAAAArm   c                     dt          t                    z  dt          t                    dz  z  z
  } t          t          | t                    t                    }t	          |                     t          d                                          |                    t          d                                          z
            dk     sJ d S )Nr   ro   *   g|=)r#   rt   r   rI   abssubsrh   )rd   fids     rk   test_issue_3740r    s    	#a&&1SVVQY;A
yA
"
"Cqvva}}""$$sxx2'<'<'>'>>??%GGGGGGrm   c                  |    t          ddt          dz  z   z  t                    t          t                    k    sJ d S Nry   ro   )rI   rt   r2   r   rm   rk   test_issue_3788r    s5    QAqD\1%%a000000rm   c                       t          t                     t           t                    t          t                     k    sJ t	          t
           fd           d S )Nc                  4    t           dt          z            S r   r   rd   s   rk   r   z!test_issue_3952.<locals>.<lambda>  s    yAaC00 rm   )r4   rt   rI   r3   r[   r   r  s   @rk   test_issue_3952r     sO    AAQ??s1vvg%%%%
:000011111rm   c                      t          dt          z  dt          z  z
  t                    dt          z  t          d          z  t          dz  z
  k    sJ d S r   rI   rt   r#   r   rm   rk   test_issue_4516r#    sF    QTAaCZ##q!tCFF{QT'9999999rm   c                      t          t          dt          z    t          z            t          dt          f          } t          |           t          j        k    r!t          |           t          dd          k    sJ d S )Nry   r   r   ro   )
rI   r!   r   rt   r   r   r   r   r   r   )anss    rk   test_issue_7450r&    s^    
C!a%
OOaBZ
0
0Cc77afCHROO!;!;!;!;!;!;rm   c            
         t          dt          dt          z            z   ddt          dt          z            z  z
  z  t          dt          f          t           dz  t	          d          t          z  dz  z   k    sJ t          dt          dt          z            z   ddt          dt          z            z  z
  z            t           dz  t	          d          t          t	          d          t          t                    z            t          t          t          t          dz  z
  t          z            z  z   z  dz  z   k    sJ d S )Nry   ro   r   r   r   rI   r3   rt   r   r.   r2   r6   rW   r   rm   rk   test_issue_8623r)    s   a#ac((lq1S1XX:~6Ar
CCs1utTUwwWYzZ[|G[[[[[a#ac((lQ3qs88^455!AQdSTggVYZ[V\V\nI]I]
5!bd(BJ  A!!"A# :# # # # # # #rm   c            	         t          ddt          t                    z
  z  t          dt          f          t          t	          d          z  k    sJ t          ddt          t                    z
  z            dt	          d          z  t          t	          d          t          t          dz            z            t          t          t          dz  t          dz  z
  t          z            z  z   z  dz  k    sJ d S Nry   ro   r   r   r(  r   rm   rk   test_issue_9569r,    s    Q!c!ff*%1bz22baj@@@@QCFF
^$$$q''	4QAaC8H3I3IBuVWXYVY\^_`\`V`bdUdOeOeLe3e(fgh(hhhhhhhrm   c                  V   t          dd          } t          t          t          z
  dz   d| z  | z  z            t	          dt
          z  | z  | z            z  }t          |t          t          t          f          }t          |t          dt          f          t	          d          | z  t          t          dz   d| dz  z  z            z  dt	          t
                    z  z  t          t          t	          d          t          z  d| z  z            z  dz  z   t          dz  z   k    sJ d S )Nr   Tr   ro   r   )
r   r!   zr   r.   r   rI   rt   r   r=   )r   pzpzgxs      rk   test_issue_13733r1    s   sT"""A	q1uqj[!A#a% 	!	!$qtAvax..	0BR!Q$$DTAq":&&$q''!)CAqAv4G4G*G4PR88*T	#d1ggai1o

q +!#$Q3+' ' ' ' ' ' 'rm   c            	         t          ddt          t                    z   z  t          dt          f          t          t	          d          z  k    sJ t          ddt          t                    z   z            dt	          d          z  t          t	          d          t          t          dz            z  dz            t          t          t          dz  t          dz  z
  t          z            z  z   z  dz  k    sJ d S r+  r(  r   rm   rk   test_issue_13749r3    s    Q!c!ff*%1bz22baj@@@@QCFF
^$$$q''	4QAaC8H8J3K3KbQVXYZ[X[^`ab^bXbdfWfQgQgNg3g(hij(jjjjjjjrm   c                      t          t          t                    dt          z   dz  z  t                    t          t          t                    t          dz   dz  z  t                    k    sJ d S r  )rI   r!   rt   rY   r   rm   rk   test_issue_18133r5    sW    SVVQUQJ&**.CCFFAPQETU:DUWX.Y.YYYYYYYrm   c                     d} d}t          |t          z  t          |  t          z  t          z  t          z  t
          z            z  t          |  t          z  t          z  t          z  t          z            z  t          t          z  z  t          t          d          ft          t          |  t          z  t          z  t          z  t
          z            z  df          }t          dt          z  t          z  t          t          z  t          t
          z  z   z  dz  z  }t          t          |t                    |          sJ d S )Ng    NAgƐ>r   Tr   gƠ>)r/   r   r!   r   r   r   rt   r.  r   r   r   rI   )r   r   rfuns       rk   test_issue_21741r9    s    AA1Q3sA2a4719Q;'''QBqDGAIaK(8(88"Q$?AqJS!Ab1%%%t,	. 	.A
r!tBw!AaC <0
1CYsA&&*******rm   c            	      0   t          ddd           } t          | t                    t          t          t                     t          dt          z             gt          dt          z             t          dt          z             gg          k    sJ d S )Nro   c                 N    | |z   dz   t          | |z   dz   t          z            z  S r   )r4   rt   )r   js     rk   r   ztest_matrices.<locals>.<lambda>  s'    1q519c1q519a-.@.@"@ rm   r   )rK   rI   rt   r3   )Ms    rk   test_matricesr>    s    q!@@AAAQ??f
a&&3qs88)
ac((S1XXI&        rm   c                     t          t          t                    t                    t          t          t                    t                    k    sJ t          t          t                    t          ddf          t          t          t                    t          ddf          k    sJ t          t          t                    t	          t          t                    t                    z  t                    t          t                    dz  dz  k    sJ t          t	          t          t                    t                    t          t                    z  t                    t          t          t                              k    sJ d S Nr   ry   ro   )rI   rd   rt   rX   r   r#   r   rm   rk   test_integrate_functionsrA    s    QqTT1!A$$!2!22222QqTTAq!9%%!A$$Aq	)B)BBBBBQqTT$qttQ--'++qttQwqy8888T!A$$]]QqTT)1--QqTT::::::rm   c                     t          t          t          t                    t                    t                    t          t                    k    sJ t          t          t          t                    t                    t                    t          t          t          t                    t                    z  k    sJ t          t          t          t                    t                    dz  t                    t          t          t          t                    t                    dz  t                    k    sJ d S r   )rI   r   rd   rt   r   rX   r   rm   rk   test_integrate_derivativesrC    s    Z!a((!,,!4444Z!a((!,,*QqTT12E2E0EEEEEZ!a((!+Q//AaDD!$$a'++, , , , , ,rm   c            	         t          t          dz  dz   t          ddf          } t          }dt          z  dz   }|                                 |                     ||                                          k    sJ |                     ||                              ||          | k    sJ dt          z  dz   }t          }|                     ||                              ||          | k    sJ t          t          dt          z            t          ddf          } |                     t          dt          z            t          t          t                    t          dz  z  t          dt          f          k    sJ |                     t          dt          z                                t          dt          z            | k    sJ t          t          t          dz             t          t           t          f          } |                     t          dt          z            t          dt          dt          dz  z            z  t          t           t          f          k    sJ t          t          t                                        t          | t          z                                            t          t          | dz  z  t                                                    k    sJ t          d          }t          t          t          d| f                              t          dt          z                                            t          dt          dz  z  t          t           d|z  f                                          k    sJ t          t          t          d|f                              t          dt          z            t          t          dz  t          d|z  t          f          k    sJ t          t          t          z   t          ddft          ddf                              t          t          dt          z  z   t          f                                                              t          t          dt          z  z   t          f                                          cxk    rdk    sn J t          t          t          | t          f                              t          dt          z            t          dt          z  t          | dz  t          dz  f          k    sJ t          t          fd	           t          t          fd
           t          t          fd           t          t          fd           t          t          fd           t          t          dz  t          ddf          t          t          fd           t          dd          }t          dd          }t          t          t          ||f                              t          dt          z                                 t          dt          z            t          dt          z  t          |dz  |dz  f          k    sJ t          t          t          | f                              t          dt          z            t          dt          z  t          | dz  f          k    sJ d S )Nro   ry   r   r   r   r   c                  :                          t          d          S r   )	transformrt   r   s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1a00 rm   c                  T                          t          t          t          z            S r{   rH  rt   r   r   rI  s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1ac22 rm   c                  F                          t          t                     S r{   rH  rt   r   rI  s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1qb11 rm   c                  R                          t          t          t          f          S r{   rK  rI  s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1q!f55 rm   c                  P                          dt          z  dt          z            S r   rM  rI  s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1Q3!44 rm   c                  J                          t          dz  t                    S r   rM  rI  s   rk   r   z test_transform.<locals>.<lambda>  s    q{{1a433 rm   r   T)negativer   r   )rX   rt   r   r   rH  r4   r   r!   r   r.  r   r   r[   r   r   )r   fxfy_3ambpr   s         @rk   test_transformrW    s   AAr1:&&A	
B	
1qB6688q{{2r**//111111;;r2((R00A5555	
1qB	
B;;r2((R00A5555QqSAq!9%%A;;q!A#(3q66!Q$;Ar
"C"CCCCC;;q!A#((AaC00A5555adUa"b\**A;;q!A#(1SAqD\\>AsB<"H"HHHHHAq>>##Aqs++00221a4  ""# # # #	
1BA1rc{##--a155::<<AqD1rc2b5/**//112 2 2 2A1bz"",,Q!44R1adB-(() ) ) ) 	QAq	Aq!9--A;;q1qs7A,'',,..	AAaC|$$))++1 1 1 1/01 1 1 1 1 1 	Q1IA;;q!A#(1Q3AaC1">">>>>>
:0000111
:2222333
:1111222
:5555666
:4444555A1ay!!A
:3333444	d	#	#	#B	d	#	#	#BQBK  AKK1Q3;;q!A#(2a4!RT2a4"A"AAAAAQFA;;q!A#(1Q3AaC"9"9999999rm   c                  |   t           j        t          t                    z  t          t	          dt          dz  z
            z  dz  z   } t          t          t          t                              t                    | k    sJ t          t          t          t                              t                    | k    sJ d S r  )	r   r   r1   rt   r.   rI   r3   r4   r0   r  s    rk   test_issue_4052rY    s    	tAww4AqD>>)!++ASa\\1%%****Sa\\1%%******rm   c                     t          t          t          t          ddf          d          dk    sJ t          t          t          dz             t          t           t          f          } t          | d          dk    sJ t          | dz  t
          z
  t          t          dd          z  z   d          dv sJ t          d	          }d
t          d          z  dd|dz  z  z   z  }dt          d          z  d|z  dz   z  t          d|dz  z  |z   dz             dz  z  }d|dz  z  dz   d|dz  z  d|z  z   dz   dz  z  }t          d          d|dz  z  d|z  z   dz   z  d|dz  z  d|z  z   dz   dz  z  }|||z  z
  |z
  }t          t          ||ddf          d          t          dt          d          z  dt
          z  z
  dt          t          d                    z  z   dz  d          k    sJ t          t          t          t          dt          z                      dt          z   t          dz  z   z  t          ddf          d          t          dd          k    sJ t          t          t          t          t          dz  dz                       t          t          dz  dz             t          dz  dz   z  z  t          ddf          d          t          dt
          dz  z  dz  d          k    sJ t          t          t          t          t
          t          z            t          t
           t          z            z
  t          dz  dz   z  z  t          dt          f          d          t          dd          k    sJ t          t          t          t          t          t                    t          t                    z                      t          t
          dz  t
          dz  f          dd          t          dd          k    sJ t          dt          t          dt          t          dz            z            t          t
           t
          f          z   dd          t          dd          k    sJ t          dt          t          dt          t          dz            z            t          t
           t
          f          z   dd          t          dd          k    sJ t          dt          t          dt          t          dz            z            t          t
           t
          f          z   dd          t          dd          k    sJ t          t
          dt          d t          ddf          z  z
  dd!d"          d#v sJ t          t          t                    t          dz  z  t          dt          f                              d$          }d%|cxk     rd&k     sn J t          t          t          t                    t          dz  z  t          dt          f          d'(          d)k    sJ t          t          t          t
          t          z  dz             t          z  t          t           d*f          d'(          d+k    sJ t          t          t          t                              d,k    sJ t          t          t          t          t          f                    d-k    sJ d S ).Nro   r   re   z10.5000000000000z1.77245385090552ry   l      Fx:^V )z2.71828182845904e-20z2.71828182845905e-20r   r   r      r         6   A   r   2   1      r  z*pi/sqrt(3) * log(2*pi**(5/6) / gamma(1/6))`   zlog(2)/2-1/4Tchopzpi/4*log(4*pi**3/gamma(1/4)**4)r        zsqrt(1-x**2)   )maxnre  )z0.00)ri  g\(\?gRQ?osc)quadz0.504067061906928r   z0.276374705640365zIntegral(x, x)zIntegral(x, (x, y)))rl   rX   rt   r!   r   r   r   r   r   r.   r2   r#   r4   r3   rh   r   )gaussr   r   r   r   r   rd   s          rk   test_evalf_integralsrn    s   hq1a)$$b))-?????S!Q$ZZ!bS"..EeR==.....eQhma	6! !   KL L L L 	sA	$q''	1qAv:A
477
AaC!GT!AqD&1*q.11144A	
1a4!bAg!ma'!++AQQTBqD2%&1a4!A#(9A'==A	AaC!Ahq1a)$$b))
Ad1ggI2DaMM 1125r::; ; ; ; hs3qs88}}a!eadl3aAY??DD
7<<= = = = htDANN++T!Q$(^^QTAX-FG!J   "a%
B//0 0 0 0 hq3r!t99s	A( ( A BZ) )*,. .13NB1G1GH H H H hs3s1vvc!ff}--..BqD"Q$@@"4PPP
,b112 2 2 2 	HS3qs88__q2#rl333RdD D DGI!RyyQ Q Q Q	HS3qs88__q2#rl333RdD D DGI!RyyQ Q Q Q	HS3qs88__q2#rl333RdD D DGI!RyyQ Q Q Q b1XAq	# # # #$&Rd< < <?KL L L L 	Q1q!Rj))//R/88A!????d??????Q1q!Rj))7 7 7:MN N N NhBqD1Ha!bS"' '-24 4 47JK K K K hq!nn!11111hq1a&!!""&;;;;;;;rm   c                     t          t          dt          dz  dz   z  t                                        t          d          d          dv sJ t          t	          dt          dz  dz   z  t          ddf                    dk    sJ t          t          dt          dz  dz   z  t          ddf          d          dk    sJ d S )	Nry   r   r   Trd  )z-0.000976138910649103z0.965906660135753z1.93278945918216ro   z0.0144361088886740)rl   rI   rt   r  rX   r   rm   rk   test_evalf_issue_939rp  C  s     i1a4!8a((--a33$???JK K K K hq!Q$(|aAY//004HHHHH!QTAX,Aq	**7 7 7:NO O O O O Orm   c                     t          t          t                    t          t          z  z   t          ddft          ddf          } t	          | d          dk    sJ | t          dd          dt          d          z  dz  z   k    sJ t          t          t          t          t          z  z             t          ddft          ddf          t          j        u sJ d S )	Nry   ro   r   re   z2.43790283299492rE  r   r   )	rI   r.   rt   r   rl   r   r4   r   r   ress    rk   (test_double_previously_failing_integralsrt  R  s    
DGGacMAq!9q"aj
9
9Cc2;;,,,,,(2q//Ad1ggIaK/////SQqS\\Ar1:2qz::afDDDDDDrm   c                     t          t          t          d          t          t          dd          z   } t          t          t          d          dz  t          t          dd          z   }t          | t                    |k    sJ dt          t          dd          z  dt          t          dd          z  z
  }dt          t          dd	          z  dt          t          dd          z  z
  }t          |t                    |k    sJ d
t          d
z  z  t          z  dt          t          dd          z  z
  d
t          t          dd          z  z
  }d
t          dz  z  t          z  dz  d
t          z  t          t          dd          z  z
  dt          t          dd          z  dz  z
  }t          d
z  t          d
z  z  dt          z  t          t          dd          z  z
  d
t          t          dd          z  z
  }t          |t                    |k    sJ t          |t                    |k    sJ t          t          |t          f          sJ t          |t                    t          |t          f          k    sJ t          |t                                                    |k    sJ dt          t          dd          z  d
t          t          dd          z  z
  }dt          t          dd          z  dz  d
t          t          dd          z  z
  }t          |t          t           t          f          |k    sJ t          t          t          dd          t                    t          t          dd          k    sJ t          t          t          dd          t          t           t          f          d	k    sJ t          dt          t          dd          z  t          t           t          f          dk    sJ t          t          t          dd          t          t                    z  t          t           t          f          t          d          k    sJ d S )Nr   r   r   r   r   r   ir   ry   ro   rE  r   r   )
rF   rt   r   rI   r   rV   rX   r   r   rd   )	in_1out_1in_2out_2in_3out_3_1out_3_2in_4out_4s	            rk   "test_integrate_SingularityFunctionr  ]  s   q!Q''*=aB*G*GGD1a((*-@Aq-I-IIET1&&&&!!Q***Q/B1b"/M/M-MMD"1a+++a0CAr20N0N.NNET1&&&&QT6!8R+Ar15555:MaQSUW:X:X8XXD1fQhqj1Q321b"====BUVWY[]^B_B_@_`a@aaGd1a4i"Q$21b!<<<<qATUVXZ\^A_A_?__GT1((((T1((((XtaT*****D!t 4 44444D!!!##w....!!R+++a0CAr20N0N.NND!!R+++A-2EaR2P2P0PPETAsA;''50000(Ar22A66:MaQRTU:V:VVVVV(Ar22QRLAAQFFFFQ*1a444q2#rlCCqHHHH(Ar22QqTT9AsB<HHAaDDPPPPPPrm   c            	         t          t          t                    t          t                    z  t          t           t          f          t          d          k    sJ t          t          t                    dz  t          t           t          f          t          d          k    sJ t          t          ddt          z  z
  t          t
          z  z   dt
          z  z
  t          t                    z  t          t
          dz
            z  t          ddf          t
          ddf          dk    sJ t          t          dz  t
          dz  z              t          z  } t          | t          t          dt
          z  z
            z  t          t           t          ft
          t           t          f          t          | t          t          dt
          z  z
            z  t
          t           t          ft          t           t          f          cxk    rt          | t          dt          z  t
          z
            z  t          t           t          ft
          t           t          f          cxk    rzt          | t          dt          z  t
          z
            z  t
          t           t          ft          t           t          f          cxk    rdt          dt          z            z  k    sn J d S )Nr   ro   r   ry   r   e   )	rI   r8   rt   rd   r   r   r!   r   r.   ru   s    rk   test_integrate_DiracDeltar  z  sb    Z]]QqTT)AsB<88AaDD@@@@Z]]A%B3|44
1EEEEYAaC!A#! 31  Q'' (*+Q4 467AY@ @CDE E E E 	adQTkNBAQz!bd(+++a"b\AsB<HH!Jq2a4x(((1rc2,RCEE   !Jr!tax(((1rc2,RCEE    	!Jr!tax(((1rc2,RCEE    	
$s2v,,	       rm   c                  (   t          t          t          z  t                    t          t          t          dz   z  t          dz   z  t	          t          d          ft          t                    df          k    sJ t          t          t          z  t                    t          t          t          z  t          t                    z  t	          t          t                    d          ft          df          k    sJ t          t          t          t          z            t                    t          t          t          t          z            t          z  t	          t          d          ft          df          k    sJ t          t          t          t          t          z            z  t                    t          t          t          z  dz
  t          t          t          z            z  t          dz  z  t	          t          dz  d          ft          dz  dz  df          k    sJ t          t          t          t          z  z  t                    t          t          t          t          z  dz   z  t          t          z  dz   z  t	          t          t          z  d          ft          t                    df          k    sJ t          t          t          t          z  z  t                    t          t          t          t          z  z  t          t          t                    z  z  t	          t          t          t                    z  d          ft          df          k    sJ t          t          t          t          z            t                    t          t          t          t          z            t          z  t	          t          d          ft          df          k    sJ t          t          t          t          z            dz  t                    t          t          t          z  dz  t          t          t          z            t          t          t          z            z  dz  z   t          z  t	          t          d          ft          df          k    sJ t          t          t          t          t          z            z  t                    t          t          t          t          t          z            z  t          z  t          t          t          z            t          dz  z  z   t	          t          d          ft          dz  dz  df          k    sJ t          t          t          t          z            t                    t          t          t          t          z             t          z  t	          t          d          fd          k    sJ t          t          t          t          z            dz  t                    t          t          t          z  dz  t          t          t          z            t          t          t          z            z  dz  z
  t          z  t	          t          d          fd          k    sJ t          t          t          t          t          z            z  t                    t          t           t          t          t          z            z  t          z  t          t          t          z            t          dz  z  z   t	          t          d          fd          k    sJ t          t          t          t          z            t          dt          f          t          t          t          t          z            t          z  dt          z  z
  t          t           k    t          t          k     z  t	          t          d          z  ft          df          k    sJ t          t          t                    t          t           t          t          t          z
            z            z  t                    t          t          t                     t          t          t          z
            t          t          t          t          t          z
            z            z  t          t          t          t          t          z
            z            z
  z  t	          t          t          dz             ft          df          k    sJ d S )Nry   r   Tr   ro   r   T)rI   rt   r   r/   r   r#   r!   ra   r3   r4   r.  r   r   r.   r   rm   rk    test_integrate_returns_piecewiser    s|   QT1	
QUQU	R2YY'#a&&$"9 "9 9 9 9 9QT1	
Ac!ffbQmm$q$i"1 "1 1 1 1 1S1XXq!!Y	QqS!R1XXD	&+ &+ + + + +Qs1Q3xxZ##y
A#'3qs88	AqD	 "QT1++.Aa(@ (@ @ @ @ @Q1Xq!!Y	
QqS1WqsQw	AaC-A~&? &? ? ? ? ?Q1Xq!!Y	
QqS1SVV8	b3q661oo.D	&; &; ; ; ; ;S1XXq!!Y	QqS!R1XXD	&+ &+ + + + +S1XXq[!$$	
A#a%#ac((3qs88#A%
%q	("Q((3aY)@ )@ @ @ @ @Qs1Q3xxZ##y	
3qs88AAaCA	%r!Qxx01a464.(B (B B B B BS1XXq!!Y
ac((1bAhh&, &, , , , ,S1XXq[!$$	
A#a%#ac((3qs88#A%
%q	("Q((3Y)@ )@ @ @ @ @Qs1Q3xxZ##y
C!HHQQqS!Q$	&1a19(> (> > > > >S1XX1ay))Y	QqS!ac	AGB/"Q((:;aY.H .H H H H H SVVC4A;;///33y
a&&$q1u++c!DQKK-0003qa!e}3E3EE	F
1a!e	4y8" 8" " " " " " "rm   c            	         t          dd          } t          t          | d          | ddf          dk    sJ t          t          | dz  | dz            | ddf          t	          dd	          k    sJ t          t          t          |           t          |                      dz  |           t          t          d| z            dz  | dk    fd
t          d| z            dz  z
  df          k    sJ t          dd          }t          t          ||           t          | dz             z  | t           t          f          }t          |t          | dz             z  | t           |f          }t          | t          | dz             z  | |t          f          }|||z   cxk    r`t          t                    |z  t          |          z  dz  t          t                    |z  dz  z   t          |dz             dz  z   k    sn J d S )Nrt   Tr   ro   r   r   r   ra  r  ry   r   r   )extended_real)r   rI   r-   r,   r   r!   r/   r   r.   r   r=   )rt   r   int1int2int3s        rk   test_integrate_max_minr    s   $ASAYYAq	**a////SAq!t__q!Qi00HR4D4DDDDDSQaR))1,a00I	QqS!Q!Vq3r!t99Q;557 57 7 7 7 7 	4(((ASAYYsAqD5zz)AsB<88DQsAqD5zz\AsA;//DQsAqD5zz\Aq":..D4$; $ $ $ $$r((1*SVV"3A"5R
1#AqD5zz!|#$ $ $ $ $ $ $ $ $rm   c                     t          t          t                    t          ddf          t          dd          k    sJ t          t          t                    t          ddf          t          j        k    sJ t          t          t          dz             t          ddf          t          dd          k    sJ t          t          t          dz  dz
            t          ddf          dk    sJ t          t          t          dz  dt          z  z
            t          dd	f          d
k    sJ t          t          t                    t          ddf          dk    sJ t          t          t                    t          t                    z  t          t           t          f          dk    sJ t          t          t          dz
            t          dz  z  t          ddf          t          dd          k    sJ t          dd          \  } }t          t          |           |           t          | dz   dz  | dk    f| dz  dz  df          k    sJ t          t          d| z  dz
            |           t          | dz   d| z  z   | dk    f| dz  d| z  z
  dz   df          k    sJ t          t          | |dz  z
            | ddf          d|dz  z  t          d|dz            z  d|dz  z  z
  t          d|dz            dz  z
  dz   k    sJ t          t          t          |                      |           t          t          |           | dk    fdt          |            z
  df          k    sJ t          t          d| z  dz
            |           t          |  | dk     f| dz
  df          k    sJ t          d| z  t          | dz  dz
            z  |           t          | dz  | dk     f| dz   dz   | dk     f| dz  df          k    sJ t          t          |           | |dz   f          t          |dz   |dz   dk    f| dz
  |dz   dk     fd          k    sJ d S )Nr   ry   r   ro   r   r   r   re   i  r   r\  zt sTr   r      r  )rI   r   rt   r   r   r   r   r4   r   r   r/   r  r-   r!   )r   r   s     rk   test_integrate_Abs_signr    sj   SVVaQZ((HQNN::::SVVaAY''161111SQZZ!Q++x1~~====SA]]QAJ//14444SA!__q#rl33t;;;;T!WWq"aj))Q....T!WWSVV^a"b\22a7777T!a%[[1a4'!Q33xAFFFF5t$$$DAqSVVQ9
Q$q!q&AqDFD>$+ $+ + + + +S1q\\1%%
Q$1a1f1qs
R6*8 *8 8 8 8 8c!ad(mmaAY//	!Q$s1ad||a1f$s1ad||Q6:; ; ; ;S#a&&\\1%%	Qa1sA2ww;-*/ */ / / / /T!A#']]A&&)
QUa!eT]+$ +$ $ $ $ $QqSadQh'++y	
Aq2v!Q$AE*QT4L0: 0: : : : :T!WWq!a%j))Y	
QA	aR!VQUQY/.< .< < < < < < <rm   c                     t          t          t          t          z
            t                    } |                     t          d          t          t          t          dz
            t                    k    sJ t          t          t          t          z
            t          ddf          } |                     t          d          t          t          t          dz
            t          ddf          k    sJ t          t          t          t          dz                       }t           |t          t          z
             |t                    z  t          t           t          f          }|                    t          di          t          t          dt          dz  z            t          t           t          f          k    sJ d S Nr   r   ry   ro   r   )rX   r!   rt   r   r  r
   r   ri   rd   convs      rk   
test_subs1r    s3   QUQA66!Q<<8CAJJ222222QUaAY''A66!Q<<8CAJJAq	::::::q#q!te**AAAa!eHHQQqTTMAsB<00D99aVR1WB3| D DDDDDDDrm   c                     t          t          t          t          z
            t          t                    } |                     t          d          t          t          t          dz
            t          t                    k    sJ t          t          t          t          z
            t          ddft          ddf          } |                     t          d          t          t          t          dz
            t          ddft          ddf          k    sJ t          t          t          t          dz                       }t           |t          t          z
             |t                    z  t          t           t          ft          ddf          }|                    t          di          t          t          dt          dz  z            t          t           t          ft          ddf          k    sJ d S r  rX   r!   rt   r   r   r  r
   r   r  s      rk   
test_subs2r    sW   QUQ""A66!Q<<8CAJJ1555555QUaAYAq	22A66!Q<<8CAJJAq	Aq!9EEEEEEq#q!te**AAAa!eHHQQqTTMAsB<!Q;;D99aVR1WB3|aAY O OOOOOOOrm   c                     t          t          t          t          z
            t          dt          ft          t          df          } |                     t          d          t          t          t          dz
            t          ddft          ddf          k    sJ t          t          t          t          dz                       }t           |t          t          z
             |t                    z  t          t           t          ft          t          df          }|                    t          di          t          t          dt          dz  z            t          t           t          ft          ddf          k    sJ d S Nr   ry   r   ro   r   r  r  s      rk   
test_subs3r    s	   QUaAYAq	22A66!Q<<8CAJJAq	Aq!9EEEEEEq#q!te**AAAa!eHHQQqTTMAsB<!Q;;D99aVR1WB3|aAY O OOOOOOOrm   c                     t          t          t                    t          dt          ft          t          df          } |                     t          d          t          t          t                    t          ddft          ddf          k    sJ t          t          t          t          dz                       }t           |t                     |t                    z  t          t           t          ft          t          df          }|                    t          di          t          t          dt          dz  z            t          t           t          ft          ddf          k    sJ d S r  r  r  s      rk   
test_subs4r    s    Q!QQ1I..A66!Q<<8CFFQ1I1ayAAAAAAq#q!te**AAAaDD1IB3|aAY77D99aVR1WB3|aAY O OOOOOOOrm   c                     t          t          t          dz             t          t           t          f          } |                     t          d          | k    sJ t          t          t          dz   t
          z             t                    } |                     t
          d          t          t          t          dz   dz             t                    k    sJ t          t          t          dz   t
          z             t          t          f          } |                     t          d          t          t          t
          t          dz  z
            t          df          k    sJ |                     t
          d          t          t          t          dz   dz             t                    k    sJ t          t          t          dz   t
          z             t
          t           t          ft          t           t          f          } |                     t          d          | k    sJ |                     t
          d          | k    sJ t          t          t          dz             t          t          f          } |                     t          d          t          t          t          dz             t          df          k    sJ t          t          t                    t                    } |                     t          d          |                     t          d          z
  t          t          t                    t          ddf          z
                                  j        sJ d S )Nro   r   ry   r   )rX   r!   rt   r   r  r   r   is_zerori   s    rk   
test_subs5r    s`   adUa"b\**A66!Q<<1adUQY##A66!Q<<8CA	NNA666666adUQY!Q((A66!Q<<8CAqDMMAq6::::::66!Q<<8CA	NNA666666adUQY!bS"B3|<<A66!Q<<166!Q<<1adUaV$$A66!Q<<8CAJJA777777QAFF1QKK!&&1++%Q!Q(C(CC
$&&    rm   c            
      >   t          d          \  } }t          t          t          z  t          t	          t                    t	          t                    f          }|                    t          d          t          t          t          z  t          t	          d          t	          t                    f          k    sJ |                    t          d          t          t          t          t	          t                    t	          d          f          k    sJ t          t          t          z  t          t	          t                    t	          t                    ft          t	          t                    t	          t                    f          }|                    t          d          t          t          t          z  t          t	          d          t	          t                    ft          t	          d          t	          t                    f          k    sJ |                    t          d          t          t          t          z  t          t	          t                    t	          t                    ft          t	          t                    t	          d          f          k    sJ t          t          t          z  t          t	          t                    t	          |           ft          t	          t                    t	          |           f          }|                    | d          t          t          t          z  t          t	          t                    t	          d          ft          t	          t                    t	          d          f          k    sJ d S )Nza bry   )r   rX   rt   r   rd   r  )r   r   ri   s      rk   
test_subs6r    s   5>>DAq1q!A$$!o&&A66!Q<<8AaC!QqTT1Q4499999966!Q<<8A1Q4417777771q!A$$!o1Q44177A66!Q<<8AaC!QqTT1Q441addAaDD/JJJJJJ66!Q<<8AaC!QqTT1Q441addAaDD/JJJJJJ1q!A$$!o1Q44177A66!Q<<8AaC!QqTT1Q441addAaDD/JJJJJJJJrm   c            	         t          t          t          dt          ft          ddf          } |                     t          dt          di          | k    sJ t          t	          t                    t	          t                    z   t          t	          t                    t	          t                    ft          ddf          } |                     t	          t                    d          | k    sJ |                     t	          t                    d          t          t	          t                    t	          t                    z   t          dt	          t                    ft          ddf          k    sJ d S r  )rX   rt   r   r  r4   r  s    rk   
test_subs7r    s   Q1I1ay))A661aA,1$$$$Q#a&&1c!ffc!ff"5#$a)	- 	-A66#a&&!!!!!66#a&&!Q#a&&1aQ.*+Q!4 !4 4 4 4 4 4 4rm   c                  B   t          t          t                    t          t          dz            z   t          dt          f          } |                                 t          t          t                    t          dt          f          t          t          t          dz            t          dt          f          z   k    sJ t          t          t                    t          t          dz            z   t          dt
          f          } |                                 | k    sJ |                     d          t          t          t                    t          dt
          f          t          t          t          dz            t          dt
          f          z   k    sJ d S )Nro   ry   T)force)rX   rd   rt   r   r   r   r  s    rk   test_expandr  "  s    1a1gg1ay))A88::!A$$Aq	22Xa1gg1ay5Q5QQQQQQ1a1gg1bz**A88::????88$88AaDD1a*#=#=AadGGaBZ(($) ) ) ) ) ) )rm   c                  ^    t          t          d            t          t          d            d S )Nc                  N    t          t          t          dz             d          S Nro   r   )rX   r!   rt   r   rm   rk   r   z+test_integration_variable.<locals>.<lambda>,  s    xQTE

A66 rm   c                  j    t          t          t          dz             dt           t          f          S r  )rX   r!   rt   r   r   rm   rk   r   z+test_integration_variable.<locals>.<lambda>-  s$    xQTE

QRLAA rm   )r[   r   r   rm   rk   test_integration_variabler  +  s0    
:66777
:AABBBBBrm   c                  8   t          t          t          dz            t          t          dz            dz   z  t          ddf                                          t          t          t          dz            t          t          dz            z  t          ddf          t          t          t          dz            t          ddf          z   k    sJ t          t          t          dz            t          t          dz            dz   z  t                                                    t          t          t          dz            t          t          dz            z  t                    t          t          t          dz            t                    z   k    sJ d S )Nro   ry   r   )rX   r3   rt   r4   r   r   rm   rk   test_expand_integralr  0  s8   C1IIs1a4yy1}-1ay99@@BBQT3q!t99$q!Qi00QTQ1I&&	'' ' ' ' C1IIs1a4yy1}-q1188::QT3q!t99$a((QTA	     rm   c                      t          t          t          dz  dz             t          ddf                                dd          dt          d          z  k    sJ                      dd          d	t          d
          z  dt          d          z  z   k    sJ                      dd          dt          d          z  dz  dt          d          z  dz  z   dt          d          z  dz  z   k    sJ                      d	d          dt          d          z  d	t          d          z  z   d	t          d          z  z   dt          d          z  z   k    sJ t	                               d	d                                                                           z
            dk     sJ t          t          t          dz  t          dz  z             t          ddft          ddf           t          t           fd           d S )Nr   ry   ro   r   midpointmethodr      r   r_  r  9   i	     iI  i  r   V   r      g      ?r   c                  .                          d          S )Nr   as_sumr  s   rk   r   z'test_as_sum_midpoint1.<locals>.<lambda>D  s     rm   )	rX   r.   rt   r  r  ra   r   r[   NotImplementedErrorr  s   @rk   test_as_sum_midpoint1r  9  s   adQh!Q,,A88Aj8))QtCyy[888888Aj8))QtBxxZ"T"XX+-EEEEE88Aj8))QtCyy[]	$t**R.DKK-*.+ + + + +88Aj8))QtCyy[	$q''	.d2hhJ.!"488., , , , ,qxx*x--//11ACCEE9::S@@@@adQTk""Q2JAr
;;A
 3 3 3 344444rm   c                     t          t          t          z   dz  t          ddf          } t          ddd          }|                     dd                                          t          dd	          t          z   t          dz  z   k    sJ |                     dd                                          t          d
d          t          z   t          dz  z   k    sJ |                     dd                                          t          dd          t          z   t          dz  z   k    sJ |                     d	d                                          t          dd          t          z   t          dz  z   k    sJ |                     |d                                          t          dz  t          z   t          dd          z   dd|dz  z  z  z
  k    sJ d S )Nro   r   ry   ra   Tr   rc   r  r  r   r   r[  r   #   l      @   r  )rX   rt   r   r   r  r   r   r   s     rk   test_as_sum_midpoint2r  G  s   !a%!aAY''AsT4000A88Aj8))0022hq!nnq6H1a46OOOOO88Aj8))0022hq"oo6IAqD6PPPPP88Aj8))0022hr36G6G!6KaQRd6RRRRR88Aj8))0022hr26F6F6JQPQT6QQQQQ88Aj8))0022	1q8Aq>>!Ar!Q$wK/0 0 0 0 0 0rm   c                  Z   t          t          t          z   dz  t          ddf          } |                     dd                                          t          dz  k    sJ |                     dd                                          t          dd          t          dz  z   t          dz  z   k    sJ |                     dd                                          t          dd	          t          t          dd          z  z   t          dz  z   k    sJ |                     d
d                                          t          dd          t          t          dd
          z  z   t          dz  z   k    sJ |                     t          d                                          t          dz  t          z   t          dd          z   t          t          z  z
  ddt          z  z  z
  ddt          dz  z  z  z   k    sJ |                     ddd                              t                    sJ d S )Nro   r   ry   leftr  r   r   r   r  r   r       r   r   F)r  evaluate)	rX   rt   r   r  r   r   ra   hasr   r  s    rk   test_as_sum_leftr  R  s   !a%!aAY''A88Af8%%,,..!Q$666688Af8%%,,..(1a..1Q32FA2MMMMM88Af8%%,,..(1b//AhqRSnnDT2TWXZ[W[2[[[[[88Af8%%,,..(1b//AhqRSnnDT2TWXZ[W[2[[[[[88Af8%%,,..	1q8Aq>>!AaC'!QqS'1AqAvJ>? ? ? ?88Bv866::3???????rm   c                  .   t          t          t          z   dz  t          ddf          } |                     dd                                          ddt          z  z   t          dz  z   k    sJ |                     dd                                          t          dd          t          t          dd          z  z   t          dz  z   k    sJ |                     dd                                          t          d	d
          t          t          dd          z  z   t          dz  z   k    sJ |                     dd                                          t          dd          t          t          dd          z  z   t          dz  z   k    sJ |                     t          d                                          t          dz  t          z   t          dd          z   t          t          z  z   ddt          z  z  z   ddt          dz  z  z  z   k    sJ d S )Nro   r   ry   rightr  r   r   r   r  r  r   re   r  r   )rX   rt   r   r  r   r   ra   r  s    rk   test_as_sum_rightr  ]  s   !a%!aAY''A88Ag8&&--//1qs7QT>AAAA88Ag8&&--//8Aq>>AhqRSnnDT3TWXZ[W[3[[[[[88Ag8&&--//8B3C3CaQRTUFV3VYZ\]Y]3]]]]]88Ag8&&--//8B3C3CaQRTUFV3VYZ\]Y]3]]]]]88Ag8&&--//	1q8Aq>>!AaC'!QqS'1AqAvJ>? ? ? ? ? ?rm   c                  6   t          t          t          z   dz  t          ddf          } |                     dd                                          t          dz  t          z   t
          j        z   k    sJ |                     dd                                          t          dz  t          z   t          dd          z   k    sJ |                     dd                                          t          dz  t          z   t          dd	          z   k    sJ |                     d
d                                          t          dz  t          z   t          dd          z   k    sJ |                     t          d                                          t          dz  t          z   t          dd          z   ddt          dz  z  z  z   k    sJ t          t          t                    t          ddf                              dd          t
          j        k    sJ d S )Nro   r   ry   	trapezoidr  r   r      r^  r   r\  r  r   )
rX   rt   r   r  r   r   r   r   ra   r   r  s    rk   test_as_sum_trapezoidr  g  s   !a%!aAY''A88Ak8**1133q!tax!&7HHHHH88Ak8**1133q!tax(1a..7PPPPP88Ak8**1133q!tax(2rBRBR7RRRRR88Ak8**1133q!tax(2rBRBR7RRRRR88Ak8**1133	1q8Aq>>!AqAvJ./ / / /DGGaAY''..q+>>!&HHHHHHrm   c                  D    t          t          t          z   dz  t          ddf           t          t           fd           t          t           fd           t          t          d            t          t           fd           t          t           fd           d S )	Nro   r   ry   c                  .                          d          S )Nr   r  r  s   rk   r   z$test_as_sum_raises.<locals>.<lambda>t  s    qxx|| rm   c                  .                          d          S Nr   r  r  s   rk   r   z$test_as_sum_raises.<locals>.<lambda>u  s    qxx{{ rm   c                  P    t          t                                        d          S )Nr   )rX   rt   r  r   rm   rk   r   z$test_as_sum_raises.<locals>.<lambda>v  s    x{{11!44 rm   c                  8                          t                    S r{   )r  r   r  s   rk   r   z$test_as_sum_raises.<locals>.<lambda>w  s    qxx|| rm   c                  2                          dd          S )Nr   xxxx2r  r  r  s   rk   r   z$test_as_sum_raises.<locals>.<lambda>x  s    qxx'x:: rm   )rX   rt   r   r[   r   r  s   @rk   test_as_sum_raisesr  r  s    !a%!aAY''A
:++++,,,
:****+++
:44555
:++++,,,
:::::;;;;;rm   c                      t          t          t          t                    t                    } t          t          t          t                    }|                                 |                                k    sJ d S r{   )rX   rt   r   ri   rd   s     rk   test_nested_doitr  {  sQ    !Q##AAqA6688qvvxxrm   c                     t          t          dz  t          d df          } t          t          dz  t          dd f          }|                                 t          dd          k    sJ |                                t          dd          k    sJ t          t          t          z  t          d t          f                              t          t                    t          t          t          z  t          d t          f          k    sJ t          t          t          z  t          t          d f                              t          t                    t          t          t          z  t          t          d f          k    sJ t          t          dz  t          d df          t          dd          k    sJ t          t          dz  t          dd f          t          dd          k    sJ t          dd          t          dd          k    sJ d S )Nro   ry   r   r   zx**2)rt   1N)rX   rt   r   r   r   r  r   rI   r  s     rk   test_issue_4665r    s   A4|$$AA1d|$$A6688x1~~%%%%6688xA&&&&AaC!T1&&++Aq11XacAtQ<5P5PPPPPAaC!Q&&++Aq11XacAq$<5P5PPPPPQTAtQ<((HQNN::::QTAq$<((HROO;;;;V-..(2q//AAAAAArm   c                  n    t          t          dz  t          ddf          } | t          | j         k    sJ d S )Nro   r   ry   )rX   rt   argsr  s    rk   test_integral_reconstructr    s9    A2qz""A!&!!!!!!!rm   c            
         t          t          dt          z            t          ddf          } |                                 t          dd          k    sJ |                     d          t          dd          k    sJ t	          d          }t           |t                    t          ddf                                          dk    sJ t          dt          dt           |t                    t                    f                                          dk    sJ t          t          t
          df                                          dk    sJ t
          dt          t                    ft          dff}t          t
          g|R                                  t          dd          k    sJ t          t
          gt          t          |                    R                                  dk    sJ d S )	Nro   r   ry   r   Fdeeprd   r   )	rX   rt   r   r   r	   r   r!   listreversed)ri   rd   r   s      rk   test_doit_integralsr    s   !A#Aq	**A6688x1~~%%%%66u6!Q////AAAaDD1a)$$))++q0000A1hqqttQ//0116688A====A1v##%%****!SVVnq!f%FA$$&&(1a..8888A/Xf--..///4466!;;;;;;rm   c            	          t          t          t                    dt          z   z            t          dt          t                    z  t          dz   dz  z  dz  dt          t                    z  t          dz   z  dz  z
  dt          t                    z  dz  z
  t	          t          dz             dk    fdt
          z  t          t                     z  t          dz   dz  z  dz  dt
          z  t          t                     z  t          dz   z  dz  z
  dt
          z  t          t                     z  dz  z
  df          k    sJ t          t          t          z  dt          t                    z   z            t          t          z  k    sJ d S )Nry   ro   r   re   r   T)rI   r.   rt   r/   r   r   r#   r   rm   rk   test_issue_4884r    sE   T!WWa!e_%%tAwwYAz!!#aQiQ&7&::QtAwwYr\IAJJNqSqb\1q51*$Q&1T1"XXq1u)=b)@@aCaRLO!#	$ 	$$ $ $ $ QT1s1vv:&''1a4//////rm   c                  ~   t          t          t          z  t          t                    z  t                    t	          t          t          z  t          t          z  z  t          t                    z  t          dz  dt          z  z   dz   z  t          t          t          z  z  t          t                    z  t          dz  dt          z  z   dz   z  z   t          t          t          z  z  t          dz  dt          z  z   dz   z  z
  t          t          d          ft          t                    dz  dz  df          k    sJ d S )Nro   ry   r   T)rI   rt   ra   r#   r/   r   r   rm   rk   test_issue_18153r    s    QT#a&&[##	
1QT#a&&!Q$1*q.	)adF3q66M1a4!A#:>"
#%&q!tVQTAaCZ!^%<
=Bii	q6619Q;%      rm   c                     ddl m} m}m} t	          |           j        du sJ t	          d|           j        du sJ t	          d| df          j        du sJ t	          d| ddf          j        du sJ t	          d| d|f          j        du sJ t	          d| |f          j        du sJ t	          | |          j        du sJ t	          | |d| f          j        du sJ t	          | |ddf          j        du sJ t	          | | ddf          j        du sJ t	          | |ddf          }|j        du r|                                dk    sJ t	          | |||f          }|j        du r|                                dk    sJ t	          d|||dz   f          }|j        du r|                                dk    sJ t	          | |z  | ddf|ddf          j        du sJ t	          | |z  | ddf|d|f          j        du sJ t	          | | df          j        du sJ t	          | | dt	          ||ddf          f          j        du sJ t	          t          ||ddf          | ddf          j        du sJ t	          t          |           dz  t          |           dz  z   dz
  |           j        du sJ t	          t          |           | ddf          j        du sJ d S )	Nr   rt   r   r.  Fry   Tro   r   r   )	sympy.abcrt   r   r.  rX   	is_numberra   r   r4   r3   rd   )rt   r   r.  r   s       rk   test_is_numberr    sk   !!!!!!!!!!A;; E))))Aq>>#u,,,,A1v(D0000A1ay!!+t3333A1ay!!+u4444A1v(E1111Aq>>#u,,,,A1ay!!+u4444A1ay!!+u4444A1ay!!+t3333 	Q1IA;%ACCEEQJJJJQ1IA;%ACCEEQJJJJQ1q5M""A;%ACCEESLLLLAaC!QQ1I..8D@@@@AaC!QQ1I..8EAAAAA1v(D0000A1hq1a)44566@DHHHHCAq!9%%1ay11;tCCCC CFFAIA	)A-q11;uDDDDAaDD1a)$$.$666666rm   c                  V   ddl m} m}m} t	          d|           j        | hk    sJ t	          |           j        | hk    sJ t	          | | d |f          j        |hk    sJ t	          | | |d f          j        |hk    sJ t	          | | d|f          j        |hk    sJ t	          | | |df          j        |hk    sJ t	          | | | |f          j        | |hk    sJ t	          | | |          j        | |hk    sJ t	          | | ddf          j        t                      k    sJ t	          | |ddf          j        | hk    sJ t	          | |||f          j        | |hk    sJ t	          | |ddf|d d f          j        | |hk    sJ t	          | |ddf| d|f          j        |hk    sJ t	          d|ddf|d| f| ddf          j        t                      k    sJ t	          d|| df|d| f| ddf          j        t                      k    sJ t	          d| ddf|| df|ddf          j        | hk    sJ t	          t          |           t          |           d|f          j        |hk    sJ t	          t          |           t          |           d| f          j        | hk    sJ d S )Nr   r  ry   ro   )r  rt   r   r.  rX   r   setrd   r  s      rk   test_free_symbolsr    s^   !!!!!!!!!!Aq>>&1#----A;;#s****A4|$$1aS8888A1d|$$1aS8888A1ay!!.1#5555A1ay!!.1#5555A1ay!!.1a&8888Aq!)aV3333A1ay!!.#%%7777A1ay!!.1#5555A1ay!!.1a&8888A1ay1dD/ 
 

1a&! ! ! !A1ay1a) 
 

1#   A1ay1a)aAY 
 

#%%       A1ay1a)aAY 
 

#%%       A1ay1a)aAY 
 

1#   AaDD1Q44A,''4;;;;AaDD1Q44A,''4;;;;;;rm   c            	         ddl m} m} t          d| d| f          j        sJ t          d| ddf          j        sJ t          d| ddft
          df          j        du sJ t          | |df          j        sJ t          | |z   |df          j        J t          ||dt          |           f| df          }|j        J t          || df|dt          |           f          j        du sJ t          | | t          t          f          j        sJ t          | | t           t           f          j        sJ t          t          |           | ddt          z  f          j        J d S )Nr   )rt   r  ry   ro   FT)
r  rt   r  rX   r  r   r!   r   r4   r   )rt   r  r   s      rk   test_is_zeror    s   A1ay!!))))A1ay!!))))A1ay1a&))1U::::A1v&&&&AEAq6""*222Q3q66NQF++A9A1v1c!ff~..6$>>>>A2r{##++++AB3}%%---- CFFQ1R4L))199999rm   c                     ddl m}  t          t          |           | | f          }|                    |           |                    | d                                          t          fdt          d          D              k    sJ d S )Nr   rt   r   r   c                 .    g | ]}t                    S r   )next).0r<  ri   s     rk   
<listcomp>ztest_series.<locals>.<listcomp>  s    /J/J/JAQ/J/J/Jrm   r   )	r  rt   rX   r3   lseriesnseriesremoveOr   range)rt   r   ri   s     @rk   test_seriesr    s    Q!Q  A			!A99Q!9$$&&#/J/J/J/Jq/J/J/J*KKKKKKKrm   c                  *   t          d          } t          dt          |           z   | z  |           t          |           t	          |           z   k    sJ t          t          |           dz   | z  |                               t                    sJ d S )Nrt   ry   ro   )r   rI   r4   r#   r<   r3   r  r:   r  s    rk   !test_trig_nonelementary_integralsr  
  s    sAa#a&&j!^Q''3q66BqEE>9999 c!ffqj!^Q''++B///////rm   c                     t          d          } t          d          }t          dd          }t          t          | dz  |dz  z             |           |dz  t          | |z            z  dz  | t          | dz  |dz  z             z  dz  z   k    sJ t          t          | dz  |dz  z
            |           | t          | dz  |dz  z
            z  dz  |dz  t	          | t          | dz  |dz  z
            z             z  dz  z
  k    sJ t          dd          } t          dd          }t          d| dz  |dz  z   t          d	          z  z  |           | |dz  t          | dz  |dz  z             z  z  k    sJ d S )
Nrt   r   r.  Tr   ro   r   ry   z3/2)r   rI   r.   r%   r#   r   r  s      rk   test_issue_4403r    s   sAsAsT"""AT!Q$A+&&**	1U1Q3ZZAd1a4!Q$;///112 2 2 2T!Q$A+&&**	$q!tad{

A1ST!Q$A+->->)>%?%? ? AAB B B B 	sAsT"""AQ1q!tahh..22	1a4QTAqD[!!!"# # # # # #rm   c            
         t          t          t          dz   dz
            t                    dt          t          t          dt          dz  z
            z            z  t          t          dt          dz  z
            z  dz  z   k    sJ d S )Nro   r   r   rE  )rI   r.   rt   r2   r   rm   rk   test_issue_4403_2r  #  s}    T1a4%!)__a((
4$rAqDy//!"""QtBAI%6q%889 9 9 9 9 9rm   c                      t          dd          } t          t          | dz  t          dz  z
            t          d| f          t          | dz  z  dz  k    sJ d S )NRTr   ro   r   r   )r   rI   r.   rt   r   )r	  s    rk   test_issue_4100r
  (  s[    sT"""AT!Q$A+&&Aq	22bAgai??????rm   c            	         ddl m} m}m}m} t          d          }t          t           ||          |          |          t           ||          ||          k    sJ t           ||                    j         ||          t          |          fk    sJ t          t           ||                              j         ||          t          |          t          |          fk    sJ t          t           ||                    |          j         ||          t          |          t          |          fk    sJ t          t           ||          |          |          j         ||          t          |          t          |          fk    sJ t          t          t           ||          |          |          |          j         ||          t          |          t          |          t          |          fk    sJ t          t           ||          |          |          t           ||          ||          k    sJ t          t           ||          |          |          |t           ||          |          z  k    sJ t          t           ||          |          |          t          | ||          z  |          |t           ||          |          z  fv sJ t          t          d|          |          |dz  k    sJ t          t          d|          |          d|z  |z  k    sJ t          d||          j        t          d||          j        k    sJ t           ||          ||||          
                                |dz  t           ||          ||          z  dz  k    sJ t           ||          |ddf| d|f|d|f          
                                ||dz
  z  t           ||          |ddf          z  |dz
  t           ||          |ddf          z  z
  k    sJ d S )Nr   )wrt   r   r.  rd   ro   ry   )r  r  rt   r   r.  r	   rX   r  r   rI   r   )r  rt   r   r.  rd   s        rk   test_issue_5167r  -  sK   $$$$$$$$$$$$AHQQqTT1%%q))XaaddAq-A-AAAAAAAaDD>>11Q44q"22222HQQqTTNN##(QQqTT588U1XX,FFFFFHQQqTTNNA&&+!eAhha/IIIIIHQQqTT1%%q)).11Q44q5882LLLLLHXaaddA..22A66;	
1uQxxq588,- - - -XaaddA&&**hqqttQ.B.BBBBBXaaddA&&**a1q0A0A.AAAAAXaaddA&&**x!!A$$/B/BAhqqQRttUVFWFWDW.XXXXXXa^^Q''1a4////Xa^^Q''1Q3q50000Aq!!XaA%6%6%;;;;;AAaDD!Q1%%**,,1XaaddAq5I5I0I!0KKKKKAAaDD1a)aAYAq	::??AA	1q5	(11Q44!Q+++q1uhqqttaAY6O6O.OOP P P P P Prm   c            
      .   t          dd          } t          t          t          t                    dz             t                    t          t                    t          t          dd                    z  t          t          t                    t          j
        z
            z  dz  k    sJ t          t          t          t                    dz            t                    t          t                    t          t          dd                    z  t          t          t                    t          j
        z             z  dz  k    sJ t          t          |  t          t                    dz  z            t                    t          t                    t          dd| z  z            z  t          t          |           t          t                    z  ddt          |           z  z  z
            z  dt          |           z  z  k    sJ d S )Nr.  Tr   ro   ry   r   r   )r   rI   r!   r#   rt   r.   r   r   r=   r   r   r?   r.  s    rk   test_issue_4890r  D  s   sT"""AS#a&&!)__a((RXa^^$$$SQ!&%9%99!;< < < <SQ^^Q''RXb!__%%%d3q66!&=&9&99!;< < < <S!CFFAI&&**RQ!Wc$q''#a&&.1aQi="@AAA1T!WW9MN N N N N Nrm   c            	          t          dt          t          dt          dz  z
            z  z  t                                        t                    rJ d S r  )rI   rt   r.   r  rX   r   rm   rk   test_issue_4551r  N  sD    Ad1q!t8nn,-q1155h???????rm   c            
      .   t          ddd          } t          t          | t          d| z  z  dz
  z  t          dt          j        f          | dz  dd| z  z  | dz  z  z
  | dd| z  z  z  z
  ddd| z  z   z  | ddd| z  z   z  z  z   z  z
            dk    sJ d S )Nra   Trc   r   ry   r   ro   )r   rR   rI   rt   r   r   r   s    rk   test_issue_4376r  R  s    sD4000AIaQqSA.Aqv??AAaCA%!ac(
2QQqS\Aa!aPQc'lN5RST U UXYZ Z Z Z Z Zrm   c                     t          t          t                    t          dz  z
  t          t          dd          z  z  t                    dt          t          dd          z  z  dz  dt          t          dd          z  z  dz  z
  k    sJ d S )Nr   ry   r   r   r\  )rI   r.   rt   r   r   rm   rk   test_issue_4517r  X  s    d1gg1na!Q&77;;	!Xa^^
A!Xb!__"4 4R 778 8 8 8 8 8rm   c                     t          dd          \  } }t          t          | t          z            t          |t          z            z  t          dt          f                                          t          dt          | d          t          |d          z  ft           dz  t          | |           t          | d          t          |d          z  z  ft          dz  t          | |          t          | d          t          |d          z  z  fd          k    sJ t          t          | t          z            t          |t          z            z  t          f          t          dt          t          | d          t          |d                    ft           t          |t          z            dz  z  dz  t          t          |t          z            dz  z  dz  z
  t          |t          z            t          |t          z            z  d|z  z  z   t          | |           ft          t          |t          z            dz  z  dz  t          t          |t          z            dz  z  dz  z   t          |t          z            t          |t          z            z  d|z  z  z
  t          | |          f|t          | t          z            z  t          |t          z            z  | dz  |dz  z
  z  | t          |t          z            z  t          | t          z            z  | dz  |dz  z
  z  z
  df          k    sJ d S )Nzk mTrb   r   ro   r  )
r   rI   r4   rt   r   rR   r/   r   rJ   r3   )kr  s     rk   test_issue_4527r  ]  s   5$'''DAqS1XXc!A#hh&Ar
33<<>>1bAhhAq)*3q5"Q))r!Qxx"Q((':;<a4AqR1XX1a%89:	 	    S1XXc!A#hh&--	
C1a"Q((##$
C!HHaK	Ac!A#hhkM!O	+c!A#hhs1Q3xx.?1.E	Er!aRyyQ	
3qs88Q;q1S1XXq[=?	*S1XXc!A#hh->!-D	DbAhhO	
3qs88C!HH	adQTk	*	
3qs88C!HH	adQTk	*
+,0	2	23 23 3 3 3 3 3 3rm   c                     t          dd          } t          t          t           dz  t          z  | z  t
          z            t
          z  t
          t           t          fd          t          t          t           dz  t          z  | z  t
          z            t
          z  t
          t           t          f          k    sJ d S )Nr   Tr   ro   r   r   )r   rI   r!   r   r   rt   r   rX   )yposs    rk   test_issue_4199r  r  s    #%%%DS!Aba((*QRLGGGaRT"WT\!^$$Q&RC556 6 6 6 6 6rm   c            	      D   t          dd          \  } }}}t          t          t          dz   t          |z  t          z  z             t                    t          t                     t          |dz   dz            z  t          t          |z  dz  t          z
            z  dz  k    sJ t          t          | t          dz  z  |t          z  z   |z             t                    t          t                    t          ||dz  d| z  z  z
            z  t          d| z  t          z  |z   dt          |           z  z            z  dt          |           z  z  k    sJ ddl	m
} ddlm}  |t          t          t          dz             t          t          |z  t          z            z  t          t           t          f                    t          t                    t          |dz   dz            z  k    sJ t          d	d          \  } } |t          t          |  t          dz  z  d|z  t          z  z             t          t           t          f                    t          t                    t          |dz  | z            z  t          |           z  k    sJ d S )
Nza:dTr   ro   r   r   )
expand_mul)r  za d)r   rI   r!   rt   r   r.   r   r=   r?   r	  r  r  r  r   )r   r   r   r   r  r  s         rk   test_issue_3940r   y  s`   ...JAq!QS!Q$1Q''++	b	#q!teAg,,s1Q3q519~~-a/0 0 0 0S1a4!A#)**A..RQAqs^$$$T1Q3q519qay*A%B%BBAd1ggINO O O O /.....:iQTE

3qs1u:: 5B3|DDEERadU1W   54(((DAq:iQBq!tGac!eO 4 4q2#rlCCDDRQT!VT!WW$% % % % % %rm   c                  0   t          t           t          dz  t          dz  z   z  t                    t          t	          t           t          z  t          z             z  dz  t          t	          t          t          z  t          z             z  dz  z
  k    sJ d S r   )rI   r   rt   r   r#   r   rm   rk   test_issue_5413r"    sn     aRA1%q))QsA2a4!8}}_Q->3qsQw<<PQAQ-QQQQQQQrm   c                     t          d          \  } }t          dd          }|  t          |           z  }|  |t          z  z  t	          t
                    dz  t          t                    dz  z   z  }t	          t
                    dz   t          t                    dz  z
  }t	          t
                    dz   t	          t                    dz  z   dz
  }t          |||z
  z  t                    ||  | z  t          |t          z            z  |z  | t          z  t          |           z  z   z  ||  | z  t          |t          z            z  |z  | t          z  t          |           z  z   z  || |z  t          |t          z            z  |z  | t          z  t          |           z  z   z  || |z  t          |t          z            z  |z  | t          z  t          |           z  z   z  | |z  t          z  | | z  t          t                    z  t          |          z  z
  t          |           z  | |z  t          z  | | z  t          t                    z  t          |          z  z
  t          |           z  fv sJ d S )NzA zr   T)r   ro   ry   )
r   r   r!   r   r4   rt   r3   r   rI   r#   )r   r.  r   P1P2h1h2s          rk   test_issue_4892ar(    s,   5>>DAqsD!!!A
CGGB
QqS3q6619s1vvqy(	)B
a&&!)c!ffai	B
a&&!)c!ffai	!	#B QR[!$$	A2s8C!HHQ1S!WW,-	A2s8C!HHQ1S!WW,-	ArE3qs88OA!CGG+,	ArE3qs88OA!CGG+,	
1QRCQA&	&QB/	
1QRCQA&	&QB/)      rm   c                  L   t          t                    t          dz  z  dt          t                    z  t          dz  z  z   dz   t          dz  dz   z  } t	          t          t          | t                                        t                    | z
                      dk    sJ d S )Nr   ro   r  r   )r4   r   rt   r3   rS   rM   rI   r   )exprs    rk   test_issue_4892br+    s     FF1a4K!CFF(1a4-'",q!tax8DF9T1--22155<==>>!CCCCCCrm   c            	      f   t          t          t                    t          t          t
                    z  t          dt          ft          dt          ft
          dt          f          dt          t          t          t
                    t          dt          ft
          dt          f          z  k    sJ d S Nr   ro   )rI   r4   rt   rd   r   r.  r   rX   r   rm   rk   test_issue_5178r.    s}    SVVAaGG^aBZ!QaBZHH	(1Q77Q2JAr

3
334 4 4 4 4 4rm   c                  8   t          t                                        t          dd          } t          dz  dz  t          dz  dz  z
  t          dz  dz  z   t          dz  d	z  z
  t          dz  d
z  z   t          t          dz            z   }t	          | t                    |k    sJ t          t	          | t                    t                    | k    sJ t	          t          t          dz            t                    t          t          dz            k    sJ d S )Nr   r   ro   r      r   i  r   i  i _7 r\  r   )r4   rt   seriesrO   rI   r   rd   r~   s     rk   test_integrate_seriesr3    s    AaBA	1QAb1a48#ad5j01b5=@1QU88KAQ??a	!Q##q((((Qq!tWWa  AadGG++++++rm   c            	      f    ddl m}   | t          g g dgg t                    t                    J d S )Nr   heurischry   )sympy.integrals.heurischr6  rE   rt   r5  s    rk   test_atom_bugr8    sD    1111118GBQCQ//33;;;;;rm   c                  ~   t          dd          } t          t          t          t          z  | z            t          dt
          ft          dt
          f                                          t          |           t          t
          dz  | z            z
  t          z   dt          t
                    z  z   | z  k    sJ d S )Nr.  Fzeror   ro   )
r   rI   r4   rt   r   r   r   r#   r:   r   r  s    rk   test_limit_bugr<    s    sAS1QZZ!QaBZ88AACC	Q"RU1W++	
	*Qs2wwY	69: : : : : :rm   c                      t          d          } t          t          t                     | t                    z  t                                        t
                    sJ d S )Nr~   )r	   rI   r!   rt   r  rX   r}   s    rk   test_issue_4703r>    sI    ASVVAAaDD[!$$((2222222rm   c                      t          d          } t           | t                                        t                    dz  t                                        t
                    sJ d S )Nrd   ro   )r	   rI   rt   r   r  rX   r  s    rk   test_issue_1888r@    sM    AQQqTTYYq\\1_a((,,X6666666rm   c                      t          t          t          t          z            t          t           dz  t          dz  ft          dt          f          dt          t          dz  dz            z  k    sJ d S )Nro   r   )rI   r3   rt   r   r   r<   r   rm   rk   test_issue_3558rB    sX    S1XXB3q5"Q$/!Q<<"RU1W++MMMMMMrm   c            	          t          dt          ddt          dz  z  z             z  t                    t          t          dz            dz  k    sJ d S )Nry   r[  r   ro   )rI   r.   rt   r%   r   rm   rk   test_issue_4422rD    sJ    QtB1a4K(((!,,ac

Q>>>>>>rm   c            
          t          t          t          t          ddt          z  z             z  t                              t          dt          z  dz             dt          dz  z  t          z   dz
  z  dz  k    sJ d S )Nry   ro   r   re   )rR   rI   rt   r.   r   rm   rk   test_issue_4493rF    sr    IaQ1Woq1122QqS1WqAvzA~&r)* * * * * *rm   c                     t          t          t                    t          z  t          t           t          f          t          k    sJ t          t          t                    t          z  t          dt          f          t          dz  k    sJ t          t          t                    t          z  t                    t          t                    k    sJ d S r-  )rI   r4   rt   r   r   r<   r   rm   rk   test_issue_4737rH    s    SVVAXB3|,,2222SVVAX1bz**bd2222SVVAXq!!RUU******rm   c            
      T   ddl m}  t          dd          }t           | t	          t          t                     t          t                    z  t          |z  z  t          dt          f                              |t          d|          z  dz   t          |          z  k    sJ d S )Nr   r  r   Tr   ry   )r	  r  r   rR   rI   r!   rt   r#   r   rC   rB   )r  r   s     rk   test_issue_4992rJ    s    //////sT"""AKK	#qb''#a&&.A*=1bz J JKKLL	
9Q??	Q	a() ) ) ) ) )rm   c                      ddl m}  t          t          t	          t
                     t
          t          z  z  t
                               | t          dz   t
                    k    sJ d S )Nr   
lowergammary   )'sympy.functions.special.gamma_functionsrM  rR   rI   r!   rt   r   rL  s    rk   test_issue_4487rO    s]    BBBBBBIc1"ggadlA..//::a!eQ3G3GGGGGGGrm   c                  h    t          d          } t          d| dz  z  | ddf          t          u sJ d S )Nrt   ry   ro   r   )r   rI   r   r  s    rk   test_issue_4215rQ    s<    sAQ1X2qz**b000000rm   c                     t          ddd          } t          t          | z  t          t                    z  t                    | t          z  t          | z  z  t          t                    z  | dz  d| z  z   dz   z  t          t          | z  z  t          t                    z  | dz  d| z  z   dz   z  z   t          t          | z  z  | dz  d| z  z   dz   z  z
  k    sJ d S )Nra   Tr  ro   ry   )r   rI   rt   r#   r   s    rk   test_issue_4400rS    s    sD4000AadCFF]A&&	!AqDQA!a(1QT6#a&&=!Q$1*q.+II	!Q$1qs
Q	            rm   c                  H   t          t          dt          z
            t          dt          z             z   dz  t          z  t          d          t          t          t           dz             t          t          dz             z   dz  t          z  t                    k    sJ d S )Nry   ro   TrE   )rI   r.   rt   rX   r   rm   rk   test_issue_6253rV    s     d1q5kkDQKK/!3A5q$GGG$rAv,,a!e,q02A667 7 7 7 7 7rm   c            	         t          ddt          z   t          z   t          z   z  t          ddft          ddft          ddf          dt	          d          z  dt	          d          z  dz  z
  dt	          d          z  dz  z   dt	          d          z  z   d	t	          d
          z  z   dt	          d          z  dt	          d
          z  z   dt	          d          z  dz  z
  dt	          d          z  dt	          d          z  dz  z
  dt	          d          z  dt	          d          z  dz  z
  dt	          d          z  dz  z   fv sJ d S )Nry   r   ir   r   ro   r   r   r   r   r  rg  /   rI   rt   r   r.  r#   r   rm   rk   test_issue_4153rZ  
  s,   QA	A&Aq	Aq!9q!QiHHCFF
Qs1vvXaZ!CFF(1*,qQx7!CFF(B	#a&&1SVV8bQik)2c!ff9r#a&&y{+BCFF
Qs1vvXaZ"SVV)A+-M/ / / / / / /rm   c                  0   t          d          \  } }}t          |t          | z
  |z   z  |z  t          | dz  t          dz  z
            z  t          | |z
  | f          }|                    t
                    rJ |                    t                    rJ d S )NzR b hro   )r   rI   rt   r.   r  r   rX   )r	  r   hri   s       rk   test_issue_4326r]    s    gGAq! 	Aq1uqyM1$d1a4!Q$;&7&77!QUAGGAuuSzzuuXrm   c                      t          dt          z  dt          z  z   t                    dt          z  t          d          z  dt          z  t          d          z  z   k    sJ d S r  r"  r   rm   rk   test_powersr_    sP    QTAqD[!$$1SVVad3q66k(AAAAAAArm   c                      t          t          d            t          t          dt          z             t          z  t          ddfd                              t                    sJ d S )Nc                  B    t          dt          z  t          dd          S )Nry   T)manualrE   r   r   rm   rk   r   z$test_manual_option.<locals>.<lambda>   s    y1adKKK rm   ry   r   Trb  )r[   r   rI   r#   rt   r  rX   r   rm   rk   test_manual_optionrd    sY    
:KKLLLS1XXaZ!Q4888<<XFFFFFFFrm   c                      t          t          d            t          t          t                    t          d          t          t          t                    t                    k    sJ d S )Nc                  B    t          dt          z  t          dd          S )Nry   T)rE   rischr   r   rm   rk   r   z%test_meijerg_option.<locals>.<lambda>&  s    y1aTJJJ rm   TrU  )r[   r   rI   r6   rt   rX   r   rm   rk   test_meijerg_optionrh  %  sR    
:JJKKKSVVQ---#a&&!1D1DDDDDDDrm   c                  ~   t          t          d            t          t          t          dz             t          d          t          t          t          dz             t                    k    sJ t          t          dt          z            t          z  t          t          d          t          dz  t          t          dt          z            z  dz  t          dz  z   z  k    sJ t          t          t                    t          d          t          t          t                    t                    k    sJ d S )Nc                  j    t          dt          t                    z  t          dt          fd          S )Nry   r   Trg  )rI   r#   rt   r   r   rm   rk   r   z#test_risch_option.<locals>.<lambda>-  s%    y3q66Aq":TJJJ rm   ro   Trk  ry   )
r[   r   rI   r!   rt   rY   r#   r   r=   rX   r   rm   rk   test_risch_optionrl  +  s    
:JJKKKS!Q$ZZ$///3HaQRdUUV3W3WWWWWS1XXaZAT222adAc!A#hhJqL1Q3<N6OOOOOSVVQd+++xA/B/BBBBBBBrm   c            	         t          t          d            t          t          t          dz            t          d          t          t                    t          t                    z  dz  k    sJ t          t          t                    t          z  t          d          t          t          t                    t          z  t                    k    sJ t          t          t                    t          t          t                              z  t          t          dd          z  z  t          d          dt          t          d	d          z  z  t          t          t                              z  d
z  dt          t          d	d          z  z  t          t          t                              z  d
z  z   dt          t          d	d          z  z  t          t          t                              z  dz  dt          t          d	d          z  z  t          t          t                              z  dz  z   t          t                    z  z   k    sJ d S )Nc                  B    t          dt          z  t          dd          S )Nry   T)rg  r6  r   r   rm   rk   r   z&test_heurisch_option.<locals>.<lambda>6  s    y1atdKKK rm   ro   Tr5  r   r   Firy   i!     r[  r  )r[   r   rI   r!   rt   r.   r   r?   rX   r#   r3   r   r4   r   rm   rk   test_heurisch_optionrp  4  s   
:KKLLLSAYYD111T"XXd1gg5Ea5GGGGGSVVAXq4000HSVVAXq4I4IIIIISVVCAKK'8Aq>>(991uMMMQAs3q66{{*3.QA5F1Fs3q66{{1RSV1VV	Ax1~~	c#a&&kk	)"	,qHQNN1B/B3s1vv;;/Nr/Q	QSVWXSYSYY	Z[ [ [ [ [ [rm   c                      ddt           dz  z  dz
  z  } t          | t                                         t                     }t          | |d          sJ d S )Nry   gHzG?ro   g333333@g-q=)tol)rt   rI   r   r`   r2  s     rk   test_issue_6828rs  A  sT    	419s?A!QQAa........rm   c            	      n   t          d          } t          t          t          z  t	          | t
          z
   t          t                    z            z  t
                    t          t	          t
          | z
  t          t                    z            z  t          t                    z  t          z  k    sJ d S )Nx_max)r   rI   r   r   r!   rt   r3   r   )ru  s    rk   test_issue_4803rv  G  s    7OOEQrT#	l3q661222A66	#q5y#a&& 
!
!!#a&&(+, , , , , ,rm   c            	          t          dt          dt          t                    dz  z             z            t          t                    t          dt          t                    dz  z             z  k    sJ d S r  )rI   r.   r6   rt   r   rm   rk   test_issue_4234rx  M  s]    QtAA	M***++s1vvd1s1vvqy=6I6I/IIIIIIIrm   c                  z   t          t          t          dz  t          dt          dz  z
            z  t                                                  d          t          t          dt          dz  z  dt          dz  z  z
  dt          z  z   dt          t          dz  dz
            z  t          t          d          t          z  dz            z  z
  z  dt          t          dz  dz
            z  z  t          t          d          k    t          t          d           k     z  fdt          dz  z  dt          dz  z  z
  dt          z  z   dt          dt          dz  z
            z  t          t          d          t          z  dz            z  z
  d	t          t          dz   dz             z  z  df          k    sJ d S )
Nro   r   Tr  re   r      r   i)	rR   rI   rt   r.   rM   r/   r   r$   r1   r   rm   rk   test_issue_4492r{  Q  s   IadT!ad(^^3Q7788?? @  	
AadFR1Wr!t#badQh&7d1ggaik8J8J&JJ	KtAqD1H~~
!"T!WWd1ggX >	@
AqD&2ad7
RT
!BtA1H~~$5d47719Q;6G6G$G
GadUQY
!"&	() )) ) ) ) ) )rm   c            	         dt           t          z   t          t                    z   z  } t          | t          ddf          }t	          | t          ddf                                          |k    sJ t          | t          t                    z   t          ddf          |t          d          z
  t          d          z   k    sJ t          d| z  t          t                    z   t          ddf          d|z  t          d          z
  t          d          z   k    sJ t          t          dt          z  t          z  t          z  t           t          z   z  t          z            t          dt          f          t          t          dt          z  t          z  t          z            t          dt          z  t          z  t          dz  z  t          z            z  t          dt          f          k    sJ d S )Nry   ro   r   g333333?r   g333333)r   r.  r#   rY   rX   r   rI   r!   ra   r   r   rt   )rd   
integral_fs     rk   test_issue_2708r~  Z  s    	
1q53q66>A&q1a)44JA1ay!!&&((J6666QQZ!Q++zCFF/BSVV/KKKKKQqS3q66\Aq!9--	*s1vvA&' ' ' 'SQqQBF+A-..Aq	::c$q&(1*ooc#a%'!Q$,q..A.AA#$a)	- 	-- - - - - -rm   c                      dt           z  dt          z  z   dz   t          dt           z            z  } t          | t           ddf          }t	          |          dk    sJ d S )NgJ  @gD @g      $@g?g?z%1.86831064982608*y + 2.16387491480008)rt   r   r!   rI   str)rd   ri   s     rk   test_issue_2884r  h  s]    		N1,	,~	=s46{{JA!ac]##Aq66<<<<<<<rm   c                     ddl m} m} t          t	          t
           t          z            t          t                    z  t          dt          f          t          t          t          t
           t          t
          dz   dz   z  z   |t
          dz            dk     fdt          t
          z  ddt
          dz  z  z
  z  z   |t
          dz            dk     ft          t          j        fdfdt          j        fdft          t
                    dz            df          z  t
          dz  dk    ft          t	          t
           t          z            t          t                    z  t          dt          f          df          k    sJ t          t	          t
           t          z            t!          t                    z  t          dt          f          t          d	t
          dz   z  dz  dt
           dz   z  dz  z
  t#           |t
                    dk     | | t
                              t          dz  k      | | t
                              t          dz  k              ft          t	          t
           t          z            t!          t                    z  t          dt          f          df          k    sJ d S )
Nr   argr   ro   ry   r   )r   r   )r   Tr   )$sympy.functions.elementary.complexesr  r   rI   r!   r   rt   r&   r   r/   r   rE   r   r   r   rX   r)   rJ   r  s     rk   test_issue_8368ir  n  sj   ========S!AYYtAww&Ar
339BA	N+AqD		A'2a4Qq!tV,-AGq(*fY/[$/&qMM1,. . 	
 
 
 1q aRT477*Q2J77	 	   $ S!AYYtAww&Ar
33AE
1q1"q&z!|+CFFQJCAKK"Q$&CAKK2a4'  aRT477*Q2J77	 		 	 	 	 	 	rm   c            	         t          t          dt          z                      dt          dt          z            z  k    sJ t          t	          dt          z                      dt          z  dt          t	          dt          z            dz             z  z
  k    sJ t          t	          t                              t          t          t	          t                    dz             z
  k    sJ d S )N      ?ry   )rI   r)   rt   r&   r*   r#   r   rm   rk   test_issue_8901r    s    T#a%[[!!Sc!e_4444T#a%[[!!SUST#a%[[1_1E1E-E%EEEEET!WWSa1%5%5!5555555rm   c                  ^   t          t          t                    dz  t          z  t          ddf          t          d           dz  dt          d          z  dz  z   k    sJ t          t          t                    dz  t          z  t          dt          f          t
          dz  k    sJ t          t          t                    dz  t          dz  z  t                    t          dt          z             t          dt          z            dt          z  z  z
  ddt          z  z  z
  k    sJ d S )Nr   r   ry   r   ro   )rI   r4   rt   r<   r   r   r3   r   rm   rk   test_issue_8945r    s    SVVQYq[1a),,Aq1RUU7190DDDDDSVVQYq[1a*--A5555SVVQYq!t^Q''BqsGG8c!A#hh!n+Dq!A#w+NNNNNNNrm   c                     t          d          \  } }}}t          t          | z  t          z  |z            dz  ||t          z  z   z                      t
                    }t          t          |t          d|f          j        vsJ d S )Nzi L a bro   r   )r   r3   r   rt   rewriter!   rI   r   )r   Lr   r   	integrands        rk   test_issue_7130r    sx    ##JAq!QRT!VAX!Q1W-66s;;IIi!Q33@@@@@@@rm   c                  4   t          d          \  } }}}t          | |z  ||g          }t          ||          t          ||                                          k    sJ t          ||          t          | |dz  z  dz  g||z  g||z  gg          k    sJ d S )Nza b c tro   )r   rK   rI   rX   r   )r   r   r   r   vts        rk   test_issue_10567r    s    ##JAq!Q	1a		BRxA33555555Rv!Q$qzAaC51Q3%&@AAAAAAAArm   c                      t          t          t          dz   dt          z  z   dz             t          ddf          dt          z  k    sJ d S )Nro   r   0   r   r  r[  )rI   r.   rt   r   r   rm   rk   test_issue_11742r    sH    T1a4%!A#+*++aBZ88BrEAAAAAArm   c                      t          d          } t          t          t          | z            |           t	          t          | z            t          z  k    sJ d S )Nr   )r   rI   r5   r   r<   )r   s    rk   test_issue_11856r    sF    AT"Q$ZZ##r"Q$xx{222222rm   c                      t          t          t          dt          z                      t          ddf          t          t                    dz  k    sJ d S Nry   r   ro   )rI   r.   r#   rt   r   r   rm   rk   test_issue_11876r    sC    T#ac((^^aAY//488A:======rm   c                  2   t          dt          t                    z  dt          dt          z            z  z
  t          dt          z            z  t                    dt          dt          z            z  dt          dt          z            z  z
  k    sJ d S )Nig3333333@r   g333333r   g      (@r   )rI   r!   rt   r   rm   rk   test_issue_4950r    s}    c#a&&j4AaC=0#ac((:A>>S1XXS1XX%& & & & & &rm   c            	      4   t          t          t          t          dz                                t          t          t          t          dz                      z  dz  dt          z  t	          t          t          dz                      z  dz  z
  k    sJ d S )Nro   r   )rI   r4   r#   rt   r3   r   rm   rk   test_issue_4968r    so    SQT^^$$#c!Q$ii..(8(:QqSSAYY=OPQ=Q(QQQQQQQrm   c                     t          dt          dz  z  t          t           t          f          t          u sJ t          dt          dz  z  t          ddf          t          u sJ t          dt          dz
  dz  z  t          ddf          t          u sJ t          dt          dz  z  t          ddf          t           u sJ t          dt          dz
  dz  z  t          ddf          t           u sJ d S )Nry   ro   r   r   )rI   rt   r   r   rm   rk   test_singularitiesr    s    Qq!tVa"b\**b0000Qq!tVaQZ((B....QAz\Ar1:.."4444Qq!tVaBZ((RC////QAz\Aq":..2#555555rm   c            
      L   t          dd          \  } }t          t          | | z  | z  ||z  z             | t          t          ||z  z
             t          t          ||z  z
            f|t          t                     t          t                    f          t          t          | dz  |dz  z             | t          |dz   t          z              t          |dz   t          z             f|t          t                     t          t                    f          k    sJ d S )Nzx yTr   r   ro   )r   rI   r4   r.   r   rX   )rt   r   s     rk   test_issue_12645r    s   5t$$$DAqc!A#a%!A#+&&4QqS>>/4QqS>>:488)T"XX.0 0 C1q!t,,q!tebj!1!1 14A
3C3CDb	48846 66 6 6 6 6 6rm   c                      t          t          t                    t          t                    dz  z  t          dt          dz  f          t          dd          k    sJ d S )Nr   r   r   ry   )rI   r4   rt   r3   r   r   r   rm   rk   test_issue_12677r    sJ    SVVs1vvqy)Aq"Q$<88HQNNJJJJJJrm   c                      t          t          dt          z            t          t                    z
  t          z  t          dt          f          t	          d           k    sJ d S )Nr   r   )rI   r3   rt   r   r#   r   rm   rk   test_issue_14078r    sJ    c!A#hhs1vvoq(1a*55#a&&@@@@@@rm   c                      t          dt          t                    z  t          dt          f          t          dz  k    sJ d S r  )rI   r&   rt   r   r   r   rm   rk   test_issue_14064r    s7    QtAwwYAr
++r!t333333rm   c                     t          ddt          t          t          j        z
            dt          t                    z   z  z   z  t                    t          t          t          j                  t          t          t                    t          t          j                  dt          t          j                  z   z  z             z  t          t          j                  t          z   z  z
  k    sJ d S r   )rI   r!   rt   r   r   r#   r   r   rm   rk   test_issue_14027r    s    QCAF
OOQQZ8891==	CKKCFFS[[!c!&kk/%BBCCCS[[ST_UUV V V V V Vrm   c                      t          t          t                    t          dt          dz  f          t          j        u sJ d S r-  )rI   r6   rt   r   r   Infinityr   rm   rk   test_issue_8170r    s5    SVVaBqD\**aj888888rm   c                      t          dt          z  t          ddf          t          j        u sJ t          dt          dz   z  t          ddf          t          j        u sJ d S )Nry   r   r   r   )rI   rt   r   r   r   rm   rk   test_issue_8440_14040r    sZ    QqS1b!*%%....QAYB
++qu444444rm   c                     t          dt          t          z   dz  z  t          ddf          dt          dz   z  dt          z  z   k    sJ t          ddt          z   t          z   t          z   dz  z  t          ddft          ddft          ddf          dt	          d          z  dt	          d          z  z
  dt	          d	          z  z   k    sJ d S )
Nry   ro   r   r   rE  r   r   r   r   rY  r   rm   rk   test_issue_14096r    s    QAz\Aq!9--QUac1AAAAAQA	A))Aq!9q!Qi!QKK
3q66	Ac!ffHqQx'( ( ( ( ( (rm   c            
      l   t          t          dt          dt          dz  z
            z  t          ddf                                          dz
            dk     sJ t          t          t          dt          dz  z
            t          ddf                                          dz
            dk     sJ d S )Nry   r   r   gQdVo?gư>g) ?)r   rI   r.   rt   ra   r   rm   rk   test_issue_14144r    s    y4AqD>>)Aq!9557799HDEELLLLya!Q$h!Q335577(BCCdJJJJJJrm   c                      t          t          t          t          z            t	          t                    z  t                                        t                    sJ d S r{   )rI   r!   r   rt   r#   r  r;   r   rm   rk   test_issue_14375r    sB     S1XXc!ff_a((,,R0000000rm   c            	          t          d          t          t          t                    } t	          | t          ddft          ddft          ddf          t          | t          ddft          ddft          ddf          k    sJ d S )Nrd   r   ry   ro   r   )r	   rt   r   r.  rI   rX   r  s    rk   test_issue_14437r    s    aAAQAq	Aq!9q!Qi88Q1I1ay1a)<<= = = = = =rm   c            	      T   t          dt          t          t                    dz             z  t                    t	          t          t          t                    dz             dz
            t	          t          t          t                    dz             dz             z
  k    sJ d S r   rI   r.   r!   rt   r#   r   rm   rk   test_issue_14470r    s    QtCFFQJ'''++s4A
3C3Ca3G/H/H3tTWXYTZTZ]^T^O_O_bcOcKdKd/dddddddrm   c            	      "   t          dt          t          dz            t          z  z
  dt          dz  z  z             dt          dz  z  t          z   z  dt          t          dz            t          z  z
  dz  z  } t          | t                    t          dt          dz  z  t          t          t          dz            z  z
  dz              t          t          dt          dz  z            z  t          dt          dz  z            z
  z  k    sJ d S Nry   ro   r   )r!   rt   rI   r  s    rk   test_issue_14877r    s    AAqD		!Oa1f$%%qAvz2AAqD		!Oa3GGAQ??	Qq!tVaAqD		k!A%	&	&&#a1f++AadF(CDE E E E E Erm   c                      t          t          dz   dz             t          dz   t          z   z  } t          | t          ddg          t           dz  k    sJ d S )Nro   ry   r   r   )r.   rt   rI   r   r  s    rk   test_issue_14782r    sS    adUQY!Q$#AQB
##tax//////rm   c                      t          t          dz   dz             t          dz   t          z   z  } t          | t          ddg          t          j        dz  t
          dz  z
  k    sJ d S )Nro   ry   r   r   r[  )r.   rt   rI   r   r   r   r  s    rk   test_issue_14782_slowr    s\    adUQY!Q$#AQAq	""aeai"r'&9999999rm   c                      t           t          dd          z  t          t                      z  } t          | t           dt          g          t          u sJ d S )NrF  ro   r   )rt   r   r!   rI   r   r  s    rk   test_issue_12081r    sH    	HROOS!WW$AQAr
##r))))))rm   c                      dt           z  dz
  } d| z  t          d| z            z  t           dz  z  }t          |t           ddg          dk    sJ d S )Nry   r   r   ro   r   )rt   r!   rI   )r   rd   s     rk   test_issue_15285r    sV    	!aA	!C1IIadAQAq	""a''''''rm   c            
      r   t          t          t          z  t          t                     z  t	          t                    z  t          dt
          f                                          t          t          t          dz             t          dt                    z  t          t          dz             t          z  z   t          t                    dz   dk    ft          t          t          z  t          t                     z  t	          t                    z  t          dt
          f          df          k    sJ d S )Nr   ry   T)rI   rt   ra   r!   r#   r   rQ   r/   rB   rC   r   rX   r   rm   rk   test_issue_15432r  $  s    QTCGG^c!ff,q!Rj99CCEE	q1ui1oo	%a!eQ	61	AF	!Q$sA2ww,s1vv%1bz	2	2D9J; J; ; ; ; ; ; ;rm   c                     t          d          } t          dt                    \  }}t          t	          t
          t          z  | |         | |         z   z            t
          d          t           t	          t          t
          z  | |         z            z  t	          t          t
          z  | |         z            z  | |         | |         z   z  k    sJ d S )Nomegazm p)clsr   r   )rU   r   rT   rI   r!   rt   r   )r  r  rv   s      rk   test_issue_15124r  *  s      E5c"""DAqS1eAhq1233QfEEE	
3qs58|S1U1X...a580CDE E E E E Erm   c            	      d   t                      5  t          t          t          t                               d d d            n# 1 swxY w Y   t                      5  t          t          t          t                    t                    t          t          t          t                    t          t          t                              k    sJ 	 d d d            n# 1 swxY w Y   t                      5  t          t          t          t                    t                                                    t          t          dz  dz  t          t          z            k    sJ 	 d d d            n# 1 swxY w Y   t          t          d          5  t          t          t                                        t                    t          t          dz  dz  t          t          z            k    sJ 	 d d d            n# 1 swxY w Y   t          t          t          t                    t          ddf          t          t          j
        t                    k    sJ t          t          t                                        t          ddf          t          t          j
        t                    k    sJ d S )Nro   Frr   r   ry   )r]   rX   r   rt   r   r   r^   r_   rI   r   r   r   rm   rk   test_issue_15218r  1  s   		!	!  Aq              		!	! K K1a!$$8Aq>>8Aq>>(J(JJJJJJK K K K K K K K K K K K K K K		!	! ? ?1a!$$))++r!Q$q&!A#>>>>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ?	&	>	>	> 8 8 !Qxx!!!$$1a461Q3777778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 R1XX1ay))R]]::::a88q!Qi((BqvqMM999999sJ   (AA
AA2CC"C4A,E--E14E1AG::G>G>c            
         t          t          t          dz   t          dt          z            z            t          t          dz  t          dt          z            z            z  t          dt          f          } t          | t                    sJ t          | t          t                    dz  t          t                    z  z
                      t          t          dz                      dk    sJ d S )Nro   r   r   )rI   r!   rt   r3   r   r4   r   r   r/   rQ   r.   r   r  rr  s    rk   test_issue_15292r  B  s    
CAc!A#hh''#ad3qs88m*<*<<q!Rj
I
ICc9%%%%%cDHHQJQ//55aA>>??1DDDDDDrm   c                      t          t          dt          z            t          t                    z  t                    dt          t                    z  k    sJ d S r   )rI   r4   rt   r   rm   rk   test_issue_4514r  H  sA    S1XXc!ff_a((Ac!ffH444444rm   c                     t          dd          \  } }}t          t          t          | dz
                      | ||f          }t          t          t          | dz
                      |           }|                    |d|di          ddt
          z  z   k    sJ |                    | d          |                    | d          z
  ddt
          z  z   k    sJ |                    |d|d	i          t          d           t          d
          z   k    sJ |                    | d	          |                    | d          z
  t          d           t          d
          z   k    sJ d S )Nzx a bTr   ro   ry   r   r   rF  r   r   )r   rI   r!   r   r  r   )rt   r   r   definite
indefinites        rk   test_issue_15457r  L  sH   gD)))GAq!S1XXAq	22H3s1Q3xx==!,,J==!Q1&&"qs(2222??1a  :??1a#8#88B1HDDDD==!RB((SVVGc!ff,<<<<<??1b!!JOOAr$:$::s1vvgA>NNNNNNNrm   c                  v   t          t          t          t                    z  t          t                    z  t                    t          t          t                    z  t          t                    z
  t          t                    z  t          t                    z
  t	          t                    z   k    sJ d S r{   )rI   rt   r!   r#   r;   r   rm   rk   test_issue_15431r  V  sz    Qs1vvXc!ff_a((	
3q66CFF	CFF"SVV+bee34 4 4 4 4 4rm   c                     t           t          t                     z  } t          dt          t                     z            }t          | t                     |k    r|                    t                     | k    sJ t           dz  t          t                     dz  z  } t           dz   t          t                     z  dt          dt          t                     z            z  z   }t          | t                     |k    r|                    t                     | k    sJ t          t          t                               t           dz  z  } t          t                     t          t          t          t                                         z  dz  t          t          t                               t           z  z
  }t          | t                     |k    r|                    t                     | k    sJ d S )Nro   r   r   )rt   r#   r;   rI   r   r.   r   r>   )rd   Fs     rk   "test_issue_15640_log_substitutionsr  [  sD   	#a&&A
1SVV8AQ??aAFF1IINNNN	1SVVQYA	
Ac!ffqAc!ffH~%AQ??aAFF1IINNNNSVVQTA	b	$tCFF||$$$Q&c!ffa7AQ??aAFF1IINNNNNNrm   c            	      j   ddl m}   | d          }|j        }t          t	          t
          |z  t          z             |t          t          fd          t          t          t
          t          z  t          z              t
          z  t          t
          t          z  t          z             t
          z  z   t
          t           k    t
          t          k     z  t          t
          d          z  ft           t	          t                    z  t          t	          t                    z  z   df          k    sJ d S )Nr   )
CoordSys3DNTr5  )sympy.vectorr  rt   rI   r3   r   r   x_1x_2r/   r4   r   r   )r  r  rt   s      rk   test_issue_15509r  g  s    ''''''
3A	AS1q\\AsC=4@@@I
aeai..	S3^^A-	-RCAF/CbAhh/NOT#a&&[3s1vv:%t,E. E. . . . . . .rm   c            	      J   t          dd          } t          | t          d| dz  z
            z  |           t          | dz  dz  d| dz  z  dz  z
  | dk    f| dz   dz  d| dz  z  dz  z   t	          dd          z
  | d	k    f| dz  dz  d| dz  z  dz  z
  df          k    sJ d S )
Nrt   Tr   r   ro   r   rF  Q   r   )r   rI   r  r/   r   r  s    rk   test_issue_4311_fastr  p  s    $AQs1QT6{{]A&&)	
Aa!AqD&(	AG$
Q$q1QT6!8	hr1oo	-qAv6	
Aa!AqD&(	D!+# +# # # # # # #rm   c                     t          dd          } t          dd          }t          dd          }t          dd          }t          t          t           | z  |dz  z  ||z  z             |          t	          t
                    t          t           |dz  z  d	| z  z            z  t          d
t          z  | z  |z  |z   dt	          |           z  t	          t                     z  z            z  dt	          |           z  t	          t                     z  z  k    sJ t          ddt          |dz  z  z   z  |          t           t	          t                     t          |t          t	          t                     z  z
            z  dz  t	          t                     t          |t          t	          t                     z  z             z  dz  z
  z  k    sJ t          t          t           |dz  z            |          t	          t
                    t          t	          t                    |z            z  dt	          t                    z  z  k    sJ t          dt          t          |z            dz
  z  |          | dz  t          t          t          t          |z            dz
            z  dz  z
  k    sJ t          dt          t          |z            dz
  z  |ddt
          z  f          t
           k    sJ d S )NKTr   rt   r   r  r   ro   r   r   ry   r   )	r   rI   r!   r   r.   r   r?   r#   r=   )r  rt   r  r   s       rk   %test_integrate_with_complex_constantsr  x  s   sT"""AsAsAsAS!Aad1Q3''++tBxxQBq!tGc= 9 9 0 "Q$q&(Q,4774881C!DEE0FGHayQUWXVXQYQYGY0[ [ [ [ [QAadF
^Q''QBaRQ488^9L9L0LQ0NA2hhs1qqbz>***1,1- -. / / / /S!AqD\\1%%b#d1ggai..)@!DGG))LLLLLaQqS!nq))aRTAc#ac((Q,6G6G4G4I-IIIIIaQqS!n1ad|44;;;;;;rm   c            	      H   t          d          } t          ddd          }t          || |dz
  z  z  | dz   z  |           |dz  | |z  z  t          | t          t          t
          z            z  d|          z  t          |          z  t          |dz             z  k    sJ d S )Nrt   ra   Tr  ry   ro   )r   rI   rG   r"   r   r   rB   )rt   ra   s     rk   test_issue_14241r    s    sAsT4000AQq1u%Q/33a419Xa	!B$/A666uQxx?a!eLM M M M M Mrm   c                      t          t          t                    dz  ddt          t                    z  z
  z  t          ddt          z  g          t          dz  k    sJ d S )Nro   r   r   r   )rI   r4   r   r3   r   r   rm   rk   test_issue_13112r    sN    SVVQY!aAh,/!Q">>"q&HHHHHHrm   c                      t          dd          } t          t          t          ddt          z  | z  z
            z  t          d| f          }|d| dz  z  t          z  dz  k    sJ d S )	Nr\  Tr   ry   ro   r   r   r[  )r   rI   rt   r0   r   )r\  r   s     rk   test_issue_14709br    sg    sT"""A!DQqSUOO#aAY//A!Q$r	"rm   c                  X   t          d          } t          d          }t          t          |          |z  |t           | f          t	          |           k    sJ t          t          |            t          d| z            z
  | z  | dt          f          t          d          k    sJ d S )Nrt   r   r   r   ro   )r   rI   r!   r   r;   r#   )rt   r   s     rk   test_issue_8614r    s    sAsASVVAXB3{++r!uu4444c1"ggBqD		)1,q!Rj99SVVCCCCCCrm   c                     t          dd          } t          | dz            dt          d| z            z  z
  t          |           z   t          |           z  }t          ||           }|t          j        k    sJ t          |                    | d          dz
            dk    sJ t          | dz            dt          t          d	          d
z  | z            z  z
  t          |           z   t          |           z  }t          ||           dt          d| z  d
z            z  dz  dt          d| z  dz            z  dz  z   t          d| z            dz  z   k    sJ d S )Nr   Tr   ro   g?ry   gRt?,eg:0yE>r   r   i   r   )r   r!   rI   r   r   r  r  )r   r  solutions      rk   test_issue_15494r    sI   d###AQqSAc#a%jjL(3q6613q669IA&&Hqu x}}Q""&7899TAAAAQqSAc!A$$q&(mmO+c!ff4c!ff<IY""c#bd1f++ob&81S1QZZ<>&ICPQRSPSHHUVJ&VVVVVVVrm   c                     t          d          } t          t          | t          dz  z            t                                                    t          t          t          t          dz  | z            z  t          t          dt          t          dz  | z            z  dz            z  t          t          dz  | z            z  z
  t          | d          fd          k    sJ d S )Nr   ro   r   r   r  )
r   rX   rA   rt   r   r/   r;   r#   r.   r   r   s    rk   test_li_integralr    s    sABqAvJJ""''))Y"QT!V**	"Qs1a46{{]1_

d1a46ll*9+
1a8. .      rm   c                  F   t          d          } t          d          }t          j        }| |dz   z  t          |||z  z             z  t	          |||z  z   fd|z  d|z  ||z  z   f| d|z  z   dz            z  d|z  t          d|z  ||z  z             z  z  }t          t          | |z            |           }||k    sJ t          dd          }| |i}t          t          ||z            |          |                    |                                          k    sJ d S )	Nrt   ra   ry   r   ro   r   Fr:  )	r   r   r   rB   rD   rI   r4   xreplacer   )rt   ra   r\  r%  got_xrepss          rk   test_issue_17473r    s-   sAsA	A
a!e*U1qs7^^
#E1qs7*	
1acAaCi1qs8)A+%' %' '()!E!A#!),<,<(<>C
C1IIq
!
!C#::::	%	 	 	 Br7DSQZZ$$T(:(:(A(A(C(CCCCCCCrm   c                  P   t          t          t          t                              t          dz  z  t          dt          g          t           k    sJ t          t          t          t                              t          dz  z  t          dt          g          t          d           dz  t          dz  z
  k    sJ t          t          t          t                              t          dz  z  t          dt          g          t          d           dz  t          dz  z
  k    sJ d S )Nro   ry   r   r   r   )rI   r#   rt   r   r   r   rm   rk   test_issue_17671r    s    SQ[[1a4'!Q44CCCCSQ[[1a4'!Q44Q	JqL8PPPPPSQ[[1b5(1a*55#a&&ZPQ\9QQQQQQQrm   c            	      <   t          d          } t          d          }t          d          }t          d|dz  |z   t          d          dz  z  z  ||  dz  | dz  f          | |t          d          dz  z  t          d| dz  d|z  z  z             z  z  k    sJ d S )Nr  Cr   ry   ro   r   r   )r   rI   r   r.   )r  r   r   s      rk   test_issue_2975r    s    sAsAsAQ1Q!A$$q&))Ar!tQqS>::aQqTT!VTRSVWYZVZ\]^_\_V`R`MaMaAa>bbbbbbbrm   c                     t          d          \  } t          dd          }t          t          z  d|f                    dz  |dz  dz  |dz  z   z  k    sJ t          t          t	                    z  d|f                    t          dz  t	                    z  dz  d|f          k    sJ t          t          t	          z            d|f                    t          t          t          z             z  t          d          fd	          d|f          k    sJ t          t          t          t	          z            d|f                              t          t          t          t	          z             dz  z  t          d          f z  df          d|f          t           k    t          k     z  t          d          z  fd	          k    sJ t          t          d| f                    | dz  z  dz  k    sJ t          t          fd
           t          t          fd           t          t          fd           d S )Nzx n Mr  Trb   ry   ro   r   r   r  c                  Z    t          t          t           f          t                    S r{   rI   r   r   ra   rt   s   rk   r   z!test_issue_7827.<locals>.<lambda>  s!    yQAq	):):A>> rm   c                  F    t          t          d f                     S r   )rI   r   r  s   rk   r   z!test_issue_7827.<locals>.<lambda>  s!    yQAq	):):A>> rm   c                  P    t          t            dt          f                     S r   r  r  s   rk   r   z!test_issue_7827.<locals>.<lambda>  s!    yQAq	):):A>> rm   )r   r   rI   r   r4   r   r/   r3   r   r   r[   r   )r=  r  ra   rt   s     @@rk   test_issue_7827r    s   gGAq!sD!!!AYqsQ1I..22adAqDFQqSL6IIIIIYqQx!Aa11155AqDQKMAq!9%%& & & &Ys1Q3xx!Aa11155IAaCy{Bq!HH-y99Aq!9EEF F F FYyQqSAa7;;Q??CC3y3qs88)AqD."Q((!;qbdD\JJ	
Aq	 "WR(2a88356?	A 	AA A A A SQ1I&&**a1fQh6666
:>>>>>???
:>>>>>???
:>>>>?????rm   c                  |   ddt           z  z   t          t           t          t                     z             ddt           z  z   z  z   t           dz  z   t           t           t          t           t          t                     z             z   z  t          t           t          t                     z             z  z  } t          | t                     dt          t           t          t                     z             z  dt          t           t          t           t          t                     z             z             z  z   k    sJ d S r  )rt   r.   r#   rI   r  s    rk   test_issue_4231r
    s    	
QqS4CFF
##Q1W-	-1	4q!d1s1vv:>N>N:N7OPTUVY\]^Y_Y_U_P`P`7`aAQ??aQQZ 0 001ST!c!ff*=M=M9M5N5N3NNNNNNNNrm   c                      t          dt          dz  t          z   t          z   z  t                    } t          | t                    dt          dz  t          z   t          z   z  k    sJ d S r  )r   rt   r   rI   r  s    rk   test_issue_17841r    sQ    Q1Qq\1AQ??aAA.......rm   c                     t          ddd          } | | dz   t          d          dz  z  | t          | t          t          d                    z             z  z
  dz   z  }| t	          t          d                    z   | | dd| z  z  z   z  z  }t          ||           | dz   dt          d          dz  z  z  | d	z  t	          | t          t          d                    z             z  z
  d| d	z  z  d	z  z   d	| z  t          | t          t          d                    z             z  z   d	t	          | t          t          d                    z             z  z
  k    sJ t          ||           t          | d	z  t          d          dz  z             d	z  d	t          d
          z  t	          t          d                    z  t          d	t          d
          z  | z            z  z   k    sJ d S )Nrt   Tr   r   r   r   ry   r  r   ro   r   )
r   r1   r)   r#   r&   r3   rI   r   r.   r2   )rt   f1f2s      rk   test_issue_21034r    s   st,,,A	
QTE$q''1*qa#d1gg,,&6!7!777!;	<B
d3q66ll
QAr!tH-	.BR	
Aqa!|q!tDSa\\)9$:$:::Qq!tVAXE!DQRUXY]^_Y`Y`UaUaQaLbLbHbbefgklmpstxyzt{t{p|p|l|g}g}e}}~ ~ ~ ~ RAqD1Q447NA$q''	$s1vv,, 6tAd1ggIaK7H7H HHI I I I I Irm   c                     t          t          t                    t          t                     z  t                    t	          t                     t          t                     t          t                    z  z
  k    sJ t          t          t                    t          t                     z  t          dt
          f          t           k    sJ d S r  )rI   r#   rt   r!   r;   r   r   r   rm   rk   test_issue_4187r    s    SVVCGG^Q''2qb66CGGCFFN+BBBBBSVVCGG^aBZ00ZK??????rm   c                  |   t          d          } t          d          }t          d          }t          d          }t          |dz  t          |          dz  z  ||  dz  | dz  f          |dz   |  dz  t          | dz            t          | dz            z  dz  z
  z  |dz  | dz  t          | dz            t          | dz            z  dz  z   z  z   k    sJ t          |dz  t          ||z            dz  z  ||  dz  | dz  f          t	          |dz   |  |z  dz  t          | |z  dz            t          | |z  dz            z  dz  z
  z  |z  |dz  | |z  dz  t          | |z  dz            t          | |z  dz            z  dz  z   z  |z  z   |t
           k    |t
          k     z  t          |d          z  f| |dz  z  df          k    sJ dt          z  |z  | z  }t          d          t          |           z  |dz  z  t          t          d          t          |           z            z  t          t          j        dz            z  d	t          t          d
          dz            z  z  | |dz  z  dz  z   }t          |dz  t          ||z            dz  z  ||  dz  | dz  f          |k    sJ d S )Nr  r.  r0R0ro   r   r   Tr[  r   )r   rI   r3   r4   r/   r   r   r   r.   r@   rB   r   r   )r  r.  r  r  r  sols         rk   test_issue_5547r    s   sAsA	B	BRU3q6619_q1"Q$!n55"a%!A!HHS1XX%a'B( :)+-q5!A#AaCQqS8I!8K2K+L:M M M M M RU3r!t99a<'!aRT1Q388I
a%!Bq3qtAv;;s1R46{{2144	5b	8	Q"QQrT!VS2a[[022	3B	6
79;rcb2g8NQSTVXYQZQZ8Z	\	
2q5$= =    
 	
"QqA
q''$q''/"a%
aa 9 9
9%a..
H"USTUVSWSWXYSY]]JZ
[^_`bde`e^efg^g
gCRU3qs88Q;&QBqD!A#773>>>>>>rm   c                      t          dddt          z  dz  z  dz   z  t          dt          f          t          dd          k    sJ d S )Nry   ro   r   r   )rI   rt   r   r   r   rm   rk   test_issue_15810r    sF    QAaCE
Q'!Q44AFFFFFFrm   c                     t          ddd          } t          |           t          d| z            z  t          d| z  t          d          z             z   }| t          |           dz  z  | ddt          d          z  z
  z  z   d| z  d| z  t          d          z  z   t          |           z  z   | t          d          d	z  z   t          d| z  t          d          z             z  z   t          d          t          d| z  t          d          z             z  d	z  z   }|t          ||           k    sJ | t          d          z   | dz  z  }t          |           t          d          | z  z
  }|t          ||           k    sJ | dz  t          d
          z   | z  }| dz  dz  t          d
          t          |           z  z   }|t          ||           k    sJ | d| z  t	          d          z   z  }| dz  t          d| z  t	          d          z             t	          d          z  dz  z
  }|t          ||           k    sJ | t          d          | z  z
  }| dz  dz  t          |           t          d          z  z
  }|t          ||           k    sJ t          | t          d
          | z  z             }| t          | t          d
          | z  z             z  | z
  dt          t          d
d                    z  t          | t          t          dd                    z            z  z   }|t          ||           k    sJ | d
z  | t          z   z  }| d
z  d
z  t          | dz  z  dz  z
  | dz  t          d          z  dz  z   | dz  t          d          z  dz  z
  | t          d          z  z   t          d
          t          | t          z             z  z
  }|t          ||           k    sJ d| z  | t          d
          z   z  }d| z  dt          | t          d
          z             z  t          d
          z  z
  }|t          ||           k    sJ | dz  d| z  t          d          z   z  }| dz  dz  | t          d          z  dz  z
  t          d| z  t          d          z             t          d          dz  z  dz  z   }|t          ||           k    sJ | dz   | t          z   z  }| dz   dz  t          | z  z   t          d          t          | t          z             z  z
  }|t          ||           k    sJ d| z  dz   t          d
          z  | z  }d| z  t          d
          z  dt          d
          z  t          |           z  z   }|t          ||           k    sJ | dz   t          d          | z  z   }| dz  dz  d| z  z   t          |           t          d          z  z   }|t          ||           k    sJ | t	          d          | dz  z  z
  }| dz  dz  t	          d          d| dz  z  z  z   }|t          ||           k    sJ d| z  t          d	          z
  | z  }d| z  t          d	          t          |           z  z
  }|t          ||           k    sJ | dz  | t          d
          z   dz  z  | z   }| dz  dz  | dz  t          dd          t          d
          z
  z  z   d| z  t          d          z  z   dt          d          z  t          | t          d
          z             z  z
  t          d          | t          d
          z   z  z
  }|t          ||           k    sJ | | t          d          | dz  z  z   z  | z   }| dz  dz  | dz  dz  z   t          d          t          |           z  z   }|t          ||           k    sJ | | d
| z  t          d          z   z  z   }| dz  dz  | d
z  z   t          d
| z  t          d          z             t          d          z  dz  z
  }|t          ||           k    sJ | t          d          z   d| dz  z  d| z  z   z  }t          d          t          |           z  dz  t          d          t          | dz             z  dz  z
  t          | dz             dz  z   }|t          ||           
                                k    sJ t          | dt          d          z  z             }| t          | dt          d          z  z             z  | z
  dt          | dt          d          z  z             z  t          d          z  z   }|t          ||           k    sJ |  dt          d          t          d          | z  z
  dz  z  t          d          z  | z  z   }| dz   t          d          z  dz  dt          |           z  t          d          z  z   d| dz  z  t          d
          z  t          d          z  t          d          z  d| z  t          d          z  t          d          z  t          d          dz  z  z   dt          d          z  t          d          z  t          d          dz  z  z
  d| dz  z  z  z
  t          d          z  }|t          ||           k    sJ d| dz  z  t          d          z  d	| z  z   }d| dz  z  dz  d	t          d          z  t          |           z  z   t          d          z  }|t          ||           k    sJ d S )Nrt   Tr  r   r   ro   ry   r   r   r   r   r   re   rf  rz  iLZ   r  rE  )r   r#   r!   rI   r*   r)   r   r2   r   r&   r   r4   )rt   rd   r  F_trues       rk   test_issue_21024r    s
   st,,,AAs1Q3xx#acCFFl+++A	#a&&!)aQs1vvX&&"Q$1SVV*;SVV)CC	
SVVAXs1Q3Q<(((	)+.q66#acCFFl2C2C+CA+E	FA	!Q	
SVVQTAAQA	!Q	
AAA	1QQAA	!Q	1Q3a=A	!c!A#Q-  a(**A	!Q	DGGAIA	1QQQA	!QAAqLA	#a#a&&(l

a!CA$7$7"7Qs8BPQ???S?S=S8T8T"TTA	!Q	1a!eA	1Q1a4AqDQKM)AqDQKM9Ac!ffHDs1vvcRSVWRWjjGXXA	!Q	!Qa[A	!aAQK   a((A	!Q	1acDGGmA	1Q4771s1Q3a=11$q''1*<Q>>A	!Q	
Aq1uA	
Aa!A#As1q5zz))A	!Q	
1q#a&&A	!CFF
Qs1vvXc!ff_$A	!Q	AQ	A	1Q1s1vvd1gg~%A	!Q	DGGAqDLA	1Qa!AqD&!!A	!Q	
1s1vvqA	!c!ffSVVmA	!Q	1a#a&&j1_q A	1QAx1~~A.//!A#c"gg+=#b''	#aRUVWRXRXj//@YY\_`b\c\cefilmnioioeo\ppA	!Q	1s2wwq!t|q A	1QAa#b''#a&&.(A	!Q	AqsT!WW}A	1Q1s1Q3a=))$q''1"44A	!Q	
SVVa1fqsl#AAs1vva#a&&QU+A--AE

1<A	!Q&&((((((A$q''	MA	#a!DGG)m

q 1SQtAwwY%7%7#7Q#??A	!Q	
RR47719$q((Q/11A
Q$s2wwq2c!ff9SVV+	+tAqDyQ/?A/FtAww/NQSTUQUVYZ\V]V]Q]^abc^d^dQdeijkelelnoeoQo/o
3r77
3q66$q''1*$0%'(Av// 
/03C	9A	!Q	!Q$s2ww1A1fQh3q66#a&&(#b''1FYq!__$$$$$$rm   c                  L   t          d          } t          dt          dt          | z
  dz  z   z  z  t          t           t          f                                          t          t          |           dz
  d           t          t          |           dz   d          z   k    sJ d S )Nr   ry   ro   r   )r   rI   r   rt   r   r   r9   r   r   s    rk   test_issue_21721r"  n  s    sAQAqsQhJ(!RC44;;==r!uuqy!yAA6667 7 7 7 7 7rm   c                  d   t          d          } t          t          d| z            ddt          |           z  z
  z  | ddt          z  f          t          dz  k    sJ t          d| z            ddt          |           z  z
  z  }t          || ddt          z  f          t          dz  k    sJ d S )	Nthetar   r   r   r   ro   r  r   )r   rI   r3   r   )r$  r  s     rk   test_issue_21831r%  t  s    GES5\\1Qs5zz\>2UAqt4DEEBNNNNAeGa!CJJ,./IY1R4 011RT999999rm   c                      t          t          dz  t          dd          z
  dz  t          dt          dz  z
            z  t          ddf          t          dz  k    sJ d S )Nro   ry   r   r   r  )rI   rt   r   r.   r   r   rm   rk   test_issue_22033_integralr'  {  sY    adXa^^+a/$q1a4x..@1b!*MMQSTVQVVVVVVVrm   c                     t          dt          t          dz  t          dz  z   dt          dz  z
  t          dz  z
  ft          t	          dt          dz  z
             t	          dt          dz  z
            ft          ddf          t
          k    sJ t          ddt          dz  z
  t          d          dz  z  z  dz  dt	          dt          dz  z
            z  ddt          dz  z  z
  z  z   t          ddf          t
          k    sJ d S )Nry   ro   r   rE  r   )rI   r.  rt   r   r.   r   r   r   rm   rk   test_issue_21671r)    s    Q!Q$q!t)AadF1a4K0!T!AqD&\\M$qAv,,1OQRSUVWPXYY]_____RQTQqTT!V,,Q.4AqD>>1A1qAv:1NNQRTVXYPZ[[_aaaaaaarm   c                     t          dd          } t          t                    dt          t                    dz  z   z  }t	          |                    t          |           | d                              | t                    }t	          |t          d          |cxk    rt          |t                    k    sn J d S )NxrTr   r   ro   rc  )r   r3   rt   r4   rI   r  rX   )r+  r*  res_reals      rk   test_issue_18527r-    s     
D	!	!	!BFFAs1vvkM"D1b))2d;;;@@QGGHT1T***hKKKK(4:K:KKKKKKKKKrm   c                     dt           t          t                    z  t          t	          t                    z  z   z  } t          t           t           z  t          t          dz            z   t          t          dz  t           dz  z             t           z  z
             t          t          dz  t           dz  z             z  t          t           t           z  t          t          dz            z   t          t          dz  t           dz  z             t           z  z             t          t          dz  t           dz  z             z  z   }t          t          t          t          t          dz            dz
             t          t          t          dz            dz             z   z  t          t          d          t          t           d          z  ft          t          t          dz                      t          z  t          t           d          ft           t           t           z  t	          t                    z  t           t          t                    z  z   z  t          t          t           t           z            ft          t          t           z  t	          t                    z  t           t          t                    z  z   z  t          t          t          t           z            f|df          }t          | t                    |k    sJ t          dd          \  }}t          |t           |i}t          |                     |          t                    |                    |          k    sJ d S )Nry   ro   r   Tza, br   )r   r3   rt   r   r4   r#   r6   r.   r/   r   r   r   rI   r   r  )rd   Fposr  aprV  reps         rk   test_issue_23718r2    sT   	1SVV8aAhA!AAaC41q!t#4#4Q#66777QTAqD[8I8II!AAaC41q!t#4#4Q#6677QTAqD[8I8IIJD 
s3qs88a<   3s1Q3xx!|#4#44	51a2a888KL	S1XXq1aA
aRT#a&&[1SVV8#	$1qbdD	
AaCAJ3q66!	"1qsD	=		 		A Q??aVd+++FBb!R.CQVVC[[!$$		#666666rm   c                  
   t          dt          t          dz  dz
            z  t          ddf          } | t          dt          d          z
             k    sJ t	          j        |                                 d          sJ d S )Nry   ro   r   r   r   gCqB?)rI   r.   rt   r#   mathisclosera   rI  s    rk   test_issue_23566r6    sv    !DAaLL.1b"+..AQa[!!!!!!!</0000000rm   c            	      V   t          dt          t          t          z
  dz  dz
            z            t	          t          t          t          z
            t          t          t          z
  dz            dk    ft           t          t          t          z
            z  df          k    sJ d S )Nry   ro   T)rI   r.   rt   r   r/   r$   r   r1   r   rm   rk   test_pr_23583r8    s    QtQUQJqL)))**iq1usAPQETU:YZGZ8[_`^`aefgjkfkalal^lnr]s.t.tttttttrm   c            
      h   t          t          t                    t          dt          dt          z            z             z            t          t          dt          z            dz             t          t                    z  dz  t	          t          t                              dz  z   k    sJ d S r  )rI   r!   rt   r.   r%   r   rm   rk   test_issue_7264r:    s    SVVDS1XX...//4AaC13E3Ec!ff3LQ3NQVWZ[\W]W]Q^Q^_`Q`3```````rm   c                      t          t          t                    t          ddf          dt          t	          t
          j                            z  k    sJ d S r@  )rI   r+   rt   r2   r*   r   r   r   rm   rk   test_issue_11254ar<    sD    T!WWq!Qi((Ad4<<.@.@,@@@@@@@rm   c                     t          t          t                    t                    t          t	          t          dz                      k    sJ t          t          t                    t          ddf          t
          k    sJ d S )Nro   r   ry   )rI   r(   rt   r#   r*   r   r   rm   rk   test_issue_11254br>    s`    T!WWa  CQqS		NN2222T!WWq!Qi((B......rm   c                     t          dt          t          t          t          z  dz  z   d          dz  z  t                    dt          dt          z            dz   z  k    sJ t          t          t                    dz  t                    dt          t          dz            z  t          t          dz            dz  dz   z  k    sJ d S )Nr   ro   Fr  r   ry   )rI   r)   rt   r   r   r!   r&   r*   r   rm   rk   test_issue_11254drA    s    RQ2aZ%888!;;Q??2s1Q3xxRS|CTTTTTT!WWr]A&&!D1II+tAaCyy!|a7G*HHHHHHHrm   c            
         t          dt          dz  z  t          dz  z
  dt          z  z   dz
  t          t          dz  dt          z  z
  dz             z  t          ddf          } | dt          d          z  dz  dt          ddt          d          z  z
            z  d	z  z
  k    sJ t	          j        |                                 d
          sJ d S )Nr   ro   r   r   ry   ir      r[  g2{)rI   rt   r.   r#   r4  r5  ra   rI  s    rk   test_issue_22863rD    s    1QT6!Q$;qs?1$d1a4!8A:&6&66Aq	BBAT!WWQSQtAwwY%7%7!7!::::::<01111111rm   c                     t          t          t          t          t                    z                       dt          t          t                    t          z             z  t          t                    dz  t          dz  z   t          d          dz  z
  z  t	          dt          t                    z  dt          t          t                    t          z             z  z   dz             dz  z   k    sJ t          t          dt          z  dz   t          dt          z  dz             z             dz            t          dt          z  t          dt          z  dz             z   dz             dt          z  d	z  d
dt          z  dz   t          d          dz  z  z  dz  z   t          dt          z  dz             dz  z   dt          z  dz   dz  d	z  z   t          d
          d	z  z   z  dz  k    sJ d S )Nro   r  r   ry   r   r   r   r   r   r\  (   rI   r.   rt   r   r#   r   rm   rk   test_issue_9723rH    s   T!d1gg+&&''	$tAww{

T!WWRZ!A#-!Q67#aQi!DQUVWQXQX[\Q\L]L]J]>]`a>a:b:bcd:dde e e eT!A#a%QqSU+,,a/00QqS4!a== 1$%%aCFR1qAaDDF++B..acAgr1AAQqS1WqLQSOSVWXZV[V[\^V^^	``a	bb b b b b brm   c                     t          t          t                    t          dz  z  t          t          dz  z  t          t          z  z   t
          z   z  t          d          t          t          t                    t
          t          dz  z  t          t          dz  z  z   t          t          dz  z  z   z  t                    k    sJ d S )Nro   Trk  r   r   )rI   r#   rt   r   r   r   rY   r   rm   rk   test_issue_23704rJ    s     c!ffQTk1QT6!A#:a<0$??? Q1a4!AqD&1QT6)A!BAFFG G G G G Grm   c                  f   t          dt          dt          dt          z            z
            z            t	          t          dt          dt          z            z
            dz
            dz  t	          t          dt          dt          z            z
            dz             dz  z
  k    sJ d S r  r  r   rm   rk   test_exp_substitutionrL    s    QtAc!A#hhJ'''((CQQqS\0B0BQ0F,G,G,ICPTUVY\]^_`]`YaYaUaPbPbefPfLgLghiLi,iiiiiiirm   c                     t          t          t                              t          t          t	          t                    dz             z
  t          t	          t                              z   k    sJ t          t          t                              dt          t	          t          dz                      z  k    sJ t          t          t                              t          t	          t          dz                      k    sJ d S r  )rI   r'   rt   r#   r*   r+   r2   r(   r   rm   rk   test_hyperbolicrN    s    T!WWSa1%5%5!5DGG!DDDDDT!WW4QqS		??!22222T!WWT!A#YY//////rm   c                      t          t          t          dz                      t          t          t          dz            z  dz  k    sJ t          t          t          t          d          dz  z                      dt          z  t          t          t          d          dz  z            z  dz  k    sJ t          dt          t          dz            z            t          t	          t                    z  t          t          dz            z  k    sJ t          t          t          t          dz            z            t          dz  t          t          dz            z  t	          t                    z  k    sJ d S )Nro   r   r   r   r\  ry   rE  rG  r   rm   rk   test_nested_powrP    s   T!Q$ZZ  Ad1a4jjLN2222T!add1f+&&''1Q3tA!QK/@/@+@+CCCCCQtAqDzz\""aAhtAqDzz&99999QtAG}}_%%Ad1b5kk)9#a&&)@@@@@@@rm   c                     t          dt          dt          dz  z  dt          z  z   dz             z            t          d          t          dt          d          z  t          t	          d          dz  z   z  dz            z  dz  k    sJ t          dt          dt          dz  z  dt          z  z   dz             z            t          d          t          dt          d          z  t          t	          d          dz  z
  z  dz            z  dz  k    sJ t          dt          dt          dz  z  dt          z  z   dz
            z            t          d          t          d	t          z  dt          d          z  t          dt          dz  z  dt          z  z   dz
            z  z   dz             z  dz  k    sJ t          dt          dt          dz  z  dt          z  z
  dz             z            t          t          j        z
  t          t          t          j        z
            z  dt          t          t          j        z
  dz            z  z  k    sJ t          dt          t          t          t          z  z   t          t          dz  z  z             z  t                    t          t          t          dt          t                    z  t          t          t          t          z  z   t          t          dz  z  z             z  z   dt          z  t          z  z             t          t                    z  t          t          d
          t          t          t          dz  dt          z  z  z
  d
          z  ft          dt          z  z  t          z   t          t          dt          z  z  t          z             z  t          t          t          dt          z  z  t          z   dz  z            z  t          t          d
          fdt          t          t          t          z  z             z  t          z  t          t          d
          ft          t          t                    z  df          k    sJ t          dt          z  d	z   t          dt          dz  z  dt          z  z   dz             z            dt          dt          dz  z  dt          z  z   dz             z  dz  dt          d          z  t          dt          d          z  t          t	          d          dz  z   z  dz            z  dz  z   k    sJ t          dt          z  d	z   t          dt          dz  z  dt          z  z   dz             z            dt          dt          dz  z  dt          z  z   dz             z  dz  dt          d          z  t          dt          d          z  t          t	          d          dz  z
  z  dz            z  dz  z   k    sJ t          dt          z  d	z   t          dt          dz  z  dt          z  z   dz
            z            dt          dt          dz  z  dt          z  z   dz
            z  dz  dt          d          z  t          d	t          z  dt          d          z  t          dt          dz  z  dt          z  z   dz
            z  z   dz             z  dz  z   k    sJ t          t          t          t          z  z   t          t          t          t          z  z   t          t          dz  z  z             z  t                    t          t           t          z  dt          z  z  t          z   t          t          t          dt          t                    z  t          t          t          t          z  z   t          t          dz  z  z             z  z   dt          z  t          z  z             t          t                    z  t          t          t          dz  dt          z  z  z
  d
          ft          dt          z  z  t          z   t          t          dt          z  z  t          z             z  t          t          t          dt          z  z  t          z   dz  z            z  df          z  t          t          t          t          t          z  z   t          t          dz  z  z             z  t          z  z   t          t          d
          fdt          z  t          t          t          t          z  z             z  dt          z  t           t          t          t          t          z  z             z  t          t          t          z  z   t	          d          dz  z  dz  z   z  t          z  z   t          z  t          t          d
          ft          t          z  t          t          dz  z  dz  z   t          t                    z  df          k    sJ t          dt          dz  z  t          dz  z
  dt          z  z   dz
  t          t          dz  dt          z  z
  dz             z            t          t          dz  dt          z  z
  dz             t          dz  dt          z  dz  z   t	          d          dz  z   z  dt          dt          z  dt          t          dz  dt          z  z
  dz             z  z   dz
            z  dz  z   k    sJ t          t          dt          dz  z  dt          z  z
  dz                       t          dz  t	          d          dz  z
  t          dt          dz  z  dt          z  z
  dz             z  dt          d          z  t          dt          z  dz  t	          d          dz  z
            z  dz  z   k    sJ t          t          t          t          t          z  z   t          t          dz  z  z             t                    t          t          dz  t          dz  dt          z  z  z
  t          t          t          dt          t                    z  t          t          t          t          z  z   t          t          dz  z  z             z  z   dt          z  t          z  z             t          t                    z  t          t          t          dz  dt          z  z  z
  d
          ft          dt          z  z  t          z   t          t          dt          z  z  t          z             z  t          t          t          dt          z  z  t          z   dz  z            z  df          z  t          dt          z  z  t          dz  z   t          t          t          t          z  z   t          t          dz  z  z             z  z   t          t          d
          fdt          t          t          z  z   t	          d          dz  z  z  dt          z  z  t          t          d
          ft          t                    t          z  df          k    sJ t          t          t          t          dz  dt          z  z   dz             z            t          dz  dz  t          d	z  z   t	          d          d	z  z   t          t          dz  dt          z  z   dz             z  dt          t          d          t          dz   z  dz            z  dz  z
  k    sJ d S )Nry   r   ro   r   r   r\  rF  r  r   r   Tr   r   ir  r  r  r   rC  r[  i  i iY  i+A  iiQ  iC)  ir+  i  i:C)rI   r.   rt   r%   r   r1   r#   r   r   r   r   r/   r   r   ri   r   rm   rk   test_sqrt_quadraticrR    s6   QtAadF1Q3JqL)))**d1ggeAd2hhJAaDDQRF
<STV<V6W6W.WXY.YYYYYQtBq!tGAaCKM***++tAwwtAd2hhJAaDDQRF
<STV<V7W7W/WXY/YYYYYQtAadF1Q3JqL)))**d1ggc!A#$q''	$qQRTUQUvXYZ[X[|^_O_J`J`@`:`cd:d6e6e.efg.gggggQtAadF1Q3JqL)))**q16z3q16z??.JAdTUXYX^T^abSbNcNcLc.dddddQtAacE!AqD&L)))1--3q1T!WW9T!ac'AadF*:%;%;;;ac!eCDDT!WWLbQRTUhhY[\]`acd`dfghifi`j\jlmYnYnNnoqsGaKQ!Wq[!1!11$q!QqS'A+9I7I2J2JJBqRSHHUT!ac']]?1$bAhh/!DGG)T1B	D 	DD D D D
 ac!eT!AqD&1*Q,///00T!AqD&1Q3,"###A%$q''	%$r((
A!QJ8OPR8R2S2S(STU(UUV V V Vac!eT"QT'!A#+a-00011d2ad7QqS=1$%%%a'"T!WW*T!DHH*a!A$$q&j:QRT:T5U5U*UVW*WWX X X Xac!eT!AqD&1*Q,///00T!AqD&1Q3,"###A%$q''	#acAd1ggId1QPQT6TUVWTW<Z[K[F\F\<\6\_`6`2a2a(abc(ccd d d da!eT!AaC%!Q$,///33QBqD!A#JNc!aQiQ1WqAv5E0F0F&F"F1Q"NOOPTUVPWPWWY[\]`acd`dfghifi`j\jlmYnYno !A#w{C1Q3!,<,<<T!Q!Wq[STDTBT=U=UUW[\^ ^^ T!ac'AadF*+++A-. 02!Qxx9 aCQ1W%!aRQ1W-=QqSAaDDQRF@STU@U-U(VWX(XXZ[[]_`acd]e]efaC!AqD&(NDGG+T2	4 	44 4 4 4 a1fQTk!A#oa'ad1Q3hqj)9)99::1qs
QA1Q3!9:SQqS1TRSUVRVYZ[\Y\R\_`R`MaMaKaEadeEeAfAf=fgi=iij j j j T%1*U1W,U23344aC!E((5. $uQTzE!G';e'C"D"DDT$ZZeAgemahhtm&C D DDZOPP P P P T!AaC%!Q$,''++AaC!Q$!*$c!aQiQ1WqAv5E0F0F&F"F1Q"NOOPTUVPWPWWY[\]`acd`dfghifi`j\jlmYnYno !A#w{C1Q3!,<,<<T!Q!Wq[STDTBT=U=UUW[\^ ^^ qsGacM4AaC!AqD&(8#9#99: <>a88E a!A#g1a((!A#.1a97719d#	% 	%% % % % QtAqD1HQJ'''((	
Aa!A#!Q	QTAaCZ!^ 4 44qtAwwAq?P9Q9Q7QRS7SST T T T T Trm   c                     t          t          t          t                    z  t          t                    z            t          t          t                    z  t	          t          t                    t          t                    z             z
  k    sJ t          t          t          t                    dz  z  t                    t          t          t                    z  t	          t          t                              z   k    sJ t          t          dz  t          t          t                    t          df          z            t          dz  t          t          t                    t          df          z  dt          dz  z  t          t          t                    t          df          z  z
  dt          z  t          t          t                    t                    z  z   dt          t                    z  z
  k    sJ d S )Nro   r   r   r   )rI   rt   r7   r6   r#   r3   r   rd   r   rm   rk   test_mul_pow_derivativerT    se   Qs1vvXc!ff_%%3q66CAQ4H4H)HHHHHQs1vvqy[!$$#a&&3s1vv;;(>>>>>QT*QqTTAq622233a4
1Q44!Q(((1QT6*QqTTAq62J2J+JJQqSQ[\]^_\`\`bcQdQdMddghijklimimgmmn n n n n nrm   c                     t          dt          dk     fd          } t          dt          dk     fd           }| |z   }t          t          d           df}t          | |          dk    sJ t          ||          dk    sJ t          |  |          dk    sJ t          | |          dk    sJ t          ||          dk    sJ t          | |          dk    sJ d S )	Nr   g        )ry   Tr  Infry   r   g      )r/   rt   floatrI   )fun1fun2fun_sumr  s       rk   test_issue_20782r[    s    aS\9--Dq!c'lI...DTkG	
U5\\M1AT1""""T1""""dUA"$$$$dUA"$$$$Wa  B&&&&gXq!!S((((((rm   c            
         d fd} t           t          d           t           f}t           | d          |          }|dt           z  t          dt                     z
  t          t           t	          ddd                    z
  k    sJ t           | d	          t           t          d           t           f          dt           z  dt          d	t                     z  z
  k    sJ d S )
Nc                 N    t          dt          | k     fdt          | k    f          S r   )r/   rt   r!  s    rk   r   z"test_issue_20781.<locals>.<lambda>)  s     )QAJAF44 rm   c                 f     t          |                      t          |                     z   S r{   )intrW  )r   Ps    rk   r   z"test_issue_20781.<locals>.<lambda>*  s(    !!CFF))aaakk) rm   rV  ry   ro   r  Fr@  r   )rt   rW  rI   r-   r,   )rd   r  r  r`  s      @rk   test_issue_20781ra  (  s    44A))))A	
U5\\M1A	11Q44		B1s3{{"SCQ,G,G,G%H%HHHHHH QQqTTAe}a0 
 
qS1SAYY;     rm   c                     t          d          } t          | dz  t          d| dz  z
            z  | ddf          t          dz  k    sJ t          d| dz  z  t          d| dz  z
            z  | ddf          t           dz  k    sJ t          dt          d| dz  z
            z  | ddf          t          dz  k    sJ t          | dz  d| dz  z  z
  dz   t          d| dz  z
            z  | ddf          dt          z  dz  k    sJ d S )	Nrt   r   ry   ro   r   r[  r   r   )r   rI   r.   r   r  s    rk   test_issue_19427rc  4  s.    	sA a1fQaZ 0 001b!*==bHHHHb16kT!a1f*%5%552qzBBrcAgMMMMa4AF
+++aQZ88BFBBBB a1fq16z)A-a!q&j1A1AAAr1:NNRSVXRX[]R]]]]]]]rm   c            
         t          dt          t          dt          z   dz  z  dt          z   dz  z             z  t          dt          f          } |                     t          dd          t          dt          t          dz  dt          dz  z  z   dt          z  z   dz             z  t          dt          f          t          t          dz
  t          df          z   k    sJ t          dt          t          dt          z
  dz  z  dt          z   dz  z             z  t          dt          f          }|                    t          dd          t          dt          dt          dz  z  dt          dz  z  z
  d	t          dz  z  z   d
t          z  z
  dz             z  t          dt          f          t          t          dz
  t          df          z   k    sJ d S )Nry   r   ro   r   r   r   r   r     i  i  )rX   r.   r   rt   r.  r1  rO   )I1I2s     rk   test_issue_23942rh  B  s   	!DAEA:Q
2333aAY	?	?B99QQ98Ad1a4!AqD&=1Q33F3J.K.K,KaQRTUY#W#WZ[\]`a\adeghciZjZj#jjjjj	!DAEA:Q
2333aAY	?	?B99QQ98Ad1QT6Bq!tG3Cc!Q$h3NQTUVQV3VY\3\.].],]`acdfg_h#i#ilmnorsnsvwyzu{l|l|#|||||||rm   c                     dt           z
  t          dt           z            z  } ddt          z  t          z  dz   dt          z  z   z  t          dt          z  t          z            z  dt          dt          z            z  z
  }t	          | t           t          df          }|                    |t          j                  sJ d S )Nry   y        >T?r  gzg	
T8?gz?g>T?)rt   r!   r   r   rI   is_samer4  r5  )rd   F_expr  s      rk   test_issue_25886rl  I  s    	
1c,q.!!!A"1$Q& q ! ""%k!mAo"6"67 s;q=1112E 	!aC[!!A99UDL)))))))rm   c                  |   t          t          t          t          dz                      t          z            } | t	          t          t          dz                      dz  k    sJ t          dt          dz  t
          dz  z   t          dd          z  z  t                    }|t          t
          dz  t          t          dz  t
          dz  z  dz             z  z  k    sJ t          dt          t                    dz   z  t          ddt          z  f          }|dt          d          z  t          z  dz  k    sJ d S )Nro   ry   r   r   )	rI   r3   r#   rt   r4   r   r   r.   r   )rf  rg  I3s      rk   test_old_issuesro  T  s    	3s1a4yy>>!#	$	$BSAYY!!!!!	1ad1a4i8Aa==11!	4	4BAqDad1a4i!m,,,-----	1c!ffQh<1QrT
	+	+B4772arm   )re   (`  r4  sympy.concrete.summationsr   r   sympy.core.addr   sympy.core.containersr   sympy.core.exprr   r	  r   r	   r
   r   
sympy.corer   sympy.core.numbersr   r   r   r   r   r   r   r   sympy.core.relationalr   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.core.sympifyr   r  r   r   r   r   r   &sympy.functions.elementary.exponentialr    r!   r"   r#   %sympy.functions.elementary.hyperbolicr$   r%   r&   r'   r(   r)   r*   r+   (sympy.functions.elementary.miscellaneousr,   r-   r.   $sympy.functions.elementary.piecewiser/   (sympy.functions.elementary.trigonometricr0   r1   r2   r3   r4   r5   r6   r7   'sympy.functions.special.delta_functionsr8   r9   r
  r:   r;   r<   r=   r>   r?   r@   rA   rN  rB   rC   sympy.functions.special.hyperrD   rE   -sympy.functions.special.singularity_functionsrF   &sympy.functions.special.zeta_functionsrG   sympy.integrals.integralsrI   sympy.logic.boolalgrJ   sympy.matrices.denserK   sympy.polys.polytoolsrL   rM   sympy.printing.strrN   sympy.series.orderrO   sympy.sets.setsrP   sympy.simplify.gammasimprQ   sympy.simplify.simplifyrR   sympy.simplify.trigsimprS   sympy.tensor.indexedrT   rU   rV   #sympy.functions.elementary.integersrW   rX   sympy.integrals.rischrY   sympy.physicsrZ   sympy.testing.pytestr[   r\   r]   r^   sympy.utilities.exceptionsr_   sympy.core.randomr`   rt   r   r.  r   r   r   r   ri   r   r   r  r  ra   rd   rl   rw   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)  r,  r1  r3  r5  r9  r>  rA  rC  rW  rY  rn  rp  rt  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  r  r
  r  r  r  r  r  r  r  r   r"  r(  r+  r.  r3  r8  r<  r>  r@  rB  rD  rF  rH  rJ  rO  rQ  rS  rV  rZ  r]  r_  rd  rh  rl  rp  rs  rv  rx  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  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-  r2  r6  r8  r:  r<  r>  rA  rD  rH  rJ  rL  rN  rP  rR  rT  r[  ra  rc  rh  rl  ro  r   rm   rk   <module>r     s	    6 6 6 6 6 6 6 6       ' ' ' ' ' '             D D D D D D D D D D D D ! ! ! ! ! ! L L L L L L L L L L L L L L L L L L L L * * * * * * * * " " " " " " / / / / / / / / & & & & & & P P P P P P P P P P P P P P R R R R R R R R R R R R d d d d d d d d d d d d d d d d d d d d E E E E E E E E E E : : : : : : a a a a a a a a a a a a a a a a a a a a I I I I I I I I _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ F F F F F F F F : : : : : : : : M M M M M M ; ; ; ; ; ; / / / / / / # # # # # # ' ' ' ' ' ' 0 0 0 0 0 0 0 0 # # # # # #             $ $ $ $ $ $ . . . . . . , , , , , , , , , , , , 3 3 3 3 3 3 3 3 % % % % % % 5 5 5 5 5 5 . . . . . . 7 7 7 7 7 7       L L L L L L L L L L L L > > > > > > 0 0 0 0 0 0 *11N)O)O &1aAq!Q1c3
F3HSMM@ @ @ @   N N N8  ; ; ;* * *,+6 +6 +6\
@ 
@ 
@F F F8 8 8 O O O&F F F/ / /4 4 46 6 66 6 6*9 9 9(/ / /? ? ?1 1 1> > >. . .E E E  N N N
8 8 87 7 7/ / /
B B B
H H H1 1 12 2 2: : :< < <
# # #i i i
' ' 'k k k
Z Z Z+ + +  ; ; ;, , ,-: -: -:`+ + + 0< 0< 0<fO O OE E EQ Q Q:  "" " "B$ $ $< < <6E E EP P PP P PP P P  &	K 	K 	K4 4 4) ) )C C C
  5 5 50 0 0@ @ @? ? ?I I I< < <     
B 
B 
B" " "
< < <0 0 0  7 7 7@< < <8: : :&L L L0 0 0# # #"9 9 9
@ @ @
P P P.N N N@ @ @Z Z Z8 8 8
3 3 3*6 6 6% % % R R R  *
D 
D 
D4 4 4
, , ,< < <
: : :3 3 3
7 7 7N N N? ? ?* * *
+ + +) ) )H H H
1 1 1
     7 7 7/ / /  B B BG G GE E EC C C 	[ 	[ 	[/ / /, , ,J J J) ) )- - -= = =  @6 6 6 O O O A A AB B BB B B3 3 3
 > > >& & &
R R R6 6 67 7 7K K KA A A4 4 4V V V
9 9 95 5 5
( ( (K K K
1 1 1= = =e e eE E E0 0 0
 : : :
* * *
( ( (; ; ;E E E: : :"E E E5 5 5O O O4 4 4
	3 	3 	3. . .# # #< < <M M MI I I  D D D W W W  
D 
D 
DR R Rc c c@ @ @"O O O
/ / /
	I 	I 	I@ @ @
? ? ?*G G GV% V% V%r7 7 7: : : W W W b b b
L L L7 7 7*1 1 1u u u
a a aA A A/ / /
I I I2 2 2b b bH H Hj j j0 0 0A A A'T 'T 'TTn n n) ) )	 	 	 
^ 
^ 
^} } }* * *	  	  	  	  	 rm   