a
    ëÝEb‹<  ã                   @   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Zd dl	Z	d dl
Zd dl
mZ d dlmZ d dlmZ d dlmZmZ e	jje d¡ dd�Zd	d
„ Zedgdd�dd„ ƒZedgdd�dd„ ƒZdd„ Zedgƒdd„ ƒZedgƒdd„ ƒZedd�dd„ ƒZeƒ dd„ ƒZ d d!„ Z!ed"d#„ ƒZ"ej# $d$¡ed%d&„ ƒƒZ%d'd(„ Z&d)d*„ Z'd+d,„ Z(d-d.„ Z)d/d0„ Z*d1d2„ Z+d3d4„ Z,d5d6„ Z-d7d8„ Z.dS )9é    N)ÚBytesIO)Údviread)ÚFigure)Úimage_comparisonÚcheck_figures_equalTz"This test needs a TeX installation)Úreasonc                  C   s¶   t  ¡ \} }t ddtj d¡}t |¡}t |¡}|j|||dd�\}}}|D ]}| d¡ qPt	ƒ �&}	| j
|	dd� |	 ¡ }
W d   ƒ n1 s’0    Y  tjj ¡ }| |
¡ d S )	Nr   é   é2   Úko)ÚyerrÚfmtFÚsvg©Úformat)ÚpltÚsubplotsÚnpZlinspaceÚpiÚsinZ	ones_likeZerrorbarZset_visibler   ÚsavefigÚgetvalueÚxmlÚparsersÚexpatÚParserCreateÚParse)ÚfigÚaxÚxÚyr   ÚaÚbÚcZartistÚfdÚbufÚparser© r&   úa/home/ja/django-apps/lartica_env/lib/python3.9/site-packages/matplotlib/tests/test_backend_svg.pyÚtest_visibility   s    

&r(   zfill_black_with_alpha.svg)Zremove_textc                  C   s,   t  ¡ \} }|jg d¢g d¢dddd� d S )N)r   çš™™™™™¹?é   )r   r   r   Úkr)   i'  )r   r   r"   ÚalphaÚs)r   r   Úscatter©r   r   r&   r&   r'   Útest_fill_black_with_alpha)   s    r0   Znoscalec                  C   sR   t  t  ddd¡t  ddd¡¡\} }t  |d ¡}t ¡ \}}|j|ddd� d S )Néûÿÿÿé   r*   é   ÚgrayÚnone)ZcmapÚinterpolation)r   ZmeshgridÚaranger   r   r   Úimshow)ÚXÚYÚZr   r   r&   r&   r'   Útest_noscale/   s    $r<   c                  C   st   t  ¡ } d}| jd|d� tƒ �*}| j|dd� | ¡  ¡ }W d   ƒ n1 sP0    Y  d |¡}||v spJ ‚d S )Nz$http://test_text_urls.matplotlib.orgÚtest_text_urls)Úurlr   r   z<a xlink:href="{0}">)r   ÚfigureZsuptitler   r   r   Údecoder   )r   Útest_urlr#   r$   Úexpectedr&   r&   r'   r=   8   s    *
r=   zbold_font_output.svgc                  C   sN   t  ¡ \} }| t d¡t d¡¡ | d¡ |jddd� |jddd� d S )Né
   únonbold-xlabelúbold-ylabelÚbold©Z
fontweightú
bold-title)r   r   Úplotr   r7   Ú
set_xlabelÚ
set_ylabelÚ	set_titler/   r&   r&   r'   Útest_bold_font_outputF   s
    
rM   z'bold_font_output_with_none_fonttype.svgc                  C   sX   dt jd< t  ¡ \} }| t d¡t d¡¡ | d¡ |jddd� |jddd� d S )	Nr5   úsvg.fonttyperC   rD   rE   rF   rG   rH   )	r   ÚrcParamsr   rI   r   r7   rJ   rK   rL   r/   r&   r&   r'   Ú(test_bold_font_output_with_none_fonttypeO   s    

rP   é   )Ztolc                 C   s”   t  dd¡d }t  |¡}t  |¡}| ¡ }|j||dddd� |j|d |dd	dd� |  ¡ }|j||dddd
d� |j|d |dd	dd
d� d S )Nr   éd   çffffff@ú-ÚrrC   )r"   Úlwr*   r!   T©r"   rV   Ú
rasterized)r   r7   Úcosr   r   rI   ©Zfig_testZfig_refÚtr   r   Zax_refZax_testr&   r&   r'   Útest_rasterizedY   s    

