
    g)$                         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
 Zd Z d Z!d Z"d Z#d Z$d Z%d Z&d Z'd Z(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            
      N   t          d          \  } }}}t          t          d          \  }}}}}}	t          t	           |	| |          |           t	           |	| |          |          t           |	| |                    z            }
t          |
 |	| |           ||            ||          g          }|t	           ||           |           t           ||                      z  t	           ||          |          t           ||                    z  gk    sJ d S )Nx,y,z,tFTXYZu)r   mapr   r   Dr   r   )xyztFTXYZueqress               X/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/solvers/tests/test_pde.pytest_pde_separate_addr&      s   ##JAq!Q8X..Aq!Q1	Aaa1ggqMM1QQq!WWa==QQq!WW5	6	6B
2qqAww1qqtt
5
5C1QQqTT1::c11Q44%jj(!AAaDD!**S1YY*>???????    c            
      `  	
 t          d          \  
} }t          t          d          \  }}}	t          t	           	
          
          t	           	
                    t           	
                    z            t          t          	
fd           d S )Nr   r   c                  d    t                                            gd          S )Ndiv)r   )r   r   r#   r   r"   r   s   r%   <lambda>z#test_pde_separate.<locals>.<lambda>   s3    |B!Q!!A$$!uMM r'   )r   r   r   r   r   r   r   
ValueError)r   r   r   r    r!   r   r   r#   r   r"   r   s        @@@@@@r%   test_pde_separater-      s    ##JAq!Q8X..Aq!Q1	Aaa1ggqMM1QQq!WWa==QQq!WW5	6	6B
:MMMMMMMMMNNNNNr'   c                    	
 t          d          \  t          dd          } t          d          }t          t          d          \  	}}
}t          d          \  }}t	          t           	                    t           	                    z   t           	                    z   d          t          t          	
fd	           t          t          	
fd
           t          t          	
fd           t           	                                g          t                                          z  t                                           z  t                                          z  z
  gk    sJ t           	           
                      |          g          t           
                     
          z  t           |                      |          z  t                                          z  z
  gk    sJ t	          t                               | dz  t                               z            }t          |            
           |          g          }|t           
                     
          z  t           |                    | dz   |          z  z  gk    sJ t	          d|z  t           |||          |          z  t           |||          |d          z   d|dz  z  t           |||          |d          z  z   t           |||          d          z   d          t           |||           |           ||          g          }|t           |                     |          z  t           ||          ||            ||          z  t           ||          |          | ||          z  z  z
  t           ||          ||          |dz   ||          z  z  z
  gk    sJ t	          |d         |           t           ||           ||           ||          g          }|t           ||          ||           ||          z  | t           ||          |          z   ||          z  |dz  t           ||          ||          z   ||          z  z
  | |dz  z  z
  gk    sJ t           ||           ||           ||          g          }||t           ||          |          z   ||          z  |dz  t           ||          ||          z   ||          z  z   | |dz  z  z   t           ||          ||            ||          z  gk    sJ d S )Nr   CT)realPhiFRTXYZuz	r,theta,zr   c            	      f    t                                            g          S Nr   )r   r   r#   r"   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>+   6    ,R1aaaddAAaGG_MM r'   c                  d    t                                            g          S r4   r5   )r   r   r    r#   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>-   s4    /AAaAJJ1qqttMM r'   c            	      f    t                                            g          S r4   r5   )r   r   r    r#   r   r   r   r   s   r%   r+   z'test_pde_separate_mul.<locals>.<lambda>0   r6   r'         )	r   r   r   r   r   r   r   r,   r   )cr1   Rr   r!   rthetawaver$   r   r   r    r#   r   r"   r   r   r   s            @@@@@@@@@r%   test_pde_separate_mulr@      s   ##JAq!QsA
5//Ch	22Aq!Q1a+&&KAua 
Aaa1ajj!q1aQ///!AAaAJJ2B2BBA	F	FB MMMMMMMMMMO O O :MMMMMMMMMMNNN
MMMMMMMMMMMO O O B!Q

QQqTT11Q77O<<	
11Q44AAaDD1QQq!WWa==.1a01QQq!WWa==1a3HHIJ J J JB!Q

QQqTT11Q441,>??	
11Q44AAaDD1QQqTT1::+aadd*QqqttQZZ!_<=> > > > a!QA1QqqAww1%5%5 566D
41a11Q441,
7
7C1QQqTT1a==1%q1q!}}ad11Q44i'@AAAAA 
AaC!CC5!$$a(((1SSE1-=-=q!+D+DDadFQss1eQ''222356ss1eQ7G7GA5N5NOPQ
S 
SB 2ss1eQ//!!A$$%1D
E
EC1QQqTT1a==1%qq{{Aq!!!!!E1++-	!!E1++q1QQua[[=)*	!!E1++ue$$ad11UA;;&6789 9 9 9 9
 
CFAB
2qq{{QQuXXqqtt,<
=
=C1QQuXXue,,QQuXX5Bq1qzzM!!A$$Aa!amm!3AAaDD!881QT6AC C C C C 2qq{{QQqTT11U88,<
=
=C1QqqttQZZ<!$q!tAaaddAqMM'9!!A$$'>>1a4Gqqxx&&&qqxx/1 1 1 1 1 1 1r'   c                     t          d          \  } }t          dt                    }t          dt                    \  }} || |          }|                    | d          |                    |d          z
  }t          || ||            ||          g          }|t	           ||           | |            ||           z  t	           ||          ||           ||          z  gk    sJ d S )Nzx tf)clszX Tr9   )r   r   diffr   r   )r   r   rB   r   r   r"   r#   r$   s           r%   test_issue_11726rE   Q   s    5>>DAq	(	#	#	#A5h'''DAq	!QA	
1q!	$B
r1qqttQQqTTl
+
+C1QQqTT1a==1%a!ammAAaDD&89999999r'   c                     t          d          } t           | t          t                    z  t           | t          t                                        t                    z  z   t           | t          t                                        t                    z  z   }d | t          t                    z  d | t          t                                        t                    z  z    | t          t                                        t                    z   }t           | t          t                    z  t           | t          t                                        t                    z  z   d | t          t                                        t                    z  z   }t           | t          t                    z   | t          t                                        t                    z   d | t          t                                        t                    z  z   }t          dz   | t          t                    z  t           | t          t                                        t                    z  z   t          t          z   | t          t                                        t                    z  z   }t          t          dz  z   | t          t                    z  t           | t          t                                        t                    z  z    | t          t                                        t                    z   }|||fD ]}t          |          dk    sJ |||fD ]}t          |          dk    sJ d S )NrB      r9   %1st_linear_constant_coeff_homogeneous)1st_linear_variable_coeff)r   ar   r   brD   r;   r   )rB   eq1eq2eq3eq4eq5eq6r#   s           r%   test_pde_classifyrS   \   s\   A
AAaFF(Qqq1vv{{1~~%
%!!Aa&&++a..(8
8C
AAaFF(Qqq1vv{{1~~%
%!AA
6C
AAaFF(Qqq1vv{{1~~%
%!!Aa&&++a..(8
8C
AAaFF(QQqVV[[^^
#a!AA&6
6C
Q$qq1vv+!!Aa&&++a..(
(1Q3qq1vv{{1~~+=
=C
AqD&1Q-!AAaFFKKNN*
*QQqVV[[^^
;CCo N NB#MMMMMMCo B BB#AAAAAAB Br'   c                  	  	
 t          t          ddg          \  } }t           | t          t                    z  t
           | t          t                                        t                    z  z   t           | t          t                                        t                    z  z   }d | t          t                    z  d | t          t                                        t                    z  z    | t          t                                        t                    z   }t           | t          t                    z  t
           | t          t                                        t                    z  z   d | t          t                                        t                    z  z   }|||fD ]'}t          |t          |                    d         sJ (t           | t          t                    z   | t          t                                        t                    z   d | t          t                                        t                    z  z   	d | t          t                    z  d | t          t                                        t                    z  z   d | t          t                                        t                    z  z   } | t          t                    d | t          t                                        t                    z  z   d | t          t                                        t                    z  z   }t          	t          |          t          |          g          dt          dz
   |dt          z  t          z
            z  t          t           t          d          z  dt          z  t          d          z  z
            z  fdt          dz
   |dt          z  t          z
            z  t          t           t          d	          z  dt          z  t          d	          z  z
            z  fgk    sJ 	||fD ]'}t          |t          |                    d         sJ (t          	          }t          |j        |j        z
  d          
t          t           	
fd
           d S )NrB   r   rG   r9   r   r:   F   
   c                  (    t           d          S )NF)solve_for_func)r   )rP   sol4s   r%   r+   z"test_checkpdesol.<locals>.<lambda>|   s    Ce444 r'   )r   r   rK   r   r   rL   rD   r;   r   r   r   r   r   lhsrhsr   NotImplementedError)rB   r   rM   rN   rO   r#   rQ   rR   solrP   rY   s            @@r%   test_checkpdesolr^   k   s   x#s$$DAq
AAaFF(Qqq1vv{{1~~%
%!!Aa&&++a..(8
8C
AAaFF(Qqq1vv{{1~~%
%!AA
6C
AAaFF(Qqq1vv{{1~~%
%!!Aa&&++a..(8
8CCo / /2wr{{++A.....
AAaFF(QQqVV[[^^
#a!AA&6
6C
AAaFF(Qqq1vv{{1~~%
%!!Aa&&++a..(8
8C
!Aa&&1QQqVV[[^^#
#a!AA&6
6CsWS\\73<<899	Q!A#'

"3r!A$$w1QqTT'9#:#::;
!a%1Q37#C1R551Q3quu9(<$=$==	>>@ @ @ @ @ Co / /2wr{{++A.....
#,,Ccg##D
 !5 !5 !5 !5 !5 6 6 6 6 6r'   c            
         t          t          g d          \  } }}} | t          t                     | t          t                                        t                    z    | t          t                                        t                    z   }t          |          t           | t          t                     |t          t          z
            t          t           dz  t          dz  z
            z            k    sJ t          ||          t           | t          t                     |t          t          z
            t          t           dz  t          dz  z
            z            k    sJ t          ||          t           | t          t                     |t          t          z
            t          t           dz  t          dz  z
            z            k    sJ d S )N)rB   r   GHr9   )solvefun)r   r   r   r   rD   r   r   r   )rB   r   r`   ra   rM   s        r%   test_solvefunrc      se   X33344JAq!Q
!Aa&&11Qq66;;q>>
!AAaFFKKNN
2C3<<2aa1ggqqQxxQBqD1Q3J'?@@@@@@3###r!!Aq''11QU88C1qs
OO3K'L'LLLLL3###r!!Aq''11QU88C1qs
OO3K'L'LLLLLLLr'   c                     t          t          ddg          \  } } | t          t                    }d|z  |                    t                    z   |                    t                    z   }t          |          dk    sJ t          |          }|t          | |t          t          z
            t          t           t          z
            z            k    sJ t          ||          d         sJ dd|                    t                    z  |z  z   d|                    t                    z  |z  z   }t          |          dk    sJ t          |          }|t          | |dt          z  dt          z  z
            t          t          d           t          z  d	z  t          d
          t          z  d	z  z
            z            k    sJ t          ||          d         sJ |d|                    t                    z  z   d|                    t                    z  z   }t          |          dk    sJ t          |          }|t          | |dt          z  dt          z  z
            t          dt          z  t          d          z  dt          z  t          d          z  z
            z            k    sJ t          ||          d         sJ t          |z  t          |                    t                    z  z   t          |                    t                    z  z   }t          |          }t          ||          d         sJ d S )NrB   r   r9   rH   r      rG                  iU   )r   r   r   r   rD   r   r   r   r   r   r   rK   rL   r;   rB   r   r"   r#   r]   s        r%   .test_pde_1st_linear_constant_coeff_homogeneousrm      s   x#s$$DAq	!QA	
