o
    jg)$  ã                   @   sò   d dl mZmZ d dlmZ d dlmZmZ d dl	m
Z
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mZ d dlmZ ed	ƒ\Z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d„ Z)d S )!é    )Ú
DerivativeÚFunction)ÚEq)ÚSymbolÚsymbols)ÚexpÚlog)ÚcosÚsin)ÚS)Úpde_separateÚpde_separate_addÚpde_separate_mulÚpdsolveÚclassify_pdeÚcheckpdesol)Úraisesz	a b c x yc                  C   s¶   t dƒ\} }}}ttdƒ\}}}}}}	tt|	| |ƒ| ƒt|	| |ƒ|ƒt|	| |ƒƒ ƒ}
t|
|	| |ƒ|| ƒ||ƒgƒ}|t|| ƒ| ƒt|| ƒ ƒ t||ƒ|ƒt||ƒƒ gksYJ ‚d S )Núx,y,z,tÚFTXYZu)r   Úmapr   r   ÚDr   r   )ÚxÚyÚzÚtÚFÚTÚXÚYÚZÚuÚeqÚres© r#   úT/var/www/html/zoom/venv/lib/python3.10/site-packages/sympy/solvers/tests/test_pde.pyÚtest_pde_separate_add   s
   0Br%   c                     sv   t dƒ\‰} }‰ttdƒ\}‰ ‰}}‰ttˆˆˆƒˆƒtˆˆˆƒˆƒtˆˆˆƒƒ ƒ‰tt‡ ‡‡‡‡‡fdd„ƒ d S )Nr   r   c                      s    t ˆˆˆˆƒˆˆƒˆ ˆƒgdƒS )NÚdiv)r   r#   ©r   r   r!   r   r    r   r#   r$   Ú<lambda>   ó     z#test_pde_separate.<locals>.<lambda>)r   r   r   r   r   r   r   Ú
ValueError)r   r   r   r   r   r#   r'   r$   Útest_pde_separate   s   0 r+   c            	   
      s~  t dƒ\‰‰‰‰tddd} tdƒ}ttdƒ\‰ }}‰‰}‰t dƒ\}}‰ttˆ ˆˆˆƒˆƒtˆ ˆˆˆƒˆƒ tˆ ˆˆˆƒˆƒ dƒ‰tt‡ ‡‡‡‡‡‡fd	d
