
    oVh-                     0   d dl mZ d dlmZ d dlmZmZmZm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 d dl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 d dlm Z m!Z!m"Z"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z. d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6y)    )Sum)Expr)
DerivativeFunctiondiffSubs)IRationalpi)Eq)S)Symbol)	factorial)imre)explog)Max)	Piecewise)coscotsintan)	NDimArray)raises)abcxyzc                     t        dd      j                  t              t        j                  u sJ t        j                  t              t        j                  u sJ t        j                  t              t        j                  u sJ t        j                  t        d      t        k(  sJ t        dz  j                  t        dt              dk(  sJ t        dz  j                  t        dft              dk(  sJ t        dz  j                  t        dft              dk(  sJ t        dz  j                  t        dft        df      dk(  sJ t        dz  j                  t        df      dk(  sJ t        dz  j                  t        t        d      dt        z  k(  sJ t        dz  j                  t        t        df      dt        z  k(  sJ t        dz  j                  t        t              dk(  sJ t        t        d        t        d      } t        t        z  t        | z  z   }|j                  t              t        k(  sJ |j                  t              t        dt        dz  z  z   k(  sJ |j                  t              j                  t              t        d      k(  sJ t        t        t        z   z  }|j                  t              t        t        z   k(  sJ |j                  t              t        k(  sJ |j                  t              j                  t              t        d      k(  sJ t        | z  }|j                  t        d      t        d      k(  sJ |j                  t        d      t        d	      k(  sJ t        t        d      z  }|j                  t              dt        z  k(  sJ t        t        z  t        z  }|j                  t              t        t        z  k(  sJ y )
N      r      c                  6    t        j                  dt               S )Nr#   r   r        J/home/dcms/DCMS/lib/python3.12/site-packages/sympy/core/tests/test_diff.py<lambda>ztest_diff.<locals>.<lambda>   s    qvva| r)            x   )r
   r   r   r   Zeror	   r   r    r   
ValueErrorr   r   r   pes     r*   	test_diffr5      s   Aq>q!QVV+++66!9771:66!Q<1qD;;q!Q1$$$qD;;1vq!Q&&&qD;;1vq!Q&&&qD;;1v1v&!+++qD;;1v!###qD;;q!Q1Q3&&&qD;;q1a&!QqS(((qD;;q!!!!
:+,A	!ad
A66!9>>66!9AadF
"""66!9>>!+++	1q5	A66!9A66!9>>66!9>>!+++	1A66!Q<8A;&&&66!Q<8C=(((	8A;A66!9!	!AA66!9!r)   c                     t        d      } t        d      }t        d      }| | t        |z  z   z  t        t              z  t        | t        |z  z   z  t        t              z  z   }|ddt        dz  z   z  t        t              z  t        dt        dz  z   z  t        t              z  z   k(  sJ |j	                  t              j                         t        dz  t        t              z  k(  sJ t        dz   dz  }|j	                  t              dt        dz   dz  z  k(  sJ t        t        dz   dz  z  }|j	                  t              t        dz   dz  dt        z  t        dz   dz  z  z   k(  sJ dt        t        t        z        z  t        z  }|j	                  t              dt        t        dz        z  dt        dz  z  t        t        dz        z  z   k(  sJ y )Nr$   r%   r.   ir#   r-   )r
   r   r   r   r   expandr   )n3n2n6r4   s       r*   
test_diff2r<   3   s   	!B	!B	!B
RC!R%KQ!bS1b5[/#a&"88A219c!f$q"q!t)}SV';;;;;66!9Ac!f,,,	
Q
A66!91q51*$$$	1q51*A66!9Q
QqS!a%!^3333	#ac(
1A66!9#ad)a1fSAY&66666r)   c                     t        d      } t        t        z  t        t        | z        z   }|t        t        z  t        t        dz        z   k(  sJ |j	                  t              t        k(  sJ |j	                  t              t        dt        dz  z  t        t        dz        z  z   k(  sJ t        t              }|t        t              k(  sJ |j	                  t              t        t              dz  dt        t              dz  t        t              dz  z  z   dt        t              dz  z   fv sJ t        t        t              z  t        z
  }|t         t        t        t              z  z   k(  sJ |j	                  t              t        t              k(  sJ t        t        t                    }|t        t        t                    k(  sJ |j	                  t              t        t              dz  t        t              z  t        t              fv sJ t        d      t        z  t        t        d            z  }|dt        z  t        t        d            dz  z  k(  sJ |j	                  t              dt        z  k(  sJ y )Nr,   r-   r7   r#   r%   )
r
   r   r   r   r   r   r   r   r   r   r2   s     r*   
test_diff3r?   D   s   A	!c!Q$iA!c!Q$i66!9>>66!9AadF3q!t9,,,,,AAA;;66!9Q"q3q619SVQY+>'>CFAINNNN	#a&1AQs1vX66!9ACFACF66!9Q"c!f,c!f5555	!aHQK(	(A1S!%+++++66!91r)   c            	          G d dt               }  | t              j                  t              j                  t        u sJ  | t              j                  t        d      j                  t        u sJ t        t              j                  t        d      t	        t        t              t        df      k(  sJ t        t        t        t              t        t              g      t        df      t        t	        t        t              t        df      t	        t        t              t        df      g      k(  sJ  | t              j                  t              dk(  sJ y )Nc                       e Zd Zd Zy)(test_diff_no_eval_derivative.<locals>.Myc                 .    t        j                  | |      S )N)r   __new__)clsr   s     r*   rD   z0test_diff_no_eval_derivative.<locals>.My.__new__Z   s    <<Q''r)   N)__name__
__module____qualname__rD   r(   r)   r*   MyrB   Y   s    	(r)   rI   r$   r%   r   )	r   r   r   funcr   r   r   r   r    )rI   s    r*   test_diff_no_eval_derivativerK   X   s    (T (
 a5::a=+++a5::a  J...a5::az"Q%!Q8888	2a5"Q%.)Aq62i	BqEAq6	"Jr!uq!f$=>7@ @ @ @ a5::a=Ar)   c                  B    t        j                  t         d      dk(  sJ y )Ni r   r'   r(   r)   r*   
test_speedrM   g   s    66!Uq   r)   c                     t        dd      } t        d      }|  |t              z  | z   |t              | dz  z  k(  sJ |  |t              j                  t              z  | z   |t              j                  t              | dz  z  k(  sJ y )NAF)commutativefr%   )r   r   r   r   )rO   rQ   s     r*   test_deriv_noncommutativerR   l   su    s&AAQqT6!8qtAqDy   QqTYYq\>!qtyy|ad2222r)   c                  	   t        d      } t        dd      }t        t        t              t        |f      }t         | t              t        df      }t         | t              t        |f      }|j                  t        t              t        t                     t        t        t               t        |f      k(  sJ |j                  |d      j                         t        t              k(  sJ |j                  |d      j                         t        t               k(  sJ |j                  t         | t              t              t              t        t        t              k(  sJ |t         | t              t        |f      k(  sJ t        t        t        |f      t        t        t        |d      fdt        |d      fd      k(  sJ t        dt        z  t        |f      j                  t        t        dt        z  t        |      z  t        t              t        t         |z         z  z  t        t        d      t        t        dt         |z         d      z  fdt        |      z  t        t              t        t         |z         z  z  t        t        d      t        t        dt         |z         d      z  fd      t        d|f            sJ t        t        t              z  }t        |t        |f      }t!        |t              sJ t#        d	      D ]J  }|j                  ||      j                         |j                  t        |f      j%                         k(  rJJ  dt        z  t        z  t        t              z  t        t              z  t'        t              z  t)        t              z  }|j                  t        |f      }	t!        |	t              sJ t#        d
      D ]X  }|	j                  ||      j                         j%                         |j                  t        |f      j%                         k(  rXJ  t        t              t        t              z  j                  t        t        t*        gg      t-        t        t               t        t              z  t        t              t        t              z  dg      k(  sJ y )NrQ   nT)integerr%   r#   r   )r   Tr,      )r   r   r   r   r   subsr   r   doitr    r   r   dummy_eqr   r   r   
isinstanceranger8   r   r   r!   r   )
rQ   rT   exprexpr2expr3exprmmul_diffiexprm2dexs
             r*   test_diff_nth_derivativerd   s   s   	#AsD!AAAD11vE11vE99SVS!W%CGaV)DDDD99Q?!SV+++99Q?!c!fW,,,::j1q)1-Aq1AAAA JqtaV,,,,Aq6?iBq!H2a8}iPPPP!aV%%Iqs9Q<'1iQ6G)GH
1a2c!aR!Vna((*	
9Q<1iQ&77	8"Q(RA	
QIF ; 	! $%a)	-. . . c!fHEEAq6"Hh$$$1X I}}Q"'')UZZA-?-F-F-HHHHI qSU3q6\#a& Q'A.F
++q!f
Cc31X %xx1~""$++-QF""$% 	% %% F3q6M!Q,		QAAs1vq;* 1+ + + +r)   c                     t        t        dz  t        t        f      j                  t        d      t        t        t        dz  t        df      t        d      k(  sJ t        dt        dz  z   t        t        f      j                  t        d      t        dt        dz  z   t        df      j                  t        d      k(  sJ y )Nr$   r%   r#   r   )r   r   rW   r   r    r(   r)   r*   test_issue_16160rf      s    adQF#((A.$1a4!Q !Q3( ( ( (a!Q$hA',,Q 
AqD1a&)..q!45 5 5r)   N)7sympy.concrete.summationsr   sympy.core.exprr   sympy.core.functionr   r   r   r   sympy.core.numbersr	   r
   r   sympy.core.relationalr   sympy.core.singletonr   sympy.core.symbolr   (sympy.functions.combinatorial.factorialsr   $sympy.functions.elementary.complexesr   r   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.miscellaneousr   $sympy.functions.elementary.piecewiser   (sympy.functions.elementary.trigonometricr   r   r   r   sympy.tensor.array.ndim_arrayr   sympy.testing.pytestr   	sympy.abcr   r   r   r   r    r!   r5   r<   r?   rK   rM   rR   rd   rf   r(   r)   r*   <module>rw      sk    )   B B 0 0 $ " $ > 9 = 8 : I I 3 ' & &B7"(!
3&+R5r)   