o
    i_                     @  sv  U d dl mZ d dlZd dlmZ d dlZd dlZd dlZd dlm	Z
 d dlmZ d dlZd dlmZ d dlZd dlZd dlZd dlmZmZ d dlmZ d dlmZmZ eejZg d	Z d
gZ!g dZ"dZ#dZ$dZ%dZ&dZ'e#e$e%e&e'gZ(g e(fdge(fdge(fdge(fdge#e$e%gfddddge#e$e%dgfddge#e$e%dgfddge#e$e%dgfdge$gfdge$e%gfddge$e%gfdge$e%gfdge#e$e%gfddge#e$e%gfddge#e$e%gfdge(fgZ)de*d< g Z+de*d < e)D ]:\Z,Z-e,du re+.dge-  qd!/d"/e,d#gd$d% e,D d&d'd% e,D d(Z0e-D ]
Z1e+2e0e1  qqej3d)d* Z4ej5j6d+e7e e8e9e d,ej56d-g d.ej5j6d*d/gd0d1ede: d2v rVd3nd d4d5d6 Z;ej5j6d+e7e!e8e9e!d,ej56d-d7d8gej5j6d*d9gd0d1edd:gd;ddddd<id=d>d? Z<ej5j6d+e7e"e8e9e"d,ej56d-d8gej5j6d*d@gd0d1eddAgdBdCdD Z=ej5j6d+e7e+e8e9e+d,ej56d-g d.ej5j6d*dEgd0d1eddAge: d2v rd3nd dFdGdH Z>edAgdIdJdK Z?dLdM Z@ej5jAejBdNkdOdPej5j6dQdRdSdTdUdVdWdXdYdZd[d\d]d^d_d`dadbdceCddfdedfdgdhdidjdkdldmgg dnd,dodp ZDdqdr ZEdsdt ZFedAgdIdudv ZGedAgdIdwdx ZHedAgdIdydz ZIedAgdId{d| ZJd}d~ ZKdd ZLej56dd7g dfdg dfgdd ZMdd ZNedgddiddd ZOdd ZPdd ZQdd ZRdd ZSedAgdIdd ZTdS )    )annotationsN)Path)ElementTree)Any)parse)check_figures_equalimage_comparison)mathtext	_mathtext)Sz$a+b+\dot s+\dot{s}+\ldots$z$$x\hspace{-0.2}\doteq\hspace{-0.2}y$z\$100.00 $\alpha \_$z$\frac{\$100.00}{y}$z$x   y$z$x+y\ x=y\ x<y\ x:y\ x,y\ x@y$z$100\%y\ x*y\ x/y x\$y$z $x\leftarrow y\ x\forall y\ x-y$z$x \sf x \bf x {\cal X} \rm x$z-$x\ x\,x\;x\quad x\qquad x\!x\hspace{ 0.5 }y$z$\{ \rm braces \}$zF$\left[\left\lfloor\frac{5}{\frac{\left(3\right)}{4}} y\right)\right]$z$\left(x\right)$z	$\sin(x)$z$x_2$$x^2$z$x^2_y$z$x_y^2$z$\sum _{\genfrac{}{}{0}{}{0\leq i\leq m}{0<j<n}}f\left(i,j\right)\mathcal{R}\prod_{i=\alpha_{i+1}}^\infty a_i \sin(2 \pi f x_i)\sqrt[2]{\prod^\frac{x}{2\pi^2}_\infty}$z)$x = \frac{x+\frac{5}{2}}{\frac{y+3}{8}}$z-$dz/dt = \gamma x^2 + {\rm sin}(2\pi y+\phi)$z?Foo: $\alpha_{i+1}^j = {\rm sin}(2\pi f_j t_i) e^{-5 t_i/\tau}$NzVariable $i$ is goodz$\Delta_i^j$z$\Delta^j_{i+1}$zA$\ddot{o}\acute{e}\grave{e}\hat{O}\breve{\imath}\tilde{n}\vec{q}$z$\arccos((x^i))$z)$\gamma = \frac{x=\frac{6}{8}}{y} \delta$z$\limsup_{x\to\infty}$Nz%$f'\quad f'''(x)\quad ''/\mathrm{yr}$z$\frac{x_2888}{y}$z$\sqrt[3]{\frac{X_2}{Y}}=5$Nz$\sqrt[3]{x}=5$z$\frac{X}{\frac{X}{Y}}$a  $W^{3\beta}_{\delta_1 \rho_1 \sigma_2} = U^{3\beta}_{\delta_1 \rho_1} + \frac{1}{8 \pi 2} \int^{\alpha_2}_{\alpha_2} d \alpha^\prime_2 \left[\frac{ U^{2\beta}_{\delta_1 \rho_1} - \alpha^\prime_2U^{1\beta}_{\rho_1 \sigma_2} }{U^{0\beta}_{\rho_1 \sigma_2}}\right]$z?$\mathcal{H} = \int d \tau \left(\epsilon E^2 + \mu H^2\right)$z$\widehat{abc}\widetilde{def}$zG$\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omega$z$\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \lambda \mu \nu \xi \pi \kappa \rho \sigma \tau \upsilon \phi \chi \psi$z${x}^{2}{y}^{2}$z${}_{2}F_{3}$z$\frac{x+{y}^{2}}{k+1}$z$x+{y}^{\frac{2}{k+1}}$z$\frac{a}{b/2}$Q${a}_{0}+\frac{1}{{a}_{1}+\frac{1}{{a}_{2}+\frac{1}{{a}_{3}+\frac{1}{{a}_{4}}}}}$r   z$\binom{n}{k/2}$z?$\binom{p}{2}{x}^{2}{y}^{p-2}-\frac{1}{1-x}\frac{1}{1-{x}^{2}}$z
${x}^{2y}$zG$\sum _{i=1}^{p}\sum _{j=1}^{q}\sum _{k=1}^{r}{a}_{ij}{b}_{jk}{c}_{ki}$zB$\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+\sqrt{1+x}}}}}}}$z$\left(\frac{{\partial }^{2}}{\partial {x}^{2}}+\frac{{\partial }^{2}}{\partial {y}^{2}}\right){|\varphi \left(x+iy\right)|}^{2}=0$z${2}^{{2}^{{2}^{x}}}$z&${\int }_{1}^{x}\frac{\mathrm{dt}}{t}$z)$\int {\int }_{D}\mathrm{dx} \mathrm{dy}$z${y}_{{x}^{2}}$z${y}_{{x}_{2}}$z${x}_{92}^{31415}+\pi $z!${x}_{{y}_{b}^{a}}^{{z}_{c}^{d}}$z!${y}_{3}^{\prime \prime \prime }$z+$\left( \xi \left( 1 - \xi \right) \right)$z$\left(2 \, a=b\right)$z$? ! &$NNz$\left\Vert \frac{a}{b} \right\Vert \left\vert \frac{a}{b} \right\vert \left\| \frac{a}{b}\right\| \left| \frac{a}{b} \right| \Vert a \Vert \vert b \vert \| a \| | b |$z$\mathring{A}  \AA$zN$M \, M \thinspace M \/ M \> M \: M \; M \ M \enspace M \quad M \qquad M \! M$z<$\Cap$ $\Cup$ $\leftharpoonup$ $\barwedge$ $\rightharpoonup$zv$\hspace{-0.2}\dotplus\hspace{-0.2}$ $\hspace{-0.2}\doteq\hspace{-0.2}$ $\hspace{-0.2}\doteqdot\hspace{-0.2}$ $\ddots$z1$xyz^kx_kx^py^{p-2} d_i^jb_jc_kd x^j_i E^0 E^0_u$zW${xyz}^k{x}_{k}{x}^{p}{y}^{p-2} {d}_{i}^{j}{b}_{j}{c}_{k}{d} {x}^{j}_{i}{E}^{0}{E}^0_u$ze${\int}_x^x x\oint_x^x x\int_{X}^{X}x\int_x x \int^x x \int_{x} x\int^{x}{\int}_{x} x{\int}^{x}_{x}x$ztesting$^{123}$Nz4$6-2$; $-2$; $ -2$; ${-2}$; ${  -2}$; $20^{+3}_{-2}$z%$\overline{\omega}^x \frac{1}{2}_0^x$z4$,$ $.$ $1{,}234{, }567{ , }890$ and $1,234,567,890$z$\left(X\right)_{a}^{b}$z$\dfrac{\$100.00}{y}$z$-$-)	z$\sqrt[ab]{123}$zy$x \overset{f}{\rightarrow} \overset{f}{x} \underset{xx}{ff} \overset{xx}{ff} \underset{f}{x} \underset{f}{\leftarrow} x$zc$\sum x\quad\sum^nx\quad\sum_nx\quad\sum_n^nx\quad\prod x\quad\prod^nx\quad\prod_nx\quad\prod_n^nx$z&$1.$ $2.$ $19680801.$ $a.$ $b.$ $mpl.$z$\text{text}_{\text{sub}}^{\text{sup}} + \text{\$foo\$} + \frac{\text{num}}{\mathbf{\text{den}}}\text{with space, curly brackets \{\}, and dash -}$zo$\boldsymbol{abcde} \boldsymbol{+} \boldsymbol{\Gamma + \Omega} \boldsymbol{01234} \boldsymbol{\alpha * \beta}$z$\left\lbrace\frac{\left\lbrack A^b_c\right\rbrace}{\left\leftbrace D^e_f \right\rbrack}\right\rightbrace\ \left\leftparen\max_{x} \left\lgroup \frac{A}{B}\right\rgroup \right\rightparen$z$\left( a\middle. b \right)$ $\left( \frac{a}{b} \middle\vert x_i \in P^S \right)$ $\left[ 1 - \middle| a\middle| + \left( x  - \left\lfloor \dfrac{a}{b}\right\rfloor \right)  \right]$z$\sum_{\substack{k = 1\\ k \neq \lfloor n/2\rfloor}}^{n}P(i,j) \sum_{\substack{i \neq 0\\ -1 \leq i \leq 3\\ 1 \leq j \leq 5}} F^i(x,y) \sum_{\substack{\left \lfloor \frac{n}{2} \right\rfloor}} F(n)$
0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzzE\Gamma \Delta \Theta \Lambda \Xi \Pi \Sigma \Upsilon \Phi \Psi \Omegaz\alpha \beta \gamma \delta \epsilon \zeta \eta \theta \iota \lambda \mu \nu \xi \pi \kappa \rho \sigma \tau \upsilon \phi \chi \psiZmathrmZmathbfZmathitZmathtt)N   Zmathbbz\Gamma \Pi \Sigma \gamma \piZmathcalZmathfrakZmathscrZmathsfZmathbfitz"list[tuple[None | list[str], Any]]font_test_specszlist[None | str]
font_tests  z $c                 c  s    | ]}d | V  qdS )z\%s{N .0fontr   r   m/var/www/html/eduruby.in/lip-sync/lip-sync-env/lib/python3.10/site-packages/matplotlib/tests/test_mathtext.py	<genexpr>   s    r   z%sc                 c  s    | ]}d V  qdS )}Nr   r   r   r   r   r      s    $c                 C  s$   |d u r	t d d| j||f gS )Nztest has been removedz
%s_%s_%02d)pytestskipparam)requestfontsetindextextr   r   r   baseline_images   s   
r$   zindex, text)Zidsr!   )cmstixstixsans
dejavusansZdejavuserifr	   T)Zindirect)ppc64les390xgI+?)r$   tolc                 C  .   |t jd< tjdd}|jdd|ddd d S Nmathtext.fontsetg      @g      ?Zfigsize      ?centerhorizontalalignmentverticalalignmentmplrcParamspltfigurer#   r$   r!   r"   r#   figr   r   r   test_mathtext_rendering   
   


r=   r%   r(   Z	mathtext0svgmetadata)ZCreatorDateZFormatType)r$   
extensionssavefig_kwargc                 C  sF   |t jd< dt jd< tjdd}|jjdd |jdd|d	d	d
 d S )Nr.   nonesvg.fonttyper/   r0   F)visibler1   r2   r3   )r7   r8   r9   r:   patchsetr#   r;   r   r   r   !test_mathtext_rendering_svgastext   s   
	


rJ   Z	mathtext1Zpng)r$   rC   c                 C  s&   t jdd}|jdd||ddd d S )Nr/   r0   r1   r2   )math_fontfamilyr4   r5   r9   r:   r#   r;   r   r   r   #test_mathtext_rendering_lightweight   s   
rM   Zmathfont)r$   rC   r+   c                 C  r,   r-   r6   r;   r   r   r   test_mathfont_rendering   r>   rN   )rC   c              	     s   t jj dd  D }g }|D ] fdd D \}|| q| dddddd	 |D  d  |ddddd
d	 |D  d  d S )Nc                 S  s   g | ]
}t |d kr|qS    lenr   sr   r   r   
<listcomp>  s    z+test_short_long_accents.<locals>.<listcomp>c                   s,   g | ]}t |d kr |   kr|qS rO   rQ   r   lZacc_maprT   r   r   rU     s   , r   r1   r   r   c                 s      | ]	}d | dV  qdS )\aNr   rS   r   r   r   r         z*test_short_long_accents.<locals>.<genexpr>c                 s  rY   )rZ   z aNr   rV   r   r   r   r     r\   )r
   ParserZ_accent_mapappendr#   join)fig_testfig_refZ
short_accsZcorresponding_long_accsrW   r   rX   r   test_short_long_accents  s   &rb   c                  C  sB   t jd} t j| }|d}|d usJ |d dksJ d S )NDejaVu Sansheadversion)rP   r   )r7   font_managerZfindfontZft2fontZFT2FontZget_sfnt_table)Zfontpathr   tabler   r   r   test_fontinfo  s
   
rh   )r   rP   r   z-Error messages are incorrect for this version)reasonz	math, msg)z$\hspace{}$Expected \hspace{space})z$\hspace{foo}$rj   )z$\sinx$zUnknown symbol: \sinx)z$\dotx$zUnknown symbol: \dotx)z$\frac$Expected \frac{num}{den})z$\frac{}{}$rk   )z$\binom$Expected \binom{num}{den})z$\binom{}{}$rl   )z
$\genfrac$<Expected \genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den})z$\genfrac{}{}{}{}{}{}$rm   )z$\sqrt$Expected \sqrt{value})z	$\sqrt f$rn   )z$\overline$Expected \overline{body})z$\overline{}$ro   )z$\leftF$Expected a delimiter)z	$\rightF$zUnknown symbol: \rightF)z$\left(\right$rp   z$\left($zExpected ("|\'\\)\\right["\'])z$\dfrac$Expected \dfrac{num}{den})z$\dfrac{}{}$rq   )z
$\overset$z#Expected \overset{annotation}{body})z$\underset$z$Expected \underset{annotation}{body})z$\foo$zUnknown symbol: \foo)z$a^2^2$Double superscript)z$a_2_2$zDouble subscript)z	$a^2_a^2$rr   )z$a = {b$zExpected '}')zhspace without valuezhspace with invalid valuezfunction without spacezaccent without spacezfrac without parameterszfrac with empty parameterszbinom without parameterszbinom with empty parameterszgenfrac without parameterszgenfrac with empty parameterszsqrt without parameterszsqrt with invalid valuezoverline without parameterszoverline with empty parameterzleft with invalid delimiterzright with invalid delimiterz unclosed parentheses with sizingz#unclosed parentheses without sizingzdfrac without parameterszdfrac with empty parameterszoverset without parameterszunderset without parameterszunknown symbolzdouble superscriptzdouble subscriptzsuper on sub without braceszunclosed groupc                 C  s`   t d}t|trt|n|}tjt|d |	|  W d    d S 1 s)w   Y  d S )NZaggmatch)
r	   ZMathTextParser
isinstancestrreescaper   raises
ValueErrorr   )mathmsgparserrt   r   r   r   test_mathtext_exceptions!  s
   
