
    g+                     0   d dl mZ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 d dl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mZmZ d d	lmZ d d
lmZmZ d dl m!Z!  e	dd          Z"eZ#d Z$d Z%d Z&d Z'd Z(ed             Z)d Z*d Z+d Z,d Z-d Z.d Z/dS )    )ERationaloopizoo)S)Symbol)explog)MaxMinsqrt)cossintan)AccumBounds)AddMulPow)	unchanged)raisesXFAIL)xaTrealc                  4    t          dd          j        dk    sJ t          dd          j        t          j        u sJ t          dd          j        t          dd          k    sJ t          dd          j        dk    sJ t          dd          t          j        u sJ t          dd          dz   t          dd          k    sJ dt          dd          z   t          dd          k    sJ t          dd          t          dd          z   t          dd          k    sJ t          dd           t          dd          k    sJ t          dd          dz
  t          d	d          k    sJ dt          dd          z
  t          dd	          k    sJ t          dd          t          dd          z
  t          d	d          k    sJ t          t          dd          z   t          t          dd          t                    k    sJ t          t          dd          z   t          dt          z   dt          z             k    sJ t          dd          t          z
  t          t          dd          t                     k    sJ t          t           d          t          z   t          t           t                    k    sJ t          dt                    t          z   t          u sJ t          dt                    t          z
  t          t           t                    k    sJ t           t          dt                    z
  t           u sJ t          t           d          t          z
  t           u sJ t          dt                    t          z
  t          t           t                    k    sJ t          t           d          t           z
  t          t           t                    k    sJ t          t          dt                    z
  t          t           t                    k    sJ t           t          dt                    z
  t           u sJ t          dd          dz  t          t          j        d          k    sJ dt          dd          z  t          t          dd          d          k    sJ dt          dd          z  t          t           t                    k    sJ t          t          dd                    t          dd          k    sJ t          t          dd                    t          dd          k    sJ t          t          dd                    t          d	d          k    sJ t          t          dd                    t          d	d          k    sJ t          d
           t          t            fd           t          t           d            t          dd          t          t           fd           d S )N      )r   r      T   r   cc                  $    t          d           S )Nr   Br$   s   h/var/www/html/ai-engine/env/lib/python3.11/site-packages/sympy/calculus/tests/test_accumulationbounds.py<lambda>z"test_AccumBounds.<locals>.<lambda>;   s    qAww     c                  "    t          dd          S )Nr   r#   r&    r+   r)   r*   z"test_AccumBounds.<locals>.<lambda><   s    qBxx r+   rr   c                  *    t            dz
            S )Nr   r&   )r.   s   r)   r*   z"test_AccumBounds.<locals>.<lambda>>   s    qAE{{ r+   )r'   argsdeltar   Onemidr   is_realr   r   r   r   Halfabsr	   r   
