ó
¡¼™\c           @   s2  d  d l  m Z m Z m Z m Z m Z m Z m Z m Z m	 Z	 m
 Z
 m Z m Z m Z m Z d  d l m Z m Z m Z d  d l m Z m Z d  d l m Z d  d l m Z d „  Z d „  Z e d „  ƒ Z e d	 „  ƒ Z e d
 „  ƒ Z d „  Z d „  Z  d „  Z! d „  Z" d „  Z# d „  Z$ d „  Z% d S(   iÿÿÿÿ(   t   Abst   expt   Exprt   It   pit   Qt   Rationalt   refinet   St   sqrtt   atant   atan2t   nant   Symbol(   t   xt   yt   z(   t   Eqt   Ne(   t	   Piecewise(   t   slowc           C   s  t  t t ƒ t j t ƒ ƒ t k s* t ‚ t  d t t ƒ t j t ƒ ƒ d t k s\ t ‚ t  t t ƒ t j t ƒ ƒ t k s‡ t ‚ t  d t t ƒ t j t ƒ ƒ d t k s¹ t ‚ t  t t d ƒ ƒ t d k sß t ‚ t  t t d ƒ t j t ƒ ƒ t d k st ‚ d  S(   Ni   i   (   R   R    R   R   t   positivet   AssertionErrort   negativet   real(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_Abs	   s    *2+2&c           C   sD  t  d t t j t ƒ ƒ d k s( t ‚ t  d t t j t ƒ ƒ d k sP t ‚ t  d t t j t ƒ ƒ d t k s| t ‚ t  t t d ƒ ƒ t t ƒ k s¤ t ‚ t  t t d ƒ t j t ƒ ƒ t t ƒ k sØ t ‚ t  t t d ƒ t j	 t ƒ ƒ t t ƒ k st ‚ t  t t d ƒ t j
 t ƒ ƒ t k s:t ‚ t  t d t d ƒ d ƒ t k sdt ‚ t  t d t d ƒ d t j	 t ƒ ƒ t k sšt ‚ t  t d t d ƒ d t j
 t ƒ ƒ t k sÐt ‚ t  t d t ƒ t j	 t ƒ ƒ d t t ƒ k st ‚ t  t d t ƒ t j
 t ƒ ƒ d t t ƒ k s@t ‚ d  S(   Niÿÿÿÿi   iþÿÿÿi   i   (   R   R   R   t   evenR   t   oddR	   R    t   complexR   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt	   test_pow1   s    ((,(44.*668c           C   s	  t  d t t t j t ƒ ƒ d t k s0 t ‚ t  d t t t t j t ƒ t j t ƒ @ƒ d t k sq t ‚ t  d t t d t j t ƒ ƒ d t k s¥ t ‚ t  d t t d t j t ƒ ƒ d t d k sÝ t ‚ t  d t d ƒ d t d k st ‚ d  S(   Niÿÿÿÿi   i   i   (   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt	   test_pow2&   s
    0A48c           C   sÁ   t  d d t d t j t j t ƒ ƒ d t k s; t ‚ t  d d t d t j t j t ƒ ƒ d t d k sz t ‚ t  d d t d d t j t j t ƒ ƒ d t d k s½ t ‚ d  S(   Niÿÿÿÿi   i   i   (   R   R   R   t   HalfR   t   integerR   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt	   test_pow30   s    ;?c           C   s  t  d d t d d t j t j t ƒ ƒ d t d k sC t ‚ t  d d t d d t j t j t ƒ ƒ d t k s‚ t ‚ t  t t ƒ d t j t ƒ ƒ t d k s´ t ‚ t  t t ƒ d t j t ƒ ƒ t t ƒ d k sì t ‚ t  t t ƒ d ƒ t t ƒ d k st ‚ d  S(   Niÿÿÿÿi   i   i   i	   i   (	   R   R   R   R   R   R    R   R    R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt	   test_pow48   s
    C?28c          C   sæ   t  d d t ƒ}  t t t t d |  ƒ ƒ d k s< t ‚ t t t t d |  t d d ƒ ƒ ƒ d k ss t ‚ t t t t d |  t d d ƒ ƒ ƒ t k sª t ‚ t t t t d |  t d d ƒ ƒ ƒ t k sâ t ‚ d  S(   NR   R    i   i   iÿÿÿÿi   i   (   R   t   TrueR   R   R   R   R   R   (   R   (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_expC   s
    *77c           C   s¢  t  t d k  t j t d k  ƒ ƒ s, t ‚ t  t d k  t j t d k  ƒ ƒ sV t ‚ t  t d k  t j d t k ƒ ƒ t k s† t ‚ t  t d k  t j t d k  ƒ ƒ t d k  k s¼ t ‚ t  t d k t j t d k ƒ ƒ sè t ‚ t  t d k t j t d k ƒ ƒ st ‚ t  t d k t j d t k ƒ ƒ t k sBt ‚ t  t d k t j t d k ƒ ƒ t d k k sxt ‚ t  t d k t j t d k ƒ ƒ s¤t ‚ t  t d k t j t d k ƒ ƒ sÎt ‚ t  t d k t j d t k  ƒ ƒ t k sþt ‚ t  t d k t j t d k ƒ ƒ t d k k s4t ‚ t  t d k t j t d k ƒ ƒ s`t ‚ t  t d k t j t d k ƒ ƒ sŠt ‚ t  t d k t j d t k ƒ ƒ t k sºt ‚ t  t d k t j t d k ƒ ƒ t d k k sðt ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ s"t ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ sRt ‚ t  t t d ƒ t j t d t ƒ ƒ ƒ t k sˆt ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ t t d ƒ k sÇt ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ sùt ‚ t  t t d ƒ t j t d t ƒ ƒ ƒ t k s/t ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ s_t ‚ t  t t d ƒ t j t t d ƒ ƒ ƒ t t d ƒ k sžt ‚ d  S(   Ni    (	   R   R   R   t   is_trueR   R#   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_RelationalK   s0    ,*06,*06,*06,*06206?260c           C   sG  t  t d t d k  f d t f ƒ t j t d k  ƒ ƒ d k sE t ‚ t  t d t d k  f d t f ƒ t j t d k  ƒ ƒ d k s‹ t ‚ t  t d t d k  f d t f ƒ t j t d k  ƒ ƒ t d t d k  f d t f ƒ k së t ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k s0t ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k svt ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ t d t d k f d t f ƒ k sÖt ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k st ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k sat ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ t d t d k f d t f ƒ k sÁt ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k st ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ d k sLt ‚ t  t d t d k f d t f ƒ t j t d k ƒ ƒ t d t d k f d t f ƒ k s¬t ‚ t  t d t t d ƒ f d t f ƒ t j t t d ƒ ƒ ƒ d k s÷t ‚ t  t d t t d ƒ f d t f ƒ t j t d t ƒ ƒ ƒ d k sBt ‚ t  t d t t d ƒ f d t f ƒ t j t t d ƒ ƒ ƒ d k sŽt ‚ t  t d t t d ƒ f d t f ƒ t j t d t ƒ ƒ ƒ d k sÚt ‚ t  t d t t d ƒ f d t f ƒ t j t t d ƒ ƒ ƒ t d t t d ƒ f d t f ƒ k sCt ‚ t  t d t	 t d ƒ f d t f ƒ t j t	 t d ƒ ƒ ƒ d k sŽt ‚ t  t d t	 t d ƒ f d t f ƒ t j t	 t d ƒ ƒ ƒ d k sÚt ‚ t  t d t	 t d ƒ f d t f ƒ t j t	 t d ƒ ƒ ƒ t d t	 t d ƒ f d t f ƒ k sCt ‚ d  S(   Ni   i    i   (
   R   R   R   R#   R   R%   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_Piecewisef   s@    EF6*EF6*EF6*EF6*<<==<-<=<c           C   s  t  t t t ƒ t j t ƒ t j t ƒ @ƒ t t t ƒ k sD t ‚ t  t t t ƒ t j	 t ƒ t j t ƒ @ƒ t t t ƒ k sˆ t ‚ t  t t t ƒ t j	 t ƒ t j	 t ƒ @ƒ t t t ƒ t
 k sÐ t ‚ t  t t t ƒ t j t ƒ t j	 t ƒ @ƒ t t t ƒ t
 k st ‚ t  t t t ƒ t j t ƒ t j	 t ƒ @ƒ t
 k sRt ‚ t  t t t ƒ t j t ƒ t j t ƒ @ƒ t
 d k st ‚ t  t t t ƒ t j	 t ƒ t j t ƒ @ƒ t
 d k sÏt ‚ t  t t t ƒ t j t ƒ t j t ƒ @ƒ t k s	t ‚ d  S(   Ni   (   R   R   R   R   R   R   R   R
   R   R   R   t   zeroR   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt
   test_atan2‰   s    DDHH:>?c             sP   d t  f ‡  f d †  ƒ  Y‰  ˆ  ƒ  }  d |  _ |  j t |  ƒ j k sL t ‚ d  S(   Nt   MyClassc              s&   e  Z d  „  Z e ‡  f d †  ƒ Z RS(   c         W   s   d |  _  d  S(   Nt    (   t	   my_member(   t   selft   args(    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   __init__˜   s    c            s   ‡ ‡  f d †  } | S(   Nc             s   ˆ  |  Œ  } ˆ j  | _  | S(   N(   R,   (   R.   t   obj(   R*   R-   (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   my_func   s    (    (   R-   R1   (   R*   (   R-   sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   func›   s    (   t   __name__t
   __module__R/   t   propertyR2   (    (   R*   (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyR*   •   s   	s   A very important value(   R   R,   R   R   (   R   (    (   R*   sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_func_args”   s    		c          C   sE   d d l  m }  d |  f d „  ƒ  Y} | ƒ  } t | ƒ sA t ‚ d  S(   Niÿÿÿÿ(   R   t   MockExprc           B   s   e  Z d  „  Z RS(   c         S   s   t  S(   N(   R#   (   R-   t   assumptions(    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   _eval_refine«   s    (   R3   R4   R9   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyR7   ª   s   (   t   sympy.core.exprR   R   R   (   R   R7   t   mock_obj(    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_eval_refine¨   s    	c          C   sè   t  t t t ƒ t j t ƒ ƒ }  t  t t t t ƒ t j t ƒ ƒ } |  t t t ƒ k sd t ‚ | t t t t ƒ k s„ t ‚ t d d t	 ƒ} t  t t | d t ƒ t j t ƒ ƒ } | t | d t t ƒ k sä t ‚ d  S(   Nt   y1R   i   (
   R   R    R   R   R   R   R   R   R   R#   (   t   expr1t   expr2R=   t   expr3(    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   test_refine_issue_12724±   s    "& *N(&   t   sympyR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   t	   sympy.abcR   R   R   t   sympy.core.relationalR   R   t$   sympy.functions.elementary.piecewiseR   t   sympy.utilities.pytestR   R   R   R   R!   R"   R$   R&   R'   R)   R6   R<   RA   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_refine.pyt   <module>   s    ^	
	
			#				