U
    ÂmœdæU  ã                S   @   sÚ  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	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 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/d0d1d2d2d3d4d5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdddDdEdFdGdHdIdJdKdLddMdNdOdPdQgSZdRgZdSdTdUdVgZdWZdXZdYZdZZ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`dageeedbgfd\dageeedbgfd]dageeedbgfdcgegfddgeegfd]ddgeegfdegeegfdfgeeegfd\dfgeeegfd]dfgeeegfgZg Z eD ]r\Z!Z"e!dk�rNe  #dge" ¡ nLdg $dh $e!¡difdjdk„ e!D ƒdódmdk„ e!D ƒdô•¡Z%e"D ]Z&e  'e%e& ¡ �q„�q*ej(dodp„ ƒZ)ej*j+dqe,eƒe-e.eƒƒdr�ej* +dsdtdudvdwdxg¡ej*j+dpdygdzd{�ede /¡ d|k�rd}nd d~�dd€„ ƒƒƒƒZ0ej*j+dqe,eƒe-e.eƒƒdr�ej* +dsdtdwg¡ej*j+dpd�gdzd{�edd‚gdƒddddd„œid…�d†d‡„ ƒƒƒƒZ1ej*j+dqe,eƒe-e.eƒƒdr�ej* +dsdwg¡ej*j+dpdˆgdzd{�edd‰gdŠ�d‹dŒ„ ƒƒƒƒZ2ej*j+dqe,e ƒe-e.e ƒƒdr�ej* +dsdtdudvdwdxg¡ej*j+dpd�gdzd{�edd‰ge /¡ d|k�r<d}nd dŽ�d�d�„ ƒƒƒƒZ3ed‰gd‘�d’d“„ ƒZ4d”d•„ Z5ej*j+d–d—d˜d™dšd›dœd�dždŸd d¡d¢d£d¤d¥d¦d§d¨e 6d©¡fdªd«d¬d­d®d¯d°d±g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Ëgdr�dÌdÍ„ ƒZ7dÎdÏ„ Z8dÐdÑ„ Z9ed‰gd‘�dÒdÓ„ ƒZ:ed‰gd‘�dÔdÕ„ ƒZ;ed‰gd‘�dÖd×„ ƒZ<ed‰gd‘�dØdÙ„ ƒZ=dÚdÛ„ Z>dÜdÝ„ Z?ej* +dÞdtdßdàdádâdágfdudßdàdágfg¡dãdä„ ƒZ@dådæ„ ZAedçgdèdéidê�dëdì„ ƒZBdídî„ ZCdïdð„ ZDdñdò„ ZEdS )õé    N)ÚPath)ÚElementTree)Úcheck_figures_equalÚimage_comparison)ÚmathtextÚ	_mathtextz$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}$z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}$z%$f'\quad f'''(x)\quad ''/\mathrm{yr}$z$\frac{x_2888}{y}$z$\sqrt[3]{\frac{X_2}{Y}}=5$z$\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}$zQ${a}_{0}+\frac{1}{{a}_{1}+\frac{1}{{a}_{2}+\frac{1}{{a}_{3}+\frac{1}{{a}_{4}}}}}$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$? ! &$z¨$\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}$z4$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 \psiZmathrmZmathbfZmathitZmathtt)Né   Zmathbbz\Gamma \Pi \Sigma \gamma \piZmathcalZmathfrakZmathscrZmathsfÚ ú z $c                 c   s   | ]}d | V  qdS )z\%s{N© ©Ú.0Úfontr   r   úW/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/matplotlib/tests/test_mathtext.pyÚ	<genexpr>µ   s     r   ú%sc                 c   s   | ]
}d V  qdS )Ú}Nr   r   r   r   r   r   ·   s     ú$c                 C   s$   |d k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Ús390xgºI+‡†?)r   Útolc                 C   s.   |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Å   s    

 ÿr7   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)   r*   F)Úvisibler+   r,   r-   )r1   r2   r3   r4   ÚpatchÚsetr   r5   r   r   r   Ú!test_mathtext_rendering_svgastextÓ   s    	


 ÿrC   Z	mathtext1Zpng)r   r<   c                 C   s&   t jdd�}|jdd||ddd� d S )Nr)   r*   r+   r,   )Úmath_fontfamilyr.   r/   ©r3   r4   r   r5   r   r   r   Ú#test_mathtext_rendering_lightweightä   s
     ÿrF   Zmathfont)r   r<   r&   c                 C   s.   |t jd< tjdd�}|jdd|ddd� d S r'   r0   r5   r   r   r   Útest_mathfont_renderingï   s    

 ÿrG   )r<   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 rH   rJ   ©r   Úl©Zacc_maprM   r   r   rN     s       r   r+   r   r   c                 s   s   | ]}d |› d�V  qdS )ú\ÚaNr   rL   r   r   r   r     s     z*test_short_long_accents.<locals>.<genexpr>c                 s   s   | ]}d |› d�V  qdS )rR   z aNr   rO   r   r   r   r     s     )r   ÚParserZ_accent_mapÚappendr   Újoin)Úfig_testÚfig_refZ
short_accsZcorresponding_long_accsrP   r   rQ   r   Útest_short_long_accentsý   s    &  ÿrY   c                  C   s6   t j d¡} t j | ¡}| d¡}|d dks2t‚d S )NúDejaVu SansÚheadÚversion)rI   r   )r1   Úfont_managerZfindfontZft2fontZFT2FontZget_sfnt_tableÚAssertionError)Zfontpathr   Útabler   r   r   Útest_fontinfo
  s    
r`   z	math, msg)z$\hspace{}$úExpected \hspace{space})z$\hspace{foo}$ra   )z$\sinx$zUnknown symbol: \sinx)z$\dotx$zUnknown symbol: \dotx)z$\frac$úExpected \frac{num}{den})z$\frac{}{}$rb   )z$\binom$úExpected \binom{num}{den})z$\binom{}{}$rc   )z
$\genfrac$ú<Expected \genfrac{ldelim}{rdelim}{rulesize}{style}{num}{den})z$\genfrac{}{}{}{}{}{}$rd   )z$\sqrt$úExpected \sqrt{value})z	$\sqrt f$re   )z$\overline$úExpected \overline{body})z$\overline{}$rf   )z$\leftF$úExpected a delimiter)z	$\rightF$zUnknown symbol: \rightF)z$\left(\right$rg   z$\left($zExpected ("|\'\\)\\right["\'])z$\dfrac$úExpected \dfrac{num}{den})z$\dfrac{}{}$rh   )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$ri   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              	   C   sJ   t  d¡}t|tƒrt |¡n|}tjt|d�� | 	| ¡ W 5 Q R X d S )NZagg©Úmatch)
r   ZMathTextParserÚ
isinstanceÚstrÚreÚescaper   ÚraisesÚ
ValueErrorÚparse)ÚmathÚmsgÚparserrk   r   r   r   Útest_mathtext_exceptions  s    @
rv   c                	   C   s$   t  t¡� t d¡ W 5 Q R X d S )Nz\foo)r   rp   rq   r   Zget_unicode_indexr   r   r   r   Ú test_get_unicode_index_exceptionW  s    rw   c                  C   sF   t  ¡ } |  ddd¡ | j ¡  t | jj ¡ ¡}|dk 	¡ sBt
‚d S )Nr+   z$-$éÿ   )r3   r4   r   ÚcanvasÚdrawÚnpZasarrayÚrendererZbuffer_rgbaÚanyr^   )r6   Útr   r   r   Útest_single_minus_sign\  s
    
