
    Ngu                        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 Zd Zej                            dg d          d	             Zej                            dg d
           eg d          d                         Zej                            dddgdggddg          d             Zej                            dg d
          d             ZdS )    )PathN)ft2font)check_figures_equalc                  V   t          j        d          } t          j        t          d          5  t          j        | d           d d d            n# 1 swxY w Y   t          j        t          d          5  t          j        | dg           d d d            d S # 1 swxY w Y   d S )NDejaVu SanszFallback list must be a listmatchr   )_fallback_listz'Fallback fonts must be FT2Font objects.r   )fmfindfontpytestraises	TypeErrorr   FT2Font	file_names    Y/var/www/html/ai-engine/env/lib/python3.11/site-packages/matplotlib/tests/test_ft2font.pytest_fallback_errorsr      s-   M**I	y(F	G	G	G 8 8	$77778 8 8 8 8 8 8 8 8 8 8 8 8 8 8 
F
 
 
 7 7 		1#66667 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7s#   AAA9BB"%B"c                      t          j        d          } t          j        t          d          5  t          j        | d           d d d            d S # 1 swxY w Y   d S )Nr   z%hinting_factor must be greater than 0r   r   )r   r   r   r   
ValueErrorr   r   r   s    r   $test_ft2font_positive_hinting_factorr      s    M**I	E
 
 
 & & 		1%%%& & & & & & & & & & & & & & & & & &s   AAAzfamily_name, file_name))WenQuanYi Zen Heizwqy-zenhei.ttc)Noto Sans CJK JPzNotoSansCJK.ttczNoto Sans TCzNotoSansTC-Regular.otfc                    t          j        | g          }t          t          j        |                    j        |k    rt          j        d|  d| d           dt          j        d<   t          j	        d          }|
                    d	d
dd| g           |
                    d	dd| g           dD ]*}|                    t          j                    |           +d S )NfamilyFont  () is missing   	font.size)g      @g?)figsize皙?g?"   There are 几个汉字 in between!r   333333?)pngraw)format)r   FontPropertiesr   r   namer   skippltrcParamsfiguretextsavefigioBytesIO)family_namer   fpfigfmts        r   test_fallback_smoker9   !   s    
	;-	0	0	0BBKOO!Y..BKBB9BBBCCC "CL
*\
*
*
*CHHT4="K0  2 2 2HHT4= M  # # #  . .BJLL----. .    ))r   z
wqy-zenhei)r   NotoSansCJKr   )r(   pdfepssvg)
extensionsc                    t          j        |g          }|t          t          j        |                    j        vrt          j        d| d| d           g d}dt          j        d<   d|ggd	z  }dg|gdgg}t          t          |||                    D ]G\  }\  }	}
}|                    d
dd|z  z
  |	|           |                     d
dd|z  z
  |	|
           Hd S )Nr   r   r    r!   )z	There areu   几个汉字zin between!r"   r#   r      r%   r'   g333333?)r   r+   r   r   r,   r   r-   r.   r/   	enumeratezipr1   )fig_testfig_refr5   r   r6   r1   
test_fonts	ref_fontsjtxt	test_fontref_fonts               r   test_font_fallback_chineserL   6   s!    
	;-	0	0	0BR[__--222BKBB9BBBCCC777D "CL +./!3J;--AI)2j),,* * A A%%CH 	T3a<X>>>dC$q&L#i@@@@	A Ar:   	font_listzDejaVu Serifr   zDejaVu Sans Monoz	two fontszone font)idsc                 \    t          j                    }|                    ddd|           |j                                         t          d  D                       sJ  d         j        j        d                             d          sJ t           fd|D                       sJ d S )Ng      ?u   Hello 🙃 World!r   c              3   J   K   | ]}t          |j        t                    V  d S )N)
isinstancemessageUserWarning).0warns     r   	<genexpr>z(test_fallback_missing.<locals>.<genexpr>V   s.      IIz$,44IIIIIIr:   r   z8Glyph 128579 (\N{UPSIDE-DOWN FACE}) missing from font(s)c                 D    g | ]}|d          j         j        d          v S r
   )rR   args)rT   fontrecwarns     r   
<listcomp>z)test_fallback_missing.<locals>.<listcomp>Z   s-    IIIt
*/22IIIr:   )	r.   r0   r1   canvasdrawallrR   rX   
startswith)rZ   rM   r7   s   `  r   test_fallback_missingr`   N   s    
 *,,CHHR(H;;;JOOIIIIIIIIII1:"1%00FH H H H HIIIIyIIIJJJJJJJr:   c                 N   t          j        | g          }t          t          j        |                    j        }||vrt          j        d|  d| d           d}t          j        t           j        	                    t          j        d| g                              }|
                    |          }|                                D ]W\  }}t          |          dk    r t          |j                  j        |k    sJ 8t          |j                  j        dk    sJ Xd S )	Nr   r   r    r!   r&   r      zDejaVuSans.ttf)r   r+   r   r   r,   r   r-   get_fontfontManager_find_fonts_by_props_get_fontmapitemsordfname)	r5   r   r6   found_file_namer1   ftfontmapcharrY   s	            r   test__get_fontmaprn   ]   s+    
	;-	0	0	0B2;r??++0O''BKBB9BBBCCC/D	
++m[%ABBB	
 	

 
B
 ood##Gmmoo = =
dt99s??
##(O;;;;;
##(,<<<<<<	= =r:   )pathlibr   r3   r   
matplotlibr   matplotlib.testing.decoratorsr   matplotlib.font_managerfont_managerr   matplotlib.pyplotpyplotr.   r   r   markparametrizer9   rL   r`   rn    r:   r   <module>ry      s         				        = = = = = = $ $ $ $ $ $      
7 
7 
7& & & 1G G G 
. . 
.  1F F F 
  < < <===A A >= A$ *M:./1):6  8 8K K	8 8K    = = = = =r:   