U
    ÃÌ0e'  ã                   @   s˜   d dl mZ ddlZddlmZmZmZmZmZm	Z	m
Z
 edddZedddZed	ddZd
d„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )é   )Úassert_equalé    N)ÚSymbolÚRationalÚUnevaluatedExprÚgcdÚigcdÚsqrtÚpiÚxT)ÚrealÚyÚzc                   C   sl  t dtddƒƒ t dtddƒƒ t dtddƒƒ t dttdd	ƒƒƒ t d
ttd	dƒƒƒ t dttddƒƒƒ t dtddƒƒ t dtddƒƒ t dttdƒdƒƒ t dttdƒdƒƒ t dtddƒƒ t dtddƒƒ t dtddƒƒ t dttdd	ƒƒƒ t dttd	dƒƒƒ t dttddƒƒƒ t dtddƒƒ t dtddƒƒ t dttdƒdƒƒ t dttdƒdƒƒ d S ) Nz\gcd(18, 3)é   é   z\gcd(3, 18)z
\gcd(2, 2)é   z\gcd(0, 21)r   é   z\gcd(21, 0)z
\gcd(0, 0)z\gcd(6128, 24)ið  é   z\gcd(24, 6128)z\gcd(1E20, 1000000)Z1E20i@B z\gcd(128*10^32, 1)Z128E32r   z\operatorname{gcd}(18, 3)z\operatorname{gcd}(3, 18)z\operatorname{gcd}(2, 2)z\operatorname{gcd}(0, 21)z\operatorname{gcd}(21, 0)z\operatorname{gcd}(0, 0)z\operatorname{gcd}(6128, 24)z\operatorname{gcd}(24, 6128)z!\operatorname{gcd}(1E20, 1000000)z \operatorname{gcd}(128*10^32, 1))r   r   r   r   © r   r   ú2/tmp/pip-unpacked-wheel-586xlynq/tests/gcd_test.pyÚtest_gcd_usual
   s(    r   c                   C   sì   t dtddƒƒ t dtddƒƒ t dtdd	ƒƒ t d
tddƒƒ t dtddƒƒ t dtddƒƒ t dtdtdƒƒƒ t dtddƒƒ t dtddƒƒ t dtdd	ƒƒ t dtddƒƒ t dtddƒƒ t dtddƒƒ t dtdtdƒƒƒ d S )Nz\gcd(-12, 4)iôÿÿÿé   z\gcd(219, -9)éÛ   i÷ÿÿÿz\gcd(-8, -64)éøÿÿÿiÀÿÿÿz\gcd(-5, -5)éûÿÿÿz\gcd(-1, 182033)éÿÿÿÿiÇ z\gcd(25, -6125)é   ièÿÿz\gcd(243, -2.9543127E21)éó   z-2.9543127E21z\operatorname{gcd}(-12, 4)z\operatorname{gcd}(219, -9)z\operatorname{gcd}(-8, -64)z\operatorname{gcd}(-5, -5)z\operatorname{gcd}(-1, 182033)z\operatorname{gcd}(25, -6125)z&\operatorname{gcd}(243, -2.9543127E21)©r   r   r   r   r   r   r   Útest_gcd_negative"   s    r   c                   C   sÜ  t dttdƒtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒƒ t dtdtd	ƒƒƒ t d
ttdƒdƒƒ t dttdƒdƒƒ t dttdƒdƒƒ t dtdtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒtdƒƒƒ t dttdƒƒ t dtdtd	ƒƒƒ t dttdƒdƒƒ t d ttdƒdƒƒ t d!ttdƒdƒƒ t d"tdtdƒƒƒ t d#ttdƒtdƒƒƒ t d$ttdƒtdƒƒƒ t d%ttdƒtdƒƒƒ d S )&Nz\gcd(2.4, 3.6)ú2.4ú3.6z\gcd(3.6, 2.4)z\gcd(\pi, 3)r   z\gcd(618, 1.5)ij  z1.5z\gcd(-1.5, 618)z-1.5z\gcd(0.42, 2)z0.42r   z\gcd(1.43E-13, 21)z1.43E-13r   z\gcd(21, -143E-13)z-143E-13z\gcd(9.80655, 9.80655)z9.80655z#\gcd(0.0000923423, -8341.234802909)z0.0000923423z-8341.234802909z\gcd(\sqrt{5}, \sqrt{2})é   z\operatorname{gcd}(2.4, 3.6)z\operatorname{gcd}(3.6, 2.4)z\operatorname{gcd}(\pi, 3)z\operatorname{gcd}(618, 1.5)z\operatorname{gcd}(-1.5, 618)z\operatorname{gcd}(0.42, 2)z \operatorname{gcd}(1.43E-13, 21)z \operatorname{gcd}(21, -143E-13)z$\operatorname{gcd}(9.80655, 9.80655)z1\operatorname{gcd}(0.0000923423, -8341.234802909)z&\operatorname{gcd}(\sqrt{5}, \sqrt{2}))r   r   r   r
   r	   r   r   r   r   Útest_gcd_float4   s,    r#   c                   C   sü   t dttdƒdƒƒ t dtdtdƒƒƒ t dttdƒdƒƒ t dttdƒtdƒƒƒ t d	td
