U
    Ç-ec%  ã                   @   s   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
d„ Z$dd„ Z%dd„ Z&dd„ Z'dd„ Z(dd„ Z)dd„ Z*dd„ Z+dd„ Z,dd„ Z-dS )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                  C   s  t td tƒ} t td d d t tƒ}t td d d t tƒ}t td d d td  tƒ}t td d d td  tƒ}t ttƒ}t dtd  tƒ}t| |tƒdks®t‚t||tƒdksÂt‚t||tƒdksÖt‚t||tƒdksêt‚t||tƒdksþt‚t| |tƒd	kst‚t||tƒdks*t‚t||tƒdks@t‚t||tƒdksVt‚t||tƒdkslt‚tt d	tƒt ttƒtƒtksŽt‚tt td d tƒt td ƒtƒtt td tƒt dtƒtƒ  krÜd
ksân t‚tt d	tƒt dtƒtƒtkst‚d S )Né   é   é   é   é   é
   éd   é%   r   éÿÿÿÿ)r   r   r	   ÚAssertionErrorr   r
   )ÚaÚbÚcÚdÚeÚp1Úp2© r+   ú_/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/integrals/tests/test_rde.pyÚtest_order_at   s0    
" ÿ
ÿr-   c                  C   s   t dt td  dtd   ddt  td   dtd   ddt  t  tƒ} t td dtd   d tƒ}tdt dtƒt ttƒgid	}t| ||tƒ}|t td td  dtd   dtd   dt  d td
dt dt td  tt  td
dt td td
dffkst‚t|d d |d d |ƒt dtƒ|d fksLt‚tt dtd  ƒt td d tƒ|tƒ}|t td dtd   d tƒt dtd  d tƒt td d tƒffksÄt‚t|d d |d d |tƒt dtƒ|d fksút‚tdt dtƒt dtd  ƒgid	}tt dtd  ƒt ttƒ|tƒ}|t ttƒt dtƒt dtƒffksft‚t|d d |d d |tƒt dtƒ|d fksœt‚d S )Nr   é   r   r"   r   r   éþÿÿÿÚD©Ú	extensionúZZ[x]©Údomainr   éýÿÿÿ)r   r   r   r   r   r   r#   )r$   r'   ÚDEÚrr+   r+   r,   Útest_weak_normalizer(   s"    R> ÿÿ4(P6$ (r9   c                     sê   t dtdtƒgid‰ tt‡ fdd„ƒ ttd d tƒtdtƒ } }tdtƒttd tƒ }}t dtdtƒttd d tƒgid‰ t| |||ˆ ƒtttƒttd td  t d tƒtdtƒftdtƒtdtƒftttƒfksæt‚d S )Nr0   r   r1   c                      s(   t tdtƒtdtƒtdtƒtttƒˆ ƒS ©Nr   )r   r   r   r+   ©r7   r+   r,   Ú<lambda><   s     ÿz#test_normal_denom.<locals>.<lambda>r   r   )r   r   r   r   r   r   r   r#   )ÚfaÚfdÚgaÚgdr+   r;   r,   Útest_normal_denom:   s    &6ÿÿÿrA   c                	      sÜ  t dtdtƒtttƒgid‰ ttdtƒttd tƒtdtƒttd d tƒtttƒˆ ƒtdtƒttd d tƒttd d tƒtttƒfks’t‚t dtdtƒtdt t tƒttt t	 t	ƒgid‰ ˆ  
¡  ttdtƒttt tƒtdtƒtttƒtdtƒˆ ƒtdtddttt tddtttddtdtddfksBt‚ttdtƒttd tƒtdtƒttd d tƒtttƒˆ d	d
tdttddttd ttddttttddtdtddfksÆt‚tt‡ fdd„ƒ d S )Nr0   r   r1   r   r/   ÚZZr4   z	ZZ_I[k,x]Útan©Úcaser3   c                	      s@   t tdtƒttd tƒtdtƒttd d tƒtttƒˆ ddS )Nr   r   Zunrecognized_caserD   )r   r   r   r+   r;   r+   r,   r<   _   s   .  ÿz$test_special_denom.<locals>.<lambda>)r   r   r   r   r   r#   Út0r   ÚkÚt1Údecrement_levelr   Ú
ValueErrorr+   r+   r;   r,   Útest_special_denomF   s>    . ÿ2þÿ
& ÿ ÿþ
.  ÿ  ÿþ
rK   c               	   C   sÈ   t dtdtƒtttd  tƒtdt tƒgid} tttd tƒtdtd  td  dt   tƒtdt d td  tt t td   tdtd   d t td   tt  tƒ| ƒdksÄt‚d S )Nr0   r   r   r1   r   r   )r   r   r   rF   r   r   r#   r;   r+   r+   r,   Útest_bound_degree_failc   s     ÿ
0PÿþþrL   c                  C   s¤   t dtdtƒgid} ttdtƒtdt tƒtdtƒ| ƒdksBt‚t dtdtƒttd d tƒgid} ttttƒttd td d  tƒtdtƒ| ƒdks t‚d S )Nr0   r   r1   r/   r   r   )r   r   r   r   r#   r   r;   r+   r+   r,   Útest_bound_degreel   s    ,&rM   c                
      s$  t dtdtƒttd d tƒgid‰ tt‡ fdd„ƒ t dtdtƒtttƒgid‰ tttd tt d  td  tƒttd td  dt d t  tƒttd td  dt d t  tƒdˆ ƒtdtƒtdtƒdtdtƒtdtdd	fksöt‚t dtdtƒtttd  tƒtdt tƒgid‰ tttd tƒttd  td  dt  tƒtdt d td
  tt t td   td