1qvvayy166!99	$BIIIII
"++C"Q!a%aR!V,------r3""""	
aq		k!m	!&&))A	.BIIIII
"++C"Q!A#!)S!B%%"qttAvby)@%A%AABBBBBBr3""""	
aq		k	aq		k	*BIIIII
"++C"Q!A#!)SAaeeac!B%%i)?%@%@@AAAAAAr3""""	
1q{	Qqvvayy[	(B
"++Cr3""""""r'   c                  
   t          t          ddg          \  } } | t          t                    }d|                    t                    z  d|                    t                    z  z   d|z  z   t          t          dt          z  z             z
  }t          |          }|t           | t          t                     |dt          z  dt          z  z             t          t          dz            z  t          t          dt          z  z             dz  z   t          t                     z            k    sJ t          |          d	k    sJ t          ||          d
         sJ |                    t                    |z  |                    t                    |z  z   dz   t          t          t          z             |z  z
  }t          |          }|t           | t          t                     |t          t          z
            t          t           dz  t          dz  z
            z  t          t          t          z             dz  z             k    sJ t          |          d	k    sJ t          ||          d
         sJ d|z  |                    t                     z   d|                    t                    z  z   t          t                    z   }t          |          }|t           | t          t                     |dt          z  t          z             t          t          dz  dt          z  dz  z
            z  dt          t                    z  dz  z
  t          t                    dz  z
            k    sJ t          |          d	k    sJ t          ||          d
         sJ ||                    t                    z   |                    t                    z   t          t          z  z   }t          |          }|                                t           | t          t                    t          t          z   t          t          z
  dz  dz  z   t          t          z   dz  dz  z
   |t          t          z
            t          t           dz  t          dz  z
            z  z   dz
                                            k    sJ t          |          d	k    sJ t          ||          d
         sJ ||                    t                    z   |                    t                    z   t          t                    z   }t          |          d	k    sJ d S )NrB   r   re   rU   rG   r9      )1st_linear_constant_coeff"1st_linear_constant_coeff_Integralr   r:   )r   r   r   r   rD   r   r   r   r   r   r   r
   expandr	   rl   s        r%   "test_pde_1st_linear_constant_coeffrt      s   x#s$$DAq	!AA	AFF1II!&&))	#ac	)CAaCLL	8B
"++C"QQqVVQqsQqSy\\#ac((SQqS\\"_,c1"gg57 7 7 7 7 7  * * * * *r3""""
&&))A+!&&))A+	&	*c!a%jjl	;B
"++C"QQq!WWaaAhhsA2a4!A#:6QUAEFFFFFF  * * * * *r3""""	
1q		z	AaffQiiK	'#a&&	0B
"++C"QQq!WW	
1Q37C!ac!e$$	$qQxz	1CFF1H	<> > > > > >  * * * * *r3""""	
QVVAYY	"QqS	(B
"++C::<<2aa1gg	AQ
1Az!|+aaAhhsA2a4!A#:.FFJL LLRFHHU U U U  * * * * *r3""""	
QVVAYY	"SVV	+B  * * * * * * *r'   c                  ^   t          t          ddg          \  } } | t          t                    }||                    t                    z   |                    t                    z   t          dz  t          z  z   }t          |d          }g d}t          |                                          |k    sJ |d         dk    sJ |d	         d
k    sJ |d
                                         t           | t          t                    t          dz   t          z  t          dz  z   dt          z  t          z  z   dt          z  z
  dt          z  z
   |t          t          z
            t          t           dz  t          dz  z
            z  z   dz                                             k    sJ d S )NrB   r   r9   allhint)rq   rr   defaultorderrz   r:   ry   rq   re   ri   )r   r   r   r   rD   r   sortedkeysrs   r   r   )rB   r   r"   r#   r]   r|   s         r%   test_pdsolve_allr}      s   x#s$$DAq	!AA	