ValueError)r$   r.   s   @@r)   test_AccumBoundsr8      s   Q77<6!!!!Q77=AE!!!!Q77;(1a..((((Q77?d""""Q77aeQ77Q;!Aq''!!!!qAww;!Aq''!!!!Q77Qq!WW!Q''''aGG8qRyy    Q77Q;!Aq''!!!!qAww;!B((""""Q77Qq!WW!Q''''qAww;#a1ggq//))))qAww;!AE1q5//))))Q77Q;#a1ggr******bS!99r>QsBZZ''''Q88b=BQ88b=Arc2JJ&&&&C!B))O####bS!99r>bS    Q88b=Arc2JJ&&&&bS!992#r

****1bMaRjj((((C!Ar((Ns""""Q7719!&!$$$$Qq!WW9(1a..!,,,,,,Qr1XX:B3####qAww<<1Q77""""qRyy>>Qq!WW$$$$qQxx==AaGG####qQxx==AaGG####sA
:'''
:''(((sA
:****+++++r+   c                  4   t          dd          dz  t          dd          k    sJ dt          dd          z  t          dd          k    sJ t          dd          t          dd          z  t          dd          k    sJ t          dd          t          dt                    z  t          dt                    k    sJ t          t           t                    t          t           t                    }} | |z  t          t           t                    k    sJ || z  t          t           t                    k    sJ t          dt                    t          dd          }} | |z  t          t           d          k    sJ || z  t          t           d          k    sJ t          dd          dz  dk    sJ t          dt                    dz  t          dt                    k    sJ t          t           d          dz  t          t           d          k    sJ t          t           t                    dz  t          t           t                    k    sJ t          dd          t          z  t	          t          dd          t          d	
          k    sJ t          dd          t          z  t          dt                    k    sJ t          dd          t          z  t          t           d          k    sJ t          dd          t           z  t          t           d          k    sJ t          dd          t           z  t          dt                    k    sJ t          dd          t          z  t          t           t                    k    sJ t          dd          t           z  t          t           t                    k    sJ t          t           t                    t          z  t          t           t                    k    sJ d S )Nr   r      r       r   r"   Fevaluater#   )r'   r   r   r   r   )lr.   s     r)   test_AccumBounds_mulr@   A   s8   Q7719!QQq!WW9!QQ771Q77?a1gg%%%%Q771Q88qBxx''''bS"::q!QxxqAQ3!RC**Q3!RC**Q88Qr2YYqAQ3!RC**Q3!RC**Q7719>>>>Q88A:1b!!!!bS!99Q;!RC))####bS"::a<1bS"::%%%%Q7719AaGGQ7777777Q772:1b!!!!R88B;!RC))####Q77RC=Arc1II%%%%R88bS>Qq"XX%%%%R88B;!RC**$$$$R88bS>QsBZZ''''bS"::b=Arc2JJ&&&&&&r+   c                     t          dd          t          dd          z  t          t          dd          d          k    sJ t          dd          t          dd          z  t          t           t                    k    sJ t          dd          t          dd          z  t          t          j        t                    k    sJ t          dd          t          dd          z  t          t           t                    k    sJ t          d	d          t          dd	          z  t          t           t                    k    sJ t          dd          t          dd          z  t          t           t          dd	                    k    sJ t          d	d          t          dd          z  t          t           t          dd                    k    sJ t          d	d          t          dd          z  t          t          d	d          t                    k    sJ t          dd          t          dd          z  t          dt                    k    sJ t          dd          t          dd          z  t          t           d          k    sJ t          dd	          t          dd	          z  t          t           t                    k    sJ dt          dd	          z  t          t           t                    k    sJ dt          dd	          z  t          t          j        t                    k    sJ dt          dd	          z  t          t           t          dd	                    k    sJ dt          t           d          z  t          t           d          k    sJ dt          dd          z  t          t           d          k    sJ dt          t           d          z  t          dt                    k    sJ dt          t           d          z  t          dd          k    sJ t          dd	          t
          z  t          t          dd	          dt
          z  d
          k    sJ t          dd	          dz  t          dd	          t          z  k    sJ t          dt                    t          z  t          dt                    k    sJ t          dt                    t           z  t          t           d          k    sJ t          t           d          t          z  t          t           d          k    sJ t          t           d          t           z  t          dt                    k    sJ t          t           t                    t          z  t          t           t                    k    sJ t          t           t                    t           z  t          t           t                    k    sJ t          dt                    t          z  t          dt                    k    sJ t          dt                    t           z  t          t           d          k    sJ t          t           d          t          z  t          t           d          k    sJ t          t           d          t           z  t          dt                    k    sJ d S )Nr#   r    r:   r   r"   r<   r   r   Fr=   )r'   r   r   r   r5   r   r   r   r-   r+   r)   test_AccumBounds_divrC   \   sN   R88AaGGq"a!444444R88Ab!HH2#r

****R99Qr1XX162.... R99Qr1XXB3++++Q771R88q"bzz))))R99Qq!WW2#xA 7 77777Q771R88q"hr1oo666666Q771Q77?aA333333Q771Q77?a2hh&&&&R88AaGGq"ayy((((R88Ab!HH2#r

****Qr1XX:B3####Qq!WW9!&"%%%%!Q<1bS(2q//222222QsAYY;!RC))####Qr1XX:B3####2#q		>Qq"XX%%%%QsBZZ<1R88####Q7719AaGGQqS59999999Q7719!Q####Q88B;!Ar((""""Q88bS>QsAYY&&&&bS"::b=Arc1II%%%%bS"::sqBxx''''bS"::b=Arc2JJ&&&&bS"::sq"bzz))))R99R<1Q88####R99rc?aQii''''bS!99R<1bS!99$$$$bS!99rc?a2hh&&&&&&r+   c                  J   t          dd          } t          dd          }t          dt                    }t          t           t                    }|t          |           z
  t          dt          |           z
  t                    k    sJ |t          |           z   t          t           t                    k    sJ || z   |z  t          t           t                    t          | dz
  | dz             z  k    sJ ||z   |z  t          t           t                    k    sJ d S )Nr.   Tr   r#   r      )r	   r'   r   r   )r.   r   r$   bs       r)   test_issue_18795rG      s    sA	"QA	!RA	2#r

As1vv:1SVV8R((((s1vv:B3####E192#r

1QUAE??22222E192#r

""""""r+   c                  0   t           dz  dt           z  z   dz                       t           t          dd                    t          dd          k    sJ t          t          dd                    t          dt                    k    sJ t          t          t
           t
                              t          dt
                    k    sJ t          t          dd                    t          t          d          t          d                    k    sJ d S )Nr   r   r#   r:   r   r    r;   )r   subsr'   r
   r   r   r   r-   r+   r)   test_AccumBounds_funcrJ      s    qD1Q3JN  Ab!HH--2q9999qAww<<1Q77""""q"bzz??a2hh&&&&qAww<<1SVVSVV,,,,,,,,r+   c                  (   t          dd          } t          d| z   d| z             t          dd          z  t          d| z   d| z   dz            k    sJ t          ddd          }t          dd          |z  t          d|z  d          k    sJ d S )NnnTnonnegativer   r   i)integernegative)r	   r'   )rL   rO   s     r)   test_AccumBounds_powfrR      s    	$	'	'	'BQVQVa1gg%1r6AFQ;)?)?????sD4000AQ77A:1a4######r+   c            	         t          dd          dz  t          dd          k    sJ t          dd          dz  t          dd          k    sJ t          dd          dz  t          dd          k    sJ t          dd          dz  t          dd          k    sJ t          dd          dz  dk    sJ t          dd          t          dd          z  t          ddt          d          z            k    sJ t          dd          t          j        z  t          dt          d                    k    sJ t          d	d
          } t          t          t          | d          t          j                  sJ t          dd
          }t          ||dz             t          j        z  t          t          |          t          |dz                       k    sJ t          ||dz             |z  t          ||z  |dz   |z            k    sJ t          t          t          ||dz             t                    sJ t          dd
          }t          dd          |z  t          t          dd|z            t          dd|z                      k    sJ t          dd
d
          }t          dd          |z  t          dd|z            k    sJ t          dd          |z  t          d|z  d          k    sJ t          dd          dz  t          t          dd          d          k    sJ t          dd          dz  t          dt                    k    sJ t          dd          dz  t          t          dd          t                    k    sJ t          dd          dz  t          t           t          dd                     k    sJ t          dd          dz  t          t          dd          t                    k    sJ t          dd          dz  t          t           t                    k    sJ t          dd          dz  t          t          dd          t          dd                    k    sJ t          dd          dz  t          t          dd          t          dd                    k    sJ t          dt                    t          j        z  t          dt                    k    sJ t          t           d          dz  t          dt                    k    sJ t          dd          dz  t          t          dd          t                    k    sJ t          t          dd          t          j                  t          z  t          j        u sJ t          dt          j                  t          z  t          j        u sJ t          t          j        d          t          z  t          dt                    k    sJ t          dd          t          z  t          dt                    k    sJ t          dd          t          z  t          u sJ t          dd          t          z  t          dt                    k    sJ t          t          j        d          t          z  t          dt                    k    sJ t          t          dd          t          dd                    t          z  t          j        u sJ t          dt          dd                    t          z  t          j        u sJ t          dd          t          z  t          u sJ t          dd          t          z  t          j        u sJ t          dt          dd                    t          z  t          j        u sJ t          t          dd          t          j                  t          z  t          j        u sJ t          t          dd          d          t          z  t          dt                    k    sJ t          t          dd          d          t          z  t          dt                    k    sJ t          dd          t          z  t          t           t                    k    sJ t          dt          j                  t          z  t          t           t                    k    sJ t          dd          t          z  t          t           t                    k    sJ t          dt          j                  t          z  t          t           t                    k    sJ t          dd          t          z  t          t          dd          t          d          k    sJ t          dd          t           z  t          j        u sJ t          dd          t           z  t          dt                    k    sJ t          dd          t           z  t          t           t                    k    sJ t          t                    t!          dt          z            z                      t          t          dt$          dz                      t          t          t           t                    t          dd                    k    sJ d S )Nr   r   r:   r#   r   r       r!   negT)rQ   rL   rM   rO   )rP   )rP   rN   r"      r<      	   Fr=   )r'   r   r   r   r5   r	   r   r   r   r   r   r   ZeroNaNr   r   r   rI   r   )rU   rL   rO   s      r)   test_AccumBounds_powr[      s   Q77A:1a    R88Q;!Aq''!!!!Q77A:1a    R88Q;!B((""""R88Q;!Q77HQNN"a1T!WW9oo5555Q77AF?a477mm++++

&
&
&CS!C))QV,,,,,	$	'	'	'BRa==!& Ad2hhR!V$=$=====Ra==""b&26B, 7 77777S!BQ--+++++sD!!!AQ77A:3q!Q$<<Q1666666sDd333AQ77A:1ad####Q77A:1a4####Q77R=Ahq"ooq111111R88b>Qq"XX%%%%Q77R=Ahq!nnb111111R88b>QsXa^^O444444Q77R=Ahq!nnb111111R88b>QsBZZ''''R99r?aQ"b1A1ABBBBBBR99r?aAA??????Q88QVqBxx''''bS!99r?a2hh&&&&R88b>Qx1~~r222222Xa^^QV$$b(AF2222Q<<qv%%%%QVQ<<qBxx''''Q77B;!Ar((""""Q77B;"Q77B;!Ar((""""QVQ<<qBxx''''Xb!__hr1oo..2af<<<<R"a!!2%....R99b=CR99b=AE!!!!R"a!!2%....Xb!__af%%r)QV3333Xb!__a  "$!R0000Xb!__a  "$!R0000R88R<1bS"::%%%%R=="2#r

****R88R<1bS"::%%%%R=="2#r

****Q77A:Qq!WWa%8888888Q77bS>QV####Q77bS>Qq"XX%%%%R88rc?aRjj((((FFC!HH""1a2a4jj11Arc2JJ!Q  ! ! ! ! ! !r+   c                  R   dt          t          t          t          j        z             z  } |                     t          d          t          dd          k    sJ |                     t          d          dk    sJ |                     t          d          }|j        r&|j        dt          dt          j                   fk    sJ dt          t          t          dz             z  dk    sJ t          j        t          dd          z  t          t          d          dz  d          k    sJ dt          dd          z  t          t          d          dz  d          k    sJ t          dd          t          t          d          dz  d          z  t          dd          k    sJ t          dd          t          dd          z  t          dd          k    sJ t          dd          t          dd          z  t          t          d          d	z  t          d          dz            k    sJ t          dd          t          dd          z  t          t          d          d	z  d
          k    sJ t          t          t          dd          t          dd                    sJ t          dt          d          dz            t          dt                    z  t          dt          d          dz            k    sJ t          dd          t          dt                    z  t          dt                    k    sJ t          dd          t          dt                    z  t          dt                    k    sJ t          dt                    t          dt                    z  t          dt                    k    sJ t          t          d          dz  d          t          dt                    z  t          dt                    k    sJ t          t          d          dz  d          t          t           d          z  t          dt                    k    sJ t          t          d          dz  d          t          t           t                    z  t          dt                    k    sJ t          t          d          dz  d          t          dt                    z  t          dt                    k    sJ t          t          d          dz  d          t          t           d          z  t          dt                    k    sJ t          t          d          dz  d          t          t           t                    z  t          dt                    k    sJ t          t          d          dz  t                    t          dt                    z  t          dt                    k    sJ t          t          d          dz  t                    t          t           d          z  t          dt                    k    sJ t          t          d          dz  t                    t          t           t                    z  t          dt                    k    sJ t          dd          t          dt                    z  t          dt                    k    sJ t          dd          t          t           d          z  t          dt                    k    sJ t          dd          t          t           t                    z  t          dt                    k    sJ t          dt                    t          dt                    z  t          dt                    k    sJ t          dt                    t          t           d          z  t          dt                    k    sJ t          dt                    t          t           t                    z  t          dt                    k    sJ t          dt                    t          dt                    z  t          dt                    k    sJ t          dt                    t          t           d          z  t          dt          d          dz            k    sJ t          dt                    t          t           t                    z  t          dt                    k    sJ d S )Nr   r   r#   r"   r   r:   r    r<   rW   rX   )
r'   r   r   r5   rI   is_Powr0   r   r   r   )zps     r)   test_AccumBounds_exponentr`      s   	1QAF
A66!Q<<1Q77""""66!Q<<1	q"A851aQVGnn"55555 a1q5kk>Q61R88q1a||++++aAhh;!AaDDFA,,&&&& Q77Aadd1faLL AaGG++++Q77AaGGqAww&&&& Q77Ab"II1Q447AaDDF!3!33333Q77Ab!HH!A$$r'1---- S!B((AaGG,,,,,Q!Q<<1b!Qq!A$$q&\\1111Q77AaHH!R((((Q77AaHH!R((((Q88Qq"XX1b))))QqTT!VQ<<1b!Qq"XX----QqTT!VQ<<B3#qBxx////QqTT!VQ<<B3#qBxx////QqTT!VQ<<1b!Qq"XX----QqTT!VQ<<B3#qBxx////QqTT!VQ<<B3#qBxx////QqTT!VR==!Ar(("a2hh....QqTT!VR==!RC**$!R0000QqTT!VR==!RC**$!R0000Q77AaHH!R((((Q77Arc2JJ!Ar((****Q77Arc2JJ!Ar((****Q88Qq"XX1b))))Q88QsBZZ1Q88++++Q88QsBZZ1Q88++++Q88Qq"XX1b))))Q88QsBZZ1Q!Q<<////Q88QsBZZ1Q88++++++r+   c                      t          dd          dk     t          j        k    sJ t          dd          dk     t          j        k    sJ t          dd          dk     j        dk    sJ t          dd          dk    j        dk    sJ t          dd          dk    t          j        k    sJ t          dd          dk    t          j        k    sJ t          dd          dk    j        dk    sJ t          dd          dk    j        d	k    sJ t          dd          t          dd
          k     t          j        k    sJ t          dd          t          dd          k     j        dk    sJ t          dd          t          dd          k     t          j        k    sJ t          dd          t          dd
          k    t          j        k    sJ t          dd          t          dd          k    t          j        k    sJ t          dd          t          dd
          k    t          j        k    sJ t          dd          t          dd          k    t          j        k    sJ t          dd          t          dd
          k    t          j        k    sJ t          dd          t          dd          k    t          j        k    sJ t          t                    dk                        t          t                    t          dd          dk    k    sJ t          d           t          t           fd           t          t           fd           t          t           fd           t          t           fd           d S )Nr   r    r:   r#   r   <z<=>z>=r;   r"   r   r$   c                  ,    t          dd           k     S Nr   r   r&   r(   s   r)   r*   z-test_comparison_AccumBounds.<locals>.<lambda>,      qAww{ r+   c                  ,    t          dd           k    S re   r&   r(   s   r)   r*   z-test_comparison_AccumBounds.<locals>.<lambda>-      qAww!| r+   c                  ,    t          dd           k    S re   r&   r(   s   r)   r*   z-test_comparison_AccumBounds.<locals>.<lambda>.  rf   r+   c                  ,    t          dd           k    S re   r&   r(   s   r)   r*   z-test_comparison_AccumBounds.<locals>.<lambda>/  rh   r+   )r'   r   truefalserel_opr   r   rI   r   r	   r   	TypeErrorr(   s   @r)   test_comparison_AccumBoundsro     s   aGGaKAF""""aGGbLQW$$$$aGGaK3&&&&aGGqL D((((aGGaKAG####aGGbLQV####aGGaK3&&&&aGGqL D((((aGGa1gg!&((((aGGa1gg%,,,,aGGaAhh17****aGGqAww16))))aGGqQxxAG++++aGGa1gg!'))))aGGaAhh16))))aGGqAww17****aGGqQxxAF**** FFQJQ##"a15555sA
9++++,,,
9,,,,---
9++++,,,
9,,,,-----r+   c                     dt          dd          v t          j        k    sJ t          t          d            dt          dd          v sJ t          t          d            t
           t          dt
                    v t          j        k    sJ t
          t          t
           d          v t          j        k    sJ t          dt          dd                    t          t          dd          d          cxk    rdk    sn J dd l} |                     dt          dd          t          g          D ]}t          | dk    sJ d S )Nr   r   c                  0    t           t          dd          v S )Nr   r   )r   r'   r-   r+   r)   r*   z+test_contains_AccumBounds.<locals>.<lambda>4  s    a1Q77l r+   r   r#   c                  r    t          d          dz  t          d          dz  z   dz
  t          dd          v S )Nr   r   r#   r   )r   r   r'   r-   r+   r)   r*   z+test_contains_AccumBounds.<locals>.<lambda>6  s5    	QSVVQY		"qQxx/ r+   )
r'   r   rk   r   rn   r   r   	itertoolspermutationsr   )rs   perms     r)   test_contains_AccumBoundsrv   2  sJ   1aLQV####
9**+++"a====
9 0 0 1 1 1C1Q88O&&&&!RC))O&&&& q!B((s1R88Q//44441444444&&1R88Q'788  DzQ r+   c                     t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          j        k    sJ t	          t
          d            d S )Nr   r    r   r   r:   r#   c                  H    t          dd                              d          S Nr   r    r   )r'   intersectionr-   r+   r)   r*   z/test_intersection_AccumBounds.<locals>.<lambda>H  s    a1gg22155 r+   )r'   rz   r   EmptySetr   rn   r-   r+   r)   test_intersection_AccumBoundsr|   B  s)   Q77!Q((AaGG3333Q77!Q((AaGG3333Q77"a))Qq!WW4444Q77"a))Qq!WW4444Q77!Q((AJ6666
95566666r+   c                  Z   t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          dd                              t          dd                    t          dd          k    sJ t          t          d            d S )Nr   r    r   r   r:   r#   c                  H    t          dd                              d          S ry   )r'   unionr-   r+   r)   r*   z(test_union_AccumBounds.<locals>.<lambda>P  s    a1ggmmA.. r+   )r'   r   r   rn   r-   r+   r)   test_union_AccumBoundsr   K  s    Q77==1a!!Qq!WW,,,,Q77==1a!!Qq!WW,,,,Q77==2q""aAhh....Q77==2q""aAhh....
9../////r+   N)0sympy.core.numbersr   r   r   r   r   sympy.core.singletonr   sympy.core.symbolr	   &sympy.functions.elementary.exponentialr
   r   (sympy.functions.elementary.miscellaneousr   r   r   (sympy.functions.elementary.trigonometricr   r   r   !sympy.calculus.accumulationboundsr   
sympy.corer   r   r   sympy.core.exprr   sympy.testing.pytestr   r   	sympy.abcr   r   r'   r8   r@   rC   rG   rJ   rR   r[   r`   ro   rv   r|   r   r-   r+   r)   <module>r      s   9 9 9 9 9 9 9 9 9 9 9 9 9 9 " " " " " " $ $ $ $ $ $ = = = = = = = = E E E E E E E E E E D D D D D D D D D D 9 9 9 9 9 9 $ $ $ $ $ $ $ $ $ $ % % % % % % . . . . . . . .      
F3T-, -, -,`' ' '6&' &' &'R# # #- - - $ $ $=! =! =!@., ., .,b. . .D   7 7 70 0 0 0 0r+   