o
    oh.                     @   s   d Z ddlmZmZmZ ddlmZmZmZ ddl	m
Z
 ddlmZ e
dddZes,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 )z<Tests of tools for setting up interactive IPython sessions.     )init_ipython_sessionenable_automatic_symbols"enable_automatic_int_sympification)SymbolRationalInteger)import_module)raisesIPythonz0.11)min_module_versionTc                  C   s   t  } | d t|  d}|| jvsJ | d| d || jvs$J | d| d | jd tks5J | d||f d || jv sFJ | dd d	| jvsSJ | jd du s\J | d
 | dd | jd du spJ d S )Nzfrom sympy import *verylongsymbolnameza = %sTza = type(%s)az%s = Symbol('%s')za = all == __builtin__.allallzimport sympyz a = factorial == sympy.factorial)r   run_cellr   user_nsr   )appsymbol r   x/var/www/html/construction_image-detection-poc/venv/lib/python3.10/site-packages/sympy/interactive/tests/test_ipython.pytest_automatic_symbols   s"   

r   c                  C   s   t  } | d | d t| jd tsJ t|  | d t| jd ts*J | d t| jd ts9J | d t| jd tsHJ | d | jd tddksYJ d S )	Nzfrom sympy import Integerza = 1r   za = 1/2z
a = int(1)z
a = (1/
2)      )r   r   
isinstancer   intr   r   r   r   r   r   r   test_int_to_Integer:   s   





r   c                  C   sd  t  } | d | d | d | d | d | d ttjdd d	k rD| jd
 d dks8J | jd d dksCJ n| jd
 d d dksQJ | jd d d dks^J | d | d | d | d ttjdd d	k r| jd
 d dv sJ | jd d dv sJ d S | jd
 d d dv sJ | jd d d dv sJ d S )Nip = get_ipython()inst = ip.instance()&format = inst.display_formatter.formatfrom sympy import Symbolza = format(Symbol('pi'))za2 = format(Symbol('pi')**2).r   r   r   
text/plainpia2zpi**2from sympy import init_printingzinit_printing())u   πr"   )u    2
π z  2
pi r   r   r   ipython__version__splitr   r   r   r   r   test_ipythonprintingN   s*   









r)   c                     s$  t    d  d  d  d  d  d ttjdd d	k r> jd
 d } tt fdd n jd
 d d } tt fdd | dv sVJ  d  d  d ttjdd d	k r jd
 d }  jd
 d }n jd
 d d }  jd
 d d }| dv sJ |dksJ  d  d ttjdd d	k r jd
 d }n	 jd
 d d }|dksJ  d  d  d ttjdd d	k r jd
 d } tt fdd n jd
 d d } tt fdd | dv sJ d S )Nr   r   r   r   r$   z2a = format({Symbol('pi'): 3.14, Symbol('n_i'): 3})r    r   r   r   r!   c                          j d d S Nr   
text/latexr   r   r   r   r   <lambda>}       z+test_print_builtin_option.<locals>.<lambda>c                          j d d d S Nr   r   r,   r-   r   r   r   r   r.          ){pi: 3.14, n_i: 3}u   {nᵢ: 3, π: 3.14}{n_i: 3, pi: 3.14}u   {π: 3.14, nᵢ: 3}>inst.display_formatter.formatters['text/latex'].enabled = Trueinit_printing(use_latex=True)r,   z8$\displaystyle \left\{ n_{i} : 3, \  \pi : 3.14\right\}$z\    class WithOverload:
        def _latex(self, printer):
            return r"\LaTeX"
    za = format((WithOverload(),))z%$\displaystyle \left( \LaTeX,\right)$z2init_printing(use_latex=True, print_builtin=False)c                      r*   r+   r-   r   r   r   r   r.      r/   c                      r0   r1   r-   r   r   r   r   r.      r2   )r3   r4   )	r   r   r   r&   r'   r(   r   r	   KeyError)textlatexr   r   r   test_print_builtin_optionp   sL   













r:   c                  C   s  t  } | d | d | d | d | d | d | d | d | d	 | d
 ttjdd dk r| jd d dksLJ d| jd vsUJ | jd d d d dksdJ d| jd vsmJ | jd d dksxJ | jd d dksJ d S | jd d d dksJ d| jd d vsJ | jd d d d d dksJ d| jd d vsJ | jd d d dksJ | jd d d dksJ d S )Nr   r   r   r5   'from sympy import init_printing, Matrixz0init_printing(use_latex=True, use_unicode=False)za = format((True, False))z
import syszb = format(sys.flags)zc = format((Matrix([1, 2]),))r    r   r   r   r!   z(True, False)r,   b
   z
sys.flags(cz [1]  
([ ],)
 [2]  zJ$\displaystyle \left( \left[\begin{matrix}1\\2\end{matrix}\right],\right)$r%   r   r   r   r   test_builtin_containers   s8   









"r?   c                  C   s   t  } | d | d | d | d | d | d | d | d ttjd	d
 dk r=| d n| d | d | d | d d S )Nimport IPythonr   r   r   r;   z%init_printing(use_latex='matplotlib')z=inst.display_formatter.formatters['image/png'].enabled = Truezimport warningsr    r   r   zwarnings.simplefilter('error')zHwarnings.simplefilter('error', IPython.core.formatters.FormatterWarning)za = format(Matrix([1, 2, 3]))z'from sympy import Piecewise, Symbol, EqzAx = Symbol('x'); pw = format(Piecewise((1, Eq(x, 0)), (0, True))))r   r   r   r&   r'   r(   r   r   r   r   test_matplotlib_bad_latex   s   










rA   c                  C   s   t  } | d | d | d | d | d | d | d | d | d	 | d
 ttjdd dk rI| jd d }n	| jd d d }|dksXJ d S )Nr@   r   r   r   r5   r$   r   r6   z    class SymbolWithOverload(Symbol):
        def _repr_latex_(self):
            return r"Hello " + super()._repr_latex_() + " world"
    z#a = format(SymbolWithOverload('s'))r    r   r   r   r,   zHello $\displaystyle s$ worldr%   )r   r9   r   r   r   test_override_repr_latex   s   









rB   N)__doc__sympy.interactive.sessionr   r   r   
sympy.corer   r   r   sympy.externalr   sympy.testing.pytestr	   r&   disabledr   r   r)   r:   r?   rA   rB   r   r   r   r   <module>   s    
"J)