
    fh                        d Z ddlmZ ddlmZ ddlZddlmZ ddlm	Z	m
Z
 ddlmZ ej                  j                  dd	d
g      d        Zed        Z e	d	d
      ej                  j                  dddg      d               Zd Zeefd       Zej                  j                  deeg      ej                  j                  dddg      d               Ze
d        Zd Zd Zd Ze
 e	d	d
      d               Zd Zy)zTests for IPython.utils.path.py    )contextmanager)patchN)
latextools)onlyif_cmds_existskipif_not_matplotlibFindCmdErrorcommandlatexdvipngc                       fd}t        j                  t        d|      5  t        j                  dd      J 	 d d d        y # 1 sw Y   y xY w)Nc                     | k(  rt         y Nr   )argr
   s    \/var/www/cvtools/html/venv/lib/python3.12/site-packages/IPython/lib/tests/test_latextools.pymock_find_cmdzGtest_check_latex_to_png_dvipng_fails_when_no_cmd.<locals>.mock_find_cmd   s    '>     find_cmdwhateverT)r   objectr   latex_to_png_dvipng)r
   r   s   ` r   0test_check_latex_to_png_dvipng_fails_when_no_cmdr      sL     
j*m	< H--j$?GGGH H Hs   AAc               /      K   d  y wr    )argskwargss     r   no_opr      s	     	s   zs, wrap)z$$x^2$$F)x^2Tc                     d }t        j                  | |       t        |      5  t        j                  | |       ddd       y# 1 sw Y   yxY w)z@
    Test that latex_to_png_dvipng just runs without error.
    c                     | dk(  sJ y N	breqn.styr   filenames    r   mock_kpsewhichz5test_latex_to_png_dvipng_runs.<locals>.mock_kpsewhich'       ;&&&r   N)r   r   patch_latextool)swrapr%   s      r   test_latex_to_png_dvipng_runsr*   !   sF     ""1d+		( 0&&q$/0 0 0s   AAc                     | dk(  sJ y r!   r   r#   s    r   r%   r%   1   s    {"""r   c              #   t   K   t        j                  t        d|       5  d  d d d        y # 1 sw Y   y xY ww)N	kpsewhich)r   r   r   )mocks    r   r'   r'   5   s-     	j+t	4   s   8,	858contexts_wrap)$x^2$Fc                     	 ddl }| \  }} |       5  t	        j
                  ||       ddd       y# t        $ r t        j                  d       Y yw xY w# 1 sw Y   yxY w)z=
    Test that latex_to_png_mpl just runs without error.
    r   Nz%This needs matplotlib to be available)
matplotlibImportErrorpytestskipr   latex_to_png_mpl)r0   r/   r3   r(   r)   s        r   test_latex_to_png_mpl_runsr8   :   se     GAt	 -##At,- -	  ;<- -s   2 AAAAc                  :    t        j                  d      } d| v sJ y )Nr1   zdata:image/png;base64,iVBOR)r   latex_to_html)imgs    r   test_latex_to_htmlr<   I   s     

"
"7
+C(C///r   c                      d } t        |       5  dj                  t        j                  dd            dk(  sJ 	 ddd       y# 1 sw Y   yxY w)z)
    Test genelatex with wrap=False.
    c                 .    J dj                  |              )Nz0kpsewhich should not be called (called with {0}))formatr#   s    r   r%   z.test_genelatex_no_wrap.<locals>.mock_kpsewhichS   s    	= ++16(+;	=ur   
z	body textFz\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{bm}
\pagestyle{empty}
\begin{document}
body text
\end{document}Nr'   joinr   	genelatexr%   s    r   test_genelatex_no_wraprE   O   sT    = 
	( 	yy--k5AB G  	 	 	 	   +AAc                      d } t        |       5  dj                  t        j                  dd            dk(  sJ 	 ddd       y# 1 sw Y   yxY w)zL
    Test genelatex with wrap=True for the case breqn.sty is installed.
    c                     | dk(  sJ y)Nr"   zpath/to/breqn.styr   r#   s    r   r%   z6test_genelatex_wrap_with_breqn.<locals>.mock_kpsewhichg   s    ;&&&"r   r@   r   Tz\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{bm}
\usepackage{breqn}
\pagestyle{empty}
\begin{document}
\begin{dmath*}
x^2
\end{dmath*}
\end{document}NrA   rD   s    r   test_genelatex_wrap_with_breqnrI   c   sT    # 
	( yy--eT:; @  	   rF   c                      d } t        |       5  dj                  t        j                  dd            dk(  sJ 	 ddd       y# 1 sw Y   yxY w)zP
    Test genelatex with wrap=True for the case breqn.sty is not installed.
    c                     | dk(  sJ y r!   r   r#   s    r   r%   z9test_genelatex_wrap_without_breqn.<locals>.mock_kpsewhich~   r&   r   r@   r   Tz\documentclass{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage{amssymb}
\usepackage{bm}
\pagestyle{empty}
\begin{document}
$$x^2$$
\end{document}NrA   rD   s    r   !test_genelatex_wrap_without_breqnrL   z   sT     
	( 	yy--eT:; @  	 	 	 	rF   c                  v   d} t        j                  | d      }t        j                  | dd      }t        j                  | d      }t        j                  | dd      }||k(  sJ t        j                  | d      }t        j                  | dd      }||k(  sJ |||fv sJ |||fv sJ t        j                  | dd      }||k7  sJ t        j                  | dd      }||k7  sJ t        j                  | dd      }	t        j                  | dd	      }
|	|
k(  sJ t        j                  | ddd
      }|	|k7  sJ y)z/
    Test color settings for latex_to_png.
    r1   F)r)   z#000000)r)   colorBlackMaroonWhitez#FFFFFFg333333?N)r   latex_to_pngr   r7   )latex_stringdefault_valuedefault_hexblackdvipng_defaultdvipng_blackmpl_default	mpl_blackdvipng_maroon
mpl_maroon	mpl_whitempl_hexwhitempl_white_scales               r   test_latex_to_png_colorr_      sk    L++LuEM!..|%5>@33L%HN11,wOL\)))--lEBK++L%II)###\95555i8888 22<3;=M =(((,,\5(KJ
"""++L%II..|UINL$$$ 11,293@O'''r   c                  ~     d t        j                  t         fd       t        j                  t         fd       y)zM
    Test that invalid hex colors provided to dvipng gives an exception.
    r1   c                  4    t        j                   dd      S )Nr   z#f00barbackendrN   r   rR   rS   s   r   <lambda>z6test_latex_to_png_invalid_hex_colors.<locals>.<lambda>   s    
''()
 r   c                  4    t        j                   dd      S )Nr   z#f00rb   rd   re   s   r   rf   z6test_latex_to_png_invalid_hex_colors.<locals>.<lambda>   s    
''hfU r   N)r5   raises
ValueErrorre   s   @r   $test_latex_to_png_invalid_hex_colorsrj      s2     L
MM	
 MMUr   )__doc__
contextlibr   unittest.mockr   r5   IPython.libr   IPython.testing.decoratorsr   r   IPython.utils.processr	   markparametrizer   r   r*   r%   r'   r8   r<   rE   rI   rL   r_   rj   r   r   r   <module>rs      sM   % &   " / Wh$78H 9H 
 
 7H%%7$GH0 I &0 '   UO$<=$4m#DE- F >- 0 0
(.( 7H%( & (Dr   