U
    -e.                     @   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sXd	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)raisesZIPythonz0.11)Zmin_module_versionTc                  C   s   t  } | d t|  d}|| jks*t| d| d || jksHt| d| d | jd tksjt| d||f d || jkst| dd d	| jkst| jd dkst| d
 | dd | jd dkstd S )Nzfrom sympy import *Z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_nsAssertionErrorr   )appsymbol r   e/var/www/html/Darija-Ai-Train/env/lib/python3.8/site-packages/sympy/interactive/tests/test_ipython.pytest_automatic_symbols   s"    

r   c                  C   s   t  } | d | d t| jd ts.tt|  | d t| jd tsTt| d t| jd tsrt| d t| jd tst| d | jd tddkst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   r   test_int_to_Integer:   s    





r   c                  C   sl  t  } | d | d | d | d | d | d ttjdd d	k r| jd
 d dkspt| jd d dkstn4| jd
 d d dkst| jd d d dkst| d | d | d | d ttjdd d	k r0| jd
 d dkst| jd d dkshtn8| jd
 d d dksLt| jd d d dksht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piZ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   r   test_ipythonprintingN   s*    









r&   c                     s0  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kst	 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ks4t	|dksBt	 d  d ttjdd d	k r jd
 d }n jd
 d d }|dkst	 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ks,t	d S )Nr   r   r   r   r!   z2a = format({Symbol('pi'): 3.14, Symbol('n_i'): 3})r   r   r   r
   r   c                      s    j d d S Nr
   
text/latexr   r   r   r   r   <lambda>}       z+test_print_builtin_option.<locals>.<lambda>c                      s    j d d d S Nr
   r   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                      s    j d d S r'   r)   r   r   r   r   r*      r+   c                      s    j d d d S r,   r)   r   r   r   r   r*      r+   )r-   r.   )
r   r   r   r#   r$   r%   r   r	   KeyErrorr   )textlatexr   r   r   test_print_builtin_optionp   sL    













r4   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std| jd kst| jd d d d dkstd| jd kst| jd d dkst| jd d dkstn| jd d d dks(td| jd d ks@t| jd d d d d dksdtd| jd d ks|t| jd d d dkst| jd d d dkstd S )Nr   r   r   r/   '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    









$
r9   c                  C   s   t  } | d | d | d | d | d | d | d | d ttjd	d
 dk rz| d n
| d | d | d | d d S )Nimport IPythonr   r   r   r5   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    










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 }n| jd d d }|dkstd S )Nr:   r   r   r   r/   r!   r   r0   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   r3   r   r   r   test_override_repr_latex   s    









r<   N)__doc__Zsympy.interactive.sessionr   r   r   Z
sympy.corer   r   r   Zsympy.externalr   Zsympy.testing.pytestr	   r#   disabledr   r   r&   r4   r9   r;   r<   r   r   r   r   <module>   s   
"J)