tdƒƒƒ t dttdƒdƒƒ t dttdƒdƒƒ t dtdtdƒƒƒ t dttdƒdƒƒ t dttdƒtdƒƒƒ t dtd
tdƒƒƒ t dttdƒdƒƒ d S )Nz\gcd(1/2, 3)z1/2r   z\gcd(3, 1/2)z\gcd(6/2, 3)z6/2z\gcd(1/10, 1/10)z1/10z\gcd(42, 42/6)é*   z42/6z\gcd(10000000/10, 10000)z10000000/10i'  z\operatorname{gcd}(1/2, 3)z\operatorname{gcd}(3, 1/2)z\operatorname{gcd}(6/2, 3)z\operatorname{gcd}(1/10, 1/10)z\operatorname{gcd}(42, 42/6)z&\operatorname{gcd}(10000000/10, 10000)r   r   r   r   r   Útest_gcd_fractionN   s    r%   c                   C   sä   t dtddƒƒ t ddtddtdƒ ƒ ƒ t d	td
dƒd ƒ t dtttdƒtdƒƒƒƒ t dttdƒdƒƒ t dtddƒƒ t ddtddtdƒ ƒ ƒ t dtd
dƒd ƒ t dtttdƒtdƒƒƒƒ t dttdƒdƒƒ d S )Nz\gcd(1+1, 8)r   é   z920*\gcd(9, 12*4/2)i˜  é	   é   z4/2z\gcd(32-128, 10)*22i ÿÿÿé
   é   z\sqrt{\gcd(1.25E24, 1E12)}z1.25E24Ú1E12z\gcd(92.0, 000+2)z92.0z\operatorname{gcd}(1+1, 8)z!920*\operatorname{gcd}(9, 12*4/2)z!\operatorname{gcd}(32-128, 10)*22z(\sqrt{\operatorname{gcd}(1.25E24, 1E12)}z\operatorname{gcd}(92.0, 000+2))r   r   r   r	   r   r   r   r   Útest_gcd_expr^   s    r,   c                   C   sÐ  t dtttƒdd t dttt ƒdd t dtdt tƒdd t dtdd	t ƒdd t d
ttd ttƒd ƒdd t dtttƒdd t dtttdƒt tdƒƒd  dd t dtdƒttdƒdt ƒd  dt  dd t dtttƒdd t dttt ƒdd t dtdt tƒdd t dtdd	t ƒdd t dttd ttƒd ƒdd t dtttƒdd t dtttdƒt tdƒƒd  dd t dtdƒttdƒdt ƒd  dt  dd d S )Nz
\gcd(x, y)T©Zsymbolicallyz\gcd(y, -x)z\gcd(2y, x)r   z\gcd(125, 50x)é}   é2   z\gcd(x + 76, \sqrt{x} * 4)éL   r   z
\gcd(y, y)zy + \gcd(0.4x, 8/3) / 2z0.4z8/3z/6.673E-11 * (\gcd(8.85418782E-12, 9x) + 4) / 8yz	6.673E-11z8.85418782E-12r'   r&   z\operatorname{gcd}(x, y)z\operatorname{gcd}(y, -x)z\operatorname{gcd}(2y, x)z\operatorname{gcd}(125, 50x)z(\operatorname{gcd}(x + 76, \sqrt{x} * 4)z\operatorname{gcd}(y, y)z%y + \operatorname{gcd}(0.4x, 8/3) / 2z=6.673E-11 * (\operatorname{gcd}(8.85418782E-12, 9x) + 4) / 8y)r   r   r   r   r	   r   r   r   r   r   Útest_gcd_symboll   s      (0 (r1   c                
   C   sä  t dtddƒƒ t dtdddƒƒ t dtd	d
