
\c           @   s8  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 d  d l m Z d  d l m Z 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# m$ Z$ m% Z% m& Z& m' Z' m( Z( m) Z) m* Z* m+ Z+ m, Z, m- Z- m. Z. m/ Z/ m0 Z0 m1 Z1 m2 Z2 m3 Z3 m4 Z4 m5 Z5 m6 Z6 m7 Z7 m8 Z8 m9 Z9 m: Z: m; Z; m< Z< m= Z= m> Z> m? Z? m@ Z@ d  d lA mB ZB d  d lC mD ZD mE ZE mF ZF d  d lG mH ZH mI ZI e	 d	 d
 eJ \ ZK ZL ZM ZN ZO ZP ZQ ZR ZS ZT ZU ZV ZW ZX ZY ZZ e	 d d
 eJ \ Z[ Z\ Z] Z^ Z_ Z` Za e	 d d
 eJ \ Zb Zc Zd e	 d d
 eJ Ze d   Zf d   Zg d   Zh d   Zi d   Zj d   Zk d   Zl d   Zm d   Zn d   Zo d   Zp eD d    Zq d   Zr d   Zs d   Zt d   Zu d   Zv d   Zw d    Zx d!   Zy d"   Zz 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 d0   Z d1   Z d2   Z d3   Z d4   Z eF d5    Z d6   Z d7   Z d8   Z d9   Z d:   Z d;   Z eF d<    Z d=   Z d> S(?   i(   t   Addt   factor_listt   igcdt   Matrixt   Mult   St   simplifyt   Symbolt   symbolst   Eqt   pit	   factorintt   oot   powsimp(   t   _mexpand(   t   range(   t   sin(+   t   descentt
   diop_bf_DNt   diop_DNt
   diop_solvet   diophantinet	   divisiblet
   equivalentt   find_DNt   ldescentt   lengtht   reconstructt	   partitiont   power_representationt   prime_as_sum_of_two_squarest   square_factort   sum_of_four_squarest   sum_of_three_squarest   transformation_to_DNt   transformation_to_normalt   classify_diopt   base_solution_lineart
   cornacchiat
   sqf_normalt   diop_ternary_quadratic_normalt   _diop_ternary_quadratic_normalt   gaussian_reducet   holzert   diop_general_pythagoreant   _diop_general_sum_of_squarest   _nint_or_floort   _oddt   _event   _remove_gcdt   check_paramt   parametrize_ternary_quadratict   diop_ternary_quadratict   diop_lineart   diop_quadratict   diop_general_sum_of_squarest   sum_of_powerst   sum_of_squarest   diop_general_sum_of_even_powerst   _can_do_sum_of_squares(   t   default_sort_key(   t   slowt   raisest   XFAIL(   t   permute_signst   signed_permutationss.   a, b, c, d, p, q, x, y, z, w, t, u, v, X, Y, Zt   integers   t_:7s   m1:4t   n1c         C   s   t  t t  |     S(   N(   R   R   (   t   eq(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   diop_simplify!   s    c           C   s4   t  t d    t  t d    t  t d    d  S(   Nc           S   s   t  t t   S(   N(   R   R   t   x(    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   <lambda>&   t    c           S   s
   t  d  S(   Ni   (   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   '   RH   c           S   s   t  t t d  S(   Ni   (   R   RF   R
   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   (   RH   (   R>   t	   TypeError(    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_input_format%   s    c           C   sh   t  t d t d d  t d d g  k s4 t  t  t d t d  t d d g  k sd t  d  S(   Ni   i   (   i   (   i   (   i   (   i   (   R   RF   t   sett   AssertionError(    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_univariate+   s    4c           C   s  t  t d    t  t d    t  t d    t  t d    t d t d d t d  t g i d	 d
 6d t 6d t d 6d f k s t  t t t t  t t t g i d
 t t 6d
 t 6d f k s t  t t t t t	 t d  t	 t t t g i d
 t t 6d
 t	 6d
 t d 6d
 t 6d f k s:t  t t t t t t d d
  t t t g i d
 t t 6d
 t t 6d
 t d 6d
 d
 6d f k st  t t t t t	 d  t	 t t t g i d
 t t 6d
 t	 6d d
 6d
 t 6d f k st  t t t t t	  t	 t t t g i d
 t t 6d
 t	 t 6d f k sPt  t t t d d
  t t g i d
 t t d 6d
 d
 6d f k st  t t d t d t d d  t t t g i d d
 6d
 t d 6d
 t d 6d
 t d 6d f k st  d  S(   Nc           S   s   t  t d d d  S(   Ni   i   i   (   R$   RF   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   1   RH   c           S   s
   t  d  S(   Ni   (   R$   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   2   RH   c           S   s   t  t t t t d  S(   Ni   (   R$   t   wRF   t   yt   z(    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   3   RH   c           S   s"   t  t d t d t d d  S(   Ni   i   iZ   (   R$   RF   RO   RP   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   4   RH   i   i   i   i*   ii   t
   univariatet   inhomogeneous_ternary_quadratict   inhomogeneous_general_quadratict   homogeneous_general_quadratict
   cubic_thuei   i   iQ   it   general_sum_of_even_powersi   ib   (
   R>   RI   t
   ValueErrort   NotImplementedErrorR$   RF   RL   RO   RP   RN   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_classify_diop0   s(    43H!ID:4!c           C   s  t  t  d k s t  t  d t  d k s4 t  t  d t  d k sP t  t  t d  d k sl t  t  d t d  d k s t  t  d t d  d k s t  t  t t  t t f k s t  t  t t d  t t f k s t  t  t t d  t t f k st  t  d t t d  d k sAt  t  d t d t d  d t d d t d f k st  t  d t d t d  d t d d t d f k st  t  d t d t d  d t d d t d f k st  t  d
 t d t  d t d t f k s-t  t  d t d t  d t t f k s\t  t  d t d t d  d t d d t d f k st  t  d t d t d  d k st  t  d t d t d t d  d t d d t d f k st  t  d t d t d t d  t d t d t d d
 t d t d f k sat  t  d t d t d t d d   d k st  t  d t d t d t d  d k st  t  d t d
 t d t d  t d t d t d d t d
 t d f k st  t  d t d t d t d  d t d t d t t f k sft  t  d t d t d t t  t t t t	 d t d t d t	 f k st  t
 t d    d  S(    Ni    i   i   ii   i   ii   ii   ii   i   iii   i   i	   i   i   c           S   s   t  t d  S(   Ni   (   R   RF   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   b   RH   (   i    (   i    (   i    (   i(   N(   i(   i(   NN(   i    i   i   (   NNN(   R   RF   RL   t   NoneRO   t   t_0RP   t   t_1RN   t   t_2R>   RI   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_linearG   s2      #''$>>>2/>(FY30YITc           C   s  t  d t t d t d t d  t d% d& g  k s@ t  t  d	 t t d
 t d t d  t g   k sz t  t  d t t d
 t d t d  t d' g  k s t  t  d t t d t d t d  t d( g  k s t  t  d
 t t d t d t d  t d) d* d+ d, d- d. d/ d0 g  k sFt  t  d	 t t d# t d
 t d  t g   k st  t  t t t t d  t d t f t d f g  k st  t d$ t t  st  d  S(1   Ni   i"   i   i   i{ii   ii   i   ii   i6   i   i    ii   iii8   i   i_iiiiiiii@   iiii   ii	   i0   (   i{i(   i   i(   i   i    (   ii(   i_i(   ii(   ii(   ii(   ii@   (   ii   (   ii   (   ii   i(   R   RF   RO   RK   RL   t   tR   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt%   test_quadratic_simple_hyperbolic_casee   s    %:==+		:@c           C   s   t  d t d d t d d t d t d  t g   k sF t  t  t d t d d t d t d  t d g  k s t  t  d t d d t t d t d d	  t d d d d g  k s t  d  S(   Ni   i   i   i   i   i   ii
   i"   i   i(   ii(   ii(   ii   (   i   i(   i   i   (   R   RF   RO   RK   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_quadratic_elliptical_caseu   s    FA-c           C   s  t  d t d d t t d t d d t d t d  sF t  t  d t d d t t d t d d t d	 t d  s t  t  d t d d t t d t d d
 t d t d  s t  t  d t d d
 t t t d d t d  st  t  t d d t t t d d t d t d  sJt  t  t d d t t t d d t d t d  st  t  t d d t d  st  d  S(   Ni   i   i   i   i   i   i   i   i   i   ii   i   i)   i(   (   t   check_solutionsRF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_quadratic_parabolic_case   s    FFF:>>c           C   s0  t  d t t  s t  t  d t d d t t t d d  sL t  t  d t d d t t d t d d t d t d  s t  t  d	 t d d
 t t d t d d t d t d	  s t  t  d t d d t t d t d d t d
 t d  st  t  d t d d t t d t d t d  sXt  t  d t t d t d d t d t d  st  t  t d t d d t d t  st  t  t d d t d d t d t  st  t  d t d d t d d t d	 t d  s,t  d  S(   Ni0   i   i   i   ii   i   i   i   i   i   i
   i    i   ii	   i   (   Rb   RF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_quadratic_perfect_square   s    2FFF::.2c           C   s   t  t d d t d t d  s* t  t  d t d d t d d t d t  s` t  t  t d t t t d d t  s t  t  t d d t d d t d t  s t  d  S(   Ni   i   i   i	   i   (   Rb   RF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt!   test_quadratic_non_perfect_square   s    *6.c          C   s|   d d t  d t  d t d t d }  t  t f } x? t |   D]1 } t |  j t t | |     sC t  qC Wd  S(   Nii   i   i   (   RF   RO   R   RE   t   xreplacet   dictt   zipRL   (   RD   t   vt   sol(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_issue_9106   s    *c           C   s  t  d t d d t t d t d d t d t d  sF t  t  d t d d t t d t d d	 t d  s t  t  d
 t d t d t d t t d t d  s t  t  d d t d t d d t t t d t d  st  d  S(   Ni   i   i
   i    i   i   ii   i   ii   i   i   (   Rb   RF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_quadratic_non_perfect_slow   s    F>>c        	   C   s  t  d d  dU g k s t  t  d d  g  k s9 t  t  d d  dV g k sW t  t  d	 d
  dW g k su t  t  d d  g  k s t  t  d d  g  k s t  t  d d  d t f g k s t  t  d d  d t t f g k s t  t  d d  g  k st  t  d d  dX g k s0t  t  d d  dY g k sNt  t  d d  dZ g k slt  t  d d  d[ d\ g k st  t  d d  d] d^ d_ d` g k st  t  d d  da g k st  t  d d  db g k st  t  d d  dc g k st  t  d! d  dd g k s,t  t  d$ d  de g k sJt  t  d
 d  df g k sht  t  d) d  dg g k st  t  d d  dh g k st  t  d$ d  g  k st  t  d, d  di g k st  t  d. d  dj g k st  t  d/ d  dk g k st  t  d- d  g  k s4t  t  d d2  dl dm dn g k sXt  t d7 d d3 d4 d d2  t k st  t  d d8  do dp dq dr g k st  t t  d? d   t ds dt du dv dw dx g  k st  t  d dJ  dy g k st  t  dM d  g  k st  t  d d  dz d{ g k s9t  t  dO d  d| g k sWt  t  dO dP  g  k srt  t  dQ dP  d} g k st  t d< d dR d dQ dP  st  t  dQ dS  d~ d g k st  t  d d t  d t f g k st  t  d d t  g  k st  d  S(   Ni   i    iiii   i   i   ii   ii   i   i	   i   i   i   i   i   iLi   i   i   ii   i  i  i  ix  i  II@Ï  I5  i  i  i"  i  l   WRlQ]>I2l   AAJtWjU^	 i!   i   i   i   i'   i)   i    i"  i	S  Ie  IuG7   ii  im   i$   i
   ii   i   i=   i(   i   i   i   i   i)  iS  iX i  ipi"'MI;><   i|I)  Iߗ  i   i  i  i   ii   ii{   iii(   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  ix  (   II@Ï  I5  (   i  i"  (   l   WRlQ]>I2l   AAJtWjU^	 (   i!   i   (   i   i'   (   i   i   (   i    i   (   i   i   (   Ie  IuG7   (   i   i   (   i  im   (   i$   i
   (   i   i=   (   i(   i   (   i   i   (   i   i   (   i   i   (   i)  iS  (   iX i  (   ipi"'M(   I;><   i|(   I)  Iߗ  (   i  i  (   ii   (   i   i   (   i   i   (   i   i   (   ii   (   i
   i   (   R   RL   R_   R   t   TrueRK   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_DN   sV    $(!'$''!!!'c           C   s  t  d d  d! d" d# g k s$ t  t  d d  d$ d% d& d' g k sK t  t  d d  g  k sf t  t  d d  d( g k s t  t  d d  d) d* g k s t  t  d d  d+ g k s t  t  d d  d, g k s t  t  d d t  d- g k st  t  d d t  d t f g k s)t  t  d d t  d  t t f d t t f g k sat  t  d d t  d. g k st  t  d d t  g  k st  d  S(/   Ni   ii   i   ii$   i
   i   i   ii(   i   ii   ii  Iu(  I   iY   ii	   ii	S  iIe  IuG7   iT  i  i)   i    i   i   (   i   i   (   ii   (   i$   i
   (   i   i   (   ii   (   i(   i   (   ii   (   Iu(  I   (   i	   i   (   ii   (   Ie  IuG7   (   i  i)   (   i    i    (   i    i    (   R   RL   R_   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_bf_pell  s    $'!!'8!c           C   s   t  d d d  d k s t  t  d d d  d k s< t  t  d d d	  d k sZ t  t  d d d
  d k sx t  t  d d d  d k s t  t  d d
 d  d k s t  t  d d d  d k s t  t  d d d  d k s t  d  S(   Ni   i   i    ii   i   i   ii   i   i   ii   ie  iE   i   i   i   i(   R   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_length  s    c   	      C   st  t  |   \ } } | t t t g  | d } | t t t g  | d } t |  j t t t f | | f    } t	 g  | j
 D]! } t | j t t g    ^ q  } x1 t t t t g D] } | | j   k r t Sq Wx> t d t d d g D]% } | | j   k r d | | <q q W| t d d k rpt | t d | t d  oot | d | t d  St S(   s9  
    Test whether X*Y, X, or Y terms are present in the equation
    after transforming the equation using the transformation returned
    by transformation_to_pell(). If they are not present we are good.
    Moreover, coefficient of X**2 should be a divisor of coefficient of
    Y**2 and the constant term.
    i    i   i   (   R"   R   t   Xt   YRE   t   subsRh   RF   RO   Rg   t   argst   reversedt   as_independentt   keyst   FalseR   Rm   (	   RD   t   At   Bt   uRi   t
   simplifiedR_   t   coefft   term(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   is_pell_transformation_ok  s    *7c           C   s  t  d t d d t t t d d t d t d  sB t  t  d t d d t t d t d d t d t d	  s t  t  t d t d d
  s t  t  t d d t d d	  s t  t  d t d d t t d t d d t d t d  st  t  d t d d t t t d d t d t d  sYt  t  t d d t t d t d d t d	 t d  st  t  d t d d t t d t d d	 t d t d  st  d  S(   Nii   i   i   ii   i   i   i   i   i   i-   i
   i   i   i   i   i   iY   i   i	   iV  (   R   RF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_transformation_to_pell:  s    BF"'FBBc           C   s  t  t d d t t d  d k s, t  t  t d d t d d  d k sX t  t  t d d t t d t d d  d k s t  t  d t d d t t t d d  d k s t  t  d t d d t t t d d  d k s t  t  d t d d t t t d  d k s4t  t  d t d d t t t d d t d t d  d k s|t  d  S(   Ni   i   i   i   i   i   i   i	   i   i$   i   iT   ii    ii   ie   i(   i   i   (   i   i   (   i   i   (   i   i$   (   i   iT   (   i   i    (   ie   i(   R   RF   RO   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_find_DNE  s    ,,8884c          C   s   d d d d d d d d d d d d g }  xV |  D]N \ } } t  | |  \ } } } | | d | | d | d k s1 t  q1 Wt  d d  d  k s t  d  S(   Ni   i   i   ii)   ii   ii[   ii   ii    i   i) i   ii   (   i   i   (   i   i(   i)   i(   i   i(   ii   (   i[   i(   i   i   (   i   i(   i   i    (   i   i   (   i) i   (   i   i(   R   RL   RZ   (   R{   t   at   bRN   RF   RO   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_ldescentO  s    .c           C   s0  t  d t d d t d t d  s. t  t  d t d d t d t d  s\ t  t  d t d d t d t d  s t  t  d t d d	 t d d t d  s t  t  t d d t d t d  s t  t  d t d d t d t d  st  t  t d t d t d  s:t  t  d
 t d t d d t d  sht  t  d	 t d t d d t d  st  t  d t d d t d d t d  st  t  d t d d t d d t d  st  t  d t d d t d d t d  s,t  d  S(   Ni   i   iA  i   ih  i   i   i   i   i   i   i
   i   i   i	   i"   i-  i|   i   i1  (   Rb   RF   RO   RP   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt"   test_diop_ternary_quadratic_normalY  s    ...2*.&..22c   	      C   s   t  |   } | t t t t g  \ } } } t |  j t t t t f | | | f    } t g  | j	 D]$ } t
 | j | | | g    ^ qk  } x9 | | | | | | g D] } | | j   k r t Sq Wt S(   N(   R#   R   RF   RO   RP   RE   Rs   Rh   Rg   Rt   Ru   Rv   Rw   Rx   Rm   (	   RD   Ry   Rq   Rr   t   ZR|   R_   R}   R~   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   is_normal_transformation_okh  s    "0:"c           C   s  t  t d d t d t d d t t d t t d t t  sN t  t  t d d t d d t d  s| t  t  t d d t t  s t  t  d t d d t d d t t  s t  t  t d d t t d t t d t t  s
t  t  t d d t t d t t t t  s@t  t  t d t d t d t t t t t t  s~t  t  t d d t t d t d  st  t  t t d t t d t t  st  t  d t t d t t  s t  d  S(	   Ni   i   i   i   i   id   i   i"   (   R   RF   RO   RP   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_transformation_to_normalu  s    N."2:6>..c          C   s]  t  d t d t d t d d t t  s6 t  t  t d t d t d t t t t  sl t  t  d t d t t t t t t  s t  t  t d t t t t  s t  t  d t d d t t t t  s t  t  d t d d t d t t  s t  t  d t d d t d t d d t t d t t d t t  srt  t  d t d d t t  st  t  d t d d t d d t t t d  st  t  t d d	 t d t d d
 t t d t t  st  t  d t d d t d d t t d t t d t t  s^t  t  t d d t d t d t t d t t  st  t  t d d t d t d t t d t t d t t  st  t  t d d t d t d d
 t t d t t d t t  s4t  t  t t d t t d
 t t  sbt  t t d t d t d  d k st  t t d t d  d  k st  t t d    d t t d t t d t d d t t d t d }  t	 |   d k st  t d t d d t d t d  d k sLt  t	 t t d t t  d d t
 f k s}t  d t t d t t d t t d t d }  t |   d t d d t t d t t d t d d t t f k s t  t t t d t t  d t t d t
 t d d t d d t t f k sYt  d  S(   Ni   i   i   i   i   i   i   i-   i1   i   iZ   i   i   c           S   sB   t  t t t f i d t t 6d t d 6d t d 6d t d 6 S(   Ni   i   i   i    (   R)   RF   RO   RP   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     s    ii   i    i   ii@   i   ii(   i(   NNN(   i   i   i    (   i   i    i   (   Rb   RF   RP   RO   RL   R(   RZ   R>   RW   R4   RC   R3   t   pt   qR   (   RD   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diop_ternary_quadratic  s8    662&..R&:BJ>JN.,$>%2	Hc           C   sj  t  d  t  d  k o# d k n s. t  t  d  d k sF t  t  d  t  d  k oi d k n st t  t  d  t  d  k o d k n s t  t  d	  t  d
  k o d k n s t  t  d  d k s t  t  d  d k s t  t  d  d k st  t  d  d k s0t  t  d  d k sHt  t  t d
   d k sft  d  S(   Ni   ii    i   ii   ii   i   ii   i   i   i4   i1   i   i  i   (   R   RL   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_square_factor  s    ....c           C   sV  t  t d t d t d  s& t  t  t d d t t t d  sP t  t  d t d d t d t d  s~ t  t  d t d d t d t d d t t d t t d t t  s t  t  t d t d t d  s t  t  t d d t d t d d t t d	 t t  s8t  t  d	 t t t d  sZt  t  d
 t d d t d d t d  st  t  d t d d t d d t t d t t d t t  st  t  d t d d t d d t t d t t d t t  s t  t  d
 t d d t d d t d  sRt  d  S(   Ni   i   iA  i   i   i   i1   i   i   i|   i   i1  i   i   i   i   iZ   (   Rb   RF   RO   RP   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt"   test_parametrize_ternary_quadratic  s    &*.R&B"2JJc           C   s   t  d t t t t d t t  s. t  t  d t t d t t d t t  s` t  t  d t t d t t  s t  t  t t t t t t  s t  t  d t t d t t d t t  s t  d  S(   Ni   i   i   iY  i   i   i"   (   Rb   RF   RO   RP   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt    test_no_square_ternary_quadratic  s
    .2&&c       
   C   s   d d d d d d d d d g	 }  xV |  D]N \ } } t  | |  \ } } } | | d | | d | d k s( t  q( Wt t d    t t d    t t d    d  S(   Ni   i   i   ii)   ii[   ii   ii   i) i   ii   c           S   s   t  d d  S(   Nii(   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   c           S   s   t  d d  S(   Ni    i   (   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   c           S   s   t  d d  S(   Ni   i   (   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   (   i   i   (   i   i(   i)   i(   i[   i(   i   i   (   i   i(   i   i   (   i) i   (   i   i(   R   RL   R>   RI   t   ZeroDivisionError(   R{   R   R   RN   RF   RO   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_descent  s    !.c          C   s  t  t t t t t t  s& t  t  t t t d t d t d  sT t  t  t d t d t t d t d t d  s t  t  t d d t d d  s t  t  t d d t t  s t  t  t d d t t t d  s t  t  t t d t d d  s&t  t  t d t d t d  sLt  t  t d d t d d t d t d d  st  t  t d d t d d t d t  st  t  t d t d t d t d t d t d t  st  t  t d d t t d t t  s(t  t  t d d t d  sJt  t t t  t t t t   k sut  t d t t d t t  t	 d t
 d t
 f g  k st  t d t d t d d }  t	 d7 g  } t |   | k st  t	 t | j     } t |  d	 t | k s3t  t t d d t d d  t	   k sbt  d
 t d d t d t d }  |  j   } t t t t f |  d8 k st  t |   t	 d t d d t d d t d d t t d t d d t d d t t d t d f g  k s2t  d t d d t d t d }  |  j   } t t t t f |  d9 k st  t |   t	 d t d t d d t d d t t t d d t d d t t d t d f g  k st  d t d d t d d t d }  |  j   } t t t t f |  d: k sPt  t |   t	 d t d d t d d t d d t t d t d d t d d  t t d! t d f g  k st  d" t d d# t d d$ t d }  |  j   } t t t t f |  d; k s$t  t |   t	 d( t d d) t d d* t d d+ t t d, t d d- t d d. t t d/ t d f g  k st  t d d t d d0 t d }  |  j   } t t t t f |  d< k st  t |   t	 d2 t t d t d d2 t d t d d0 t d f g  k sJt  t t d3    t d t  t	   k syt  t d t d t t j  st  t	 d= d> d? d@ dA g  t t d t d d t d d	 t t	 dB dC dD dE dF dG dH dI g  k st  d  S(J   Ni   i   i   i   i   i   i   i   t   permutei\   ic   i	   i3   i{  iKif   i  ij  ii  i9   i   i  iU
  i  i i ii ia i iڙ iV
 i=  i  i  i1   i   i   i	  i>  iipE i* i',  i  i  i   i    i   c           S   s   t  t t d d  S(   Ni   i   (   R   RF   RO   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   i   ii(   i   i   i   (   i	   i   i3   (   i   i   i   (   i  iU
  i  (   i1   i   i   (   i    i   i   (   i   i   (   ii   (   i   i   (   i   i(   i   i   (   ii   (   ii(   i   i(   i   i   (   ii   (   ii(   i   i   (   i   i(   Rb   RF   RO   RP   RL   RN   R   R	   R
   RK   R[   RA   t   popRm   t   as_coefficients_dictR)   R   R   R>   RX   R   t   Half(   RD   t   base_solt   complete_solnR}   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diophantine  sz    &.:&"*&&:2B."+C/":8"28&	1D&	=8"	M%'c          C   s  d d l  m }  m } m } m } m } t |  d | d | d | d  sV t  t |  d d | d d | d | d  s t  t d |  d d | d d | d | d  s t  t d |  d d | d d | d d | d  st  t d |  d d | d d | d d | d  sBt  t | d d |  d d | d d | d d | d  st  t d |  d | d d | d | d d | d  st  d  S(   Ni(   R   R   t   ct   dt   ei   i   i	   i   i   (   t	   sympy.abcR   R   R   R   R   Rb   RL   (   R   R   R   R   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_general_pythagorean#  s    (.6:>>Gc             sO  xG t  d d  D]6 }  t t d   t d |   D  |   s t  q Wt t d    t t t	 t
 f d  t   k s t  t d t	 d t
 d d   t    t d g  k s t  t d t d t d t	 d t
 d d   t t   d   d k st  t d  t d d t f } t g  | D] }  |  d ^ q8  d   t d  d! d" d# d$ d% d& d' d( d) d* d+ d, d- d. d/ d0 d1 d2 g  } t    | k st  t t   d t  d k st  t d t d t	 d t
 d  t d3 g  k st  t d t d t d t d d	   t t   f d    d  S(4   Ni   i
   c         s   s   |  ] } | d  Vq d S(   i   N(    (   t   .0t   i(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>1  s    s   :%ic           S   s   t  t t f d  S(   Ni   (   R-   RF   RO   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   2  RH   ii   i   i   i	   i!  s   :5t   6t   negativeip   i    i   i   iiii   iiR   i  i   c              s   t     S(   N(   R$   (    (   RD   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   N  RH   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   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   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   i   i   (   R   Rb   t   sumR   RL   R>   RW   R-   RF   RO   RP   RK   R7   R{   Ri   t   lenRm   R    R   R   R   R   R   RX   (   R   t   vart	   base_soln(    (   RD   sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt&   test_diop_general_sum_of_squares_quick/  s0    4'	.!'						$9&c          C   s  x` d d g D]R }  xI t  d d  D]8 } x/ t |  |  D] } t |  | k s9 t  q9 Wq# Wq Wg  t d d  D] } | ^ qs g  k s t  g  t d d d  D] } t |  ^ q d d d d d g d d d d d g d d d d d g g k s t  t t d   d g k st  t t d d   d	 g k sCt  g  t d  D] } t |  ^ qPd d d g d d g d g g k st  d  S(
   Ni   i
   i   i   i   i    i   (    (    (   R   R   R   RL   t   list(   t   nt   kR   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diop_partitionQ  s    $.(E!$c       
   C   s   x\ d d d d d d d d d	 d
 g
 D]6 }  t  |   \ } } | d | d |  k s% t  q% Wt  d  d  k sw t  t  d  } | d k r t | d  t k s t  d  S(   Ni   i   i   i   i%   i)   i%	  i  i  iY  i   i   i5 i  i  i    (   i  i  (   R   RL   RZ   t   typet   int(   R   R   R   t   ans(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt    test_prime_as_sum_of_two_squares^  s    +"c          C   s   xv d d d d d d d d d	 d
 d d d d d g D]A }  t  |   \ } } } | d | d | d |  k s4 t  q4 Wt  d  d  k s t  t  d  d  k s t  t  d  d k s t  t  d  d k s t  d  S(   Ni    i   i   i"   i{   I   I%y I8쇜7 i   i!  i"  i#  i$  i%  i&  i   i   i   i   i   i   i <  (   i   i    i    (   i    i    i   (   R!   RL   RZ   (   R   R   R   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_sum_of_three_squaresg  s    *c          C   s   d d l  m }  |  d d  } t d   t |  D  | k sG t  t d  d k s_ t  t d  d k sw t  t d
  d k s t  t d  d k s t  t d  d k s t  t d  d k s t  d  S(   Ni(   t   randinti   I @zZ  c         s   s   |  ] } | d  Vq d S(   i   N(    (   R   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>x  s    i    i   i   i   i   i   i   i0   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   (   t   randomR   R   R    RL   (   R   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_sum_of_four_squaress  s    (c       	   C   s=  d d d d d d d g }  x |  D] } | \ } } } t  | | |  } x~ t r y_ t |  } t |  | k sy t  d
 } x | D] } | | | } q W| | k s t  WqL t k
 r PqL XqL Wq" Wt t  d d d t   d d  g k s t  t t d    t t d    t t d    t t  d d d   g  k sOt  t t  d d d   d! g k svt  t t  d d d   g  k st  t t  d d d   d" g k st  t t  d# d d d t  d$ d% g k st  t t  d& d d d t	  g  k st  t t  d d d   d' g k sBt  t t  d d d   g  k sft  t t  d
 d d t   d( g k st  t t  d
 d d t	   g  k st  t t t  d) d+ d d    d
 k st  d, }	 xK d d d d d d d g D]. }
 t t
 |	 d |	 |
   g  k st  qWd  S(-   Ni  i   i   i   i   i   i   i@0  i  i    i   c           S   s   t  t d d d   S(   Ng333333?i   (   R   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   c           S   s   t  t d d d   S(   Ni   i    (   R   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   c           S   s   t  t d d d   S(   Ni   i    (   R   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   ii   t   zerosii
   i   i   i   i   (   i  i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   i@0  i   i   (   i  i   i   (   i   i   i   i   (   i    i    i   i   (   i   (   i   iQ   (   i   i   i   i   i   i   (   i    i    i    i    i    i   iQ   (   ii(   i    i    i   iP   iW   i   @(   R   Rm   t   nextR   RL   t   StopIterationR   R>   RW   Rx   R8   (   t   testst   testR   R   R   t   ft   lt   chk_sumt   l_it   bigR   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_power_representation  sF    		$'$'*'$*'."c       	   C   s   t  d d t d t \ }  } t | d |  | d  } | t d d d d  d! d" g  k sd t  t  d d t d t \ } } t | | d | d | d  } | t d# d$ d% d& d' d( g  k s t  d S()   s<   
    Test whether diophantine respects the assumptions.
    s   m nRB   t   positivei   i  i   i   i(   i
   i_   iy   i   i   i  i   s   a bi   i   iiiiiiiiiN(   i   i   (   i(   i
   (   i_   i   (   iy   i   (   i   i   (   i  i   (   ii(   ii(   ii(   ii(   ii(   ii(   R   Rm   R   RK   RL   Rx   (   t   mR   t   diofR   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_assumptions  s    *$c         C   s   t  |   } t j |   } t |  j  } | j d t  xS | r | j   } x: | D]. } t | j	 t
 | |    d k rV PqV qV Wt Sq= Wt S(   s   
    Determines whether solutions returned by diophantine() satisfy the original
    equation. Hope to generalize this so we can remove functions like check_ternay_quadratic,
    check_solutions_normal, check_solutions()
    t   keyi    (   R   R   t	   make_argsR   t   free_symbolst   sortR<   R   RE   Rs   Rh   Rx   Rm   (   RD   t   st   factorsR   t   solutionR   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRb     s    	$c          C   s  d t  t d d }  t |   t t d t d f g  k sE t  d t  d d t  t d t  d t d d t d }  t |   t t t d f d t d t f g  k s t  t t  t d d  t t d d t f g  k s t  t t  t d  t d t f k s$t  t	 d	 d d d
 d  d k sHt  d t d d t d f } t	 d d d t  | k st  t	 d d d d
 d  t d   | D  k st  t d d d  d  k st  t d d d  t d g  k st  t d d d  t d g  k s%t  t t d    t d d d  d k sSt  t d t  d t d t d }  t |   t |   k ot d t d t d d t t d t t t d t d t d f k n st  t t d  t  d t d  t  d t d  t   d k s,t  t t d  d t d  t  t d  t   d  k sgt  t t d  t  t d  d t d  t   d! k st  t d d  d k st  t d  t d  k ot k n st  t d	  t d	  k ot k n st  t d d d  d" k s9t  t t d    t d d# d d% d d& d  d' k swt  t t  d    t t  d    t t  d t d d( d)  t d* d+ d, d- d. d/ d0 d1 g  k st  d  S(2   Ni   i   ii   i   i   i   i   i    R_   i   c         s   s!   |  ] } | j  t d   Vq d S(   i    N(   Rs   R_   (   R   t   _(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>  s    i   i   i   c           S   s   t  d d d  S(   Ni   i   i   (   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   i   i
   c           S   s
   t  d  S(   Ni   i   i   (   i   i   i   (   R1   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   i   i   c           S   s.   t  t d t d t t d t t d  S(   Ni   i   (   R   RF   RO   RP   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   c           S   s   t  t d t d  S(   Ni   i   (   R   RF   RO   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   iii	   (   i    i    (   i   i   (   i   i   (   i   i   (   NN(   NN(   NN(   i   i   i   i	   i
   in   i1   (   i   i   i   i   iQ   (   ii(   ii   (   ii(   ii	   (   i   i(   i   i	   (   i	   i(   i	   i   (!   RF   RO   R   RK   R[   RL   R6   R_   R5   R%   RZ   t   tupleR&   R>   RW   R*   RN   RP   R,   t   m1t   m2t   m3R2   R   R.   R/   R0   Rm   Rx   R1   RI   R'   RX   (   RD   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diopcoverage  sD    /:>=*$!4''#	"6C;;//c           C   sb   t  d d d d d d  d k s' t  t  d d d d d d	  d k sN t  t t d
    d  S(   Ni   i   i   i   iO   i   i   i   i
   c           S   s   t  d d d d d d  S(   Ni   i   i   i   iO   i   (   R+   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   (   i   i   i   (   i   i   i   (   R+   RL   R>   RW   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_holzer  s    ''c    
         s'      f d   }  d \     d \ } } } } d \ } } } } |  |   d k sb t   |  |   d k sz t   t   | d  | d  | d      k s t   t   | d  | d  | d      k s t   t | | |      }	 |	 | k s#t   d  S(   Nc            s$     |  d  | d  | d S(   Ni   (    (   RF   RO   RP   (   R   R   R   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   i   iO   i   i   i   i   i   i   i   i    (   i   iO   i   (   i   i   i   (   i   i   i   (   RL   t   maxR+   (
   RD   RF   RO   RP   t   xyzRq   Rr   R   R   t   h(    (   R   R   R   sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_fail_holzer  s    >>c           C   sa   t  d t d t d t t  t t t t t d t d t d t f g  k s] t	  d  S(   Ni   i	   i   i   (
   R   RN   RO   RF   RP   RK   R[   R\   R]   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_issue_9539  s    !c           C   sY   t  d t d t d t d d t t t t t t  t d g  k sU t  d  S(   Ni   i   i   i    (   i    i    i    (   R   RF   RO   RP   RK   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_issue_8943#  s    :c             s0  t  d t d t d d   t    t d d g  k sB t  t   d  t d d g  k si t  t t   f d    t	 d d	 t
 }  t  d t d |  d d   t    t d g  k s t  t t  d t d d  t   k s t  t t  d t d d d d t   k s,t  d  S(   Ni   iq
  i   i   i   i   c              s   t    d  S(   Ni   (   R:   (    (   RD   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   .  RH   t   negR   it   limiti    (   i   i   i   (   i   i   i   (   i   i   i   (   i   i   i   (   ii   i   (   RF   RO   RP   R   RK   RL   R:   R>   RX   R   Rm   R   (   R   (    (   RD   sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diop_sum_of_even_powers)  s    $!+c             s7  t  d d d d d d d  d! d" d# d$ d% d& d' g  }  t d
 t d
 t d
 t d
 t d
 d } t | t  } t |  d k s t	  t
 t d    t t d d
   g  k s t	  t t d
 d   g  k s t	  t t d d t   d( g k st	  t t d d   g  k s%t	  t t d d   d) g k sIt	  t t d d   g  k sjt	  t t d d
   d* d+ g k st	  t t d d t   d, d- g k st	  t t d d   d. g k st	  g  t d  D]$   t t t   d t    ^ qd d d d d
 d
 d d d
 d
 d
 d
 d
 d d
 d d d d d d d d d
 d
 d d d d d g k s|t	  g  t d  D]!   t t t   d    ^ qd d d d d d d d d d d d d d d d d d d d d
 d d d d d d d d d g k st	  x t d  D]~   t  t   d t   } | sjt   f d   | D  sjt	  t  t   d   } t   f d   | D  s#t	  q#Wt
 t d    t
 t d    t t d d d
   d/ g k st	  t t d d d
   g  k st	  t t d
 d d   d0 g k s7t	  t t d
 d d t   d1 d2 g k sdt	  t t d d d
 t   d3 d4 d5 g k st	  t t d d
 d
   g  k st	  t t d6 d d   g  k st	  t t d7 d d   d8 g k r	d9 d: k st	  t t d; d d
   g  k s3t	  d  S(<   Ni    i   i   i   i   i   i   i   i	   i   i   i
   i{   i   c           S   s   t  t d d   S(   Ni
   i(   R   R9   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   @  RH   ii2   i   c         3   s+   |  ]! } t  d    | D    k Vq d S(   c         s   s   |  ] } | d  Vq d S(   i   N(    (   R   t   j(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>\  s    N(   R   (   R   R_   (   R   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>\  s    c         3   s+   |  ]! } t  d    | D    k Vq d S(   c         s   s   |  ] } | d  Vq d S(   i   N(    (   R   R   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>^  s    N(   R   (   R   R_   (   R   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pys	   <genexpr>^  s    c           S   s   t  t d d d   S(   Ni   ii   (   R   R8   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   `  RH   c           S   s   t  t d d d   S(   Ni   i   i(   R   R8   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG   a  RH   iii  (   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   (   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   i   i   i   (   i    i    i   i   i   (   i   i   i   i   i   i   i   i   (   ii(   i   (   i    i    i   (   i    i   i   (   i    i   (   i   i   (   i   i   i   i  (   i	   i  i  lC                                                                                                                                        (   RK   R{   Ri   RF   RO   RP   R7   R   R   RL   R>   RW   R   R9   Rm   R   t   allR8   (   t   truRD   R   t   s1t   s2(    (   R   sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_sum_of_squares_powers6  sb    .!!'!$!'$41)&'$'-0$$3c           C   s   t  d d  t k s t  t  d d  t k s6 t  t  d d  sK t  t  d d  s` t  t  d d  su t  t  d d  s t  t  d d  t k s t  d  S(   Ni   iii   i    i   i   (   R;   Rx   RL   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test__can_do_sum_of_squaresm  s    c    	      C   sm  d d l  m }  m } m } m } m } |  d | d d d } t d g  } t |  | k si t  t t	 | j
     } t | d t | k s t  |  d | d | d | d | d d } t t |   d k s t  t t | d t  d	 k st  t d d d d g  } t d t d d t t d t d d d t | k sit  d  S(   Ni(   R   R   R   R   R   i   i   i   R   i   i#   i0  i   ii
   i   i"   i   iQ   (   i   i   (   ii(   ii   (   i   i(   i   i   (   R   R   R   R   R   R   RK   R   RL   RA   R   Rm   R   RF   RO   (	   R   R   R   R   R   RD   R   R   t   soln(    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_diophantine_permute_signw  s    (.$c          C   sN   t  d t d d d }  t |  d t  t g t d	 d
 g  k sJ t  d  S(   Ni   i   i   i   t   symsi	   i   iQ   (   i	   i   (   i   i   (   RF   RO   R   RK   RL   (   RD   (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_not_implemented  s    c              sg   t  d t d   t   d t t  g t t d t d f g  k sM t  t t   f d    d  S(   Ni   i   R   c              s   t    d t t t g  S(   NR   (   R   RK   RO   RF   (    (   RD   (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyRG     RH   (   RF   RO   R   RK   R[   RL   R>   RI   (    (    (   RD   sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   test_issue_9538  s    ;N(   t   sympyR    R   R   R   R   R   R   R   R   R	   R
   R   R   R   t   sympy.core.functionR   t   sympy.core.compatibilityR   t(   sympy.functions.elementary.trigonometricR   t   sympy.solvers.diophantineR   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R    R!   R"   R#   R$   R%   R&   R'   R(   R)   R*   R+   R,   R-   R.   R/   R0   R1   R2   R3   R4   R5   R6   R7   R8   R9   R:   R;   t   sympy.utilitiesR<   t   sympy.utilities.pytestR=   R>   R?   t   sympy.utilities.iterablesR@   RA   Rm   R   R   R   R   R   R   RF   RO   RP   RN   R_   R{   Ri   Rq   Rr   R   R[   R\   R]   t   t_3t   t_4t   t_5t   t_6R   R   R   RC   RE   RJ   RM   RY   R^   R`   Ra   Rc   Rd   Re   Rk   Rl   Rn   Ro   Rp   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   R   Rb   R   R   R   R   R   R   R   R   R   R   R   (    (    (    sC   lib/python2.7/site-packages/sympy/solvers/tests/test_diophantine.pyt   <module>   sz   ^ ?'										
	
	K					
	
				$					J		"						-			/					7	
	