
    sgc%                         d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZmZmZmZmZmZmZmZmZmZmZmZ ddlmZ ddlmZmZmZmZ  ed	      \  Z Z!Z"Z#d
 Z$d Z%d Z&d Z'd Z(d Z)d Z*d Z+d Z,d Z-y)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                  @   t        t        dz  t              } t        t        dz  dz   dz  t        z  t              }t        t        dz  dz   dz  t        z  t              }t        t        dz  dz   dz  t        dz  z  t              }t        t        dz  dz   dz  t        dz  z  t              }t        t        t              }t        dt        dz  z   t              }t        | |t              dk(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        | |t              d	k(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        ||t              dk(  sJ t        t        d	t              t        t        t              t              t        u sJ t	        t        t        dz  dz
  t              t        t        dz         t              t	        t        t        dz
  t              t        dt              t              cxk(  rd
k(  sJ  J t	        t        d	t              t        dt              t              t        u sJ y )N               
   d   %   r   )r   r   r
   r   r   )abcdep1p2s          Q/var/www/html/venv/lib/python3.12/site-packages/sympy/integrals/tests/test_rde.pytest_order_atr-      s6   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Ar1"""Ar1"""Ar1"""Ar1###Ar1###Ar1"""Ar1"""Ar1"""Ar1###Ar1$$$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            	         t        dt        z   t        dz  z  dt        dz  z  z   ddt        z  z
  t        dz  z  z   dt        dz  z  z
  ddt        z  z   t        z  z   t              } t        t        dz  dt        dz  z  z
  dz   t              }t        dt        dt              t        t        t              gi	      }t	        | ||t
              }|t        t        dz  t        dz  z
  dt        dz  z  z
  dt        dz  z  z   dt        z  z   dz
  t        d
      t        dt        z   t        dz  z  t        t        z  z   t        d
      t        t        dz   t        d
      ffk(  sJ t	        |d   d   |d   d   |      t        dt              |d   fk(  sJ t	        t        dt        dz  z         t        t        dz  dz
  t              |t
              }|t        t        dz  dt        dz  z  z
  dz   t              t        dt        dz  z  dz   t              t        t        dz  dz
  t              ffk(  sJ t	        |d   d   |d   d   |t
              t        dt              |d   fk(  sJ t        dt        dt              t        dt        dz  z         gi	      }t	        t        dt        dz  z         t        t        t              |t
              }|t        t        t              t        dt              t        dt              ffk(  sJ t	        |d   d   |d   d   |t
              t        dt              |d   fk(  sJ y )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1b!$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                     t        dt        dt              gi      t        t        fd       t        t
        dz  dz   t
              t        dt
              }} t        dt
              t        t
        dz  t
              }}t        dt        dt              t        t
        dz  dz   t
              gi      t        | |||      t        t
        t
              t        t
        dz  t
        dz  z
  t
        z   dz
  t
              t        dt
              ft        dt
              t        dt
              ft        t
        t
              fk(  sJ y )Nr2   r   r3   c            	          t        t        dt              t        dt              t        dt              t        t        t                     S Nr   )r   r   r   r9   s   r,   <lambda>z#test_normal_denom.<locals>.<lambda><   s1    <Q
