
    kh	                     f    d dl mZmZ d dlmZ d dl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y
)    )FunctionDefinedFunctionsympify)tanh)cossin)limit)xc                     t         t        fD ]|  }  G d d|       } |t              j                  t        dd      t	        t              j                  t        dd      k(  sJ t         |t              t        z  t        d      dk(  r|J  y)zCreate our new "sin" function.c                   $    e Zd ZddZed        Zy)*test_function_series1.<locals>.my_functionc                 2    t        | j                  d         S Nr   )r   argsselfargindexs     k/var/www/teggl/fontify/venv/lib/python3.12/site-packages/sympy/functions/elementary/tests/test_interface.pyfdiffz0test_function_series1.<locals>.my_function.fdiff   s    499Q<((    c                 :    t        |      }|dk(  rt        d      S y r   r   clsargs     r   evalz/test_function_series1.<locals>.my_function.eval   !    cl!8"1:% r   N   __name__
__module____qualname__r   classmethodr    r   r   my_functionr      s    ) & &r   r&   r   
   r   N)r   r   r   seriesr	   r
   )Fr&   s     r   test_function_series1r*      sx     ( 2		&! 		& 1~$$Q2.#a&--1b2IIII[^A%q!,1112r   c                      t         t        fD ]U  }  G d d|       } |t              j                  t        dd      t	        t              j                  t        dd      k(  rUJ  y)zCreate our new "cos" function.c                   $    e Zd ZddZed        Zy)+test_function_series2.<locals>.my_function2c                 4    t        | j                  d          S r   )r	   r   r   s     r   r   z1test_function_series2.<locals>.my_function2.fdiff+   s    DIIaL)))r   c                 :    t        |      }|dk(  rt        d      S y )Nr   r   r   r   s     r   r   z0test_function_series2.<locals>.my_function2.eval.   r   r   Nr   r    r%   r   r   my_function2r-   )   s    * & &r   r0   r   r'   N)r   r   r   r(   r   )r)   r0   s     r   test_function_series2r1   $   sZ     ( K		&1 		& A%%aB/3q6==Ar3JJJJKr   c                      t         t        fD ][  }  G fdd|       t        t              } t              }|j	                  t        dd      |j	                  t        dd      k(  r[J  y)a_  
    Test our easy "tanh" function.

    This test tests two things:
      * that the Function interface works as expected and it's easy to use
      * that the general algorithm for the series expansion works even when the
        derivative is defined recursively in terms of the original function,
        since tanh(x).diff(x) == 1-tanh(x)**2
    c                   *    e Zd Zd fd	Zed        Zy)%test_function_series3.<locals>.mytanhc                 :    d | j                   d         dz  z
  S )Nr   r      )r   )r   r   mytanhs     r   r   z+test_function_series3.<locals>.mytanh.fdiffG   s     6$))A,/222r   c                 :    t        |      }|dk(  rt        d      S y r   r   r   s     r   r   z*test_function_series3.<locals>.mytanh.evalJ   r   r   Nr   r    )r7   s   r   r7   r4   E   s    3 & &r   r7   r      N)r   r   r   r   r(   )r)   efr7   s      @r   test_function_series3r<   8   sa     ( 6		&Q 		& G1Ixx1a AHHQ1$55556r   N)sympy.core.functionr   r   sympy.core.sympifyr   %sympy.functions.elementary.hyperbolicr   (sympy.functions.elementary.trigonometricr   r	   sympy.series.limitsr
   	sympy.abcr   r*   r1   r<   r%   r   r   <module>rC      s)    : & 6 ? % 2*K(6r   