ó
¡¼™\c           @   s¹   d  d l  m Z d  d l m Z m Z 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 d „  Z d „  Z d „  Z d „  Z d	 „  Z d
 „  Z d „  Z d S(   iÿÿÿÿ(   t   ring(   t   ZZt   QQt   AlgebraicField(   t   modgcd_univariatet   modgcd_bivariatet.   _chinese_remainder_reconstruction_multivariatet   modgcd_multivariatet   _to_ZZ_polyt   _to_ANP_polyt   func_field_modgcdt   _func_field_modgcd_m(   t   sqrtc          C   sX  t  d t ƒ \ }  } |  j |  j } } t | | ƒ d% k sC t ‚ |  j | } } t | | ƒ | d d f k sw t ‚ t | | ƒ | d d f k s› t ‚ |  j | } } t | | ƒ | d d f k sÐ t ‚ t | | ƒ | d d f k sô t ‚ d | |  d ƒ } } t | | ƒ d | d f k s/t ‚ d | d d | d d } } t | | ƒ d | d d d | d f k s„t ‚ | d d	 | d d
 | d d | d	 } | d d | d d | d } | d d | d } | d d | d } | d } t | | ƒ | | | f k s.t ‚ | d d } | d d | d d } | d d } | d d } | d d } t | | ƒ | | | f k s¤t ‚ | d	 | d d | d d | d d	 | d d | d } d | d d | d d | d d | d
 } d } | } | } t | | ƒ | | | f k sNt ‚ d | d d | d d | d d | d d | d
 d | d d | d d } d | d
 d | d d | d d } t | | j | ƒ ƒ d | k sút ‚ d  | d! } d" | d# } d" | d# } d$ } d } t | | ƒ | | | f k sTt ‚ d  S(&   Nt   xi    i   iÿÿÿÿi   i   i   i   i   i   i   i   i   i	   lìÿÿÿ     p¢ƒ>Zè6-(È·3Ã{ CÃzˆìVgÚsóR&i1   l       À	Í`”ç ò%³'(Õ'»@ó$@¥9$` ÑV i*   l      `µ%³Nw‚g¹ej^íôr0c’u`Z§hD i#   l      ]%³5…œu[o¦vÈ&Á+Ú/