ƒƒ t dtdddƒƒ t dtdddƒƒ t dtdddddƒƒ t dtdddddddƒƒ t dtddƒƒ t dtdtddƒƒƒ t dtttttƒƒdd t d td!d"dƒƒ t d#td!d"dƒƒ t d$ttd%ƒttd&ƒtd'ƒƒƒƒ t d(ttd%ƒttd&ƒtd'ƒƒƒƒ t d)ttdƒttdƒtd*ƒƒƒƒ t d+ttd,ƒtd-ƒtd.ƒd/ƒƒ t d0tddƒƒ t d1tdddƒƒ t d2td	d
ƒƒ t d3tdddƒƒ t d4tdddƒƒ t d5tdddddƒƒ t d6tdddddddƒƒ t d7tddƒƒ t d8tdtddƒƒƒ t d9tttttƒƒdd t d:td!d"dƒƒ t d;td!d"dƒƒ t d<ttd%ƒttd&ƒtd'ƒƒƒƒ t d=ttd%ƒttd&ƒtd'ƒƒƒƒ t d>ttdƒttdƒtd*ƒƒƒƒ t d?ttd,ƒtd-ƒtd.ƒd/ƒƒ d S )@Nz\gcd(830,450)i>  iÂ  z\gcd(6,321,429)é   iA  i­  z\gcd(14,2324)é   i	  z\gcd(3, 6, 2)r   r   z\gcd(144, 2988, 37116)é   i¬  iü  z\gcd(144,2988, 37116,18, 72)r   éH   z%\gcd(144, 2988, 37116, 18, 72, 12, 6)r(   z\gcd(32)é    z\gcd(-8, 4,-2)r   r   éþÿÿÿz\gcd(x, y,z)Tr-   z\gcd(6*4,48, 3)r   é0   z\gcd(6*4,48,3)z\gcd(2.4,3.6, 0.6)r    r!   z0.6z\gcd(2.4,3.6,0.6)z#\gcd(\sqrt{3},\sqrt{2}, \sqrt{100})éd   z\gcd(1E12, 1E6,1E3, 10)r+   Z1E6Z1E3r)   z\operatorname{gcd}(830,450)z\operatorname{gcd}(6,321,429)z\operatorname{gcd}(14,2324)z\operatorname{gcd}(3, 6, 2)z$\operatorname{gcd}(144, 2988, 37116)z*\operatorname{gcd}(144,2988, 37116,18, 72)z3\operatorname{gcd}(144, 2988, 37116, 18, 72, 12, 6)z\operatorname{gcd}(32)z\operatorname{gcd}(-8, 4,-2)z\operatorname{gcd}(x, y,z)z\operatorname{gcd}(6*4,48, 3)z\operatorname{gcd}(6*4,48,3)z \operatorname{gcd}(2.4,3.6, 0.6)z\operatorname{gcd}(2.4,3.6,0.6)z1\operatorname{gcd}(\sqrt{3},\sqrt{2}, \sqrt{100})z%\operatorname{gcd}(1E12, 1E6,1E3, 10))r   r   r   r   r   r   r   r	   r   r   r   r   Útest_multiple_parameters€   s@    """ """r:   )Úcontextr   ZpytestZsympyr   r   r   r   r   r	   r
   r   r   r   r   r   r#   r%   r,   r1   r:   r   r   r   r   Ú<module>   s   $