„ƒ tt‡ ‡‡‡‡‡‡fdd
„ƒ tt‡ ‡‡‡‡‡‡‡fdd
„ƒ tˆˆ ˆˆˆƒˆˆƒˆˆˆƒgƒtˆˆƒˆƒˆˆƒ tˆˆˆƒˆƒ ˆˆˆƒ tˆˆˆƒˆƒˆˆˆƒ  gksªJ ‚tˆˆ ˆˆˆƒˆˆƒˆˆƒ|ˆƒgƒtˆˆƒˆƒˆˆƒ t|ˆƒˆƒ |ˆƒ tˆˆƒˆƒˆˆƒ  gksáJ ‚ttˆˆˆƒˆˆƒ| d tˆˆˆƒˆˆƒ ƒ}t|ˆˆˆƒˆˆƒ|ˆƒgƒ}|tˆˆƒˆˆƒˆˆƒ t|ˆƒˆˆƒ| d |ˆƒ  gks(J ‚td| t|||ˆƒ|ƒ t|||ˆƒ|dƒ d|d  t|||ˆƒ|dƒ  t|||ˆƒˆdƒ dƒ‰tˆ|||ˆƒ|ˆƒˆ||ƒgƒ}|t|ˆƒˆˆƒ|ˆƒ tˆ||ƒ||ƒ ˆ||ƒ tˆ||ƒ|ƒ|ˆ||ƒ   tˆ||ƒ||ƒ|d ˆ||ƒ   gks®J ‚t|d | ƒ‰tˆˆ||ƒ||ƒ||ƒgƒ}|t||ƒ||ƒ||ƒ | t||ƒ|ƒ ||ƒ |d t||ƒ||ƒ ||ƒ  | |d   gksùJ ‚tˆˆ||ƒ||ƒ||ƒgƒ}||t||ƒ|ƒ ||ƒ |d t||ƒ||ƒ ||ƒ  | |d   t||ƒ||ƒ ||ƒ gks=J ‚d S )Nr   ÚCT)ÚrealÚPhiÚFRTXYZuz	r,theta,zr   c                      s"   t ˆˆ ˆˆˆƒˆˆƒˆˆˆƒgƒS ©N©r   r#   )r   r   r!   r    r   r   r   r#   r$   r(   +   ó   " z'test_pde_separate_mul.<locals>.<lambda>c                      s    t ˆˆ ˆˆˆƒˆˆƒˆˆƒgƒS r0   r1   r#   )r   r   r   r!   r   r   r   r#   r$   r(   -   r)   c                      s"   t ˆˆ ˆˆˆƒˆˆƒˆˆˆƒgƒS r0   r1   r#   )r   r   r   r!   r   r   r   r   r#   r$   r(   0   r2   é   é   )	r   r   r   r   r   r   r   r*   r   )	Úcr.   ÚRr   r   ÚrÚthetaÚwaver"   r#   )	r   r   r   r!   r   r    r   r   r   r$   Útest_pde_separate_mul   s\   <ÿÿ Jÿ$Bÿ.B.ÿÿÿ"ÿ"þÿFÿFÿr:   c                  C   sž   t dƒ\} }t dtd}t dtd\}}|| |ƒ}| | d¡| |d¡ }t|||| ƒ||ƒgƒ}|t|| ƒ| | ƒ|| ƒ t||ƒ||ƒ||ƒ gksMJ ‚d S )Nzx tÚf)ÚclszX Tr3   )r   r   Údiffr   r   )r   r   r;   r   r   r    r!   r"   r#   r#   r$   Útest_issue_11726Q   s   
<r>   c                  C   s”  t dƒ} t| ttƒ t| ttƒ t¡  t| ttƒ t¡  }d| ttƒ d| ttƒ t¡  | ttƒ t¡ }t| ttƒ t| ttƒ t¡  d| ttƒ t¡  }t| ttƒ | ttƒ t¡ d| ttƒ t¡  }td | ttƒ t| ttƒ t¡  tt | ttƒ t¡  }ttd  | ttƒ t| ttƒ t¡  | ttƒ t¡ }|||fD ]
}t|ƒdks·J ‚q­|||fD ]
}t|ƒdksÇJ ‚q½d S )Nr;   é   r3   ©Ú%1st_linear_constant_coeff_homogeneous)Ú1st_linear_variable_coeff)r   Úar   r   Úbr=   r5   r   )r;   Úeq1Úeq2Úeq3Úeq4Úeq5Úeq6r!   r#   r#   r$   Útest_pde_classify\   s   6262>:ÿrK   c            	   	      sd  t tddgƒ\} }t| ttƒ t| ttƒ t¡  t| ttƒ t¡  }d| ttƒ d| ttƒ t¡  | ttƒ t¡ }t| ttƒ t| ttƒ t¡  d| ttƒ t¡  }|||fD ]}t|t	|ƒƒd sjJ ‚q]t| ttƒ | ttƒ t¡ d| ttƒ t¡  ‰ d| ttƒ d| ttƒ t¡  d| ttƒ t¡  }| ttƒd| ttƒ t¡  d| ttƒ t¡  }tˆ t	|ƒt	|ƒgƒdtd |dt t ƒ t
t tdƒ dt tdƒ  ƒ fdtd |dt t ƒ t
t td	ƒ dt td	ƒ  ƒ fgksJ ‚ˆ ||fD ]}t|t	|ƒƒd sJ ‚q	t	ˆ ƒ}t|j|j dƒ‰tt‡ ‡fd
d„ƒ d S )Nr;   r   r?   r3   r   r4   Fé   é
   c                      s   t ˆ ˆddS )NF)Úsolve_for_func)r   r#   ©rH   Úsol4r#   r$   r(   |   s   z"test_checkpdesol.<locals>.<lambda>)r   r   rC   r   r   rD   r=   r5   r   r   r   r   r   ÚlhsÚrhsr   ÚNotImplementedError)	r;   r   rE   rF   rG   r!   rI   rJ   Úsolr#   rO   r$   Útest_checkpdesolk   s$   626262<<þrU   c                  C   sú   t tg d¢ƒ\} }}}| ttƒ| ttƒ t¡ | ttƒ t¡ }t|ƒt| ttƒ|tt ƒtt d td  ƒ ƒks=J ‚t||dt| ttƒ|tt ƒtt d td  ƒ ƒks\J ‚t||dt| ttƒ|tt ƒtt d td  ƒ ƒks{J ‚d S )N)r;   r   ÚGÚHr3   )Úsolvefun)r   r   r   r   r=   r   r   r   )r;   r   rV   rW   rE   r#   r#   r$   Útest_solvefun€   s
   *:>BrY   c               	   C   sö  t tddgƒ\} }| ttƒ}d| | t¡ | t¡ }t|ƒdks$J ‚t|ƒ}|t||tt ƒtt t ƒ ƒks<J ‚t	||ƒd sEJ ‚dd| t¡ |  d| t¡ |  }t|ƒdksaJ ‚t|ƒ}|t||dt dt  ƒtt