có>_o],i   l    @ü)-ÀPµ/Í'X=‚vØw+U9+; l    _ÖIÈ	†,ü4~XsRò`Y?t
U¼ i   l   y[Ùpñ?÷uÿ;ÃZàW`±( i   l   ñEÙA‘y·\¼^
l     Àmc@Ats lÍ\o#MkïEœ6w# l    @¼r/sÜL—xFJŽG jëAl   €3ƒsèd%uÒ%ƒg%9 Œi[T l         qRvl        @Ñû	I     ”«I     ¼iÂ*  (   i    i    i    (   R    R   t   zeroR   t   AssertionErrort   diff(   t   RR   t   ft   gt   ht   cfft   cfg(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_modgcd_univariate_integers   sP    $$$$$!4."
$$B2$	Z*(c          C   sW  t  d t ƒ \ }  } } |  j |  j } } t | | ƒ d k sF t ‚ d | |  d ƒ } } t | | ƒ d | d f k s t ‚ | d | | | } } t | | ƒ d | | f k s¾ t ‚ | d d | | | d | d | d } } t | | ƒ | | | | | d | | | d f k s/t ‚ | | d d | | | | | d | } } t | | ƒ | | | | d | d | d f k sœt ‚ | d | d | d | d | | d | | d } } t | | ƒ d | | f k sýt ‚ d | | d d | | d | | d d | d } d | | d d | | d d } t | | ƒ d | | d | | d | d | d | d f k s©t ‚ d | d d | d | d } } t | | ƒ | d d | d d f k sþt ‚ | d d | d d | d } } t | | ƒ | d d d | d f k sSt ‚ d | d d | | d | d | } | d | d } t | | ƒ | d d | d | | d f k sÇt ‚ d | d d | | d | d | } d | | d | d | d d | } t | | ƒ | | d | d d | d f k sSt ‚ d  S(   Ns   x,yi    i   i   i   i   (   i    i    i    (   R    R   R   R   R   (   R   R   t   yR   R   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_modgcd_bivariate_integers[   s4    $$1@1<=$:&L%0%0*8**c    
      C   sP  t  d t ƒ \ }  } } d \ } } | d | | d d } | d | d | | d d } t | | | | ƒ } | j | ƒ | k s‘ t ‚ | j | ƒ | k s¬ t ‚ t  d |  ƒ \ } }	 d	 \ } } | | d |	 d | } | d d | |	 d } t | | | | ƒ } | j | ƒ | k s1t ‚ | j | ƒ | k sLt ‚ d  S(
   Ns   x, yi   i   i   i   t   zi   (   i   i   (   i   i   (   R    R   R   t   trunc_groundR   (
   R   R   R   t   pt   qt   hpt   hqt   hpqt   TR   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_chinese_remainderƒ   s    #c       
   C   s  t  d t ƒ \ }  } } |  j |  j } } t | | ƒ d k sF t ‚ d | d d | d | d } } t | | ƒ | d d | d d f k s› t ‚ | d d | d d | d } } t | | ƒ | d d d | d f k sð t ‚ d | d d | | d | d | } d | | d | d | d d | } t | | ƒ | | d | d d | d f k s|t ‚ | | d d | | | | | d | } } t | | ƒ | | | | d | d | d f k sét ‚ | d | d | d | d | | d | | d } } t | | ƒ d | | f k sJt ‚ | d d | d d | d d	 | d } | d d
 | d d | d
 } | d d | d } | d d | d } | d } t | | ƒ | | | f k sôt ‚ t  d t ƒ \ }  } } } }	 | | | | | | |	 } } t | | ƒ d | | f k sXt ‚ |	 d d |	 d d |	 d } } t | | ƒ |	 d |	 d d f k s©t ‚ | d |	 d d | d |	 | d | |	 | |	 d d |	 d } } |	 d | d |	 | d | |	 d } } } t | | ƒ | | | f k sJt ‚ t | | ƒ | | | f k snt ‚ t  d t ƒ \ }  } } } | | | | | | } } t | | ƒ | | | d d f k sÒt ‚ |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r+|
 | | k r+|
 | | k s1t ‚ t  d t ƒ \ }  } } } }	 } |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r«|
 | | k r«|
 | | k s±t ‚ t  d t ƒ \ }  } } } }	 } } } |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r1|
 | | k r1|
 | | k s7t ‚ t  d t ƒ \
 }  } } } }	 } } } } } |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r½|
 | | k r½|
 | | k sÃt ‚ t  d t ƒ \ }  } } } |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r7|
 | | k r7|
 | | k s=t ‚ |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r–|
 | | k r–|
 | | k sœt ‚ t  d t ƒ \ }  } } } } |  j ƒ  \ } } } t | | ƒ \ }
 } } |
 | k r|
 | | k r|
 | | k st ‚ d  S(   Ns   x,yi    i   i   i   i   i   i   i   i   i   i   s   x,y,z,us   x,y,zs	   x,y,z,u,vs   x,y,z,u,v,a,bs   x,y,z,u,v,a,b,c,ds   x,y,z,t(   i    i    i    (   R    R   R   R   R   t   fateman_poly_F_1t   fateman_poly_F_2t   fateman_poly_F_3(   R   R   R   R   R   R   R   R   R   t   ut   Ht   vt   at   bt   ct   dt   t(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt!   test_modgcd_multivariate_integers›   st    %0%0**81<=$."
$"$%,M0$$,2!2'2-222c          C   sU  t  t t d ƒ ƒ }  t d |  ƒ \ } } | t d ƒ d } t d t ƒ \ } } } | | | } t | | ƒ | k s t ‚ t | | ƒ | k sš t ‚ t d |  ƒ \ } } } }	 | | d | |	 t d ƒ } t d t ƒ \ }
 } } t d |
 ƒ \ } } } | d | | | } t | | ƒ | k s6t ‚ t | | ƒ | k sQt ‚ d  S(   Ni   R   i   s   x_, z_s   x, t, ss   t_, s_(   R   R   R   R    R   R   R   R	   (   t   AR   R   R   R!   t   x_t   z_t   f_R-   t   st   Dt   t_t   s_(    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_to_ZZ_ANP_polyü   s     c    	      C   sü  t  t t d ƒ ƒ }  t d |  ƒ \ } } |  j } d | | d ƒ } } t | | ƒ | | | f k sn t ‚ d | | t d ƒ ƒ } } t | | ƒ | | | f k s¯ t ‚ d | d d | d d } } t | | ƒ | d | d ƒ d | d f k st ‚ t d |  ƒ \ } } } | t d ƒ | | | } } t | | ƒ | | | f k sat ‚ | | t d ƒ | d | t d ƒ ƒ | } } t | | ƒ | | t d ƒ | | t d ƒ ƒ f k sÒt ‚ | d d t d ƒ | | d | d | t d ƒ | } } t | | ƒ | | | f k s7t ‚ t  t t d ƒ t d ƒ ƒ }  t d |  ƒ \ } } } } | d | d t d ƒ d	 | } | d
 | d d | | | } } t | | ƒ | d
 | d d | | f k sít ‚ | d | d d d | d d t d ƒ } | | d | t d ƒ t d ƒ } } t | | ƒ | | d | t d ƒ t d ƒ ƒ f k s„t ‚ t  t t d ƒ d t d ƒ ƒ }  t d |  ƒ \ } } | d | d } } t | | ƒ |  j | | f k søt ‚ d  S(   Ni   R   i   i   s   x, yi   s   x, y, zi   i   i   i   i
   iÿÿÿÿ(   R   R   R   R    t   oneR
   R   (	   R/   R   R   R8   R   R   R   R   R   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_modgcd_algebraic_field  s8    	$$!6$3>A$$%40)>#c          C   s’   t  d t ƒ \ }  } t  d |  ƒ \ } } } | d | d | d | d j d ƒ } | d | d } } t | | | ƒ | j k sŽ t ‚ d  S(   NR-   s   x, zi   i   i    (   R    R   t   dropR   R8   R   (   R4   R-   R   R   R   t   minpolyR   R   (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   test_modgcd_func_field>  s
    +N(   t   sympy.polys.ringsR    t   sympy.polys.domainsR   R   R   t   sympy.polys.modulargcdR   R   R   R   R   R	   R
   R   t   sympyR   R   R   R"   R.   R7   R9   R<   (    (    (    s@   lib/python2.7/site-packages/sympy/polys/tests/test_modulargcd.pyt   <module>   s   :		L	(		a		,