QVVAYY	"QT!V	+B
"U
#
#
#CB B BD#((**%%%%w<1y>88888*+224411Q77	
Aa!Q$1Q1$qs*QQq1uXXc1"Q$1*oo-EEI9K 9KKQ688T T T T T Tr'   c                     t          t          ddg          \  } } | t          t                    }t          |                    t                    z  t          |                    t                    z  z
  t          dz  |z  z   t          dz  z
  }t          |d          }|t          | |t          t          z            t          t          dz  dz            z  dz             k    sJ t          ||          d         sJ t          dz  |z  t          |                    t                    z  z   t          t          z  |                    t                    z  z   }t          |d          }|t          | |t          t          t                     z            t          t          dz   dz            z            k    sJ t          ||          d         sJ t          t          dz  z  |z  t          |                    t                    z  z   |                    t                    z   }t          |d          }|t          | |dt          z  t          dz  z             t          t          d	z   d	z            z            k    sJ t          ||          d         sJ t          t                    dz  |                    t                    z  t          z   }t          |d          }|t          |t          t          dt          z            z  dz   |t                    z             k    sJ t          ||          d         sJ t          dt          z            |                    t                    z  t          |z  z   |z
  }t          |d          }|t          | |t                    t          t           t          dz
  z  t          dt          z            z  dz            z            k    sJ d S )
