U
    Âmœd’  ã                   @   s®   d dl m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 dd„ Zdd„ Zd	d
„ Zej dddg¡eddddgd�dd„ ƒƒZej dddg¡dd„ ƒZdS )é    )ÚPathN)Úft2font)Úcheck_figures_equalc               	   C   s`   t  d¡} tjtdd�� tj| dd� W 5 Q R X tjtdd�� tj| dgd� W 5 Q R X d S )NúDejaVu SanszFallback list must be a list©Úmatch)r   )Z_fallback_listz'Fallback fonts must be FT2Font objects.r   )ÚfmÚfindfontÚpytestÚraisesÚ	TypeErrorr   ÚFT2Font©Ú	file_name© r   úV/home/sam/Atlas/atlas_env/lib/python3.8/site-packages/matplotlib/tests/test_ft2font.pyÚtest_fallback_errors   s    
 ÿr   c               	   C   s4   t  d¡} tjtdd�� t | d¡ W 5 Q R X d S )Nr   z%hinting_factor must be greater than 0r   r   )r   r	   r
   r   Ú
ValueErrorr   r   r   r   r   r   Ú$test_ft2font_positive_hinting_factor   s    
 ÿr   c                  C   sâ   t jdgd�} tt  | ¡ƒjdkr,t d¡ t jdgd�} tt  | ¡ƒjdkrXt d¡ dtjd	< tj	d
d�}|j
dddddgd� |j
dddddgd� |j
ddddgd� |j
ddddgd� dD ]}|jt ¡ |d� qÆd S )NúWenQuanYi Zen Hei©Úfamilyzwqy-zenhei.ttcz"Font wqy-zenhei.ttc may be missingúNoto Sans CJK JPzNotoSansCJK-Regular.ttcz%Noto Sans CJK JP font may be missing.é   ú	font.size)g      @gš™™™™™ý?)Zfigsizeçš™™™™™©?gÍÌÌÌÌÌÜ?õ"   There are å‡ ä¸ªæ±‰å­— in between!r   g      Ð?gÍÌÌÌÌÌä?ç333333ë?)ÚpngÚraw)Úformat)r   ÚFontPropertiesr   r	   Únamer
   ÚskipÚpltÚrcParamsZfigureÚtextZsavefigÚioÚBytesIO)ÚfpZfigÚfmtr   r   r   Útest_fallback_smoke!   s,    



ÿ
ÿ
ÿ
ÿr+   zfamily_name, file_name)r   z
wqy-zenhei)r   ZNotoSansCJKr   ZpdfZepsÚsvg)Ú
extensionsc                 C   sÄ   t j|gd�}|tt  |¡ƒjkr:t d|› d|› d�¡ dddg}dtjd	< d
|ggd }d
g|gd
gg}t	t
|||ƒƒD ]B\}\}	}
}|jddd|  |	|d� | jddd|  |	|
d� q|d S )Nr   úFont ú (ú) is missingz	There areu   å‡ ä¸ªæ±‰å­—zin between!r   r   r   é   r   r   g333333Ã?)r   r!   r   r	   r"   r
   r#   r$   r%   Ú	enumerateÚzipr&   )Zfig_testZfig_refÚfamily_namer   r)   r&   Z
test_fontsZ	ref_fontsÚjÚtxtZ	test_fontZref_fontr   r   r   Útest_font_fallback_chinese:   s    


ÿr7   c           	      C   s¶   t j| gd�}tt  |¡ƒj}||kr>t d| › d|› d�¡ d}t  t j 	t jd| gd�¡¡}| 
|¡}| ¡ D ]>\}}t|ƒdkrœt|jƒj|ks°t‚qrt|jƒjdksrt‚qrd S )	Nr   r.   r/   r0   r   r   é   zDejaVuSans.ttf)r   r!   r   r	   r"   r
   r#   Zget_fontZfontManagerZ_find_fonts_by_propsZ_get_fontmapÚitemsÚordÚfnameÚAssertionError)	r4   r   r)   Zfound_file_namer&   ÚftZfontmapÚcharZfontr   r   r   Útest__get_fontmapQ   s    ÿÿ
r?   )Úpathlibr   r'   r
   Z
matplotlibr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.font_managerZfont_managerr   Zmatplotlib.pyplotZpyplotr$   r   r   r+   ÚmarkZparametrizer7   r?   r   r   r   r   Ú<module>   s.   ÿÿþþ