ó
¡¼™\c           @   sp  d  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 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 m Z d	 „  Z d
 „  Z d „  Z d „  Z d „  Z 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 „  Z* d „  Z+ d „  Z, d S(   s    Test sparse rational functions. iÿÿÿÿ(   t   fieldt   sfieldt	   FracFieldt   FracElement(   t   ring(   t   ZZt   QQ(   t   lex(   t   raisest   XFAIL(   t   symbolst   Et   S(   t   sqrtt   Rationalt   expt   logc          C   sÒ   t  d t t ƒ }  t  d t t ƒ } t  d t t ƒ } |  j |  j d k sR t ‚ |  j |  j d k sn t ‚ |  j | j k s† t ‚ |  j | j k sž t ‚ |  j | j k s¶ t ‚ |  j | j k sÎ t ‚ d  S(   Ns   x,ys   x,y,zi    i   (   R   R   R   t   xt   genst   AssertionErrort   y(   t   F1t   F2t   F3(    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracField___init__   s    c          C   s1   t  d t ƒ \ }  } } } t |  ƒ s- t ‚ d  S(   Ns   x,y,z(   R    R   t   hashR   (   t   FR   R   t   z(    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracField___hash__   s    c           C   s¼  t  d t ƒ d t  d t ƒ d k s, t ‚ t  d t ƒ d t  d t ƒ d k sX t ‚ t  d t ƒ d t  d t ƒ d k s„ t ‚ t  d t ƒ d t  d t ƒ d k	 s° t ‚ t  d t ƒ d t  d t ƒ d k sÜ t ‚ t  d t ƒ d t  d t ƒ d k	 st ‚ t  d t ƒ d t  d t ƒ d k s4t ‚ t  d t ƒ d t  d t ƒ d k	 s`t ‚ t  d t ƒ d t  d t ƒ d k sŒt ‚ t  d t ƒ d t  d t ƒ d k	 s¸t ‚ d  S(   Ns   x,y,zi    s   x,y(   R    R   R   R   (    (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracField___eq__   s    ,,,,,,,,,c    	      C   s‰  t  d ƒ }  t t t t |  ƒ ƒ t |  ƒ f t t ƒ } | j \ } } } t t |  ƒ t t |  ƒ d t t |  ƒ d ƒ d ƒ d t |  ƒ d ƒ | | d | d | f k s½ t	 ‚ t |  t d |  ƒ t |  ƒ |  t
 d d ƒ f t t ƒ } | j \ } } } } t |  d t |  ƒ d |  d t d |  t |  ƒ d ƒ |  d ƒ | d | j d | | j | | d | | | d f k s›t	 ‚ t |  t |  ƒ t |  t |  ƒ ƒ f t t ƒ } | j \ } } } t |  d |  |  t |  ƒ t
 d d ƒ d |  t |  ƒ d ƒ | | j | d | j | | d | | | j d | d | | j | d | f k s…t	 ‚ d  S(   NR   i   i   i   i   i   (   R
   R   R   R   R   R   R   R   R   R   R   R   R   (	   R   R   t   et   exext   ext   _t   lgt   x3t   srt(    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_sfield,   s    -M%;GG1B,c          C   s9   t  d t ƒ \ }  } } } t | | | ƒ s5 t ‚ d  S(   Ns   x,y,z(   R    R   R   R   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___hash__?   s    c          C   sn   t  d t ƒ \ }  } } } | | d | } | j ƒ  } | | k sK t ‚ d | j d <| | k sj t ‚ d  S(   Ns   x,y,zi   i   i   (   i   i   i   (   R    R   t   copyR   t   numer(   R   R   R   R   t   ft   g(    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_copyC   s    c             sF  t  d t ƒ \ }  } } } d | d | | | | d | d d ‰ |  j \ ‰  } } d ˆ  d | ˆ  | | d | d d } ˆ | k s› t ‚ ˆ j ƒ  | k s³ t ‚ t d ƒ \ ‰  } } d ˆ  d | ˆ  | | d | d d } ˆ | k st ‚ ˆ j ˆ  | | ƒ | k s)t ‚ t t ‡  ‡ f d †  ƒ d  S(   Ns   x,y,zi   i   i   i   c              s   ˆ j  ˆ  ƒ S(   N(   t   as_expr(    (   t   XR)   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   <lambda>]   t    (   R    R   R
   R   R,   R   t
   ValueError(   R   R   R   R   t   Yt   ZR*   (    (   R-   R)   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_as_exprM   s    ...!c             sþ  t  d ƒ \ ‰ }  } t ˆ |  | f t ƒ \ ‰  } } } ˆ  j d ƒ } | d k rf t | ˆ  j ƒ sl t ‚ ˆ  j t d d ƒ ƒ } | ˆ  d ƒ d k r¬ t | ˆ  j ƒ s² t ‚ ˆ  j ˆ ƒ } | | k rß t | ˆ  j ƒ så t ‚ ˆ  j t d d ƒ ˆ ƒ } | d | d k r't | ˆ  j ƒ s-t ‚ ˆ  j d ˆ ƒ } | d | k rbt | ˆ  j ƒ sht ‚ ˆ  j ˆ |  | ƒ } | | | | k r¥t | ˆ  j ƒ s«t ‚ ˆ  j ˆ |  | ƒ } | | | | k rèt | ˆ  j ƒ sît ‚ ˆ  j ˆ |  | ˆ |  ˆ ƒ } | | | | | | | k rCt | ˆ  j ƒ sIt ‚ ˆ  j ˆ |  | ˆ |  ˆ ˆ |  d ƒ } | | | | | | | | | d k r¶t | ˆ  j ƒ s¼t ‚ ˆ  j ˆ d |  | ˆ d |  d d ƒ } | | d | | | d | d d k r)t | ˆ  j ƒ s/t ‚ t t	 ‡  ‡ f d †  ƒ t t	 ‡  ‡ f d †  ƒ t t d ˆ j
 ƒ  j d ˆ ƒ t ƒ s’t ‚ t t ˆ d j
 ƒ  j ˆ d ƒ t ƒ sÂt ‚ t t t t d ƒ d ƒ j
 ƒ  j t ƒ t ƒ sút ‚ d  S(	   Ns   x,y,zi   i   i   i   c              s   ˆ  j  d ˆ ƒ S(   Ni   (   t	   from_expr(    (   R   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.      R/   c              s   ˆ  j  d ˆ t d ƒ ƒ S(   Ni   i   (   R4   R   (    (   R   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   ‚   R/   iúÿÿÿ(   R
   R    R   R4   t
   isinstancet   dtypeR   R   R   R0   t	   get_fieldt   convertR   R   R   R   (   R   R   R-   R1   R2   R)   (    (   R   R   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_from_expr_   s<    $$.$,(,,#8/D/D"!)c          C   sx  t  d t ƒ \ }  } } |  d ƒ d | k  oT d | d k  oT d | d k  n s_ t ‚ |  d ƒ d | k o› d | d k o› d | d k n s¦ t ‚ d | d | k  oë d | k  oë | | k  oë d | d k  n sö t ‚ d | d | k o;d | k o;| | k o;d | d k n sFt ‚ d | d d | d k o‚d | k o‚|  d ƒ k n st ‚ d | d d | d k oÉd | k oÉ|  d ƒ k n sÔt ‚ d | d | | k od | k od | k od | k n s$t ‚ d | d | | k oid | k oid | k oid | k n stt ‚ d  S(   Ns   x,yi   i   i   iùÿÿÿ(   R    R   R   (   R   R   R   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement__lt_le_gt_ge__Œ   s    GGPPGGPc          C   sf   t  d t ƒ \ }  } } d | d | } d | d | } | | k sO t ‚ | | k sb t ‚ d  S(   Ns   x,yi   i	   iùÿÿÿ(   R    R   R   (   R   R   R   R)   R*   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___neg__›   s
    c          C   sw  t  d t ƒ \ }  } } d | d | } } | | | | k oX | | | | k n sc t ‚ | |  j j d |  j j d | k oš d | k n s¥ t ‚ t  d t ƒ \ }  } } | d d | k s× t ‚ | t d d ƒ t d d ƒ | k od | d d k n st ‚ t  d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | | | | | | } t | j ƒ i d d	 6| | d
 6k sœt ‚ t | j ƒ i d d 6| | d 6k sÉt ‚ t d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | | | | | | } t | j ƒ i d d 6| | d 6k sFt ‚ t | j ƒ i d d 6| | d 6k sst ‚ d  S(   Ns   x,yi   i    i   i   i   s   u,vs   x,y,z,t(   i   i    i    i    (   i    i    i    i    (   i    i   i    i    (   i    i    i    i    (   i   i    i    i    (   i    i    i    i    (   i    i   i    i    (   i    i    i    i    (	   R    R   R   R   R   R   t   dictR(   t   denom(   R   R   R   R)   R*   t   Fuvt   ut   vt   FxyztR   t   tt   Ruv(    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___add__¤   s"    6BH---c          C   sd  t  d t ƒ \ }  } } d | d | } } | | | | | | k sP t ‚ | |  j j d |  j j d | k oƒ d k n sŽ t ‚ t  d t ƒ \ }  } } | d d | k sÁ t ‚ | t d d ƒ t d d ƒ | k oÿ d | d d k n s
t ‚ t  d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | | | | | | } t | j ƒ i d d	 6| | d
 6k s‡t ‚ t | j ƒ i d d 6| | d 6k sµt ‚ t d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | | | | | | } t | j ƒ i d d 6| | d 6k s2t ‚ t | j ƒ i d d 6| | d 6k s`t ‚ d  S(   Ns   x,yi   i    i   i   s   u,vs   x,y,z,tiÿÿÿÿ(   i   i    i    i    (   i    i    i    i    (   i    i   i    i    (   i    i    i    i    (   i   i    i    i    (   i    i    i    i    (   i    i   i    i    (   i    i    i    i    (	   R    R   R   R   R   R   R<   R(   R=   (   R   R   R   R)   R*   R>   R?   R@   RA   R   RB   RC   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___sub__¾   s"    #>I-.-c          C   s·  t  d t ƒ \ }  } } d | d | } } | | | | k oT d | | k n s_ t ‚ | |  j j d |  j j d | k o– | d k n s¡ t ‚ t  d t ƒ \ }  } } | d d | k sÓ t ‚ | t d d ƒ t d d ƒ | k od | d k n st ‚ t  d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | d | | d | d |	 |
 | | d } t | j ƒ i | d d
 6d d 6k s¬t ‚ t | j ƒ i | d d 6| | d 6d	 d 6k såt ‚ t d t ƒ \ } } } t  d | ƒ \ } } } }	 }
 | d | | d | d |	 |
 | | d } t | j ƒ i | d d 6d d 6k szt ‚ t | j ƒ i | d d 6| | d 6d	 d 6k s³t ‚ d  S(   Ns   x,yi   i    i   i   i   s   u,vs   x,y,z,tiÿÿÿÿ(   i   i   i    i    (   i    i    i    i    (   i    i    i   i    (   i    i    i    i   (   i    i    i    i    (   i   i   i    i    (   i    i    i    i    (   i    i    i   i    (   i    i    i    i   (   i    i    i    i    (	   R    R   R   R   R   R   R<   R(   R=   (   R   R   R   R)   R*   R>   R?   R@   RA   R   RB   RC   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___mul__Ø   s"    2BD2-92-c             s  t  d t ƒ \ }  ‰  } d ˆ  d | } } | | | ˆ  k sG t ‚ ˆ  |  j j d |  j j d ˆ  k oz d k n s… t ‚ t  d t ƒ \ }  ‰  } ˆ  d d ˆ  k s· t ‚ ˆ  t d d ƒ t d d ƒ ˆ  d k oô d ˆ  d k n sÿ t ‚ t t ‡  f d †  ƒ t t ‡  f d †  ƒ t t ‡  f d	 †  ƒ t  d
 t ƒ \ } } } t  d | ƒ \ } ‰  } } }	 | | ˆ  | } t | j	 ƒ i | | d 6k s¯t ‚ t | j
 ƒ i d d 6k sÑt ‚ ˆ  | | | } t | j	 ƒ i d d 6k st ‚ t | j
 ƒ i | | d 6k s+t ‚ t d
 t ƒ \ }
 } } t  d |
 ƒ \ } ‰  } } }	 | | ˆ  | } t | j	 ƒ i | | d 6k s™t ‚ t | j
 ƒ i d d 6k s»t ‚ ˆ  | | | } t | j	 ƒ i d d 6k sït ‚ t | j
 ƒ i | | d 6k st ‚ d  S(   Ns   x,yi   i    i   i   iÿÿÿÿc              s   ˆ  d S(   Ni    (    (    (   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   þ   R/   c              s   d ˆ  ˆ  S(   Ni   (    (    (   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   ÿ   R/   c              s   ˆ  ˆ  ˆ  S(   N(    (    (   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.      R/   s   u,vs   x,y,z,t(   i    i    i    i    (   i   i   i    i    (   i   i   i    i    (   i    i    i    i    (   i    i    i    i    (   i   i   i    i    (   i   i   i    i    (   i    i    i    i    (   R    R   R   R   R   R   R   t   ZeroDivisionErrorR<   R(   R=   (   R   R   R)   R*   R>   R?   R@   RA   R   RB   RC   (    (   R   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___div__ò   s4    >H&""&&""c             sÏ   t  d t ƒ \ }  ‰  } d ˆ  d | } } | d d ˆ  d k sK t ‚ | d d | d k si t ‚ | | d d ˆ  d | d k s“ t ‚ | | d ˆ  | d k sµ t ‚ t t ‡  f d †  ƒ d  S(   Ns   x,yi   i   iýÿÿÿc              s   ˆ  ˆ  d S(   Niýÿÿÿ(    (    (   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   #  R/   (   R    R   R   R   RG   (   R   R   R)   R*   (    (   R   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___pow__  s    *"c          C   sV   t  d t ƒ \ }  } } } | d | | d j | ƒ d | | d k sR t ‚ d  S(   Ns   x,y,zi   i   (   R    R   t   diffR   (   R   R   R   R   (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_diff%  s    c             s   t  d t ƒ \ }  } } } | d d | | ‰  ˆ  d d d ƒ } | d k r_ t | t ƒ se t ‚ t t ‡  f d †  ƒ d  S(   Ns   x,y,zi   i   i   i   c              s   ˆ  d d d ƒ S(   Ni   i    (    (    (   R)   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   1  R/   (   R    R   R5   R   R   R   RG   (   R   R   R   R   t   r(    (   R)   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement___call__*  s
    "c             s   t  d t ƒ \ }  } } ‰ t  d t ƒ d } | d d | ˆ ‰  ˆ  j | d ƒ d | j | j k sp t ‚ t t ‡  ‡ f d †  ƒ d  S(   Ns   x,y,zs   y,zi    i   i   c              s   ˆ  j  ˆ d ƒ S(   Ni    (   t   evaluate(    (   R)   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   9  R/   (   R    R   RN   R   R   R   R   RG   (   R   R   R   t   Fyz(    (   R)   R   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_evaluate3  s
    ,c             st   t  d t ƒ \ }  } } ‰ | d d | ˆ ‰  ˆ  j | d ƒ d | ˆ k sW t ‚ t t ‡  ‡ f d †  ƒ d  S(   Ns   x,y,zi   i   i    c              s   ˆ  j  ˆ d ƒ S(   Ni    (   t   subs(    (   R)   R   (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyR.   @  R/   (   R    R   RQ   R   R   RG   (   R   R   R   (    (   R)   R   s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_subs;  s    &c           C   s   d  S(   N(    (    (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   test_FracElement_composeB  s    N(-   t   __doc__t   sympy.polys.fieldsR    R   R   R   t   sympy.polys.ringsR   t   sympy.polys.domainsR   R   t   sympy.polys.orderingsR   t   sympy.utilities.pytestR   R	   t
   sympy.coreR
   R   R   t   sympyR   R   R   R   R   R   R   R%   R&   R+   R3   R9   R:   R;   RD   RE   RF   RH   RI   RK   RM   RP   RR   RS   (    (    (    s<   lib/python2.7/site-packages/sympy/polys/tests/test_fields.pyt   <module>   s6   ""						
		-							&					