r   c                 C   s    |   ddd¡ |  ddd¡ d S )Nr+   z$1\,2\>3\ 4$z$1\/2\:3~4$©r   ©rW   rX   r   r   r   Útest_spacesd  s    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|$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�   r   r   r   Útest_operator_spacej  s$    rˆ   c                 C   s(   | j ddddd� |j ddddd� d S )Nr+   z$\left)\right($r#   )rD   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_thicknessr1   r2   )rW   rX   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)r1   r2   ©Úfallbackr   r   r   Útest_mathtext_fallback_valid‘  s    r‘   c               
   C   s2   dD ](} t jtdd�� | tjd< W 5 Q R X qd S )N)Úabcr   znot a valid fallback font namerj   rŽ   )r   rp   rq   r1   r2   r�   r   r   r   Útest_mathtext_fallback_invalid–  s    r“   zfallback,fontlistrZ   ÚmpltestZSTIXGeneralÚcmr10c                 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< | t j	d< d}t
 ¡ }t ¡ \}}|jdd|ddd� |j|dd� t | ¡ ¡ d¡}dd„ |D ƒ}||ksÄt‚t jjj ¡  d S )Nzmpltest.ttfr>   r?   Zcustomr(   r”   zmathtext.rmzmpltest:italiczmathtext.itzmpltest:boldzmathtext.bfrŽ   za$A\AA\breve\gimel$r+   é(   r,   )rŠ   Zhar8   )Ú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   rN   ´  s     z*test_mathtext_fallback.<locals>.<listcomp>)r1   r]   ZfontManagerZaddfontrm   r   Ú__file__ÚresolveÚparentr2   ÚioÚBytesIOr3   Úsubplotsr   ZsavefigÚETÚ
