U
    ZÊ¹jv  ã                   @   sØ   d dl mZ d dlZd dlmZmZ d dlZ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 d dlmZ edƒZd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zedƒdd„ ƒZdd„ Zdd„ Z dS )é    )ÚdedentN)ÚPopenÚPIPE)ÚS)ÚraisesÚwarns_deprecated_sympyÚskip_under_pyodide)Ú	translateÚreplaceÚordinalÚrawlinesÚstrlinesÚas_intÚfind_executable)Úimport_moduleÚ
pyodide_jsc                  C   sø   d} t | d dƒdkst‚t | d dƒdks,t‚t | ddidƒdksDt‚t | ddidƒdks\t‚t | d	didƒdkstt‚t | d	didƒdksŒt‚t | ddidƒd	ks¤t‚t | dd
dœƒdks¼t‚tdƒ}t | dd|ƒdksÚt‚|t | d||ƒkdksôt‚d S )NÚabcÚaÚbcÚ ÚxÚcÚxbZbcbÚabÚy)r   r   i   ZxbcT)r	   ÚAssertionErrorÚchr)r   Úu© r   ú^/var/www/html/bwave/python/venv/lib/python3.8/site-packages/sympy/utilities/tests/test_misc.pyÚtest_translate   s    r    c                   C   s@   t ddƒdkst‚t dddiƒdks(t‚t dddƒdks<t‚d S )	Nr   )r   ÚbZbbcr   ZAaZAabc)r   ÚCZbbC)r
   r   r   r   r   r   Útest_replace   s    r#   c                   C   sì   t dƒdkst‚t dƒdks t‚t dƒdks0t‚t dƒdks@t‚t d	ƒd
ksPt‚tdd„ tddƒD ƒƒslt‚t dƒdks|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‚t dƒdksÌt‚tdd„ tddƒD ƒƒsèt‚d S )Néÿÿÿÿz-1str   Z0thé   Z1sté   Z2ndé   Z3rdc                 s   s   | ]}t |ƒ d ¡V  qdS ©ÚthN)r   Úendswith©Ú.0Úir   r   r   Ú	<genexpr>+   s     ztest_ordinal.<locals>.<genexpr>é   é   éd   Z100thée   Z101stéf   Z102ndég   Z103rdéh   Z104théÈ   Z200thc                 s   s"   | ]}t |ƒt|ƒd  kV  qdS r(   )r   Ústrr+   r   r   r   r.   2   s     i$ÿÿÿi5ÿÿÿ)r   r   ÚallÚranger   r   r   r   Útest_ordinal%   s    r:   c                   C   s8   t dƒdkst‚t dƒdks t‚t tdƒƒdks4t‚d S )Nza a
azdedent('''\
    a a
    a''')za az'a a'ú\le"ftz*(
    '(\n'
    'r\'\\le"ft\'\n'
    ')'
))r   r   r   r   r   r   r   Útest_rawlines5   s
    
ÿr<   c                  C   s�   d} t | dƒtdƒkst‚| dks&t‚d} t | dƒtdƒks@t‚t dƒdksPt‚t dd	d
�dksdt‚t dƒdkstt‚d} t | ƒt| ƒksŒt‚d S )Nzthis quote (") is in the middleé
   z^        (
        'this quo'
        'te (") i'
        's in the'
        ' middle'
        )zthis quote (') is in the middleé   zH        (
        "this quote (') is "
        "in the middle"
        )z\leftz(
r'\left'
)T)Úshortzr'\left'r;   z(
r'\le"ft'
)zthis
other line)r   r   r   r   )Úqr   r   r   Útest_strlines@   s     ÿÿÿrA   c                   C   sx   zt d d d dƒ W n tk
r&   Y n
X ds0t‚t dd d d ƒdksFt‚zt dddƒ W n tk
rj   Y n
X dstt‚d S )NZnot_noneFÚsr   r   )r	   Ú
ValueErrorr   r   r   r   r   Útest_translate_argsd   s    rD   z'Cannot create subprocess under pyodide.c                  C   sj   t j ¡ } d| d< d}tjd|g}t|| ttd�}| ¡ \}}| d¡}| d¡}d}||ksft	|ƒ‚d S )NÚTrueZSYMPY_DEBUGzGfrom sympy import *; x = Symbol("x"); print(integrate((1-cos(x))/x, x))z-c)ÚenvÚstdoutÚstderrÚasciiz/substituted: -x*(1 - cos(x)), u: 1/x, u_var: _u)
ÚosÚenvironÚcopyÚsysÚ
executabler   r   ÚcommunicateÚdecoder   )rF   ÚcmdZcmdlineÚprocÚoutÚerrÚexpectedr   r   r   Útest_debug_outputv   s    


rV   c                   C   s–   t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t tdd„ ƒ t td	d„ ƒ t td
d„ ƒ tddd�dks’t‚d S )Nc                   S   s   t dƒS )NT©r   r   r   r   r   Ú<lambda>…   ó    ztest_as_int.<locals>.<lambda>c                   S   s   t dƒS )Ngš™™™™™ñ?rW   r   r   r   r   rX   †   rY   c                   S   s   t g ƒS ©NrW   r   r   r   r   rX   ‡   rY   c                   S   s
   t tjƒS rZ   )r   r   ÚNaNr   r   r   r   rX   ˆ   rY   c                   S   s
   t tjƒS rZ   )r   r   ÚInfinityr   r   r   r   rX   ‰   rY   c                   S   s
   t tjƒS rZ   )r   r   ÚNegativeInfinityr   r   r   r   rX   Š   rY   c                   S   s
   t tjƒS rZ   )r   r   ZComplexInfinityr   r   r   r   rX   ‹   rY   c                   S   s   t dƒS )NgöJáÇ-µDrW   r   r   r   r   rX   ‘   rY   c                   S   s   t tdƒƒS )Nz1.000000000000000000001)r   r   r   r   r   r   rX   ’   rY   TF)Ústrictr%   )r   rC   r   r   r   r   r   r   Útest_as_int„   s    r_   c                	   C   s   t ƒ � tdƒ W 5 Q R X d S )NÚpython)r   r   r   r   r   r   Útest_deprecated_find_executable•   s    ra   )!Útextwrapr   rM   Ú
subprocessr   r   rJ   Zsympy.core.singletonr   Zsympy.testing.pytestr   r   r   Zsympy.utilities.miscr	   r
   r   r   r   r   r   Zsympy.externalr   r   r    r#   r:   r<   rA   rD   rV   r_   ra   r   r   r   r   Ú<module>   s$   $$
