ó
~9­\c           @   s  d  d l  m Z d  d l 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 e d ƒ \ Z Z 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 „  Z d „  Z d „  Z d „  Z  e d „  ƒ Z! d S(   iÿÿÿÿ(   t   satask(   t   symbolst   Qt   assumingt   Impliest   MatrixSymbolt   It   pit   Rational(   t   raisest   XFAILt   slows   x y zc           C   s˜  t  t j t ƒ t j t ƒ ƒ t k s- t ‚ t  t j t ƒ t j t ƒ ƒ t k s[ t ‚ t  t j t ƒ ƒ d  k s| t ‚ t  t j t ƒ t j t ƒ ƒ t k s© t ‚ t  t j t ƒ t j t ƒ ƒ d  k sÖ t ‚ t  t j t ƒ t j t ƒ ƒ d  k st ‚ t  t j t ƒ t j t ƒ ƒ t k s2t ‚ t	 t
 d „  ƒ t t j t ƒ ƒ X t  t j t ƒ ƒ t k syt ‚ t  t j t ƒ ƒ t k s›t ‚ t	 t
 d „  ƒ Wd  QXt  t j t ƒ t j t ƒ ƒ t k sÞt ‚ t  t j t ƒ t j t ƒ ƒ t k st ‚ t  t j t ƒ t j t ƒ ƒ t k s8t ‚ t  t j t ƒ t j t t ƒ ƒ d  k sit ‚ t  t j t t ƒ t j t ƒ ƒ s”t ‚ d  S(   Nc           S   s-   t  t j t ƒ t j t ƒ t j t ƒ @ƒ S(   N(   R    R   t   realt   x(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   <lambda>   t    c           S   s    t  t j t ƒ t j t ƒ ƒ S(   N(   R    R   R   R   t   positive(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyR      R   (   R    R   R   R   t   Truet   AssertionErrort   Falset   NoneR   R	   t
   ValueErrorR   t   zerot   nonzerot   y(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_satask   s"    -.!--..!"---1c           C   s&  t  t j t ƒ t j t ƒ Bt j t t ƒ ƒ t k s> t ‚ t  t j t t ƒ t j t ƒ t j t ƒ Bƒ t k s| t ‚ t  t t j t ƒ t j t t ƒ ƒ ƒ t k s³ t ‚ t  t j t ƒ t j t ƒ Bt j t t ƒ ƒ t	 k sñ t ‚ t  t j t ƒ t j t d ƒ ƒ t k s"t ‚ d S(   s£   
    Everything in this test doesn't work with the ask handlers, and most
    things would be very difficult or impossible to make work under that
    model.

    i   N(
   R    R   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt	   test_zero$   s
    >>7>c           C   sÊ  t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s> t ‚ t  t j t ƒ t j t ƒ @t j t t ƒ ƒ t k s| t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t	 k sº t ‚ t  t j t ƒ t j t ƒ @t j t t ƒ ƒ d  k sø t ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @ƒ t k s:t ‚ t  t j t t t d ƒ t j t ƒ t j t ƒ @ƒ t	 k s€t ‚ t  t j t t t d ƒ t j t ƒ t j t ƒ @ƒ d  k sÆt ‚ d  S(   Ni   i   (   R    R   R   R   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_zero_positive9   s    >>>>BFc           C   sâ   t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s> t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t	 k s| t ‚ t  t j t ƒ t j t t ƒ ƒ t k s­ t ‚ t  t j t t ƒ t j t ƒ ƒ d  k sÞ t ‚ d  S(   N(   R    R   R   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_zero_powF   s    >>1c          C   sÕ   t  d d d ƒ }  t  d d d ƒ } t t j |  | ƒ t j |  ƒ t j | ƒ @ƒ t k sb t ‚ t t j |  ƒ t j |  | ƒ ƒ t k s“ t ‚ t t j |  ƒ t j | ƒ @t j |  | ƒ ƒ t k sÑ t ‚ d  S(   Nt   Ai   t   B(   R   R    R   t
   invertibleR   R   (   R   R   (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_invertibleO   s
    >1c           C   sã   t  t j d ƒ ƒ t k s! t ‚ t  t j d ƒ ƒ t k sB t ‚ t  t j d ƒ ƒ t k sc t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ d  k s¡ t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sß t ‚ d  S(   Ni   i   iûÿÿÿ(
   R    R   t   primeR   R   R   R   R   t   integerR   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt
   test_primeY   s
    !!!>c           C   sâ  t  t j d ƒ ƒ t k s! t ‚ t  t j d ƒ ƒ t k sB t ‚ t  t j d ƒ ƒ t k sc t ‚ t  t j t ƒ ƒ t k s„ t ‚ t  t j t ƒ ƒ t k s¥ t ‚ t  t j d ƒ ƒ t k sÆ t ‚ t  t j d ƒ ƒ t k sç t ‚ t  t j d ƒ ƒ t k st ‚ t  t j t ƒ ƒ t k s)t ‚ t  t j t ƒ ƒ t k sJt ‚ t  t j	 d ƒ ƒ t k skt ‚ t  t j	 d ƒ ƒ t k sŒt ‚ t  t j	 d ƒ ƒ t k s­t ‚ t  t j	 t ƒ ƒ t k sÎt ‚ t  t j	 t ƒ ƒ t k sït ‚ t  t j
 d ƒ ƒ t k st ‚ t  t j
 d ƒ ƒ t k s1t ‚ t  t j
 d ƒ ƒ t k sRt ‚ t  t j
 t ƒ ƒ t k sst ‚ t  t j
 t ƒ ƒ t k s”t ‚ t  t j d ƒ ƒ t k sµt ‚ t  t j d ƒ ƒ t k sÖt ‚ t  t j d ƒ ƒ t k s÷t ‚ t  t j t ƒ ƒ t k st ‚ t  t j t ƒ ƒ t k s9t ‚ t  t j d ƒ ƒ t k sZt ‚ t  t j d ƒ ƒ t k s{t ‚ t  t j d ƒ ƒ t k sœt ‚ t  t j t ƒ ƒ t k s½t ‚ t  t j t ƒ ƒ t k sÞt ‚ d  S(   Ni   iÿÿÿÿi    (   R    R   R   R   R   R   R   R   t   negativeR   R   t   nonpositivet   nonnegative(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_old_assumpb   s<    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!c           C   sÆ  t  t j d ƒ ƒ t k s! t ‚ t  t j d ƒ ƒ t k sB t ‚ t  t j t ƒ ƒ t k sc t ‚ t  t j t ƒ ƒ t k s„ t ‚ t  t j t ƒ ƒ t k s¥ t ‚ t  t j t ƒ ƒ t k sÆ t ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ d  k st ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k sdt ‚ t  t j t t	 t
 ƒ t j t	 ƒ t j t
 ƒ @ƒ t k s¦t ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ d  k sõt ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k sDt ‚ t  t j t t	 t
 ƒ t j t	 ƒ t j t
 ƒ @ƒ t k s†t ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k sÕt ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k s$t ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k sst ‚ t  t j t	 t
 t ƒ t j t	 ƒ t j t
 ƒ @t j t ƒ @ƒ t k sÂt ‚ d  S(   Ni   (   R    R   t
   irrationalR   R   t   rationalR   R   R   R   R   t   zR   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_rational_irrationalˆ   s0    !!!!!!00B00B0000c           C   s„  t  t j d ƒ ƒ t k s! t ‚ t  t j d ƒ ƒ t k sB t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s€ t ‚ t  t j t t ƒ t j t ƒ t j	 t ƒ @ƒ t k s¾ t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sü t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s:t ‚ t  t j t t ƒ t j t ƒ ƒ d  k skt ‚ t  t j t t ƒ t j t ƒ t j	 t ƒ @ƒ d  k s©t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sçt ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k st ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k sMt ‚ t  t j t ƒ t j t t ƒ ƒ ƒ d  k s€t ‚ d  S(   Ni   i   (   R    R   t   evenR   R   R   R   R   t   oddR"   R   t   abs(    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_even_satask§   s    !!>>>>1>>33c           C   s„  t  t j d ƒ ƒ t k s! t ‚ t  t j d ƒ ƒ t k sB t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s€ t ‚ t  t j t t ƒ t j t ƒ t j	 t ƒ @ƒ t k s¾ t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sü t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s:t ‚ t  t j t t ƒ t j t ƒ ƒ d  k skt ‚ t  t j t t ƒ t j t ƒ t j	 t ƒ @ƒ d  k s©t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sçt ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k st ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k sMt ‚ t  t j t ƒ t j t t ƒ ƒ ƒ d  k s€t ‚ d  S(   Ni   i   (   R    R   R-   R   R   R   R   R   R,   R"   R   R.   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_odd_satask¸   s    !!>>>>1>>33c           C   s.  t  t j d ƒ ƒ t k s! t ‚ t  t j t d d ƒ ƒ ƒ t k sK t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s‰ t ‚ t  t j t t ƒ t j t ƒ ƒ d  k sº t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sù t ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @t j t
 ƒ @ƒ t k sIt ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @t j t
 ƒ @ƒ d  k sšt ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @ƒ d  k sÝt ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k st ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sYt ‚ t  t j t t ƒ t j t ƒ ƒ d  k sŠt ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ d  k sÉt ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k st ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @t j t
 ƒ @ƒ t k sXt ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @t j t
 ƒ @ƒ d  k s©t ‚ t  t j t t t
 ƒ t j t ƒ t j t ƒ @ƒ d  k sìt ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s*t ‚ d  S(   Ni   i   (   R    R   R"   R   R   R   R   R   R   R   R*   R(   R)   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_integerÉ   s*    !*>1?0 1 C>>1??0 1 Cc           C   s-  t  t j t t ƒ ƒ ƒ t k s' t ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k s[ t ‚ t  t j t ƒ t j t t ƒ ƒ ƒ t	 k s t ‚ t  t j t ƒ t j t t ƒ ƒ ƒ t k sÂ t ‚ t  t j
 t ƒ t j t t ƒ ƒ ƒ d  k sö t ‚ t  t j t t ƒ ƒ t j t ƒ ƒ t k s)t ‚ d  S(   N(   R    R   R&   R.   R   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_abså   s    '4434c           C   sb  t  t j d t ƒ ƒ t k s% t ‚ t  t j t t ƒ t j t ƒ ƒ d  k sV t ‚ t  t j t t ƒ t j t ƒ t j	 t ƒ @ƒ t k s” t ‚ t  t j t ƒ t j	 t ƒ ƒ t
 k sÁ t ‚ t  t j d ƒ ƒ t
 k sâ t ‚ t  t j t t ƒ t j	 t ƒ t j	 t ƒ @ƒ t
 k s t ‚ t  t j t t ƒ t j	 t ƒ t j	 t ƒ @ƒ t
 k s^t ‚ d  S(   Ni   i   (   R    R   t	   imaginaryR   R   R   R   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_imaginaryî   s    %1>-!>c           C   sñ  t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s> t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k s| t ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @t j t ƒ @ƒ t k sË t ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @ƒ d  k st ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @t j	 t ƒ @ƒ t
 k s\t ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @t j t ƒ @ƒ t k s«t ‚ t  t j t t t ƒ t j t ƒ t j t ƒ @ƒ d  k sít ‚ d  S(   N(   R    R   R   R   R   R   R   R*   R   R3   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt	   test_realø   s    >>OBOOc           C   sX  t  t j t ƒ t j t ƒ ƒ t k s. t ‚ t  t j t ƒ t j t ƒ ƒ t k s\ t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sš t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sØ t ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k st ‚ t  t j t t ƒ t j t ƒ t j t ƒ @ƒ t k sTt ‚ d  S(   N(	   R    R   R   R   R$   R   R   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_pos_neg  s    ..>>>c           C   s¡  t  t j t d ƒ t j t ƒ ƒ t k s1 t ‚ t  t j t d ƒ t j t ƒ ƒ t k sb t ‚ t  t j t d ƒ t j t ƒ ƒ t k s“ t ‚ t  t j	 t d ƒ t j t ƒ ƒ t k sÄ t ‚ t  t j
 t d ƒ t j t ƒ ƒ t k sõ t ‚ t  t j t d ƒ t j	 t ƒ ƒ t k s&t ‚ t  t j t d ƒ t j	 t ƒ ƒ t k sWt ‚ t  t j t d ƒ t j	 t ƒ ƒ t k sˆt ‚ t  t j	 t d ƒ t j	 t ƒ ƒ t k s¹t ‚ t  t j
 t d ƒ t j	 t ƒ ƒ t k sêt ‚ t  t j t d ƒ t j t ƒ ƒ t k st ‚ t  t j t d ƒ t j t ƒ ƒ d  k sLt ‚ t  t j t d ƒ t j t ƒ ƒ d  k s}t ‚ t  t j	 t d ƒ t j t ƒ ƒ t k s®t ‚ t  t j
 t d ƒ t j t ƒ ƒ t k sßt ‚ t  t j t d ƒ t j t ƒ ƒ t k st ‚ t  t j t d ƒ t j t ƒ ƒ d  k sAt ‚ t  t j t d ƒ t j t ƒ ƒ d  k srt ‚ t  t j	 t d ƒ t j t ƒ ƒ t k s£t ‚ t  t j
 t d ƒ t j t ƒ ƒ t k sÔt ‚ t  t j t d ƒ t j t ƒ ƒ t k st ‚ t  t j t d ƒ t j t ƒ ƒ t k s6t ‚ t  t j t d ƒ t j t ƒ ƒ t k sgt ‚ t  t j	 t d ƒ t j t ƒ ƒ t k s˜t ‚ t  t j
 t d ƒ t j t ƒ ƒ t k sÉt ‚ t  t j t d ƒ t j	 t ƒ ƒ t k sút ‚ t  t j t d ƒ t j	 t ƒ ƒ t k s+t ‚ t  t j t d ƒ t j	 t ƒ ƒ t k s\t ‚ t  t j	 t d ƒ t j	 t ƒ ƒ t k st ‚ t  t j
 t d ƒ t j	 t ƒ ƒ t k s¾t ‚ t  t j t d ƒ t j t ƒ ƒ t k sït ‚ t  t j t d ƒ t j t ƒ ƒ d  k s t ‚ t  t j t d ƒ t j t ƒ ƒ d  k sQt ‚ t  t j	 t d ƒ t j t ƒ ƒ t k s‚t ‚ t  t j
 t d ƒ t j t ƒ ƒ t k s³t ‚ t  t j t d ƒ t j t ƒ ƒ d  k sät ‚ t  t j t d ƒ t j t ƒ ƒ t k st ‚ t  t j t d ƒ t j t ƒ ƒ t k sFt ‚ t  t j	 t d ƒ t j t ƒ ƒ d  k swt ‚ t  t j
 t d ƒ t j t ƒ ƒ t k s¨t ‚ t  t j t d ƒ t j t ƒ ƒ d  k sÙt ‚ t  t j t d ƒ t j t ƒ ƒ d  k s
t ‚ t  t j t d ƒ t j t ƒ ƒ d  k s;t ‚ t  t j	 t d ƒ t j t ƒ ƒ d  k slt ‚ t  t j
 t d ƒ t j t ƒ ƒ d  k st ‚ d  S(   Ni   i   iþÿÿÿ(   R    R   R&   R   R   R   R   R%   R   R$   R   R   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   test_pow_pos_neg  sZ    11111111111111111111111111111111111111111111N("   t   sympy.assumptions.sataskR    t   sympyR   R   R   R   R   R   R   R   t   sympy.utilities.pytestR	   R
   R   R   R   R*   R   R   R   R   R    R#   R'   R+   R/   R0   R1   R2   R4   R5   R6   R7   (    (    (    sB   lib/python2.7/site-packages/sympy/assumptions/tests/test_satask.pyt   <module>   s&   :					
			&							
	
		