r\   c              	   C   s8  t  dd¡d }t  |¡}t  |¡}| ¡ }| dd¡ | dd¡ |j||ddd	d
d� |j|d |ddd	dd� |j|d |ddd	d
d� |j|d |ddd	d
d� |  ¡ }| dd¡ | dd¡ |j||ddd	d
dd� |j|d |ddd	d
dd� |j|d |ddd	d
dd� |j|d |ddd	ddd� d S )Nr   rR   rS   é   gš™™™™™ñ¿gš™™™™™ñ?rT   rU   rC   TrW   r*   r!   Fr3   ÚgÚm)r"   rV   rX   ZzordergÍÌÌÌÌÌô?gffffffö?g333333ó?)r   r7   rY   r   r   Úset_xlimÚset_ylimrI   rZ   r&   r&   r'   Útest_rasterized_orderingh   s"    

rb   c                  C   st  dd„ } t  ¡ }| ddd¡}| ¡  tdƒD ]}|jddgd|gddd	� q.| |d
ƒdks`J ‚| |dƒdksrJ ‚t  ¡ }| ddd¡}| ¡  tdƒD ]}|jddgd|gddd	� q˜| |d
ƒdksÊJ ‚| |dƒdksÜJ ‚t  ¡ }| ddd¡}| ¡  tdƒD ]:}|jddg|dgddd	� |jddgd|gddd	� �q| |d
ƒdk�sRJ ‚| |dƒdk�sfJ ‚t  ¡ }| ddd¡}	|	 ¡  |	 d¡ tdƒD ]:}|	jddg|dgddd	� |	jddgd|gddd	� �q–| |d
ƒdk�sæJ ‚| |dƒdk�súJ ‚t  ¡ }
d|
_|
 ddd¡}| ¡  tdƒD ] }|jddgd|gddd	� �q&| |
d
ƒdk�s\J ‚| |
dƒdk�spJ ‚d S )Nc                 S   sP   t ƒ �*}| j|dd� | ¡  ¡ }W d   ƒ n1 s60    Y  | d|› �¡S )Nr   r   ú<)r   r   r   r@   Úcount)r   Útagr#   r$   r&   r&   r'   Ú	count_tag€   s    *z%test_count_bitmaps.<locals>.count_tagr*   r2   r   rQ   zb-F)rX   ÚimageÚpathé   T)r   r?   Úadd_subplotZset_axis_offÚrangerI   Zset_rasterizedZsuppressComposite)rf   Úfig1Úax1ÚnÚfig2Úax2Zfig3Úax3Zfig4Zax4Zfig5Zax5r&   r&   r'   Útest_count_bitmaps   sP    
rr   c              	   C   s¤   dd„ }|   tjd|¡ tjddd� t ¡ \}}| ddd¡ t 	¡ �H}t
 t¡� |j|d	d
� W d  ƒ n1 sx0    Y  W d  ƒ n1 s–0    Y  dS )z:An error is raised if a TeX font lacks a Type-1 equivalentc                  _   s   t jddd d d d�S )NZtexfontz	Some Font)ZtexnameZpsnameZeffectsÚencodingÚfilename)r   ZPsFont)ÚargsÚkwargsr&   r&   r'   Úpsfont¼   s    ÿz#test_missing_psfont.<locals>.psfontÚ__getitem__ÚtextT©Zusetexç      à?Zhellor   r   N)Úsetattrr   Z
PsfontsMapÚmplÚrcr   r   ry   ÚtempfileÚTemporaryFileÚpytestZraisesÚ
ValueErrorr   )Úmonkeypatchrw   r   r   Ztmpfiler&   r&   r'   Útest_missing_psfont¸   s    r„   Údefaultc                  C   s¸   t ƒ } | jddddd� tƒ �&}| j|dd� | ¡ }W d   ƒ n1 sJ0    Y  tjj |¡}d}d}t	| 
d	|› d
|› d�¡ƒdksŽJ ‚d|› �| d	|› d�¡j ¡ v s´J ‚d S )Nr{   z\textwonTrz   r   r   zhttp://www.w3.org/2000/svgzSFSS3583-8ez.//{z}path[@d][@id="z"]r*   ú#z}use)r   ry   r   r   r   r   ÚetreeÚElementTreeÚ
fromstringÚlenÚfindallÚfindÚattribÚvalues)r   r#   r$   ÚtreeÚnsZwon_idr&   r&   r'   Útest_unicode_wonÉ   s    &$r‘   c                  C   s¼   t j dddœ¡ d} t  ¡ \}}| t d¡d| ¡ | t d¡t d¡¡ | d	d
¡ t	ƒ �4}|j
|dd� | d	¡ | ¡  ¡ }W d   ƒ n1 sš0    Y  | |v r´d|v s¸J ‚d S )Nr5   Z	condensed)rN   zfont.stretchzUnlikely to appear by chancez
2019-06-30r*   z
2019-01-01z
2019-12-31r   r3   r   r   )r   rO   Úupdater   ry   r   Z
datetime64r`   ra   r   r   ÚseekÚreadr@   )rB   r   r   r#   r$   r&   r&   r'   Ú"test_svgnone_with_data_coordinatesÚ   s    
*r•   c                     s´  ddl m‰  ddlm‰ t ¡ } |  d¡}|jddgddggdd	� |jg d
¢g d
¢dd� |j	g d¢dd� | 
¡  | ¡ }| g d
¢g d
¢¡ | jddd�}| 	g d¢g d
¢¡ | jddd�}| 	ddgddgddg¡ | j ¡  i }t| jdd�ƒD ]6\}}| ¡ rúd|jj› d|› �}|||< | |¡ qútƒ �*}	| j|	dd� |	 ¡  ¡ }
W d  ƒ n1 �sj0    Y  ‡ ‡fdd„}| ¡ D ]$\}}|||ƒ�rŠ||
v �sŠJ ‚�qŠdS ) z+Test that object gid appears in output svg.r   )Ú	OffsetBox)ÚTickéƒ   g      ð?g       @g      @Úauto)Zaspect©r*   r3   r]   Z	myscatter)Úlabel)r3   r]   r*   Zmyploté„   Zpolar)Z
projection)r   g      ø?r]   é…   Z3dr*   r3   T)Zinclude_selfZtest123Ú_r   r   Nc                    sÒ   t |ˆ ƒrdS t |tjƒr8| ¡ dkr*dS |jd u r8dS t |tjƒrŒ| ¡ \}}t|ƒt|ƒ  krldkrtn ndS t|dƒrˆ|jd u rŒdS t |ˆƒrÎ| 	¡ }|dkrªdS | 
¡ }|t|ƒk sÊ|t|ƒkrÎdS dS )NFÚ r*   Úaxesr   T)Ú
isinstancer   ÚTextZget_textr    ZLine2DÚget_datarŠ   ÚhasattrZget_locZget_view_intervalÚminÚmax)ÚgidÚobjZxdataZydataÚlocÚvi©r–   r—   r&   r'   Úinclude  s*    

 
ztest_gid.<locals>.include)Zmatplotlib.offsetboxr–   Zmatplotlib.axisr—   r   r?   rj   r8   r.   rI   ZlegendZtwinxÚbarZcanvasZdrawÚ	enumerateZfindobjZget_visibleÚ	__class__Ú__name__Zset_gidr   r   r   r@   Úitems)r   rm   Zax1arp   rq   ZgdicÚidxr¨   r§   r#   r$   r¬   r&   r«   r'   Útest_gidë   s8    

