
    g                        d dl mZmZmZmZ d dlmZ 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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#m$Z$m%Z%m&Z& d dl'm(Z( d dl)m*Z*m+Z+ d Z,d Z-d Z.d Z/d Z0d Z1d Z2dS )    )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                     t          d          t          dz            t          j        k    sJ t          dz  dz  z   dz   z            t	          dd          k    sJ t          ddz  dz   z            t	          t
          t
                     k    sJ t          dz  dz   z            t	          ddt          d          t
          z  z
  dz  dt          d          t
          z  z   dz            k    sJ t          dt          dz  dt
          z  t          z  z   dz   z  t                    t	          t
           t          d          t
          z  z   t
           t          d          t
          z  z
            k    sJ t          d          } t          t                              
                    t          t          t          | d| z  t
          z  t          z  t
          t          z  dz  z             t          j                  t          t          | d| z  t
          z  t          z  dt
          z  t          z  dz  z             t          j                                      sJ t          t!                              
                    t          t          t          | d| z  t
          z  t          z  t
          t          z  z             t          j                  t          t          | d| z  t
          z  t          z            t          j                                      sJ t          t#                              t	          dd          k    sJ t          t%                              t	          dd          k    sJ t          t'                              t	          d          k    sJ t          t)                              t	          d          k    sJ t          dd	
          t          ddz  dz   z            t          j        k    sJ t          t+          dz            t          j                  t	          d          k    sJ t          t+          dz            t/          dd                    t          j        k    sJ t          t1          dz
  dz            t/          dd                    t	          d          k    sJ t3          t4          fd           t          t7                    t/          ddt          z                      t	          t          dz  dt          z  dz  dt          z  dz            k    sJ t          t9                    t/          ddt          z                      t	          dt          dt          z  dt          z            k    sJ d S )Nr!            nr   T)realc                  6    t           t           z             S )N)r   r   )r!   s   c/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/calculus/tests/test_singularities.py<lambda>z$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_singularitiesr6      s   sAAq!!QZ////AqD1Q3JN+Q//9R3D3DDDDDAqD1Hq))Yq1"-=-=====AqD1Hq))"q477Q;!+a$q''A+o-BCCD D D DAqD1Q3q5L1,-q111"tAwwqy.1"tAwwqy.112 2 2 2	sBa!$$--eAbDF2I"Q.//<<AbDF2I!Bq0111:>>/@ /@ A A A A A a!$$--eAbDF2I",--qz::AbDF2I&&
33/5 /5 6 6 6 6 6 q1%%2q)9)99999q1%%2q)9)99999q1%%15555q1%%15555sAAqD1Hq))QZ7777QqS1ag..)A,,>>>>QqS1hq!nn55CCCCa!eaZ!Xa^^<<	!LLLL
 @ @ @ @AAAQHQ"$5$566)
1ad1fad1f; ;    QHQ"$5$566)	2qtQrT; ;      r.   c                     t          dd          } t          t          dz  dt          dz  z  z
  dt          z  z   t          j                  sJ t          t          dz   t          t           d                    sJ t          t          dz   t          dt                              rJ t          dt          dz  z  dt          dz  z  z
  d	t          z  z
  d
z   t          dd                    rJ t          t          dz  t          z   t          dt                    t                    sJ t          t          dz   | z  t          dt                    t                    sJ t          d          sJ t          dt          dz  z  dt          dz  z  z
  d	t          z  z
  d
z   t          dd                    du sJ dS )z1Test whether is_increasing returns correct value.aT)negativer%   r$      r      H      r&   r(   FN)r   r   r!   r   r3   r   r   r"   )r8   s    r,   test_is_increasingr>   8   s   sT"""AA!Q$1,ag66666!Q$"a 0 011111adUHQOO44444Qq!tVa1f_r!t3b8(2q//JJJJJA8Ar??A66666!Q$q(1b//1555551a4!AqD&2a4/"4hr1ooFF%OOOOOOr.   c                     t          dt          dz  z  dt          dz  z  z
  dt          z  z
  dz   t          j        t           d                    sJ t          dt          dz  z  dt          dz  z  z
  dt          z  z
  dz   t          j        dt                              sJ t          dt          dz  z  dt          dz  z  z
  dt          z  z
  dz   t          j        dd                    rJ t          t          dz   t          dt                              rJ t          d	          rJ t          dt          dz  z  dt          dz  z  z
  dt          z  z
  dz   t          j        dd                    d
