U
    ÃÌ0e²  ã                   @   s   d dl mZ ddlZddlZddlmZmZmZmZm	Z	m
Z
mZmZmZm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d„ Z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)d*„ Z!d+d,„ Z"d-d.„ Z#dS )/é   )Úassert_equalé    N)
ÚUnevaluatedExprÚSymbolÚMulÚPowÚMaxÚMinÚgcdÚlcmÚfloorÚceilingÚxT©ÚrealÚyc                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\variable{x}r   Tr   ©r   r   ÚhashlibÚmd5ÚencodeÚ	hexdigest© r   r   ú7/tmp/pip-unpacked-wheel-586xlynq/tests/variable_test.pyÚtest_variable_letter
   s    r   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\variable{1}Ú1Tr   r   r   r   r   r   Útest_variable_digit   s    r   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\variable{x_y}Zx_yTr   r   r   r   r   r   Útest_variable_letter_subscript   s    r   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\variable{x_{i,j}}zx_{i,j}Tr   r   r   r   r   r   Ú$test_variable_letter_comma_subscript   s    r   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\variable{x_1}Zx_1Tr   r   r   r   r   r   Útest_variable_digit_subscript   s    r   c                	   C   s>   t  t¡* tdtdt d ¡ ¡ ¡  ddƒ W 5 Q R X d S )Nz\variable{x_}Zx_Tr   ©	ÚpytestÚraisesÚ	Exceptionr   r   r   r   r   r   r   r   r   r   Ú&test_variable_after_subscript_required   s    r#   c                	   C   s>   t  t¡* tdtdt d ¡ ¡ ¡  ddƒ W 5 Q R X d S )Nz\variable{_x}Ú_xTr   r   r   r   r   r   Ú'test_variable_before_subscript_required#   s    r%   c                	   C   s$   t  t¡ tdd ƒ W 5 Q R X d S )Nz\variable{\sin xy}©r    r!   r"   r   r   r   r   r   Útest_variable_bad_name(   s    r'   c                	   C   s,   t ddtdt d ¡ ¡ ¡  dd ƒ d S )Nz4\cdot\variable{x}é   r   Tr   r   r   r   r   r   Útest_variable_in_expr-   s    r)   c                   C   s4   t dtdt d ¡ ¡ ¡  ddtddd ƒ d S )Nz\variable{\alpha }\alphaz\alpha Tr   Úalphar   r   r   r   r   Útest_variable_greek_letter1   s    r+   c                   C   s4   t dtdt d ¡ ¡ ¡  ddtddd ƒ d S )Nz"\variable{\alpha _{\beta }}\alpha z\alpha _{\beta }Tr   r*   r   r   r   r   r   Ú$test_variable_greek_letter_subscript5   s    r,   c                	   C   s$   t  t¡ tdd ƒ W 5 Q R X d S )Nz\variable{x_yz}r&   r   r   r   r   Ú)test_variable_bad_unbraced_long_subscript9   s    r-   c                	   C   s$   t  t¡ tdd ƒ W 5 Q R X d S )Nz\variable{x\beta 10_y\alpha 20}r&   r   r   r   r   Ú1test_variable_bad_unbraced_long_complex_subscript>   s    r.   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz!\variable{x\beta 10_{y\alpha 20}}zx\beta 10_{y\alpha 20}Tr   r   r   r   r   r   Útest_variable_braced_subscriptC   s    r/   c                	   C   sp   t ddtdt d ¡ ¡ ¡  dd tdt d ¡ ¡ ¡  dd tdt d ¡ ¡ ¡  dd td  ƒ d S )	NzG4\cdot\variable{value1}\frac{\variable{value_2}}{\variable{a}}\cdot x^2r(   Zvalue1Tr   Zvalue_2Úaé   )r   r   r   r   r   r   r   r   r   r   r   Útest_variable_complex_exprG   s    r2   c                   C   s(   t dtdt d ¡ ¡ ¡  ddƒ d S )Nz\$\variable{x}r   Tr   r   r   r   r   r   Útest_variable_dollarsK   s    r3   c                	   C   s<   t dttdt d ¡ ¡ ¡  ddtddddddƒ d S )	Nz\variable{x}\%r   Tr   éd   éÿÿÿÿF©Úevaluate)r   r   r   r   r   r   r   r   r   r   r   r   Útest_variable_percentageO   s    r8   c                	   C   sT   t dttdt d ¡ ¡ ¡  ddƒƒ t dttdt d ¡ ¡ ¡  ddƒƒ d S )Nz\floor(\variable{x})r   Tr   z\ceil(\variable{x}))r   r   r   r   r   r   r   r   r   r   r   r   Útest_variable_single_arg_funcS   s    (r9   c                   C   s$  t dtttdt d ¡ ¡ ¡  ddtdt d ¡ ¡ ¡  ddƒƒƒ t dtttdt d ¡ ¡ ¡  ddtdt d ¡ ¡ ¡  ddƒƒƒ t dt	tdt d ¡ ¡ ¡  ddtdt d ¡ ¡ ¡  dddd	ƒ t d
t
tdt d ¡ ¡ ¡  ddtdt d ¡ ¡ ¡  dddd	ƒ d S )Nz \gcd(\variable{x}, \variable{y})r   Tr   r   z \lcm(\variable{x}, \variable{y})z \max(\variable{x}, \variable{y})Fr6   z \min(\variable{x}, \variable{y}))r   r   r
   r   r   r   r   r   r   r   r	   r   r   r   r   Útest_variable_multi_arg_funcX   s    HHHr:   )$Úcontextr   r    r   Zsympyr   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/   r2   r3   r8   r9   r:   r   r   r   r   Ú<module>   s0   0