
     lfU                        d dl Z d dlmZ d dl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 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gZg ZeD ]p  \  Z Z!e ejE                  dge!z         djG                  djG                  e       dgd e D        dd e D        d      Z$e!D ]  Z%ejM                  e$e%z          r e
jN                  d         Z(e
jR                  jU                  d! e+e       e, e-e            "      e
jR                  jU                  d#g d$      e
jR                  jU                  d%d&gd'(       edd)*      d+                             Z.e
jR                  jU                  d! e+e       e, e-e            "      e
jR                  jU                  d#d,d-g      e
jR                  jU                  d%d.gd'(       edd/gd0ddddd1i2      d3                             Z/e
jR                  jU                  d! e+e       e, e-e            "      e
jR                  jU                  d#d-g      e
jR                  jU                  d%d4gd'(       edd5g6      d7                             Z0e
jR                  jU                  d! e+e       e, e-e            "      e
jR                  jU                  d#g d$      e
jR                  jU                  d%d8gd'(       edd5gd)9      d:                             Z1 ed5g;      d<        Z2d= Z3e
jR                  jU                  d>d?d@dAdBdCdDdEdFdGdHdIdJdKdLdMdNdOdP ejh                  dQ      fdRdSdTdUdVdWdXdYgg dZ"      d[        Z5d\ Z6d] Z7 ed5g;      d^        Z8 ed5g;      d_        Z9 ed5g;      d`        Z: ed5g;      da        Z;db Z<dc Z=e
jR                  jU                  ddd,g defdfg dgfg      dh        Z>di Z? edjgdkdlim      dn        Z@do ZAdp ZBdq ZCy)r    N)Path)ElementTree)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$? ! &$NNzr$\left\Vert a \right\Vert \left\vert b \right\vert \left| a \right| \left\| b\right\| \Vert a \Vert \vert b \vert$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.$
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 \psimathrmmathbfmathitmathtt)N   mathbbz\Gamma \Pi \Sigma \gamma \pimathcalmathfrakmathscrmathsf  z $c              #   &   K   | ]	  }d |z    yw)z\%s{N .0fonts     @/usr/lib/python3/dist-packages/matplotlib/tests/test_mathtext.py	<genexpr>r       s     /gn/s   z%sc              #       K   | ]  }d   yw)}Nr   r   s     r   r    r       s     $dc$s   $c                 V    |t        j                  d       d| j                  ||fz  gS )Nztest has been removedz
%s_%s_%02d)pytestskipparam)requestfontsetindextexts       r   baseline_imagesr,      s-    |+,GMM7E::;;    zindex, text)idsr)   )cmstixstixsans
dejavusansdejavuserifr,   r   T)indirectgףp=
?)r,   tolc                     |t         j                  d<   t        j                  d      }|j	                  dd|dd       y Nmathtext.fontsetg      @g      ?figsize      ?centerhorizontalalignmentverticalalignmentmplrcParamspltfigurer+   r,   r)   r*   r+   figs        r   test_mathtext_renderingrH      >     (/CLL#$
**\
*CHHS#t!)X  Gr-   r/   r2   	mathtext0svgmetadata)CreatorDateFormatType)r,   
extensionssavefig_kwargc                     |t         j                  d<   dt         j                  d<   t        j                  d      }|j                  j                  d       |j                  dd|d	d	
       y )Nr8   nonesvg.fonttyper9   r:   F)visibler<   r=   r>   )rB   rC   rD   rE   patchsetr+   rF   s        r   !test_mathtext_rendering_svgastextrY      s^     (/CLL#$#)CLL 
**\
*CIIMM%M HHS#t!)X  Gr-   	mathtext1png)r,   rQ   c                 ^    t        j                  d      }|j                  dd||dd       y )Nr9   r:   r<   r=   )math_fontfamilyr?   r@   rD   rE   r+   rF   s        r   #test_mathtext_rendering_lightweightr_      s1     **\
*CHHS#tW!)X  Gr-   mathfont)r,   rQ   r5   c                     |t         j                  d<   t        j                  d      }|j	                  dd|dd       y r7   rA   rF   s        r   test_mathfont_renderingrb      rI   r-   )rQ   c           	         t         j                  j                  }|D cg c]  }t        |      dk(  s| }}g }|D ]@  }|D cg c]  }t        |      dkD  s||   ||   k(  s|! c}\  }|j	                  |       B | j                  ddddj                  d |D              z   dz          |j                  ddddj                  d |D              z   dz          y c c}w c c}w )N   r   r<   r#   r   c              3   (   K   | ]
  }d | d  yw)\aNr   )r   ss     r   r    z*test_short_long_accents.<locals>.<genexpr>  s     &EQ!A3ay&E   c              3   (   K   | ]
  }d | d  yw)rf   z aNr   )r   ls     r   r    z*test_short_long_accents.<locals>.<genexpr>  s     IA!BZIri   )r   Parser_accent_maplenappendr+   join)fig_testfig_refacc_maprh   
