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ÚlcmÚilcmÚsqrtÚpiÚxT)ÚrealÚyÚzc                   C   sŒ  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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ddƒƒ t d!ttdƒdƒƒ t d"ttdƒdƒƒ d S )#Nz
\lcm(6, 4)é   é   z
\lcm(4, 6)z
\lcm(2, 2)é   z\lcm(0, 21)r   é   z\lcm(21, 0)z
\lcm(0, 0)z\lcm(9, 21)é	   z\lcm(6128, 24)ið  é   z\lcm(24, 6128)z\lcm(1E20, 1000000)Z1E20i@B z\lcm(128*10^32, 1)Z128E32r   z\operatorname{lcm}(6, 4)z\operatorname{lcm}(4, 6)z\operatorname{lcm}(2, 2)z\operatorname{lcm}(0, 21)z\operatorname{lcm}(21, 0)z\operatorname{lcm}(0, 0)z\operatorname{lcm}(9, 21)z\operatorname{lcm}(6128, 24)z\operatorname{lcm}(24, 6128)z!\operatorname{lcm}(1E20, 1000000)z \operatorname{lcm}(128*10^32, 1))r   r   r   r   © r   r   ú2/tmp/pip-unpacked-wheel-586xlynq/tests/lcm_test.pyÚtest_lcm_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\lcm(-12, 4)iôÿÿÿr   z\lcm(219, -9)éÛ   i÷ÿÿÿz\lcm(-8, -12)éøÿÿÿz\lcm(-5, -5)éûÿÿÿz\lcm(-1, 182033)éÿÿÿÿiÇ z\lcm(25, -30)é   iâÿÿÿz\lcm(243, -2.9543127E21)éó   z-2.9543127E21z\operatorname{lcm}(-12, 4)z\operatorname{lcm}(219, -9)z\operatorname{lcm}(-8, -12)z\operatorname{lcm}(-5, -5)z\operatorname{lcm}(-1, 182033)z\operatorname{lcm}(25, -30)z&\operatorname{lcm}(243, -2.9543127E21)©r   r   r   r   r   r   r   Útest_lcm_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\lcm(2.4, 3.6)ú2.4ú3.6z\lcm(3.6, 2.4)z\lcm(\pi, 3)é   z\lcm(618, 1.5)ij  z1.5z\lcm(-1.5, 618)z-1.5z\lcm(0.42, 2)z0.42r   z\lcm(1.43E-13, 21)z1.43E-13r   z\lcm(21, -143E-13)z-143E-13z\lcm(9.80655, 9.80655)z9.80655z#\lcm(0.0000923423, -8341.234802909)z0.0000923423z-8341.234802909z\lcm(\sqrt{5}, \sqrt{2})é   z\operatorname{lcm}(2.4, 3.6)z\operatorname{lcm}(3.6, 2.4)z\operatorname{lcm}(\pi, 3)z\operatorname{lcm}(618, 1.5)z\operatorname{lcm}(-1.5, 618)z\operatorname{lcm}(0.42, 2)z \operatorname{lcm}(1.43E-13, 21)z \operatorname{lcm}(21, -143E-13)z$\operatorname{lcm}(9.80655, 9.80655)z1\operatorname{lcm}(0.0000923423, -8341.234802909)z&\operatorname{lcm}(\sqrt{5}, \sqrt{2}))r   r   r   r
   r	   r   r   r   r   Útest_lcm_float6   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\lcm(1/2, 3)z1/2r"   z\lcm(3, 1/2)z\lcm(6/2, 3)z6/2z\lcm(1/10, 1/10)z1/10z\lcm(42, 42/6)é*   z42/6z\lcm(10000000/10, 10000)z10000000/10i'  z\operatorname{lcm}(1/2, 3)z\operatorname{lcm}(3, 1/2)z\operatorname{lcm}(6/2, 3)z\operatorname{lcm}(1/10, 1/10)z\operatorname{lcm}(42, 42/6)z&\operatorname{lcm}(10000000/10, 10000)r   r   r   r   r   Útest_lcm_fractionP   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\lcm(1+1, 8)r   é   z920*\lcm(9, 12*4/2)i˜  r   é   z4/2z\lcm(32-128, 10)*22i ÿÿÿé
   é   z\sqrt{\lcm(1.25E24, 1E12)}z1.25E24Ú1E12z\lcm(92.0, 000+2)z92.0z\operatorname{lcm}(1+1, 8)z!920*\operatorname{lcm}(9, 12*4/2)z!\operatorname{lcm}(32-128, 10)*22z(\sqrt{\operatorname{lcm}(1.25E24, 1E12)}z\operatorname{lcm}(92.0, 000+2))r   r   r   r	   r   r   r   r   Útest_lcm_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
