U
    ZÊ¹j.  ã                   @   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sŒt‚|  dd¡ d	| jks¦t‚| jd dks¸t‚|  d
¡ |  dd¡ | jd dksàt‚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   úc/var/www/html/bwave/python/venv/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ƒs�t‚|  d¡ | jd tddƒks²t‚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s¼t‚n4| jd
 d d dks¢t‚| jd d d dks¼t‚|  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s¬t	‚ˆ  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�s t	‚ˆ  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sšt‚d| jd ks¬t‚| jd d d d… dksÊt‚d| jd ksÜt‚| jd d dksòt‚| jd d dk�s´t‚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�s˜t‚| jd d d dk�s´t‚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s°t‚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)