D"r~   c                   C  s:   t t td W d    d S 1 sw   Y  d S )Nz\foo)r   ry   rz   r
   Zget_unicode_indexr   r   r   r    test_get_unicode_index_exceptionk  s   "r   c                  C  sF   t  } | ddd | j  t| jj }|dk	 s!J d S )Nr1   z$-$   )
r9   r:   r#   canvasdrawnpZasarrayrendererZbuffer_rgbaany)r<   tr   r   r   test_single_minus_signp  s
   
r   c                 C  s    |  ddd | ddd d S )Nr1   z$1\,2\>3\ 4$z$1\/2\:3~4$r#   r`   ra   r   r   r   test_spacesx     r   c                 C  s   |  ddd |  ddd |  ddd |  ddd |  dd	d
 |  ddd |  ddd |  ddd |  ddd | ddd | ddd | ddd | ddd | dd	d | ddd | ddd | ddd | ddd d S )N皙?z$\log 6$皙?z	$\log(6)$333333?z$\arcsin 6$皙?z$\arcsin|6|$r1   z$\operatorname{op} 6$g333333?z$\operatorname{op}[6]$ffffff?z$\cos^2$g?z$\log_2$g?z$\sin^2 \cos$z$\mathrm{log\,}6$z$\mathrm{log}(6)$z$\mathrm{arcsin\,}6$z$\mathrm{arcsin}|6|$z$\mathrm{op\,}6$z$\mathrm{op}[6]$z$\mathrm{cos}^2$z$\mathrm{log}_2$z$\mathrm{sin}^2 \mathrm{\,cos}$r   r   r   r   r   test_operator_space~  s$   r   c                 C  s(   | j ddddd |j ddddd d S )Nr1   z$\left)\right($r(   )rK   z$)($r   r   r   r   r   test_inverted_delimiters  s   r   c                 C  sD   |  ddd tjjd d tjd tjd d}| ddd|  d S )Nr   z$\dfrac{2x}{3y}$z	font.sizezsavefig.dpi)fontsizedpiz$\genfrac{}{}{%f}{0}{2x}{3y}$)r#   r
   ZTruetypeFontsZget_underline_thicknessr7   r8   )r`   ra   Z	thicknessr   r   r   test_genfrac_displaystyle  s   r   c                  C  s   dD ]} | t jd< qd S )N)r%   r&   r'   Nonemathtext.fallback)r7   r8   fallbackr   r   r   test_mathtext_fallback_valid  s   r   c               	   C  sF   dD ]} t jtdd | tjd< W d    n1 sw   Y  qd S )N)abcr   znot a valid fallback font namers   r   )r   ry   rz   r7   r8   r   r   r   r   test_mathtext_fallback_invalid  s   r   zfallback,fontlist)rc   mpltestSTIXGeneralcmr10r   r&   )rc   r   r   c                 C  s   t jjttt jd  dt j	d< dt j	d< dt j	d< dt j	d	< d
t j	d< dt j	d< | t j	d< d}t
 }t \}}|jdd|ddd |j|dd t| d}dd |D }||ksgJ t jjj  d S )Nzmpltest.ttfrE   rF   Zcustomr.   r   zmathtext.rmzmpltest:italiczmathtext.itzmpltest:boldzmathtext.bfzmpltest:italic:boldzmathtext.bfitr   za$A\AA\breve\gimel$r1   (   r2   )r   Zhar?   )formatz,.//{http://www.w3.org/2000/svg}tspan[@style]c                 S  s    g | ]}t |jd  d qS )style)shlexsplitZattrib)r   Ztspanr   r   r   rU     s     z*test_mathtext_fallback.<locals>.<listcomp>)r7   rf   ZfontManagerZaddfontrv   r   __file__resolveparentr8   ioBytesIOr9   subplotsr#   ZsavefigETZ
fromstringgetvaluefindallZttflistpop)r   Zfontlisttest_strZbuffr<   axZtspansZ
char_fontsr   r   r   test_mathtext_fallback  s*   






r   c                 C  s>   t dt| d t dt  t jdt dd d S )Nr   zexample.pngZMaroon)color)r	   Zmath_to_imagerv   r_   r   r   )Ztmpdirr   r   r   test_math_to_image  s   r   zmath_fontfamily_image.pngr   r   )r$   rD   c                  C  s8   t jdd} | jdddddd | jdd	d
ddd d S )N)
   r   r0   r   r   z%$This\ text\ should\ have\ one\ font$   r(   )sizerK   r   z#$This\ text\ should\ have\ another$r&   rL   )r<   r   r   r   test_math_fontfamily  s   


r   c                  C  sz   dt jd< d} t \}}|jdd| dd}| }| dks"J |jdd| dd}| }| dks7J |  d S )	Nr%   r.   abc$abc\alpha$r   Arial)r   r   )fontpropertiesr7   r8   r9   r   r#   Zget_fontpropertiesZget_math_fontfamilydraw_without_rendering)r   r<   r   text1prop1text2prop2r   r   r   test_default_math_fontfamily  s   
r   c                  C  s   dt jd< d} t \}}|jdd| ddd}| }| dks#J |jdd| ddd	}| }| dks9J |jd
d
| ddd}| }| dksOJ |jdd| ddd}	|	 }
|
 dkseJ |  d S )Nr%   r.   r   r   r(   r   )rK   r   r   )rK   r   r   )r   rK   r   )r   rK   r   )r   r<   r   r   r   r   r   Ztext3Zprop3Ztext4Zprop4r   r   r   test_argument_order  s0   




r   c                  C  sF   dt jd< dt jd< t \} }|tddtdd | j  d S )Nr   zfont.familyTzaxes.formatter.use_mathtextr   rP   )r7   r8   r9   r   Zplotranger   r   )r<   r   r   r   r   test_mathtext_cmr10_minus_sign  s
   

r   c                  C  sL   d  } t }t| D ]\}}|d|d t|  d|  q|  d S )Nao  
    \increment \smallin \notsmallowns
    \smallowns \QED \rightangle
    \smallintclockwise \smallvarointclockwise
    \smallointctrcclockwise
    \ratio \minuscolon \dotsminusdots
    \sinewave \simneqq \nlesssim
    \ngtrsim \nlessgtr \ngtrless
    \cupleftarrow \oequal \rightassert
    \rightModels \hermitmatrix \barvee
    \measuredrightangle \varlrtriangle
    \equalparallel \npreccurlyeq \nsucccurlyeq
    \nsqsubseteq \nsqsupseteq \sqsubsetneq
    \sqsupsetneq  \disin \varisins
    \isins \isindot \varisinobar
    \isinobar \isinvb \isinE
    \nisd \varnis \nis
    \varniobar \niobar \bagmember
    \triangler1   z${%s}$)r   r9   r:   	enumerater#   rR   r   )r   r<   xir   r   r   test_mathtext_operators  s    r   c                 C  s    |  ddd | ddd d S )Nr   r   z%$\boldsymbol{\mathrm{abc0123\alpha}}$z$\mathrm{abc0123\alpha}$r   r   r   r   r   test_boldsymbol-  r   r   )U
__future__r   r   pathlibr   platformrw   r   Z	xml.etreer   r   typingr   numpyr   Zpackaging.versionr   parse_version	pyparsingr   Z
matplotlibr7   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.pyplotZpyplotr9   r	   r
   __version__Zpyparsing_versionZ
math_testsZsvgastext_math_testsZlightweight_math_testsdigitsZ	uppercaseZ	lowercaseZ
uppergreekZ
lowergreekallr   __annotations__r   Zfontscharsextendr_   wrapperrI   r^   Zfixturer$   markZparametrizer   r   rR   machiner=   rJ   rM   rN   rb   rh   Zxfailreleasecompiler~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>   sp   
i



	


	!A







	