\lcm(x, y)T©Zsymbolicallyz\lcm(y, -x)z\lcm(2y, x)r   z\lcm(125, 50x)é}   é2   z\lcm(x + 76, \sqrt{x} * 4)éL   r   z
\lcm(y, y)zy + \lcm(0.4x, 8/3) / 2z0.4z8/3z/6.673E-11 * (\lcm(8.85418782E-12, 9x) + 4) / 8yz	6.673E-11z8.85418782E-12r   r'   z\operatorname{lcm}(x, y)z\operatorname{lcm}(y, -x)z\operatorname{lcm}(2y, x)z\operatorname{lcm}(125, 50x)z(\operatorname{lcm}(x + 76, \sqrt{x} * 4)z\operatorname{lcm}(y, y)z%y + \operatorname{lcm}(0.4x, 8/3) / 2z=6.673E-11 * (\operatorname{lcm}(8.85418782E-12, 9x) + 4) / 8y)r   r   r   r   r	   r   r   r   r   r   Útest_lcm_symboln   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ƒƒ 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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d0ƒd1ƒƒ t d2tddƒƒ t d3tdddƒƒ t d4td	d
ƒƒ t d5tdddƒƒ t d6tdddƒƒ t d7tdddƒƒ t d8tdddddƒƒ t d9t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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d0ƒd1ƒƒ d S )ANz\lcm(830,450)i>  iÂ  z\lcm(6,321,429)r   iA  i­  z\lcm(14,2324)é   i	  z\lcm(3, 6, 2)r"   r   z\lcm(8, 9, 21)r'   r   r   z\lcm(144, 2988, 37116)é   i¬  iü  z\lcm(144,2988,37116,18,72)é   éH   z%\lcm(144, 2988, 37116, 18, 72, 12, 6)r(   z\lcm(32)é    z\lcm(-8, 4, -2)r   r   éþÿÿÿz\lcm(x, y, z)Tr-   z\lcm(6*4, 48, 3)r   é0   z\lcm(2.4, 3.6, 0.6)r    r!   z0.6z#\lcm(\sqrt{3}, \sqrt{2},\sqrt{100})éd   z\lcm(1E12, 1E6, 1E3, 10)r+   Z1E6Z1E3r)   z\operatorname{lcm}(830,450)z\operatorname{lcm}(6,321,429)z\operatorname{lcm}(14,2324)z\operatorname{lcm}(3, 6, 2)z\operatorname{lcm}(8, 9, 21)z$\operatorname{lcm}(144, 2988, 37116)z(\operatorname{lcm}(144,2988,37116,18,72)z3\operatorname{lcm}(144, 2988, 37116, 18, 72, 12, 6)z\operatorname{lcm}(32)z\operatorname{lcm}(-8, 4, -2)z\operatorname{lcm}(x, y, z)z\operatorname{lcm}(6*4,48, 3)z \operatorname{lcm}(2.4, 3.6,0.6)z1\operatorname{lcm}(\sqrt{3}, \sqrt{2},\sqrt{100})z%\operatorname{lcm}(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   $