
    sg.                         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      Zesd	Zd
 Zd Zd Zd Zd Zd Zd Zy)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                  >   t               } | j                  d       t        |        d}|| j                  vsJ | j                  d|z  d       || j                  vsJ | j                  d|z  d       | j                  d   t        k(  sJ | j                  |d|dd       || j                  v sJ | j                  d	d       d
| j                  vsJ | j                  d   du sJ | j                  d       | j                  dd       | j                  d   du sJ y )Nzfrom sympy import *verylongsymbolnameza = %sTza = type(%s)az = Symbol('z')za = all == __builtin__.allallzimport sympyz a = factorial == sympy.factorial)r   run_cellr   user_nsr   )appsymbols     W/var/www/html/venv/lib/python3.12/site-packages/sympy/interactive/tests/test_ipython.pytest_automatic_symbolsr      s    
 CLL&'S!!F$$$LLF"D)$$$LL&($/;;sv%%%LL7>S[[    LL-t4###;;st### LL LL3T:;;st###    c                  .   t               } | j                  d       | j                  d       t        | j                  d   t              sJ t        |        | j                  d       t        | j                  d   t              sJ | j                  d       t        | j                  d   t              sJ | j                  d       t        | j                  d   t              sJ | j                  d       | j                  d   t        dd      k(  sJ y )	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   s    r   test_int_to_Integerr   :   s    

 CLL,-LLckk#&,,,&s+LLckk#&111LLckk#&000LLckk#&,,,LL;;sx1~---r   c                     t               } | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       t        t        j                  j                  d      d         d	k  r.| j                  d
   d   dk(  sJ | j                  d   d   dk(  s6J | j                  d
   d   d   dk(  sJ | j                  d   d   d   dk(  sJ | j                  d       | j                  d       | j                  d       | j                  d       t        t        j                  j                  d      d         d	k  r-| j                  d
   d   dv sJ | j                  d   d   dv sJ y | j                  d
   d   d   dv sJ | j                  d   d   d   dv sJ y )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   s    r   test_ipythonprintingr-   N   s   

 CLL%&LL'(LL9:LL+, LL+,LL/0
7$$S)!,-1{{3-555{{4 .'999{{3"<0D888{{4 #L1W<<< LL23LL"#LL+,LL/0
7$$S)!,-1{{3-1TTTT{{4 .2````{{3"<04WWWW{{4 #L15ccccr   c                     t               j                  d       j                  d       j                  d       j                  d       j                  d       j                  d       t        t        j                  j                  d      d         d	k  r&j                  d
   d   } t        t        fd       n(j                  d
   d   d   } t        t        fd       | dv sJ j                  d       j                  d       j                  d       t        t        j                  j                  d      d         d	k  r%j                  d
   d   } j                  d
   d   }n*j                  d
   d   d   } j                  d
   d   d   }| dv sJ |dk(  sJ j                  d       j                  d       t        t        j                  j                  d      d         d	k  rj                  d
   d   }nj                  d
   d   d   }|dk(  sJ j                  d       j                  d       j                  d       t        t        j                  j                  d      d         d	k  r&j                  d
   d   } t        t        fd       n(j                  d
   d   d   } t        t        fd       | dv sJ y )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   s   r   <lambda>z+test_print_builtin_option.<locals>.<lambda>}       S!1,!? r   c                  .     j                   d   d   d   S Nr   r   r1   r2   r   s   r   r3   z+test_print_builtin_option.<locals>.<lambda>       S!1!!4\!B 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)r1   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                  (     j                   d   d   S r0   r2   r   s   r   r3   z+test_print_builtin_option.<locals>.<lambda>   r4   r   c                  .     j                   d   d   d   S r6   r2   r   s   r   r3   z+test_print_builtin_option.<locals>.<lambda>   r7   r   )r8   r9   )	r   r   r   r*   r+   r,   r   r
   KeyError)textlatexr   s     @r   test_print_builtin_optionrA   p   s   

 CLL%&LL'(LL9:LL+,LL23LLEF
7$$S)!,-1{{3-x?@{{3"<0xBC  a a a a LLQRLL01LLEF
7$$S)!,-1{{3-C .{{3"<0C #L1 a a a a OOOO LL  	
 LL01
7$$S)!,-1C .C #L1<<<<LLQRLLEFLLEF
7$$S)!,-1{{3-x?@{{3"<0xBC
 ????r   c                     t               } | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       t        t        j                  j                  d      d         dk  r| j                  d   d   dk(  sJ d| j                  d   vsJ | j                  d   d   d d dk(  sJ d| j                  d   vsJ | j                  d   d   dk(  sJ | j                  d   d   dk(  sJ y | j                  d   d   d   dk(  sJ d| j                  d   d   vsJ | j                  d   d   d   d d dk(  sJ d| j                  d   d   vsJ | j                  d   d   d   dk(  sJ | j                  d   d   d   dk(  sJ y )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)r1   b
   z
sys.flags(cz [1]  
([ ],)
 [2]  zJ$\displaystyle \left( \left[\begin{matrix}1\\2\end{matrix}\right],\right)$r)   r   s    r   test_builtin_containersrG      sH   

 CLL%&LL'(LL9:LLQRLL:;LLCD LL,-LLLL()LL01
7$$S)!,-1{{3-/AAA3;;s#3333{{3-cr2lBBB3;;s#3333{{3- 	  {{3-  2G  G  	G  G{{3"<0_DDD3;;s#3A#6666{{3"<0"5EEE3;;s#3A#6666{{3"<0 	  {{3"<0  5J  J  	J  Jr   c                  0   t               } | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       t        t        j                  j                  d	      d
         dk  r| j                  d       n| j                  d       | j                  d       | j                  d       | j                  d       y )Nimport IPythonr    r!   r"   rC   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   s    r   test_matplotlib_bad_latexrJ      s    

 CLL!"LL%&LL'(LL9:LL:;LL89 LLPQ LL"#
7$$S)!,-156_` LL01 LL:;LLTUr   c                  &   t               } | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d       | j                  d	       | j                  d
       t        t        j                  j                  d      d         dk  r| j                  d   d   }n| j                  d   d   d   }|dk(  sJ y )NrI   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   r1   zHello $\displaystyle s$ worldr)   )r   r@   s     r   test_override_repr_latexrL      s    

 CLL!"LL%&LL'(LL9:LLQRLL23LL+,LL01LL  	
 LL67
7$$S)!,-1C .C #L14444r   N)__doc__sympy.interactive.sessionr   r   r   
sympy.corer   r   r   sympy.externalr	   sympy.testing.pytestr
   r*   disabledr   r   r-   rA   rG   rJ   rL    r   r   <module>rT      sc    BB B 1 0 ( ' 	f
=H$:.(dDG@T'JRV:5r   