U
    Fvf                     @   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   A/tmp/pip-unpacked-wheel-7vhvci0g/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 qd 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rcParams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    


r8   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rt|jj|kstqrt|jjdksrtqrd S )	Nr   r/   r0   r1   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)	r5   r   r*   Zfound_file_namer'   ftZfontmapcharfontr   r   r   test__get_fontmapQ   s    
rA   )pathlibr   r(   r
   Z
matplotlibr   Zmatplotlib.testing.decoratorsr   Zmatplotlib.font_managerZfont_managerr   Zmatplotlib.pyplotZpyplotr$   r   r   r,   markZparametrizer8   rA   r   r   r   r   <module>   s.   