
    \h                        S SK JrJrJrJr  S SKJr  S SKJrJ	r	  S SK
Jr  S SKJrJr  S SKJrJr  S SKJrJrJrJrJrJr  S SKJr  S S	KJrJrJrJrJ r J!r!  S S
K"J#r#J$r$J%r%J&r&  S SK'J(r(  S SK)J*r*J+r+  S r,S r-S r.S r/S r0S r1S r2g)    )IRationalpioo)S)SymbolDummy)Lambda)explog)seccsc)cothsechatanhasechacothacsch)sqrt)singularitiesis_increasingis_strictly_increasingis_decreasingis_strictly_decreasingis_monotonic)Interval	FiniteSetUnionImageSet)raises)xyc                  	  ^ [        S5      m[        TS-  T5      [        R                  :X  d   e[        TTS-  ST-  -   S-   -  T5      [	        SS5      :X  d   e[        STS-  S-   -  T5      [	        [
        [
        * 5      :X  d   e[        TTS-  S-   -  T5      [	        SS[        S5      [
        -  -
  S-  S[        S5      [
        -  -   S-  5      :X  d   e[        S[        S-  S[
        -  [        -  -   S-   -  [        5      [	        [
        * [        S5      [
        -  -   [
        * [        S5      [
        -  -
  5      :X  d   e[        S5      n [        [        T5      T5      R                  [        [        [        U SU -  [
        -  [        -  [
        [        -  S-  -   5      [        R                  5      [        [        U SU -  [
        -  [        -  S[
        -  [        -  S-  -   5      [        R                  5      5      5      (       d   e[        [!        T5      T5      R                  [        [        [        U SU -  [
        -  [        -  [
        [        -  -   5      [        R                  5      [        [        U SU -  [
        -  [        -  5      [        R                  5      5      5      (       d   e[        [#        T5      T5      [	        SS5      :X  d   e[        [%        T5      T5      [	        SS5      :X  d   e[        ['        T5      T5      [	        S5      :X  d   e[        [)        T5      T5      [	        S5      :X  d   e[        SS	S
9m[        STS-  S-   -  T5      [        R                  :X  d   e[        [+        ST-  5      T[        R,                  5      [	        S5      :X  d   e[        [+        ST-  5      T[/        SS5      5      [        R                  :X  d   e[        [1        TS-
  S-  5      T[/        SS5      5      [	        S5      :X  d   e[3        [4        U4S j5        [        [7        T5      T[/        SS[        -  5      5      [	        [        S-  S[        -  S-  S[        -  S-  5      :X  d   e[        [9        T5      T[/        SS[        -  5      5      [	        S[        S[        -  S[        -  5      :X  d   eg )Nr!            nr   T)realc                  ,   > [        T [        * -  T 5      $ )N)r   r   )r!   s   _/var/www/auris/envauris/lib/python3.13/site-packages/sympy/calculus/tests/test_singularities.py<lambda>$test_singularities.<locals>.<lambda>1   s    a"fa(@       )r   r   r   EmptySetr   r   r   r"   r	   r   dummy_eqr   r   r
   r   Integersr   r   r   r   r   r   Realsr   r   r    NotImplementedErrorr   r   )_nr!   s    @r,   test_singularitiesr7      s   sAAq!QZZ///AqD1Q3JN+Q/9R3DDDDAqD1Hq)Yq1"-====AqD1Hq)"q47Q;!+a$q'A+o-BCD D DAqD1Q3q5L1,-q11"tAwqy.1"tAwqy.12 2 2	sBa!$--eAbDF2I"Q./<AbDF2I!Bq011::>/@ A A A A a!$--eAbDF2I",-qzz:AbDF2I&

3/5 6 6 6 6 q1%2q)9999q1%2q)9999q1%1555q1%1555sAAqD1Hq)QZZ777QqS1agg.)A,>>>QqS1hq!n5CCCa!eaZ!Xa^<	!LLL
 @AQHQ"$56)
1ad1fad1f;   QHQ"$56)	2qtQrT;   r/   c                  *   [        SSS9n [        [        S-  S[        S-  -  -
  S[        -  -   [        R                  5      (       d   e[        [        S-  * [        [        * S5      5      (       d   e[        [        S-  * [        S[        5      5      (       a   e[        S[        S-  -  S[        S-  -  -
  S	[        -  -
  S
-   [        SS5      5      (       a   e[        [        S-  [        -   [        S[        5      [        5      (       d   e[        [        S-  * U -  [        S[        5      [        5      (       d   e[        S5      (       d   e[        S[        S-  -  S[        S-  -  -
  S	[        -  -
  S
-   [        SS5      5      SL d   eg)z1Test whether is_increasing returns correct value.aT)negativer%   r$      r      H      r&   r(   FN)r   r   r!   r   r4   r   r   r"   )r9   s    r,   test_is_increasingr?   8   sP   sT"AA!Q$1,agg6666!Q$"a 01111adUHQO4444Qq!tVa1f_r!t3b8(2q/JJJJA8Ar?A6666!Q$q(1b/155551a4!AqD&2a4/"4hr1oF%OOOr/   c                     [        S[        S-  -  S[        S-  -  -
  S[        -  -
  S-   [        R                  " [        * S5      5      (       d   e[        S[        S-  -  S[        S-  -  -
  S[        -  -
  S-   [        R
                  " S[        5      5      (       d   e[        S[        S-  -  S[        S-  -  -
  S[        -  -
  S-   [        R                  " SS5      5      (       a   e[        [        S-  * [        S[        5      5      (       a   e[        S	5      (       a   e[        S[        S-  -  S[        S-  -  -
  S[        -  -
  S-   [        R                  " SS5      5      S
L d   eg)z:Test whether is_strictly_increasing returns correct value.r;   r%   r<   r$   r=   r>   r&   r   r(   FN)r   r!   r   Ropenr   Lopenopenr    r/   r,   test_is_strictly_increasingrE   G   sS   !	!Q$1a4"Q$#X^^RC%<> > > >!	!Q$1a4"Q$#X^^Ar%:< < < <%	!Q$1a4"Q$#X]]2q%9; ; ; ;%q!teXa_====%a((((!!AqD&1QT6/BqD"82"=x}}RQR?STX]]]]r/   c            
         [        SSS9n [        S[        S-  S[        -  -
  -  [        R                  " [        SS5      S5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R                  " SS5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R                  " S[        5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R                  " [        * [        SS5      5      5      (       a   e[        [        S-  * [        [        * S5      5      (       a   e[        [        S-  * U -  [        [        * S5      [        5      (       a   eg	)
z1Test whether is_decreasing returns correct value.bT)positiver(   r$   r%         ?r   N)	r   r   r!   r   rC   r   rB   r   rA   )rG   s    r,   test_is_decreasingrJ   U   s!   sT"AAqD1Q3Jx!}a)HIIIIAqD1Q3JsA)>????AqD1Q3J2)>????Q1qs
^X^^RC!Q-PQQQQadUHbS!$45555adU1WhsA&6:::::r/   c            
         [        S[        S-  S[        -  -
  -  [        R                  " S[        5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R
                  " [        * [        SS5      5      5      (       a   e[        [        S-  * [        [        * S5      5      (       a   e[        S5      (       a   e[        S[        S-  S[        -  -
  -  [        R                  " [        SS5      S5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R                  " SS5      5      (       d   eg)z:Test whether is_strictly_decreasing returns correct value.r(   r$   r%   r   rI   N)r   r!   r   rB   r   rA   r   rC   rD   r/   r,   test_is_strictly_decreasingrL   a   s   !!QTAaCZ.(..B2GHHHH%	1a4!A#:sHQN;= = = =%q!teXrc1-=>>>>%a((((!!QTAaCZ.(--1q2QRRRR!!QTAaCZ.(--Q2GHHHHr/   c            	         [        S[        S-  S[        -  -
  -  [        R                  " [	        SS5      S5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R                  " SS5      5      (       d   e[        S[        S-  S[        -  -
  -  [        R
                  " S[        5      5      (       d   e[        [        S-  S[        S-  -  -
  S[        -  -   [        R                  5      (       d   e[        [        S-  * [        R                  5      (       a   e[        [        S-  [        -   S-   [        SS5      [        5      (       d   e[        [        S 5        g)z0Test whether is_monotonic returns correct value.r(   r$   r%   rI   r;   c                  :    [        [        S-  [        -   S-   5      $ )Nr$   r(   )r   r!   r"   rD   r/   r,   r-   #test_is_monotonic.<locals>.<lambda>t   s    QTAX\(Br/   N)r   r!   r   rC   r   rB   r   r   r4   r"   r    r5   rD   r/   r,   test_is_monotonicrP   l   s   1a4!A#:hqmQ(GHHHH1a4!A#:c1(=>>>>1a4!A#:q"(=>>>>1qAv!+QWW5555QTE177++++1q1hq!na8888
 BCr/   c                      [        S5      n U S-   SU S-  -  SU -  -   S-   -  n[        U[        SS5      U 5      (       d   eg )Nr!   r(   gMbPr$   g?)r   r   r   )r!   exprs     r,   test_issue_23401rS   w   sJ    sAEGAqDL3q5(3./Dx!}a0000r/   N)3sympy.core.numbersr   r   r   r   sympy.core.singletonr   sympy.core.symbolr   r	   sympy.core.functionr
   &sympy.functions.elementary.exponentialr   r   (sympy.functions.elementary.trigonometricr   r   %sympy.functions.elementary.hyperbolicr   r   r   r   r   r   (sympy.functions.elementary.miscellaneousr   sympy.calculus.singularitiesr   r   r   r   r   r   
sympy.setsr   r   r   r   sympy.testing.pytestr    	sympy.abcr!   r"   r7   r?   rE   rJ   rL   rP   rS   rD   r/   r,   <module>r`      si    4 4 " + & = =O O 9  < ; ' BP^	;ID1r/   