td   dt  td   tt  tƒdˆ ƒtdtƒtdtƒdtdtƒtttd  d td td   td t  tdd	fkst‚t dtdtƒgid‰ tttd t d tƒtdt d tƒttd d dtd
  d
  td  td  d tƒd
ˆ ƒtdtdd	ttd t	dd
ƒ tƒdttd t d tƒttt	dd
ƒ tƒfksÔt‚tttd t d tƒtdt d tƒttd d dtd
  d
  td  td  d tƒt
ˆ ƒtdtdd	ttd t	dd
ƒ tƒdt
 ttd t d tƒttt	dd
ƒ tƒfksŽt‚t dtdtƒtdtƒgid‰ tt‡ fdd„ƒ t dtdtƒgid‰ tttd t tƒtdtƒtdtd
  dtd   dtd   tƒd
ˆ ƒtdtdd	tdtƒdtdtƒtdtd  dtd   tdd	fksft‚tttd t tƒttd dt  d tƒttd td  dtd
   dtd   td  tƒdˆ ƒtdtdd	ttd tdd	dttd
 td  tƒttd td  tdd	fks t‚d S )Nr0   r   r   r1   c                      s2   t tttƒttd td d  tƒtdtƒdˆ ƒS ©Nr   r   r   ©r   r   r   r+   r;   r+   r,   r<   €   ó    ztest_spde.<locals>.<lambda>r   zZZ(x)r4   r   r   zZZ(x,t0)r/   r.   ZQQc                      sF   t ttd td d d  tƒttd td d  tƒtdtƒdˆ ƒS rN   rO   r+   r;   r+   r,   r<   ’   rP   é	   r   rB   é   r   )r   r   r   r   r   r   r   r#   rF   r   r   r+   r+   r;   r,   Ú	test_spde~   s|    &F$  ÿ(þ2,T  ÿ4ÿþ
2ÿÿÿÿÿ ÿLþ
2ÿÿÿÿÿ ÿPþ
H@ÿ
dLÿrS   c                  C   sØ  t dtdtƒtdtd  tƒgid} tttd d tƒttd td td   t t d tƒt| ƒttt tƒkszt‚t dtdtƒgid} ttdtƒttd tddƒ tƒt| ƒttd d td  tƒksÖt‚t dtdtƒttd d tƒgid} ttdtƒttd dt  d tƒd| ƒttd ttƒks<t‚t dtdtƒttd d tƒgid} ttdt tƒttd td  dt t  dt  tƒt| ƒttd tƒdtddt  t dt  tƒfksÔt‚d S )	Nr0   r   r   r1   r   r   r   r/   )	r   r   r   r   r   r   r#   r   r   r;   r+   r+   r,   Útest_solve_poly_rde_no_cancel™   s.    &: ÿÿ&ÿ&(ÿ
&(  ÿ,þrT   c                      s8  t dtdtƒtttƒgid‰ ttdt tƒtdt tƒdˆ ƒtdtƒksNt‚ttdt tƒtddt  t tƒdˆ ƒtttƒks†t‚t dtdtƒtdt tƒgid‰ tt‡ fdd„ƒ ttdtƒttdt  tƒdˆ ƒtttƒksêt‚ttdt tƒtdt td  dt t  tƒd	ˆ ƒttd tƒks4t‚d S )
Nr0   r   r1   r   r   c                      s   t tdtƒtttƒtˆ ƒS r:   )r   r   r   r   r+   r;   r+   r,   r<   º   rP   z,test_solve_poly_rde_cancel.<locals>.<lambda>r   r   )	r   r   r   r   r   r#   r   r   r   r+   r+   r;   r,   Útest_solve_poly_rde_cancel¬   s     ÿ(ÿ" ÿ4ÿrU   c                  C   s†   t dtdtƒtttƒgid} |  ¡  ttdt tƒtdtƒtddt  dtd   tƒtdtƒ| ƒttd tƒtdtƒfks‚t‚d S )Nr0   r   r1   r/   r   )r   r   r   r   rI   r   r#   r;   r+   r+   r,   Útest_rischDEÄ   s    2 ÿþrV   N).Ú__doc__Zsympy.core.numbersr   r   r   Zsympy.core.symbolr   Zsympy.polys.polytoolsr   Zsympy.integrals.rischr   r   Zsympy.integrals.rder	   r
   r   r   r   r   r   r   r   r   r   r   Zsympy.testing.pytestr   Z	sympy.abcr   r   r   r   rF   rH   Út2rG   r-   r9   rA   rK   rL   rM   rS   rT   rU   rV   r+   r+   r+   r,   Ú<module>   s$   8	