fromstringÚgetvalueÚfindallr^   ZttflistÚpop)r�   ZfontlistÚtest_strZbuffr6   Ú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_imagerm   rV   rŸ   r    )Ztmpdirr   r   r   Útest_math_to_image¹  s    r«   zmath_fontfamily_image.pngr‹   r–   )r   r=   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   r*   r„   r‡   z%$This\ text\ should\ have\ one\ font$é   r#   )ÚsizerD   r…   z#$This\ text\ should\ have\ another$r!   rE   )r6   r   r   r   Útest_math_fontfamily¿  s    
 ÿ
 ÿr¯   c                  C   sz   dt jd< d} t ¡ \}}|jdd| dd�}| ¡ }| ¡ dksDt‚|jdd| dd�}| ¡ }| ¡ dksnt‚| ¡  d S )	Nr    r(   úabc$abc\alpha$rƒ   ÚArial)r   r„   )Úfontproperties©	r1   r2   r3   r¡   r   Zget_fontpropertiesZget_math_fontfamilyr^   Zdraw_without_rendering)r§   r6   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sFt‚|jdd| ddd	�}| ¡ }| ¡ dksrt‚|jd
d
| ddd�}| ¡ }| ¡ dksžt‚|jdd| ddd�}	|	 ¡ }
|
 ¡ dksÊt‚| ¡  d S )Nr    r(   r°   rƒ   r#   r±   )rD   r   r„   )rD   r²   r…   )r   rD   r†   )r²   rD   r³   )r§   r6   r¨   r´   rµ   r¶   r·   Ztext3Zprop3Ztext4Zprop4r   r   r   Útest_argument_orderØ  s8    

 ÿ
 ÿ
 ÿ
 ÿ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™   rI   )r1   r2   r3   r¡   ZplotÚrangery   rz   )r6   r¨   r   r   r   Útest_mathtext_cmr10_minus_signñ  s
    

r»   )r   )r   )FrŸ   Úpathlibr   Úplatformrn   rš   Z	xml.etreer   r¢   Únumpyr{   r   Z
matplotlibr1   Zmatplotlib.testing.decoratorsr   r   Zmatplotlib.pyplotZpyplotr3   r   r   Z
math_testsZsvgastext_math_testsZlightweight_math_testsÚdigitsZ	uppercaseZ	lowercaseZ
uppergreekZ
lowergreekÚallZfont_test_specsZ
font_testsZfontsÚcharsÚextendrV   ÚwrapperrB   rU   Zfixturer   ÚmarkZparametrizeÚ	enumeraterº   rK   Úmachiner7   rC   rF   rG   rY   r`   Úcompilerv   rw   r   r‚   rˆ   r‰   rŒ   r‘   r“   r©   r«   r¯   r¸   r¹   r»   r   r   r   r   Ú<module>   sD  œiÿü
ÿÿÿ
ë
þ ü ú
  
ÿ ÿÿ
ÿ    ÿþ	
ÿ  
ÿ ÿÿ

â!æÞ?








	ÿþ
ÿ