,r³   c                   C   s   t jtƒ ddd� d S )NZsvgzZtight)r   Zbbox_inches)r   r   r   r&   r&   r&   r'   Útest_savefig_tight*  s    r´   c                  C   sˆ   t  ¡ \} }| g d¢g d¢¡}| g d¢¡ t  ddgddg¡\}| d¡ tƒ }| j|d	d
� | ¡ }dD ]}d| |v snJ ‚qnd S )Nrš   ©r   r2   ri   )zhttp://example.com/foozhttp://example.com/barNr*   r]   ri   r2   zhttp://example.com/bazr   r   )s   foos   bars   bazs   http://example.com/)	r   r   r.   Zset_urlsrI   Úset_urlr   r   r   )r   r   r-   Úpr!   Úvr&   r&   r'   rA   0  s    
rA   c                 C   s*  |   dd¡ t ¡ \}}| g d¢g d¢¡ t|j ¡ ƒD ]\}}| d|› �¡ q:t ¡ \}}| g d¢g d¢¡ t|j ¡ ƒD ],\}}|j d|› �¡ |j	 d|› �¡ q‚t
ƒ }|j|dd� | ¡ }t
ƒ }|j|dd� | ¡ }tt|j ¡ ƒƒD ]}d|› � d¡|v súJ ‚qú||k�s&J ‚d S )	NÚSOURCE_DATE_EPOCHÚ19680801rš   rµ   zhttp://example.com/r   r   Úascii)Úsetenvr   r   r.   r®   ZyaxisZget_major_ticksr¶   Úlabel1Úlabel2r   r   r   rk   rŠ   Úencode)rƒ   rl   r   ÚiZtickro   Úb1Úb2r&   r&   r'   Útest_url_tickD  s&    rÃ   c              	   C   s  |   dd¡ t ¡ \}}tƒ �*}|j|dd� | ¡  ¡ }W d   ƒ n1 sN0    Y  tj|v sfJ ‚d|v srJ ‚d|v s~J ‚d|v sŠJ ‚tƒ �6}|j|dd d d d dœd	� | ¡  ¡ }W d   ƒ n1 sÌ0    Y  tj|vsäJ ‚d|vsðJ ‚d|vsüJ ‚d|v�s
J ‚d S )
Nr¹   rº   r   r   ú
1970-08-16úimage/svg+xmlÚ
StillImage©ÚDateÚCreatorZFormatÚType©r   Úmetadata)	r¼   r   r   r   r   r   r@   r}   Ú__version__)rƒ   r   r   r#   r$   r&   r&   r'   Útest_svg_default_metadata_  s$    *ÿ
*rÎ   c              
   C   s  |   dd¡ tjddddœ}d}d}d	}d
}t ¡ \}}|D ]Ô}tƒ �4}	|j|	d| ¡ d id� |	 ¡  	¡ }
W d   ƒ n1 s€0    Y  t
jj |
¡}| d|› d|› d|› d�¡\}|D ]R}| d|› |› �¡}||kræ|r¼J ‚q¼|\}t
jjj|dd�}|| |v s¼J ‚q¼q<d S )Nr¹   rº   rÄ   rÅ   rÆ   )ZcreatorÚdater   Útypeú{http://www.w3.org/2000/svg}ú-{http://www.w3.org/1999/02/22-rdf-syntax-ns#}ú {http://creativecommons.org/ns#}ú"{http://purl.org/dc/elements/1.1/}r   rË   ú./ú	metadata/zRDF/ZWorkÚunicode)rs   )r¼   r}   rÍ   r   r   r   r   Útitler   r@   r   r‡   rˆ   r‰   r‹   Útostring)rƒ   Zmetadata_containsÚSVGNSÚRDFNSÚCCNSÚDCNSr   r   Únamer#   r$   ÚrootZworkÚkeyÚdataZxmlstrr&   r&   r'   Útest_svg_clear_default_metadata�  s.    ÿ* râ   c               	   C   s„   t  ¡ \} }tƒ �6}| j|dd d d d dœd� | ¡  ¡ }W d   ƒ n1 sN0    Y  d}tjj 	|¡}| 
d|› d�¡r€J ‚d S )Nr   rÇ   rË   rÑ   rÕ   rÌ   )r   r   r   r   r   r@   r   r‡   rˆ   r‰   r‹   )r   r   r#   r$   rÚ   rß   r&   r&   r'   Útest_svg_clear_all_metadata¢  s    ÿ
*rã   c                     sx  g d¢} g d¢}t  ddd¡t   dddddd¡gdd	œd
d„ | D ƒ¥dd„ |D ƒ¥}t ¡ \}}tƒ �,}|j|d|d� | ¡  ¡ }W d   ƒ n1 s˜0    Y  d}d‰ d}d}	tj	j
 |¡}
