
    \hc%                         S r SSKJrJrJr  SSKJr  SSKJr  SSK	J
r
Jr  SSKJrJrJrJrJrJrJrJrJrJrJrJr  SSKJr  SSKJrJrJrJr  \" S	5      u  r r!r"r#S
 r$S r%S r&S r'S r(S r)S r*S r+S r,S r-g)z?Most of these tests come from the examples in Bronstein's book.    )IRationaloo)symbols)Poly)DifferentialExtensionNonElementaryIntegralException)order_atorder_at_ooweak_normalizernormal_denomspecial_denombound_degreespdesolve_poly_rdeno_cancel_equalcancel_primitive
cancel_exprischDE)raises)xtznzt:3 kc                  H   [        [        S-  [        5      n [        [        S-  S-   S-  [        -  [        5      n[        [        S-  S-   S-  [        -  [        5      n[        [        S-  S-   S-  [        S-  -  [        5      n[        [        S-  S-   S-  [        S-  -  [        5      n[        [        [        5      n[        S[        S-  -   [        5      n[        X[        5      S:X  d   e[        X[        5      S:X  d   e[        X%[        5      S:X  d   e[        X5[        5      S:X  d   e[        XE[        5      S:X  d   e[        X[        5      S	:X  d   e[        X[        5      S:X  d   e[        X&[        5      S:X  d   e[        X5[        5      S:X  d   e[        XF[        5      S:X  d   e[        [        S	[        5      [        [        [        5      [        5      [        L d   e[	        [        [        S-  S-
  [        5      [        [        S-   5      [        5      [	        [        [        S-
  [        5      [        S[        5      [        5      s=:X  a  S
:X  d   e   e[	        [        S	[        5      [        S[        5      [        5      [        L d   eg )N               
   d   %   r   )r   r   r
   r   r   )abcdep1p2s          V/var/www/auris/envauris/lib/python3.13/site-packages/sympy/integrals/tests/test_rde.pytest_order_atr-      s"   QT1AadQh]1_a AadQh]1_a AadQh^ArE!1%AadQh_QU"A&A	aB	a!Q$h	BA1"""A1"""A1"""A1###A1###A1"""A1"""A1"""A1###A1$$$DAJQ
A."444tAqD1Ha($q1u+q9DQNDAJ29689 9 9 9 9tAqz41:q1R777    c            	      |   [        S[        -   [        S-  -  S[        S-  -  -   SS[        -  -
  [        S-  -  -   S[        S-  -  -
  SS[        -  -   [        -  -   [        5      n [        [        S-  S[        S-  -  -
  S-   [        5      n[        S[        S[        5      [        [        [        5      /0S	9n[	        XU[
        5      nU[        [        S-  [        S-  -
  S[        S-  -  -
  S[        S-  -  -   S[        -  -   S-
  [        S
S9[        S[        -   [        S-  -  [        [        -  -   [        S
S9[        [        S-   [        S
S944:X  d   e[	        US   S   US   S   U5      [        S[        5      US   4:X  d   e[	        [        S[        S-  -   5      [        [        S-  S-
  [        5      U[
        5      nU[        [        S-  S[        S-  -  -
  S-   [        5      [        S[        S-  -  S-   [        5      [        [        S-  S-
  [        5      44:X  d   e[	        US   S   US   S   U[
        5      [        S[        5      US   4:X  d   e[        S[        S[        5      [        S[        S-  -   5      /0S	9n[	        [        S[        S-  -   5      [        [        [        5      U[
        5      nU[        [        [        5      [        S[        5      [        S[        5      44:X  d   e[	        US   S   US   S   U[
        5      [        S[        5      US   4:X  d   eg )Nr      r   r$   r   r   D	extensionZZ[x]domainr   )r   r   r   r   r   r   )r%   r(   DErs       r,   test_weak_normalizerr;   (   s   a!eQT\AadF"b1Q3h1_4qAv=ac1LaPAQTAadF]Q"A	#Q
DAJ/G)H	IBb!$AadQTkAadF*Qq!tV3ac9A=qQ	q1uadlQqS !G	4	a!eQw	'	)* * * * 1Q47AaDGR0T!QZ14FFFFQAXQTAXq(92qAAadQq!tVma'+d2ad7Q;.BDAPQSTDU-VWWWW1Q47AaDGR3Q
AaD7IIII	#Q
DQTN/K)L	MBQAXQ
B:Aad1aj$q!*566661Q47AaDGR3Q
AaD7IIIIr.   c                    ^ [        S[        S[        5      /0S9m[        [        U4S j5        [        [
        S-  S-   [
        5      [        S[
        5      p[        S[
        5      [        [
        S-  [
        5      p2[        S[        S[        5      [        [
        S-  S-   [
        5      /0S9m[        XX#T5      [        [
        [
        5      [        [
        S-  [
        S-  -
  [
        -   S-
  [
        5      [        S[
        5      4[        S[
        5      [        S[
        5      4[        [
        [
        5      4:X  d   eg )Nr2   r   r3   c            	         > [        [        S[        5      [        S[        5      [        S[        5      [        [        [        5      T 5      $ Nr   )r   r   r   r9   s   r,   <lambda>#test_normal_denom.<locals>.<lambda><   s/    <Q
DQRTUJAJQ
B4 r.   r   r   )r   r   r   r   r	   r   r   )fafdgagdr9   s       @r,   test_normal_denomrF   :   s    	#Q
|)<	=B
) ,  !!Q$(AQ
!QZadA	#Q
DA1<M/N)O	PB+	ad1a4!Q$;?Q.2DAJ?$q!*Q
B!QZ	!! ! !r.   c            
        ^  [        S[        S[        5      [        [        [        5      /0S9m [	        [        S[        5      [        [        S-  [        5      [        S[        5      [        [        S-  S-
  [        5      [        [        [        5      T 5      [        S[        5      [        [        S-  S-
  [        5      [        [        S-  S-
  [        5      [        [        [        5      4:X  d   e[        S[        S[        5      [        S[        -  [
        -  [
        5      [        [        [        -  [        -  [        5      /0S9m T R                  5         [	        [        S[
        5      [        [        [        -  [
        5      [        S[
        5      [        [
        [
        5      [        S[
        5      T 5      [        S[
        SS9[        [        [        -  [
        SS9[        [
        [
        SS9[        S[
        SS94:X  d   e[	        [        S[        5      [        [        S-  [        5      [        S[        5      [        [        S-  S-
  [        5      [        [        [        5      T S	S
9[        S[        [
        SS9[        [        S-  [
        [        SS9[        [        [        [
        SS9[        S[
        SS94:X  d   e[        [        U 4S j5        g )Nr2   r   r3   r   r1   ZZr6   z	ZZ_I[k,x]tancaser5   c            
         > [        [        S[        5      [        [        S-  [        5      [        S[        5      [        [        S-  S-
  [        5      [        [        [        5      T SS9$ )Nr   r   unrecognized_caserJ   )r   r   r   r?   s   r,   r@   $test_special_denom.<locals>.<lambda>_   sM    }T!QZadAQPQ
TXYZ\]Y]`aYacdTeAJ, .r.   )r   r   r   r   r   t0r   kt1decrement_levelr   
ValueErrorr?   s   @r,   test_special_denomrT   F   s    	#Q
DAJ/G)H	IBaT!Q$]DAJQTAXq@QAJ	aT!Q$(A&QTAXq(941:FG G G 
#Q
DAb"<MQqSVR0 * 
Bad1Q3mT!R[$r2,BK	aD	!4!R#DRD)42d+C	EE E E aT!Q$]DAJQTAXq@QAJ Ar$'adB')JAr$'aD)ACC C C
 : . /r.   c                  8   [        S[        S[        5      [        [        [        S-  -  [        5      [        S[        -  [        5      /0S9n [        [        [        S-  [        5      [        S[        S-  -  [        S-  -  S[        -  -   * [        5      [        S[        -  S-
  [        S-  -  [        [        -   [        -  [        S-  -  -   [        S[        S-  -  -   S-  [        -  [        S-  -  -
  [        [        -  -   [        5      U 5      S:X  d   eg )Nr2   r   r   r3   r   r   )r   r   r   rO   r   r   r?   s    r,   test_bound_degree_failrV   c   s    	#Q
R1Wb4!Q<0) ** 
+BQT1ta1fQTkAaC.?,@!'DacAgq!t^rAvqjAo-a1fa0A!Q$0FF1L		  r.   c                     [        S[        S[        5      /0S9n [        [        S[        5      [        S[        -  [        5      [        S[        5      U 5      S:X  d   e[        S[        S[        5      [        [        S-  S-   [        5      /0S9n [        [        [        [        5      [        [        S-
  [        S-  S-   -  [        5      [        S[        5      U 5      S:X  d   eg )Nr2   r   r3   r1   r   r   )r   r   r   r   r   r?   s    r,   test_bound_degreerX   l   s    	#Q
|)<	=BQ
DAqM41:rBaGGG 
#Q
DA1<M/N)O	PBQ
D!a%!Q$();Q$?aRPTUUUUr.   c                  4  ^  [        S[        S[        5      [        [        S-  S-   [        5      /0S9m [	        [
        U 4S j5        [        S[        S[        5      [        [        [        5      /0S9m [        [        [        S-  [        [        -  S-  -   [        S-  -   [        5      [        [        S-  [        S-  -  S[        -  S-
  [        -  -   [        5      [        [        S-  [        S-  -  S[        -  S-
  [        -  -   [        5      ST 5      [        S[        5      [        S[        5      S[        S[        5      [        S[        SS94:X  d   e[        S[        S[        5      [        [        [        S-  -  [        5      [        S[        -  [        5      /0S9m [        [        [        S-  [        5      [        [        S-  * [        S-  -  S[        -  -
  [        5      [        S[        -  S-
  [        S	-  -  [        [        -   [        -  [        S
-  -  -   [        S	[        S-  -  -   S[        -  -  [        S-  -  -
  [        [        -  -   [        5      S
T 5      [        S[        5      [        S[        5      S[        S[        5      [        [        [        S-  -  S-  [        S-  [        S-  -  -   [        S-  [        -  -
  [        SS94:X  d   e[        S[        S[        5      /0S9m [        [        [        S-  [        -   S-   [        5      [        S[        -  S-
  [        5      [        [        S-  S-  S
[        S	-  -  S	-  -   [        S
-  -   [        S-  -
  S-   [        5      S	T 5      [        S[        SS9[        [        S-  [        SS	5      -
  [        5      S[        [        S-  [        -   S-   [        5      [        [        [        SS	5      -  [        5      4:X  d   e[        [        [        S-  [        -   S-   [        5      [        S[        -  S-
  [        5      [        [        S-  S-  S
[        S	-  -  S	-  -   [        S
-  -   [        S-  -
  S-   [        5      [        T 5      [        S[        SS9[        [        S-  [        SS	5      -
  [        5      S[        -   [        [        S-  [        -   S-   [        5      [        [        [        SS	5      -  [        5      4:X  d   e[        S[        S[        5      [        S[        5      /0S9m [	        [
        U 4S j5        [        S[        S[        5      /0S9m [        [        [        S-  [        -
  [        5      [        S[        5      [        S[        S	-  -  S[        S
-  -  -
  S[        S-  -  -   [        5      S	T 5      [        S[        SS9[        S[        5      S[        S[        5      [        S
[        S
-  -  S[        S-  -  -
  [        SS94:X  d   e[        [        [        S-  [        -
  [        5      [        [        S-  S[        -  -
  S
-   [        5      [        [        S-  [        S-  -
  S[        S	-  -  -
  S
[        S
-  -  -   [        S-  -
  [        5      ST 5      [        S[        SS9[        [        S-   [        SS9S[        [        S	-  [        S
-  -
  [        5      [        [        S
-  [        S-  -
  [        SS94:X  d   eg )Nr2   r   r   r3   c                     > [        [        [        [        5      [        [        S-
  [        S-  S-   -  [        5      [        S[        5      ST 5      $ Nr   r   r   r   r   r   r?   s   r,   r@   test_spde.<locals>.<lambda>   sB    4Q
D!a%RSUVRVYZRZI[]^D_aefgijakmnpr3sr.   r   zZZ(x)r6   r   r   zZZ(x,t0)r1   r0   QQc                     > [        [        [        S-
  [        S-  S-   S-  -  [        5      [        [        S-
  [        S-  S-   -  [        5      [        S[        5      ST 5      $ r[   r\   r?   s   r,   r@   r]      si    4a!eadQhQR]=RTU8VX\^_bc^cfgijfjmnfn]oqrXsuyz{}~u  BC  EG  4Hr.   	   r!   rH      r    )
r   r   r   r   r   r	   r   rO   r   r   r?   s   @r,   	test_spderb   ~   s   	#Q
DA1<M/N)O	PB
)+st	#Q
DAJ/G)H	IBQTAaCE\AqD(!,d1a419!a{3JA.NQT!Q$Y!A#'1$a(!R1	aT!QZDAJQ'0JKL L L 
#Q
DAqD"<MtTUVWTWYZ|/\)]	^BQT1tQTE!Q$J1$4a8!A#'1a4261*QT/	)R!AqD&[1Q3,?1,D	Dqs	JANPQSUW	aT!QZDAJR1WQYAad"QT!V+QzB	DD D D 
#Q
|)<	=BQTAX\1%tBqD1Ha'8$q!tAvadF1H@!t@d@@ !;#$%r+	a4	 $qsXa^';Q"?DAPQTUWXDY[_`abjklnobp`prs[tuv v v QTAX\1%tBqD1Ha'8$q!tAvadF1H@!t@d@@ !;#$%r+	a4	 $qsXa^';Q"?aaQRdUVhYZl\]I^`defgopqstgueuwx`yz{ { { 
#Q
DAJ/G)H	IB
)  ,H  I	#Q
|)<	=BQTAXq!41:tAadFR1W4DqAv4Mq/QSTVXY	a4	 $q!*aaT!AqD&1QPQT6/ST]a=bcd d dQTAXq!41qs
Q#:DA1qQRTUQUvAUXYZ[]^Z^X^A^abdeaeAegh<iklnpq	a4	 $q1ua"=q$q!taQRd{TUBVX\]^`a]adeghdh]hjktxXyz{ { {r.   c            
      P   [        S[        S[        5      [        S[        S-  -   [        5      /0S9n [	        [        [        S-  S-   [        5      [        [        S-  [        S-   [        S-  -  -   [        -   [        -   S-   [        5      [
        U 5      [        [        [        -   [        5      :X  d   e[        S[        S[        5      /0S9n [	        [        S[        5      [        [        S-  [        SS5      -
  [        5      [
        U 5      [        [        S-  S-  [        S-  -
  [        5      :X  d   e[        S[        S[        5      [        [        S-  S-   [        5      /0S9n [	        [        S[        5      [        [        S-  S[        -  -   S-   [        5      SU 5      [        [        S-   [        [        5      :X  d   e[        S[        S[        5      [        [        S-  S-   [        5      /0S9n [        [        S[        -
  [        5      [        [        S-  [        S-  -   S[        -  [        -  -
  S[        -  -
  [        5      [
        U 5      [        [        S-  [        5      S[        SS[        -  -
  [        -  S[        -  -
  [        5      4:X  d   eg )	Nr2   r   r   r3   r   r   r   r1   )r   r   r   r   r   r   r   r   r?   s    r,   test_solve_poly_rde_no_cancelrd      s!   	#Q
DQT1<M/N)O	PB$q!tax+T!Q$!a%A2E2IA2MPQ2QST-UAE1~   
#Q
|)<	=B$q!*d1Q3!Q+?&CRLQT!Vac\1  	#Q
DA1<M/N)O	PB$q!*d1a4!A#:>1&=q"EQUAq   
#Q
DA1<M/N)O	PB4Aq>A1qs1u	qs	"A&B0	adA4ac1qs 2A678 8 8r.   c                    ^  [        S[        S[        5      [        [        [        5      /0S9m [	        [        S[        -  [        5      [        S[        -  [        5      ST 5      [        S[        5      :X  d   e[	        [        S[        -  [        5      [        SS[        -  -   [        -  [        5      ST 5      [        [        [        5      :X  d   e[        S[        S[        5      [        S[        -  [        5      /0S9m [        [        U 4S j5        [        [        S[        5      [        [        S[        -  -   [        5      ST 5      [        [        [        5      :X  d   e[        [        S[        -  [        5      [        S[        -  [        S-  -  S[        -  [        -  -   [        5      ST 5      [        [        S-  [        5      :X  d   eg )	Nr2   r   r3   r   r   c                  h   > [        [        S[        5      [        [        [        5      [        T 5      $ r>   )r   r   r   r   r?   s   r,   r@   ,test_solve_poly_rde_cancel.<locals>.<lambda>   s#    3CDAJPTUVXYPZ\^`b3cr.   r   r   )r   r   r   r   r   r   r	   r   r?   s   @r,   test_solve_poly_rde_cancelrh      sc   	#Q
DAJ/G)H	IBd1Q3lD1aL!R8Q
  d1Q3lD!ac'1a$8!R@Q
  
 
#Q
D1aL/I)J	KB )+cdDAJQ1Wa(8!R@Q
  D1aL$qs1a4x!A#a%/?*CQKQT1  r.   c            
         [        S[        S[        5      [        [        [        5      /0S9n U R	                  5         [        [        S[        -  [        5      [        S[        5      [        SS[        -  -
  S[        S-  -  -
  [        5      [        S[        5      U 5      [        [        S-   [        5      [        S[        5      4:X  d   eg )Nr2   r   r3   r1   r   )r   r   r   r   rR   r   r?   s    r,   test_rischDErj      s    	#Q
DAJ/G)H	IB41a=$q!*d1qs7Qq!tV3CQ.GAJ	a!eQa$% % %r.   N).__doc__sympy.core.numbersr   r   r   sympy.core.symbolr   sympy.polys.polytoolsr   sympy.integrals.rischr   r	   sympy.integrals.rder
   r   r   r   r   r   r   r   r   r   r   r   sympy.testing.pytestr   	sympy.abcr   r   r   r   rO   rQ   t2rP   r-   r;   rF   rT   rV   rX   rb   rd   rh   rj    r.   r,   <module>ru      s    E 0 0 % &$< < < < (     BA8.J$	!/:V${68&0%r.   