u sJ dS )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_increasingrD   G   sz   !	!Q$1a4"Q$#X^RC%<%<> > > > >!	!Q$1a4"Q$#X^Ar%:%:< < < < <%	!Q$1a4"Q$#X]2q%9%9; ; ; ; ;%q!teXa__=====%a(((((!!AqD&1QT6/BqD"82"=x}RQR?S?STTX]]]]]]]r.   c            
         t          dd          } t          dt          dz  dt          z  z
  z  t          j        t          dd          d                    sJ t          dt          dz  dt          z  z
  z  t          j        dd                    sJ t          dt          dz  dt          z  z
  z  t          j        dt                              sJ t          dt          dz  dt          z  z
  z  t          j        t           t          dd                              rJ t          t          dz   t          t           d                    rJ t          t          dz   | z  t          t           d          t                    rJ d	S )
z1Test whether is_decreasing returns correct value.bT)positiver(   r$   r%         ?r   N)	r   r   r!   r   rB   r   rA   r   r@   )rF   s    r,   test_is_decreasingrI   U   sJ   sT"""AAqD1Q3Jx!}}a)H)HIIIIIAqD1Q3JsA)>)>?????AqD1Q3J2)>)>?????Q1qs
^X^RC!Q-P-PQQQQQadUHbS!$4$455555adU1WhsA&6&6:::::::r.   c            
         t          dt          dz  dt          z  z
  z  t          j        dt                              sJ t          dt          dz  dt          z  z
  z  t          j        t           t          dd                              rJ t          t          dz   t          t           d                    rJ t          d          rJ t          dt          dz  dt          z  z
  z  t          j        t          dd          d                    sJ t          dt          dz  dt          z  z
  z  t          j        dd                    sJ dS )z:Test whether is_strictly_decreasing returns correct value.r(   r$   r%   r   rH   N)r   r!   r   rA   r   r@   r   rB   rC   r.   r,   test_is_strictly_decreasingrK   a   s)   !!QTAaCZ.(.B2G2GHHHHH%	1a4!A#:sHQNN;;= = = = =%q!teXrc1-=-=>>>>>%a(((((!!QTAaCZ.(-1q2Q2QRRRRR!!QTAaCZ.(-Q2G2GHHHHHHHr.   c            	         t          dt          dz  dt          z  z
  z  t          j        t	          dd          d                    sJ t          dt          dz  dt          z  z
  z  t          j        dd                    sJ t          dt          dz  dt          z  z
  z  t          j        dt                              sJ t          t          dz  dt          dz  z  z
  dt          z  z   t          j                  sJ t          t          dz   t          j                  rJ t          t          dz  t          z   dz   t          dd          t                    sJ t          t          d            dS )z0Test whether is_monotonic returns correct value.r(   r$   r%   rH   r:   c                  F    t          t          dz  t          z   dz             S )Nr$   r(   )r   r!   r"   rC   r.   r,   r-   z#test_is_monotonic.<locals>.<lambda>t   s    QTAX\(B(B r.   N)r   r!   r   rB   r   rA   r   r   r3   r"   r    r4   rC   r.   r,   test_is_monotonicrN   l   s6   1a4!A#:hqmmQ(G(GHHHHH1a4!A#:c1(=(=>>>>>1a4!A#:q"(=(=>>>>>1qAv!+QW55555QTE17+++++1q1hq!nna88888
 B BCCCCCr.   c                      t          d          } | dz   d| dz  z  d| z  z   dz   z  }t          |t          dd          |           sJ d S )Nr!   r(   gMbPr$   g?)r   r   r   )r!   exprs     r,   test_issue_23401rQ   w   sW    sAEGAqDL3q5(3./Dx!}}a000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"   r6   r>   rD   rI   rK   rN   rQ   rC   r.   r,   <module>r^      s'   4 4 4 4 4 4 4 4 4 4 4 4 " " " " " " + + + + + + + + & & & & & & = = = = = = = = = = = = = = = =O O O O O O O O O O O O O O O O 9 9 9 9 9 9                < ; ; ; ; ; ; ; ; ; ; ; ' ' ' ' ' '          BP P P^ ^ ^	; 	; 	;I I ID D D1 1 1 1 1r.   