o
    8Va%                     @   sh   d Z ddl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S )z;Tests that the IPython printing module is properly loaded.     )init_ipython_session)import_module)raisesZIPythonz0.11)Zmin_module_versionTc                  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      a
text/plainpiZa2zpi**2from sympy import init_printingzinit_printing())u   πr   )u    2
π z  2
pi r   run_cellintipython__version__splituser_nsapp r   N/usr/lib/python3/dist-packages/sympy/interactive/tests/test_ipythonprinting.pytest_ipythonprinting   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   A       ){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   r    c                      r!   r"   r   r   r   r   r   r   u   r#   )r$   r%   )	r   r   r   r   r   r   r   r   KeyError)textlatexr   r   r   test_print_builtin_option1   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   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   









"r0   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      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   










r3   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 )Nr1   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   r*   r   r   r   test_override_repr_latex   s   









r4   N)__doc__Zsympy.interactive.sessionr   Zsympy.externalr   Zsympy.testing.pytestr   r   Zdisabledr   r+   r0   r3   r4   r   r   r   r   <module>   s    "L)