|
 d|› dˆ › d�¡\}dd„ |
 d|› d�¡D ƒ}||d gk�s
J ‚‡ fdd„| d|› d|	› d�¡D ƒ}||d gk�sDJ ‚dg| ¢D ]P}|dk�r`�qNdd„ | d|› d|	› | ¡ › �¡D ƒ}||| gk�sNJ ‚�qN|D ]\}|d k�r¶�q¤d!d„ | d|› d|	› | ¡ › d"|› d#|	› d�
¡D ƒ}||| k�s¤J ‚�q¤d$d„ | d|› d|	› d%�¡D ƒ}|d&gk�s4J ‚d'd„ | d|› d|	› d(ˆ › d)ˆ › d*�	¡D ƒ}||d  k�stJ ‚d S )+N)ZCoverageZ
IdentifierZLanguageZRelationZSourceÚTitlerÊ   )ZContributorrÉ   ÚKeywordsZ	PublisherZRightsi°  é   r*   r3   r]   zdescription
text)rÈ   ÚDescriptionc                 S   s   i | ]}||› d �“qS )z foor&   ©Ú.0r+   r&   r&   r'   Ú
<dictcomp>º  ó    z%test_svg_metadata.<locals>.<dictcomp>c                 S   s"   i | ]}||› d �|› d�g“qS )z barz bazr&   rè   r&   r&   r'   rê   »  rë   r   rË   rÑ   rÒ   rÓ   rÔ   rÕ   rÖ   ZRDFc                 S   s   g | ]
}|j ‘qS r&   ©ry   ©ré   Únoder&   r&   r'   Ú
<listcomp>Ì  rë   z%test_svg_metadata.<locals>.<listcomp>rØ   rä   c                    s   g | ]}|j ˆ › d � ‘qS )Úresource)r�   rí   ©rÛ   r&   r'   rï   Î  s   ÿzWork/rÐ   rÊ   rç   c                 S   s   g | ]
}|j ‘qS r&   rì   rí   r&   r&   r'   rï   Ô  s   ÿrå   c                 S   s   g | ]
}|j ‘qS r&   rì   rí   r&   r&   r'   rï   Ü  s   ÿú/zAgent/c                 S   s   g | ]
}|j ‘qS r&   rì   rí   r&   r&   r'   rï   ã  rë   rÏ   z1968-08-01/1968-08-02T01:02:03c                 S   s   g | ]
}|j ‘qS r&   rì   rí   r&   r&   r'   rï   æ  rë   zsubject/zBag/Úli)ÚdatetimerÏ   r   r   r   r   r   r@   r   r‡   rˆ   r‰   r‹   Úlower)Zsingle_valueZmulti_valuerÌ   r   r   r#   r$   rÚ   rÜ   rÝ   rß   ÚrdfÚtitlesÚtypesr+   rŽ   Údatesr&   rñ   r'   Útest_svg_metadata²  sb    ÿýüû*
ÿ
ÿ
$ÿþ""ÿrú   )/rô   Úior   r   Úxml.etree.ElementTreer   Zxml.parsers.expatÚnumpyr   r�   Z
matplotlibr}   r   Zmatplotlib.figurer   Zmatplotlib.pyplotZpyplotr   Zmatplotlib.testing.decoratorsr   r   ÚmarkZskipifZcheckdep_usetexZneeds_usetexr(   r0   r<   r=   rM   rP   r\   rb   rr   r„   ÚstyleÚcontextr‘   r•   r³   r´   rA   rÃ   rÎ   râ   rã   rú   r&   r&   r&   r'   Ú<module>   sX   
þ



	

9

?"!