NrB   r   r9   rJ   rw   r:   r   ro   rG   )	r   r   r   r   rD   r   r   r   r   rl   s        r%   test_pdsolve_variable_coeffr      s=   x#s$$DAq	!QA	
AFF1IIAFF1II	&Aa	/!Q$	6B
"6
7
7
7C"Q!A#s1a46{{*Q.//////r3""""	
Aa!AFF1II+	!AFF1II	-B
"6
7
7
7C"Q!CGG)S!Q$q\\1222222r3""""	
1a4AaffQiiK	!&&))	+B
"6
7
7
7C"Q"Q$A+sAqD57||3444444r3""""	QAFF1II		"B
"6
7
7
7C"Q#bd))A!,------r3""""	QqS166!99	!	#a	'B
"6
7
7
7C"Q!S!QUC1II!5a!788899999999r'   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   rK   rL   r;   r   r   r&   r-   r@   rE   rS   r^   rc   rm   rt   r}   r    r'   r%   <module>r      s   ; ; ; ; ; ; ; ; $ $ $ $ $ $ / / / / / / / / = = = = = = = = ? ? ? ? ? ? ? ?      ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ' ' ' ' ' ' $$1aA@ @ @O O O/1 /1 /1d: : :B B B6 6 6*M M M# # #4#* #* #*LT T T: : : : :r'   