
    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 d dlmZ d Zd Zd	 Zd
 Zd Zd ZdS )    )
DerivativeFunction)Eq)Symbolsymbols)cossin)raises)euler_equationsc                      t          d          t          d          t          d           t          t          d            t          t           fd           t          t           fd           t          t           fd           t          t           fd           t          t                                 d	z  d	z              h          t          t                                   d
          gk    sJ t          t                                 d	z  d	z               h          t          t                                   d
          gk    sJ d S )Nxytc                      t                      S N)euler     [/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/calculus/tests/test_euler.py<lambda>z&test_euler_interface.<locals>.<lambda>   s
    egg r   c                      t          t                                             z              g          S r   r   Dr   r   r   s   r   r   z&test_euler_interface.<locals>.<lambda>   s9    eAaaddAJJqqttOaaddAY?? r   c                      t          t                                            z                         g          S r   r   r   s   r   r   z&test_euler_interface.<locals>.<lambda>   sA    uQqqttQZZ!_qqttQQqTTlCC r   c                  j    t          t                                 dz   d                    S )N   r   r   )r   r   s   r   r   z&test_euler_interface.<locals>.<lambda>   s-    eAaaddAJJM11Q4488 r   c                  l    t          t                                             z   g          S r   r   r   s   r   r   z&test_euler_interface.<locals>.<lambda>   s/    eAaaddAJJqqttOaS99 r   r   r   )r   r   r
   	TypeError
ValueErrorr   r   r   r   s   @@@r   test_euler_interfacer!   	   sy   AsAsA
9oo&&&
9??????@@@
:CCCCCCDDD
988888999
9999999:::11Q44Qq11Q44&))b!AAaDD!Q--.C.C-DDDDD11Q44Qq!!A$$,,QqqttQ]]NA1F1F0GGGGGGGr   c            	      t   t          d          } t          d          }t           | |          |          dz  dz  t           | |                    z   }t	          | | |          |          t          t           | |                     t           | |          ||          z
  d          gk    sJ d S )Nr   r   r   r   r   r   r   r   r   r   r	   )r   r   Ls      r   test_euler_pendulumr%      s    AsA	!!A$$

Aa#aadd))#AAAaDD!S1YYJ11Q44A$>!B!B CCCCCCCr   c            
         t          d          } t          d          }t          d          t          fd| |fD                       }| |           dz    |          z   |          dz  dz  z   z  }t          | |            |          g          t	          d |           z   |          z   |           z
  t           |                     z
  d          t	           |           dz    |          dz  z    |          z
  t           |                    z
  d          gk    sJ d S )	Nr   r   r   c              3   z   K   | ]5}t           |                    d z  d z   |          d z  d z  z
  V  6dS )r   N)r   ).0zr   s     r   	<genexpr>z)test_euler_henonheiles.<locals>.<genexpr>!   sP      88AAaaddAJJM!OaaddAgai'888888r   r      r   )r   r   sumr   r   r   )r   r   r$   r   s      @r   test_euler_henonheilesr.      s~   AAsA8888!Q88888A!!A$$'!!A$$1q	""AQQqTT11Q44L!$$BqqttGAAaDDL11Q44,?,-aaddAqMM-:;<*> *>)+QQqTT1WHqqttQw,>,-AaDD-134QQqTT1a==-ABC*E *E)F F F F F F Fr   c            
         t          d          } t          d          }t          d          }t           | ||          |          dz  dz  t           | ||          |          dz  dz  z
  t           | ||                    z   }t	          | | ||          ||g          t          t           | ||                     t           | ||          ||          z
  t           | ||          ||          z   d          gk    sJ d S )Npsir   r   r   r   r#   )r0   r   r   r$   s       r   test_euler_sinegr1   )   s$   
5//CsAsA	##a))Q1qQA1!33c##a))nnDACC1II1v&&2s33q!99~~o./Aq		1a.@.@/A./Aq		1a.@.@/ABC,E ,E +F F F F F F Fr   c                  h   t          d          } t          d          }t          d          }t          d          }t          d          }| t           ||          |          dz  z  dz  | t           ||          |          dz  z  dz  z   |t           ||          |          z  t           ||          ||          z  z
  |t           ||          |          z  t           ||          ||          z  z   }t          | ||           ||          g          t	          d|z  t           ||          |||          z  | t           ||          ||          z  z
  d          t	          d|z  t           ||          |||          z  | t           ||          ||          z  z
  d          gk    sJ t          d	          }t           |||          ||          dz  dz  }t          |          t	          t           |||          ||||          d          gk    sJ d S )
Nmkr   r   r   r   r   r,   w)r   r   r   r   r   )r3   r4   r   r   r   r$   r5   s          r   test_euler_high_orderr6   3   s1   sAsAAAsA	
1QQqTT1::q=	Qq1qzz1}_Q.	.	
1QQqTT1::a!amm	#
$&'!!A$$

l1QQqTT1a==&@
AAQQqTT11Q44L!!b1QqqttQ1-=-=)=)*1QQqTT1a==*9:;'= '=&(Aa!aA.>.>)>)*1QQqTT1a==*9:;'= '=&> > > > >
 	sA	!!Aq''1a!AA881QQq!WWaAq111556666666r   c                  ,   t          d          \  } }}t          dt          | |f          \  }}} |             |             |            }}}|                    |           |                    |          z  }t          ||f| |f          g k    sJ d S )Nzx y zzf g h)clsargs)r   r   diffr   )r   r   r)   fghexpr2s          r   test_issue_18653r?   E   s    gGAq!g81a&999GAq!acc1133!qAFF1IIaffQiiEq!f%%++++++r   N)sympy.core.functionr   r   r   sympy.core.relationalr   sympy.core.symbolr   r   (sympy.functions.elementary.trigonometricr   r	   sympy.testing.pytestr
   sympy.calculus.eulerr   r   r!   r%   r.   r1   r6   r?   r   r   r   <module>rF      s    ; ; ; ; ; ; ; ; $ $ $ $ $ $ / / / / / / / / ? ? ? ? ? ? ? ? ' ' ' ' ' ' 9 9 9 9 9 9
H 
H 
HD D D	F 	F 	FF F F7 7 7$, , , , ,r   