a
    <b.                     @   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vs*J | d| d || jvsHJ | d| d | jd tksjJ | d||f d || jv sJ | dd d	| jvsJ | jd du sJ | d
 | dd | jd du sJ 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_nsr   )appsymbol r   t/Users/vegardjervell/Documents/master/model/venv/lib/python3.9/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sTJ | d t| jd tsrJ | d t| jd tsJ | d | jd tddksJ 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   sl  t  } | d | d | d | d | d | d ttjdd d	k r| jd
 d dkspJ | jd d dksJ n4| jd
 d d dksJ | jd d d dksJ | d | d | d | d ttjdd d	k r0| jd
 d dv sJ | jd d dv shJ n8| jd
 d d dv sLJ | jd d d dv shJ 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   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v sJ  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 s4J |dksBJ  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                      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	   KeyError)textlatexr   r   r   test_print_builtin_optionp   sL    













r3   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sJ d| jd vsJ | jd d d d dksJ d| jd vsJ | jd d dksJ | jd d dksJ n| jd d d dks(J d| jd d vs@J | jd d d d d dksdJ d| jd d vs|J | jd d d dksJ | jd d d dksJ 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    









$
r8   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   r4   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sJ d S )Nr9   r   r   r   r.   r    r   r/   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   r2   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%   r3   r8   r:   r;   r   r   r   r   <module>   s   
"J)