
    g+                     "   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/y)    )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                  	    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       y )N      )r   r      T   r   cc                      t        d       S )Nr   Br$   s   a/var/www/openai/venv/lib/python3.12/site-packages/sympy/calculus/tests/test_accumulationbounds.py<lambda>z"test_AccumBounds.<locals>.<lambda>;   s    qAw    c                      t        dd      S )Nr   r#   r&    r+   r)   r*   z"test_AccumBounds.<locals>.<lambda><   s
    qBxr+   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7<<6!!!Q7==AEE!!!Q7;;(1a.(((Q7??d"""Q7aeeQ7Q;!Aq'!!!qAw;!Aq'!!!Q7Qq!W!Q'''aG8qRy   Q7Q;!Aq'!!!qAw;!B("""Q7Qq!W!Q'''qAw;#a1gq/)))qAw;!AE1q5/)))Q7Q;#a1gr****bS!9r>QsBZ'''Q8b=BQ8b=Arc2J&&&C!B)O###bS!9r>bS   Q8b=Arc2J&&&bS!92#r
***1bMaRj(((C!Ar(Ns"""Q719!&&!$$$Qq!W9(1a.!,,,,Qr1X:B3###qAw<1Q7"""qRy>Qq!W$$$qQx=AaG###qQx=AaG###sA
:'
:'(sA
:*+r+   c                  f   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 y )Nr   r      r       r   r"   Fevaluater#   )r'   r   r   r   r   )lr.   s     r)   test_AccumBounds_mulr@   A   s   Q719!QQq!W9!QQ71Q7?a1g%%%Q71Q8qBx'''bS":q!QxqAQ3!RC*Q3!RC*Q8Qr2YqAQ3!RC*Q3!RC*Q719>>Q8A:1b!!!bS!9Q;!RC)###bS":a<1bS":%%%Q719AaGQ7777Q72:1b!!!R8B;!RC)###Q7RC=Arc1I%%%R8bS>Qq"X%%%R8B;!RC*$$$R8bS>QsBZ'''bS":b=Arc2J&&&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 y )Nr#   r    r:   r   r"   r<   r   r   Fr=   )r'   r   r   r   r5   r   r   r   r-   r+   r)   test_AccumBounds_divrC   \   sO   R8AaGq"a!4444R8Ab!H2#r
***R9Qr1X1662... R9Qr1XB3+++Q71R8q"bz)))R9Qq!W2#xA 7777Q71R8q"hr1o6666Q71Q7?aA3333Q71Q7?a2h&&&R8AaGq"ay(((R8Ab!H2#r
***Qr1X:B3###Qq!W9!&&"%%%!Q<1bS(2q/2222QsAY;!RC)###Qr1X:B3###2#q	>Qq"X%%%QsBZ<1R8###Q719AaGQqS59999Q719!Q###Q8B;!Ar("""Q8bS>QsAY&&&bS":b=Arc1I%%%bS":sqBx'''bS":b=Arc2J&&&bS":sq"bz)))R9R<1Q8###R9rc?aQi'''bS!9R<1bS!9$$$bS!9rc?a2h&&&r+   c                     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 y )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s1v:1SV8R(((s1v:B3###E192#r
1QUAE?2222E192#r
"""r+   c                     t         dz  dt         z  z   dz   j                  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 y )Nr   r   r#   r:   r   r    r;   )r   subsr'   r
   r   r   r   r-   r+   r)   test_AccumBounds_funcrJ      s    qD1Q3JN  Ab!H-2q999qAw<1Q7"""q"bz?a2h&&&qAw<1SVSV,,,,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 y )NnnTnonnegativer   r   i)integernegative)r	   r'   )rL   rO   s     r)   test_AccumBounds_powfrR      sy    	$	'BQVQVa1g%1r6AFQ;)????sD40AQ7A: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  j#                  t        t        dt$        dz              t        t        t         t              t        dd            k(  sJ y )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7A:1a   R8Q;!Aq'!!!Q7A:1a   R8Q;!B("""R8Q;!Q7HQN"a1T!W9o555Q7AFF?a47m+++

&CS!C)QVV,,,	$	'BRa=!&& Ad2hR!V$====Ra=""b&26B, 7777S!BQ-+++sD!AQ7A:3q!Q$<Q16666sDd3AQ7A:1ad###Q7A:1a4###Q7R=Ahq"oq1111R8b>Qq"X%%%Q7R=Ahq!nb1111R8b>QsXa^O4444Q7R=Ahq!nb1111R8b>QsBZ'''R9r?aQ"b1ABBBBR9r?aAA????Q8QVVqBx'''bS!9r?a2h&&&R8b>Qx1~r2222Xa^QVV$b(AFF222Q<qvv%%%QVVQ<qBx'''Q7B;!Ar("""Q7B;"Q7B;!Ar("""QVVQ<qBx'''Xb!_hr1o.2aff<<<R"a!2%...R9b=CR9b=AEE!!!R"a!2%...Xb!_aff%r)QVV333Xb!_a "$!R000Xb!_a "$!R000R8R<1bS":%%%R="2#r
***R8R<1bS":%%%R="2#r
***Q7A:Qq!Wa%8888Q7bS>QVV###Q7bS>Qq"X%%%R8rc?aRj(((FC!H""1a2a4j1Arc2J!Q ! ! !r+   c                  H   dt        t        t        t        j                  z         z  } | j	                  t        d      t        dd      k(  sJ | j	                  t        d      dk(  sJ | 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 y )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`      sw   	1QAFF
A66!Q<1Q7"""66!Q<1	q"A881aQVVGn"5555 a1q5k>Q661R8q1a|+++aAh;!AaDFA,&&& Q7Aad1faL AaG+++Q7AaGqAw&&& Q7Ab"I1Q47AaDF!3333Q7Ab!H!A$r'1--- S!B(AaG,,,Q!Q<1b!Qq!A$q&\111Q7AaH!R(((Q7AaH!R(((Q8Qq"X1b)))QqT!VQ<1b!Qq"X---QqT!VQ<B3#qBx///QqT!VQ<B3#qBx///QqT!VQ<1b!Qq"X---QqT!VQ<B3#qBx///QqT!VQ<B3#qBx///QqT!VR=!Ar("a2h...QqT!VR=!RC*$!R000QqT!VR=!RC*$!R000Q7AaH!R(((Q7Arc2J!Ar(***Q7Arc2J!Ar(***Q8Qq"X1b)))Q8QsBZ1Q8+++Q8QsBZ1Q8+++Q8Qq"X1b)))Q8QsBZ1Q!Q<///Q8QsBZ1Q8+++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kD  t        j                  k(  sJ t        dd      dkD  t        j                  k(  sJ t        dd      dkD  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
      kD  t        j                  k(  sJ t        dd      t        dd      kD  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kD  j                  t        t              t        dd      dkD  k(  sJ t        d       t        t         fd       t        t         fd       t        t         fd       t        t         fd       y )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Aw{r+   c                  "    t        dd       k  S re   r&   r(   s   r)   r*   z-test_comparison_AccumBounds.<locals>.<lambda>-      qAw!|r+   c                  "    t        dd       kD  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GaKAFF"""aGbLQWW$$$aGaK3&&&aGqL  D(((aGaKAGG###aGbLQVV###aGaK3&&&aGqL  D(((aGa1g!&&(((aGa1g%%,,,aGaAh177***aGqAw166)))aGqQxAGG+++aGa1g!'')))aGaAh166)))aGqAw177***aGqQxAFF*** FQJQ#"a1555sA
9+,
9,-
9+,
9,-r+   c                  2   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J  J dd l} | j                  dt        dd      t        g      D ]  }t        | dk(  rJ  y )Nr   r   c                  &    t         t        dd      v S )Nr   r   )r   r'   r-   r+   r)   r*   z+test_contains_AccumBounds.<locals>.<lambda>4  s    a1Q7lr+   r   r#   c                  Z    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  s*    	QSVQY		"qQx/r+   )
r'   r   rk   r   rn   r   r   	itertoolspermutationsr   )rs   perms     r)   test_contains_AccumBoundsrv   2  s    1aLQVV###
9*+"a==
9 0 1C1Q8O&&&!RC)O&&& q!B(s1R8Q/4144444&&1R8Q'78DzQ 9r+   c                  6   t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        j                  k(  sJ t	        t
        d        y )Nr   r    r   r   r:   r#   c                  8    t        dd      j                  d      S Nr   r    r   )r'   intersectionr-   r+   r)   r*   z/test_intersection_AccumBounds.<locals>.<lambda>H  s    a1g2215r+   )r'   rz   r   EmptySetr   rn   r-   r+   r)   test_intersection_AccumBoundsr|   B  s    Q7!Q(AaG333Q7!Q(AaG333Q7"a)Qq!W444Q7"a)Qq!W444Q7!Q(AJJ666
956r+   c                     t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        dd      j                  t        dd            t        dd      k(  sJ t        t        d        y )Nr   r    r   r   r:   r#   c                  8    t        dd      j                  d      S ry   )r'   unionr-   r+   r)   r*   z(test_union_AccumBounds.<locals>.<lambda>P  s    a1gmmA.r+   )r'   r   r   rn   r-   r+   r)   test_union_AccumBoundsr   K  s    Q7==1a!Qq!W,,,Q7==1a!Qq!W,,,Q7==2q"aAh...Q7==2q"aAh...
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 " $ = E E D D 9 $ $ % . 
3T-,`'6&'R#- $ $=!@.,b.D 70r+   