DQRTUJAJQ
B4  r.   r   r   )r   r   r   r   r	   r   r   )fafdgagdr9   s       @r,   test_normal_denomrE   :   s    	#Q
|)<	=B
) ,  !!Q$(AQ
B!QZadAB	#Q
DA1<M/N)O	PBBB+	ad1a4!Q$;?Q.2DAJ?$q!*Q
B!QZ	!! ! !r.   c            
          t        dt        dt              t        t        t              gi       t	        t        dt              t        t        dz  t              t        dt              t        t        dz  dz
  t              t        t        t                     t        dt              t        t        dz  dz
  t              t        t        dz  dz
  t              t        t        t              fk(  sJ t        dt        dt              t        dt        z  t
        z  t
              t        t        t        z  t        z  t              gi        j                          t	        t        dt
              t        t        t        z  t
              t        dt
              t        t
        t
              t        dt
                     t        dt
        d      t        t        t        z  t
        d      t        t
        t
        d      t        dt
        d      fk(  sJ t	        t        dt              t        t        dz  t              t        dt              t        t        dz  dz
  t              t        t        t               d	
      t        dt        t
        d      t        t        dz  t
        t        d      t        t        t        t
        d      t        dt
        d      fk(  sJ t        t         fd       y )Nr2   r   r3   r   r1   ZZr6   z	ZZ_I[k,x]tancaser5   c            
          t        t        dt              t        t        dz  t              t        dt              t        t        dz  dz
  t              t        t        t               d      S )Nr   r   unrecognized_caserI   )r   r   r   r?   s   r,   r@   z$test_special_denom.<locals>.<lambda>_   sO    }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_denomrR   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                  <   t        dt        dt              t        t        t        dz  z  t              t        dt        z  t              gi      } t        t        t        dz  t              t        dt        dz  z  t        dz  z  dt        z  z    t              t        dt        z  dz
  t        dz  z  t        t        z   t        z  t        dz  z  z   t        dt        dz  z  z   dz  t        z  t        dz  z  z
  t        t        z  z   t              |       dk(  sJ y )Nr2   r   r   r3   r   r   )r   r   r   rM   r   r   r?   s    r,   test_bound_degree_failrT   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                     t        dt        dt              gi      } t        t        dt              t        dt        z  t              t        dt              |       dk(  sJ t        dt        dt              t        t        dz  dz   t              gi      } t        t        t        t              t        t        dz
  t        dz  dz   z  t              t        dt              |       dk(  sJ y )Nr2   r   r3   r1   r   r   )r   r   r   r   r   r?   s    r,   test_bound_degreerV   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                  ~    t        dt        dt              t        t        dz  dz   t              gi       t	        t
         fd       t        dt        dt              t        t        t              gi       t        t        t        dz  t        t        z  dz  z   t        dz  z   t              t        t        dz  t        dz  z  dt        z  dz
  t        z  z   t              t        t        dz  t        dz  z  dt        z  dz
  t        z  z   t              d       t        dt              t        dt              dt        dt              t        dt        d      fk(  sJ t        dt        dt              t        t        t        dz  z  t              t        dt        z  t              gi       t        t        t        dz  t              t        t        dz   t        dz  z  dt        z  z
  t              t        dt        z  dz
  t        d	z  z  t        t        z   t        z  t        d
z  z  z   t        d	t        dz  z  z   dt        z  z  t        dz  z  z
  t        t        z  z   t              d
       t        dt              t        dt              dt        dt              t        t        t        dz  z  dz  t        dz  t        dz  z  z   t        dz  t        z  z
  t        d      fk(  sJ t        dt        dt              gi       t        t        t        dz  t        z   dz   t              t        dt        z  dz
  t              t        t        dz  dz  d
t        d	z  z  d	z  z   t        d
z  z   t        dz  z
  dz   t              d	       t        dt        d      t        t        dz  t        dd	      z
  t              dt        t        dz  t        z   dz   t              t        t        t        dd	      z  t              fk(  sJ t        t        t        dz  t        z   dz   t              t        dt        z  dz
  t              t        t        dz  dz  d
t        d	z  z  d	z  z   t        d
z  z   t        dz  z
  dz   t              t               t        dt        d      t        t        dz  t        dd	      z
  t              dt        z   t        t        dz  t        z   dz   t              t        t        t        dd	      z  t              fk(  sJ t        dt        dt              t        dt              gi       t	        t
         fd       t        dt        dt              gi       t        t        t        dz  t        z
  t              t        dt              t        dt        d	z  z  dt        d
z  z  z
  dt        dz  z  z   t              d	       t        dt        d      t        dt              dt        dt              t        d
t        d
z  z  dt        dz  z  z
  t        d      fk(  sJ t        t        t        dz  t        z
  t              t        t        dz  dt        z  z
  d
z   t              t        t        dz  t        dz  z
  dt        d	z  z  z
  d
t        d
z  z  z   t        dz  z
  t              d       t        dt        d      t        t        dz   t        d      dt        t        d	z  t        d
z  z
  t              t        t        d
z  t        dz  z
  t        d      fk(  sJ y )Nr2   r   r   r3   c                      t        t        t        t              t        t        dz
  t        dz  dz   z  t              t        dt              d       S Nr   r   r   r   r   r   r?   s   r,   r@   ztest_spde.<locals>.<lambda>   sD    4Q
D!a%RSUVRVYZRZI[]^D_aefgijakmnpr3s r.   r   zZZ(x)r6   r   r   zZZ(x,t0)r1   r0   QQc                      t        t        t        dz
  t        dz  dz   dz  z  t              t        t        dz
  t        dz  dz   z  t              t        dt              d       S rY   rZ   r?   s   r,   r@   ztest_spde.<locals>.<lambda>   sk    4a!eadQhQR]=RTU8VX\^_bc^cfgijfjmnfn]oqrXsuyz{}~u  BC  EG  4H r.   	   r!   rG      r    )
r   r   r   r   r   r	   r   rM   r   r   r?   s   @r,   	test_spder_   ~   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            
      `   t        dt        dt              t        dt        dz  z   t              gi      } t	        t        t        dz  dz   t              t        t        dz  t        dz   t        dz  z  z   t        z   t        z   dz   t              t
        |       t        t        t        z   t              k(  sJ t        dt        dt              gi      } t	        t        dt              t        t        dz  t        dd      z
  t              t
        |       t        t        dz  dz  t        dz  z
  t              k(  sJ t        dt        dt              t        t        dz  dz   t              gi      } t	        t        dt              t        t        dz  dt        z  z   dz   t              d|       t        t        dz   t        t              k(  sJ t        dt        dt              t        t        dz  dz   t              gi      } t        t        dt        z
  t              t        t        dz  t        dz  z   dt        z  t        z  z
  dt        z  z
  t              t
        |       t        t        dz  t              dt        ddt        z  z
  t        z  dt        z  z
  t              fk(  sJ y )	Nr2   r   r   r3   r   r   r   r1   )r   r   r   r   r   r   r   r   r?   s    r,   test_solve_poly_rde_no_cancelra      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                      t        dt        dt              t        t        t              gi       t	        t        dt        z  t              t        dt        z  t              d       t        dt              k(  sJ t	        t        dt        z  t              t        ddt        z  z   t        z  t              d       t        t        t              k(  sJ t        dt        dt              t        dt        z  t              gi       t        t         fd       t        t        dt              t        t        dt        z  z   t              d       t        t        t              k(  sJ t        t        dt        z  t              t        dt        z  t        dz  z  dt        z  t        z  z   t              d       t        t        dz  t              k(  sJ y )	Nr2   r   r3   r   r   c                  h    t        t        dt              t        t        t              t               S r>   )r   r   r   r   r?   s   r,   r@   z,test_solve_poly_rde_cancel.<locals>.<lambda>   s%    3CDAJPTUVXYPZ\^`b3c r.   r   r   )r   r   r   r   r   r   r	   r   r?   s   @r,   test_solve_poly_rde_cancelrd      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            
         t        dt        dt              t        t        t              gi      } | j	                          t        t        dt        z  t              t        dt              t        ddt        z  z
  dt        dz  z  z
  t              t        dt              |       t        t        dz   t              t        dt              fk(  sJ y )Nr2   r   r3   r1   r   )r   r   r   r   rP   r   r?   s    r,   test_rischDErf      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   rM   rO   t2rN   r-   r;   rE   rR   rT   rV   r_   ra   rd   rf    r.   r,   <module>rq      s    E 0 0 % &$< < < < (     BA8.J$	!/:V${68&0%r.   