dƒ t d	 t
d
ƒt d	  ƒ ƒks‰J ‚t	||ƒd s’J ‚|d| t¡  d| t¡  }t|ƒdksªJ ‚t|ƒ}|t||dt dt  ƒtdt t
dƒ dt t
dƒ  ƒ ƒksÑJ ‚t	||ƒd sÚJ ‚t| t| t¡  t| t¡  }t|ƒ}t	||ƒd sùJ ‚d S )Nr;   r   r3   r@   r   é   r?   é   é   é   é   é   iúÿÿÿéU   )r   r   r   r   r=   r   r   r   r   r   r   rC   rD   r5   ©r;   r   r    r!   rT   r#   r#   r$   Ú.test_pde_1st_linear_constant_coeff_homogeneousˆ   s(   
((H F$rb   c               	   C   s  t tddgƒ\} }| ttƒ}d| t¡ d| t¡  d|  ttdt  ƒ }t|ƒ}|t| ttƒ|dt dt  ƒttd ƒ ttdt  ƒd  tt ƒ ƒksUJ ‚t|ƒd	ks]J ‚t	||ƒd
 sfJ ‚| t¡| | t¡|  d ttt ƒ|  }t|ƒ}|t| ttƒ|tt ƒtt d td  ƒ ttt ƒd  ƒks¥J ‚t|ƒd	ks­J ‚t	||ƒd
 s¶J ‚d| | t¡  d| t¡  t
tƒ }t|ƒ}|t| ttƒ|dt t ƒttd dt d  ƒ dt
tƒ d  ttƒd  ƒksûJ ‚t|ƒd	ksJ ‚t	||ƒd
 sJ ‚|| t¡ | t¡ tt  }t|ƒ}| ¡ t| ttƒtt tt d d  tt d d  |tt ƒtt d td  ƒ  d ƒ ¡ ksXJ ‚t|ƒd	ksaJ ‚t	||ƒd
 skJ ‚|| t¡ | t¡ ttƒ }t|ƒd	ks„J ‚d S )Nr;   r   éþÿÿÿrZ   rL   r?   r3   é   )Ú1st_linear_constant_coeffÚ"1st_linear_constant_coeff_Integralr   r4   )r   r   r   r   r=   r   r   r   r   r   r
   r	   Úexpandr   ra   r#   r#   r$   Ú"test_pde_1st_linear_constant_coeff¢   s@   
4<
ÿ0F*B
ÿ Lÿ
ÿ rh   c               	   C   s  t tddgƒ\} }| ttƒ}|| t¡ | t¡ td t  }t|dd}g d¢}t| ¡ ƒ|ks4J ‚|d dks<J ‚|d	 d
ksDJ ‚|d
  ¡ t	| ttƒtd  t td  dt t  dt  dt  |tt ƒt
t d td  ƒ  d ƒ ¡ ks€J ‚d S )Nr;   r   r3   Úall©Úhint)re   rf   ÚdefaultÚorderrm   r4   rl   re   rZ   r^   )r   r   r   r   r=   r   ÚsortedÚkeysrg   r   r   )r;   r   r    r!   rT   ro   r#   r#   r$   Útest_pdsolve_allÈ   s   
$Vÿÿrp   c               	   C   s\  t tddgƒ\} }| ttƒ}t| t¡ t| t¡  td |  td  }t|dd}|t||tt ƒttd d ƒ d ƒksCJ ‚t||ƒd sLJ ‚td | t| t¡  tt | t¡  }t|dd}|t||ttt ƒ ƒttd  d ƒ ƒksJ ‚t||ƒd sŠJ ‚ttd  | t| t¡  | t¡ }t|dd}|t||dt td  ƒttd	  d	 ƒ ƒks¾J ‚t||ƒd sÇJ ‚ttƒd | t¡ t }t|dd}|t|ttdt ƒ d |tƒ ƒksïJ ‚t||ƒd søJ ‚tdt ƒ| t¡ t|  | }t|dd}|t||tƒtt td  tdt ƒ d ƒ ƒks,J ‚d S )
Nr;   r   r3   rB   rj   r4   r   rc   r?   )	r   r   r   r   r=   r   r   r   r   ra   r#   r#   r$   Útest_pdsolve_variable_coeffÖ   s*   
0.,2(4*">rq   N)*Úsympy.core.functionr   r   r   Úsympy.core.relationalr   Úsympy.core.symbolr   r   Ú&sympy.functions.elementary.exponentialr   r   Ú(sympy.functions.elementary.trigonometricr	   r
   Ú
sympy.corer   Úsympy.solvers.pder   r   r   r   r   r   Úsympy.testing.pytestr   rC   rD   r5   r   r   r%   r+   r:   r>   rK   rU   rY   rb   rh   rp   rq   r#   r#   r#   r$   Ú<module>   s(     	2&