ó
9­\c           @   s  d  d l  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 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(   iÿÿÿÿ(	   t
   Derivativet   Eqt   expt   sint   Functiont   Symbolt   symbolst   cost   log(   t   S(   t   pde_separatet   pde_separate_addt   pde_separate_mult   pdsolvet   classify_pdet   checkpdesol(   t   raisess	   a b c x yc          C   s  t  d ƒ \ }  } } } t t d ƒ \ } } } } } }	 t t |	 |  | ƒ |  ƒ t |	 |  | ƒ | ƒ t |	 |  | ƒ ƒ ƒ }
 t |
 |	 |  | ƒ | |  ƒ | | ƒ g ƒ } | t | |  ƒ |  ƒ t | |  ƒ ƒ t | | ƒ | ƒ t | | ƒ ƒ g k st ‚ d  S(   Ns   x,y,z,tt   FTXYZu(   R   t   mapR   R   t   DR   R   t   AssertionError(   t   xt   yt   zt   tt   Ft   Tt   Xt   Yt   Zt   ut   eqt   res(    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pde_separate_add   s
    !F-c             s¨   t  d ƒ \ ‰ }  } ‰ t t d ƒ \ } ‰  ‰ } } ‰ t t ˆ ˆ ˆ ƒ ˆ ƒ t ˆ ˆ ˆ ƒ ˆ ƒ t ˆ ˆ ˆ ƒ ƒ ƒ ‰ t t ‡  ‡ ‡ ‡ ‡ ‡ f d †  ƒ d  S(   Ns   x,y,z,tR   c              s.   t  ˆ ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ  ˆ ƒ g d ƒ S(   Nt   div(   R
   (    (   R   R   R   R   R   R   (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   <lambda>   t    (   R   R   R   R   R   R   R   t
   ValueError(   R   R   R   R   R   (    (   R   R   R   R   R   R   s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pde_separate   s    !Fc    	   
      s$  t  d ƒ \ ‰ ‰ ‰ ‰ t d d t ƒ}  t d ƒ } t t d ƒ \ ‰  } } ‰ ‰ } ‰ t  d ƒ \ } } ‰ t t ˆ  ˆ ˆ ˆ ƒ ˆ ƒ t ˆ  ˆ ˆ ˆ ƒ ˆ ƒ t ˆ  ˆ ˆ ˆ ƒ ˆ ƒ ƒ ‰ t t ‡  ‡ ‡ ‡ ‡ ‡ ‡ f d †  ƒ t t ‡  ‡ ‡ ‡ ‡ ‡ ‡ f d †  ƒ t t ‡  ‡ ‡ ‡ ‡ ‡ ‡ ‡ f d	 †  ƒ t	 ˆ ˆ  ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ˆ ƒ g ƒ t ˆ ˆ ƒ ˆ ƒ ˆ ˆ ƒ t ˆ ˆ ˆ ƒ ˆ ƒ ˆ ˆ ˆ ƒ t ˆ ˆ ˆ ƒ ˆ ƒ ˆ ˆ ˆ ƒ g k sÞt
 ‚ t	 ˆ ˆ  ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ƒ | ˆ ƒ g ƒ t ˆ ˆ ƒ ˆ ƒ ˆ ˆ ƒ t | ˆ ƒ ˆ ƒ | ˆ ƒ t ˆ ˆ ƒ ˆ ƒ ˆ ˆ ƒ g k syt
 ‚ t t ˆ ˆ ˆ ƒ ˆ ˆ ƒ |  d
 t ˆ ˆ ˆ ƒ ˆ ˆ ƒ ƒ } t	 | ˆ ˆ ˆ ƒ ˆ ˆ ƒ | ˆ ƒ g ƒ } | t ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ƒ t | ˆ ƒ ˆ ˆ ƒ |  d
 | ˆ ƒ g k s?t
 ‚ t d | t | | | ˆ ƒ | ƒ t | | | ˆ ƒ | d
 ƒ d | d
 t | | | ˆ ƒ | d
 ƒ t | | | ˆ ƒ ˆ d
 ƒ ƒ ‰ t	 ˆ | | | ˆ ƒ | ˆ ƒ ˆ | | ƒ g ƒ } | t | ˆ ƒ ˆ ˆ ƒ | ˆ ƒ t ˆ | | ƒ | | ƒ ˆ | | ƒ t ˆ | | ƒ | ƒ | ˆ | | ƒ t ˆ | | ƒ | | ƒ | d
 ˆ | | ƒ g k s§t
 ‚ t | d |  ƒ ‰ t	 ˆ ˆ | | ƒ | | ƒ | | ƒ g ƒ } | t | | ƒ | | ƒ | | ƒ | t | | ƒ | ƒ | | ƒ | d
 t | | ƒ | | ƒ | | ƒ |  | d
 g k smt
 ‚ t	 ˆ ˆ | | ƒ | | ƒ | | ƒ g ƒ } | | t | | ƒ | ƒ | | ƒ | d
 t | | ƒ | | ƒ | | ƒ |  | d
 t | | ƒ | | ƒ | | ƒ g k s t
 ‚ d  S(   Ns   x,y,z,tt   Ct   realt   Phit   FRTXYZus	   r,theta,zc              s1   t  ˆ ˆ  ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ˆ ƒ g ƒ S(   N(   R   (    (   R   R   R   R   R   R   R   (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyR#   (   R$   c              s.   t  ˆ ˆ  ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ƒ g ƒ S(   N(   R   (    (   R   R   R   R   R   R   R   (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyR#   *   R$   c              s1   t  ˆ ˆ  ˆ ˆ ˆ ƒ ˆ ˆ ƒ ˆ ˆ ˆ ƒ g ƒ S(   N(   R   (    (   R   R   R   R   R   R   R   R   (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyR#   -   R$   i   i   (   R   R   t   TrueR   R   R   R   R   R%   R   R   (	   t   cR)   t   RR   R   t   rt   thetat   waveR    (    (	   R   R   R   R   R   R   R   R   R   s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pde_separate_mul   s>    $S%((0q6eA-X†3"M=-"d-Wc          C   så   t  d ƒ \ }  } t  d d t ƒ} t  d d t ƒ\ } } | |  | ƒ } | j |  d ƒ | j | d ƒ } t | | | |  ƒ | | ƒ g ƒ } | t | |  ƒ |  |  ƒ | |  ƒ t | | ƒ | | ƒ | | ƒ g k sá t ‚ d  S(   Ns   x tt   ft   clss   X Ti   (   R   R   t   diffR
   R   R   (   R   R   R2   R   R   R   R   R    (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_issue_11726N   s    "$c          C   s"  t  d ƒ }  t |  t t ƒ t |  t t ƒ j t ƒ t |  t t ƒ j t ƒ } d |  t t ƒ d |  t t ƒ j t ƒ |  t t ƒ j t ƒ } t |  t t ƒ t |  t t ƒ j t ƒ d |  t t ƒ j t ƒ } t |  t t ƒ |  t t ƒ j t ƒ d |  t t ƒ j t ƒ } t d |  t t ƒ t |  t t ƒ j t ƒ t t |  t t ƒ j t ƒ } t t d |  t t ƒ t |  t t ƒ j t ƒ |  t t ƒ j t ƒ } x/ | | | g D] } t | ƒ d k sÊt ‚ qÊWx/ | | | g D] } t | ƒ d k süt ‚ qüWd  S(   NR2   i   i   t%   1st_linear_constant_coeff_homogeneoust   1st_linear_variable_coeff(   R6   (   R7   (	   R   t   aR   R   t   bR4   R,   R   R   (   R2   t   eq1t   eq2t   eq3t   eq4t   eq5t   eq6R   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pde_classifyY   s    GCGCOKc    	   	      s&  t  t d d g ƒ \ }  } t |  t t ƒ t |  t t ƒ j t ƒ t |  t t ƒ j t ƒ } d |  t t ƒ d |  t t ƒ j t ƒ |  t t ƒ j t ƒ } t |  t t ƒ t |  t t ƒ j t ƒ d |  t t ƒ j t ƒ } x6 | | | g D]% } t | t	 | ƒ ƒ d sü t
 ‚ qü Wt |  t t ƒ |  t t ƒ j t ƒ d |  t t ƒ j t ƒ ‰  d |  t t ƒ d |  t t ƒ j t ƒ d |  t t ƒ j t ƒ } |  t t ƒ d |  t t ƒ j t ƒ d |  t t ƒ j t ƒ } t ˆ  t	 | ƒ t	 | ƒ g ƒ t t d | d t t ƒ t t t d ƒ d t t d ƒ ƒ f t t d | d t t ƒ t t t d ƒ d t t d ƒ ƒ f g k s«t
 ‚ x6 ˆ  | | g D]% } t | t	 | ƒ ƒ d s»t
 ‚ q»Wt	 ˆ  ƒ } t | j | j d ƒ ‰ t t ‡  ‡ f d	 †  ƒ d  S(
   NR2   R   i   i   i    i   i   i
   c              s   t  ˆ  ˆ d t ƒS(   Nt   solve_for_func(   R   t   False(    (   R=   t   sol4(    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyR#   y   s    (   R   R   R8   R   R   R9   R4   R,   R   R   R   RB   R   R	   R   t   lhst   rhsR   t   NotImplementedError(	   R2   R   R:   R;   R<   R   R>   R?   t   sol(    (   R=   RC   s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_checkpdesolh   s"    GCG#CGCFU#c          C   sS  t  t d d d d g ƒ \ }  } } } |  t t ƒ |  t t ƒ j t ƒ |  t t ƒ j t ƒ } t | ƒ t |  t t ƒ | t t ƒ t t d t d ƒ ƒ k s­ t ‚ t | d | ƒt |  t t ƒ | t t ƒ t t d t d ƒ ƒ k sþ t ‚ t | d | ƒt |  t t ƒ | t t ƒ t t d t d ƒ ƒ k sOt ‚ d  S(   NR2   R   t   Gt   Hi   t   solvefun(	   R   R   R   R   R4   R   R   R   R   (   R2   R   RI   RJ   R:   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_solvefun}   s
    ';KQc       	   C   s•  t  t d d g ƒ \ }  } |  t t ƒ } d | | j t ƒ | j t ƒ } t | ƒ d k sf t ‚ t | ƒ } | t | | t t ƒ t	 t t ƒ ƒ k s¦ t ‚ t
 | | ƒ d s¿ t ‚ d d | j t ƒ | d | j t ƒ | } t | ƒ d k st ‚ t | ƒ } | t | | d t d t ƒ t	 t d ƒ t d	 t d
 ƒ t d	 ƒ ƒ k skt ‚ t
 | | ƒ d s„t ‚ | d | j t ƒ d | j t ƒ } t | ƒ d k sÄt ‚ t | ƒ } | t | | d t d t ƒ t	 d t t d ƒ d t t d ƒ ƒ ƒ k s't ‚ t
 | | ƒ d s@t ‚ t | t | j t ƒ t | j t ƒ } t | ƒ } t
 | | ƒ d s‘t ‚ d  S(   NR2   R   i   R6   i    i   i   i   i   i   i   i   iúÿÿÿiU   (   R6   (   R6   (   R6   (   R   R   R   R   R4   R   R   R   R   R   R   R	   R8   R9   R,   (   R2   R   R   R   RG   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt.   test_pde_1st_linear_constant_coeff_homogeneous…   s(    $40X(W,c       
   C   sò  t  t d d g ƒ \ }  } |  t t ƒ } d | j t ƒ d | j t ƒ d | t t d t ƒ } t | ƒ } | t |  t t ƒ | d t d t ƒ t t t d ƒ d t ƒ t d ƒ t t t d ƒ t ƒ ƒ k sè t	 ‚ t
 | ƒ d k s t	 ‚ t | | ƒ d st	 ‚ | j t ƒ | | j t ƒ | d t t t ƒ | } t | ƒ } | t |  t t ƒ | t t ƒ t t d t d ƒ t t t ƒ t d ƒ ƒ k s¼t	 ‚ t
 | ƒ d k sÔt	 ‚ t | | ƒ d sít	 ‚ d | | j t ƒ d | j t ƒ t t ƒ } t | ƒ } | t |  t t ƒ | d t t ƒ t t t d ƒ d t t d ƒ ƒ d t t ƒ t d ƒ t t ƒ t d ƒ ƒ k s°t	 ‚ t
 | ƒ d k sÈt	 ‚ t | | ƒ d sát	 ‚ | | j t ƒ | j t ƒ t t } t | ƒ } | t |  t t ƒ t t t t | t t ƒ t t t d ƒ t t d ƒ ƒ d ƒ k s{t	 ‚ t
 | ƒ d k s“t	 ‚ t | | ƒ d s¬t	 ‚ | | j t ƒ | j t ƒ t t ƒ } t
 | ƒ d k sît	 ‚ d  S(   NR2   R   iþÿÿÿi   i   i   i   i   t   1st_linear_constant_coefft"   1st_linear_constant_coeff_Integrali    i   (   RN   RO   (   RN   RO   (   RN   RO   (   RN   RO   (   RN   RO   (   R   R   R   R   R4   R   R   R   R	   R   R   R   R   R   R   (   R2   R   R   R   RG   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt"   test_pde_1st_linear_constant_coeffž   s@    >b	:]	3r	(T	*	c       
   C   sR  t  t d d g ƒ \ }  } |  t t ƒ } | | j t ƒ | j t ƒ t d t } t | d d ƒ} d d d d	 g } t | j ƒ  ƒ | k s˜ t ‚ | d	 d
 k s® t ‚ | d d k sÄ t ‚ | d t	 |  t t ƒ t d t t d d t t d t d t | t t ƒ t
 t t d ƒ t t d ƒ ƒ d ƒ k sNt ‚ d  S(   NR2   R   i   t   hintt   allRN   RO   t   defaultt   orderi   i   i   (   R   R   R   R   R4   R   t   sortedt   keysR   R   R   R	   (   R2   R   R   R   RG   RV   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pdsolve_allÄ   s    ,c          C   s  t  t d d g ƒ \ }  } |  t t ƒ } t | j t ƒ t | j t ƒ t d | t d } t | d d ƒ} | t | | t t ƒ t t d d ƒ d ƒ k s¯ t ‚ t	 | | ƒ d sÈ t ‚ t d | t | j t ƒ t t | j t ƒ } t | d d ƒ} | t | | t t t ƒ ƒ t t d d ƒ ƒ k sMt ‚ t	 | | ƒ d sft ‚ t t d | t | j t ƒ | j t ƒ } t | d d ƒ} | t | | d t t d ƒ t t d	 d	 ƒ ƒ k sèt ‚ t	 | | ƒ d st ‚ t t ƒ d | j t ƒ t } t | d d ƒ} | t | t t d t ƒ d | t ƒ ƒ k skt ‚ t	 | | ƒ d s„t ‚ t d t ƒ | j t ƒ t | | } t | d d ƒ} | t | t t d d t d | t ƒ t d t ƒ d ƒ ƒ k st ‚ d  S(
   NR2   R   i   RQ   R7   i   i    iþÿÿÿi   (
   R   R   R   R   R4   R   R   R   R   R   (   R2   R   R   R   RG   (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   test_pdsolve_variable_coeffÑ   s*    8;4?0@!7)N(&   t   sympyR    R   R   R   R   R   R   R   R   R   t
   sympy.coreR	   t   sympy.solvers.pdeR
   R   R   R   R   R   t   sympy.utilities.pytestR   R8   R9   R,   R   R   R!   R&   R1   R5   R@   RH   RL   RM   RP   RW   RX   (    (    (    s;   lib/python2.7/site-packages/sympy/solvers/tests/test_pde.pyt   <module>   s   @.				2						&	