short_accscorresponding_long_accsrk   s          r   test_short_long_accentsrv      s    **G$4A!!4J4  * LACFQJ71:3KaL&&q)* MM!Rrww&E*&EEEKLLL	2sRWWI1HIIICOQ 5 Ms   CCC$C$$C$c                      t         j                  j                  d      } t         j                  j	                  |       }|j                  d      }|d   dk(  sJ y )NDejaVu Sansheadversion)rd   r   )rB   font_managerfindfontft2fontFT2Fontget_sfnt_table)fontpathr   tables      r   test_fontinfor     sO    ((7H;;x(D'Ev%%%r-   z	math, msg)z$\hspace{}$Expected \hspace{space})z$\hspace{foo}$r   )z$\sinx$zUnknown symbol: \sinx)z$\dotx$zUnknown symbol: \dotx)z$\frac$Expected \frac{num}{den})z$\frac{}{}$r   )z$\binom$Expected \binom{num}{den})z$\binom{}{}$r   )z
$\genfrac$<Expected \genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den})z$\genfrac{}{}{}{}{}{}$r   )z$\sqrt$Expected \sqrt{value})z	$\sqrt f$r   )z$\overline$Expected \overline{body})z$\overline{}$r   )z$\leftF$Expected a delimiter)z	$\rightF$zUnknown symbol: \rightF)z$\left(\right$r   z$\left($zExpected ("|\'\\)\\right["\'])z$\dfrac$Expected \dfrac{num}{den})z$\dfrac{}{}$r   )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$r   )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 bracesc                     t        j                  d      }t        |t              rt	        j
                  |      n|}t        j                  t        |      5  |j                  |        d d d        y # 1 sw Y   y xY w)Naggmatch)
r   MathTextParser
isinstancestrreescaper%   raises
ValueErrorparse)mathmsgparserr   s       r   test_mathtext_exceptionsr     s\    @ $$U+F(c2BIIcNE	z	/ T  s   A33A<c                      t        j                  t              5  t        j                  d       d d d        y # 1 sw Y   y xY w)Nz\foo)r%   r   r   r   get_unicode_indexr   r-   r    test_get_unicode_index_exceptionr   T  s1    	z	" -##G,- - -s	   9Ac                     t        j                         } | j                  ddd       | j                  j	                          t        j                  | j                  j                  j                               }|dk7  j                         sJ y )Nr<   z$-$   )
rD   rE   r+   canvasdrawnpasarrayrendererbuffer_rgbaany)rG   ts     r   test_single_minus_signr   Y  s`    
**,CHHS#uJJOO


3::&&2245AI??r-   c                 P    | j                  ddd       |j                  ddd       y )Nr<   z$1\,2\>3\ 4$z$1\/2\:3~4$r+   rq   rr   s     r   test_spacesr   a  s"    MM"b/*LLR(r-   c                    | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       | j                  dd	d
       | j                  ddd       | j                  ddd       | j                  ddd       | j                  ddd       |j                  ddd       |j                  ddd       |j                  ddd       |j                  ddd       |j                  dd	d       |j                  ddd       |j                  ddd       |j                  ddd       |j                  ddd       y )N皙?z$\log 6$皙?z	$\log(6)$333333?z$\arcsin 6$皙?z$\arcsin|6|$r<   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   s     r   test_operator_spacer   g  s.   MM#sK(MM#sL)MM#sN+MM#sO,MM#s45MM#s56MM#sK(MM#sK(MM#s,-LLc/0LLc/0LLc23LLc23LLc./LLc./LLc./LLc./LLc=>r-   c                 X    | j                  dddd       |j                  dddd       y )Nr<   z$\left)\right($r2   )r]   z$)($r   r   s     r   test_inverted_delimitersr   ~  s+    MM"b,lMKLLR,L?r-   c                     | j                  ddd       t        j                  j                  d d t        j
                  d   t        j
                  d         }|j                  ddd|z         y )Nr   z$\dfrac{2x}{3y}$z	font.sizezsavefig.dpi)fontsizedpiz$\genfrac{}{}{%f}{0}{2x}{3y}$)r+   r   TruetypeFontsget_underline_thicknessrB   rC   )rq   rr   	thicknesss      r   test_genfrac_displaystyler     sc    MM#s/0''??dS\\+6LL' @ )I LLc;iGHr-   c                  8    dD ]  } | t         j                  d<    y )N)r/   r0   r1   Nonemathtext.fallback)rB   rC   fallbacks    r   test_mathtext_fallback_validr     s     6 5,4()5r-   c                      dD ]9  } t        j                  t        d      5  | t        j                  d<   d d d        ; y # 1 sw Y   FxY w)N)abcr   znot a valid fallback font namer   r   )r%   r   r   rB   rC   r   s    r   test_mathtext_fallback_invalidr     sI     9]]:-MN 	908CLL,-	9 	99	9 	9s   A  A		zfallback,fontlist)rx   mpltestSTIXGeneralcmr10r   r0   )rx   r   r   c                    t         j                  j                  j                  t	        t        t              j                         j                  dz               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        j                         }t        j                         \  }}|j                  dd|dd       |j                  |d       t!        j"                  |j%                               j'                  d      }|D cg c]'  }t)        j*                  |j,                  d         d   ) }}||k(  sJ t         j                  j                  j.                  j1                          y c c}w )Nzmpltest.ttfrT   rU   customr8   r   zmathtext.rmzmpltest:italiczmathtext.itzmpltest:boldzmathtext.bfr   za$A\AA\breve\gimel$r<   (   r=   )r   harK   )formatz,.//{http://www.w3.org/2000/svg}tspan[@style]style)rB   r{   fontManageraddfontr   r   __file__resolveparentrC   ioBytesIOrD   subplotsr+   savefigET
fromstringgetvaluefindallshlexsplitattribttflistpop)	r   fontlisttest_strbuffrG   axtspanstspan
char_fontss	            r   test_mathtext_fallbackr     s[   
   ((DN""$++m;<>#)CLL '/CLL#$"+CLL"2CLL"0CLL(0CLL$%%H::<DllnGCHHRXxH8KKUK#mmDMMO,wEF  GMMU%++ell734R8MJM!!!  ((,,. Ns   ,Gc                    t        j                  dt        | j                  d                   t        j                  dt	        j
                                t        j                  dt	        j
                         d       y )Nr	   zexample.pngMaroon)color)r   math_to_imager   rp   r   r   )tmpdirs    r   test_math_to_imager     sN    7CM(B$CD7BJJL17BJJLAr-   zmath_fontfamily_image.pngr   r   )r,   rR   c                      t        j                  d      } | j                  ddddd       | j                  dd	d
dd       y )N)
   r   r:   r   r   z%$This\ text\ should\ have\ one\ font$   r2   )sizer]   r   z#$This\ text\ should\ have\ another$r0   r^   )rG   s    r   test_math_fontfamilyr     sL     **W
%CHHS#?l  4HHS#=f  .r-   c                  d   dt         j                  d<   d} t        j                         \  }}|j	                  dd| d      }|j                         }|j                         dk(  sJ |j	                  dd| d      }|j                         }|j                         dk(  sJ |j                          y )	Nr/   r8   abc$abc\alpha$r   Arial)r   r   )fontpropertiesrB   rC   rD   r   r+   get_fontpropertiesget_math_fontfamilydraw_without_rendering)r   rG   r   text1prop1text2prop2s          r   test_default_math_fontfamilyr    s    '+CLL#$ HllnGCHHS#xgH6E$$&E$$&$...HHS#xH@E$$&E$$&$... r-   c                  T   dt         j                  d<   d} t        j                         \  }}|j	                  dd| dd      }|j                         }|j                         dk(  sJ |j	                  dd| dd	      }|j                         }|j                         dk(  sJ |j	                  d
d
| dd      }|j                         }|j                         dk(  sJ |j	                  dd| dd      }	|	j                         }
|
j                         dk(  sJ |j                          y )Nr/   r8   r   r   r2   r   )r]   r   r   )r]   r   r   )r   r]   r   )r   r]   r   )r   rG   r   r   r   r   r  text3prop3text4prop4s              r   test_argument_orderr    sA   '+CLL#$ HllnGCHHS#x%1  AE$$&E$$&,666HHS#x%1'  KE$$&E$$&,666HHS#x!<  AE$$&E$$&,666HHS#x$+\  KE$$&E$$&,666 r-   c                      dt         j                  d<   dt         j                  d<   t        j                         \  } }|j	                  t        dd      t        dd             | j                  j                          y )Nr   zfont.familyTzaxes.formatter.use_mathtextr   rd   )rB   rC   rD   r   plotranger   r   )rG   r   s     r   test_mathtext_cmr10_minus_signr    sX     #*CLL26CLL./llnGCGGE"aL%A,'JJOOr-   )Dr   pathlibr   r   r   	xml.etreer   r   numpyr   r%   
matplotlibrB   matplotlib.testing.decoratorsr   r   matplotlib.pyplotpyplotrD   r   r   
math_testssvgastext_math_testslightweight_math_testsdigits	uppercase	lowercase
uppergreek
lowergreekallfont_test_specs
font_testsfontscharsextendrp   wrapperrX   ro   fixturer,   markparametrize	enumerater  rn   rH   rY   r_   rb   rv   r   compiler   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r   r-   r   <module>r(     si   	  	  '    O  *e
R    
(	(	
"
 y)Z< IZZZZ&)Y/0Z&)Y13 4FIy;= >FIy;= >[9+\Iy)*
i34[9i()Z&)Y/0FIy9:FIy9:+0 
# -LE5}4&5.)''HHUO
 0/
 	

 %e$
 
   	-Cgm,	--  < < 9Z(eC
O.D  FFH*ZL4H$E2G 3 IHFG 	2F(G"3';#<=  ?T<$89*[MDIeWt E FGG	G J :?G 	2H(I"3'=#>?  A\N3*[MDI$E7;G < J 4A
G 9Z(eC
O.D  FFH*ZL4H$E7FG G IHFG (	Q )	Q& 47..1537	J	J.057.24 
jbjj!ABC37?A,+)-=@	E  >~>~-
 () ))
 (? )?, (@ )@
 (I )I5
9 
MN78:;/	;/2B #>"?!&-.-.!!2r-   