o
    ²ó®g–  ã                   @   s˜   d dl Z d dlZd dlmZ d dlmZmZmZmZ d dlm	Z	m
Z
 edƒ dZG dd„ de	e jƒZG d	d
„ d
e
e jƒZeefZedkrJeeŽ  dS dS )é    N)Úfont)ÚrequiresÚrun_unittestÚ
gc_collectÚ	ALWAYS_EQ)ÚAbstractTkTestÚAbstractDefaultRootTestZguiZTkDefaultFontc                   @   sp   e Zd Zedd„ ƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Z	dd„ Z
dd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚFontTestc                 C   sR   t j | ¡ ztj| jtdd| _W d S  tjy(   tj| jtdd| _Y d S w )NT©ÚrootÚnameÚexistsF)	r   Ú
setUpClassÚ__func__r   ÚFontr   ÚfontnameÚtkinterÚTclError)Úcls© r   úY/Users/admin/.pyenv/versions/3.10.0/lib/python3.10/tkinter/test/test_tkinter/test_font.pyr      s   ÿzFontTest.setUpClassc                 C   sè   | j  ¡ }|  t|ƒh d£¡ |D ]}|  | j  |¡|| ¡ |  | j | || ¡ qdD ]}|  || t¡ |  | j  |¡t¡ |  | j | t¡ q-| jrPt	nt}dD ]}|  || |¡ |  | j  |¡|¡ |  | j | |¡ qTd S ©N>   ÚslantÚweightÚ	underlineÚ
overstrikeÚfamilyÚsize)r   r   r   )r   r   r   )
r   Z	configureÚassertGreaterEqualÚsetÚassertEqualÚcgetÚassertIsInstanceÚstrÚwantobjectsÚint©ÚselfÚoptionsÚkeyZsizetyper   r   r   Útest_configure   s"   

ÿýzFontTest.test_configurec                 C   s`   d}zt j| j|dd}W n tjy    t j| j|dd}Y nw |  | d¡|¡ ~tƒ  d S )Nu   MS ã‚´ã‚·ãƒƒã‚¯T)r   r   r   Fr   )r   r   r   r   r   r    r!   r   )r'   r   Úfr   r   r   Útest_unicode_family&   s   ÿ
zFontTest.test_unicode_familyc                 C   s®   | j  ¡ }|  t|ƒh d£¡ |D ]}|  | j  |¡|| ¡ qdD ]}|  || t¡ |  | j  |¡t¡ q"| jr<tnt}dD ]}|  || |¡ |  | j  |¡|¡ q@d S r   )	r   Úactualr   r   r    r"   r#   r$   r%   r&   r   r   r   Útest_actual0   s   

ÿþzFontTest.test_actualc                 C   s&   |   | jjt¡ |   t| jƒt¡ d S ©N)r    r   r   r   r#   ©r'   r   r   r   Ú	test_name>   s   zFontTest.test_namec                 C   s¬   t j| jtdd}t j| jtdd}|  ||¡ |  ||¡ |  || ¡ ¡ |  |d¡ |  |t¡ t	 
¡ }|  |j¡ t j|tdd}|  t|ƒt|ƒ¡ |  ||¡ d S )NTr
   r   )r   r   r   r   ZassertIsNotr    ZassertNotEqualÚcopyr   r   ÚTkZ
addCleanupÚdestroyr#   )r'   Zfont1Zfont2Úroot2Zfont3r   r   r   Útest_equalityB   s   zFontTest.test_equalityc                 C   s   |   | j d¡t¡ d S )NÚabc)r"   r   Zmeasurer%   r0   r   r   r   Útest_measureR   s   zFontTest.test_measurec                 C   sh   | j  ¡ }|  t|ƒh d£¡ |D ] }|  | j  |¡|| ¡ |  || t¡ |  | j  |¡t¡ qd S )N>   ZdescentÚfixedZ	linespaceZascent)r   Úmetricsr   r   r    r"   r%   )r'   r:   r)   r   r   r   Útest_metricsU   s   

ÿýzFontTest.test_metricsc                 C   sF   t  | j¡}|  |t¡ |  |¡ |D ]}|  |t¡ |  |¡ qd S r/   )r   Úfamiliesr   r"   ÚtupleÚ
assertTruer#   )r'   r<   r   r   r   r   Útest_families^   s   
þzFontTest.test_familiesc                 C   sR   t  | j¡}|  |t¡ |  |¡ |D ]}|  |t¡ |  |¡ q|  t|¡ d S r/   )	r   Únamesr   r"   r=   r>   r#   ÚassertInr   )r'   r@   r   r   r   r   Ú
test_namesf   s   
zFontTest.test_namesc                 C   s0   t jt| jd}|  |t j¡ |  |jt¡ d S )N)r   )r   Ú
nametofontr   r   r"   r   r    r   )r'   Útestfontr   r   r   Útest_nametofonto   s   zFontTest.test_nametofontc                 C   s   |   t| jƒdt›d¡ d S )Nz<tkinter.font.Font object ú>)r    Úreprr   r   r0   r   r   r   Ú	test_reprt   s   ÿzFontTest.test_reprN)Ú__name__Ú
__module__Ú__qualname__Úclassmethodr   r*   r,   r.   r1   r6   r8   r;   r?   rB   rE   rH   r   r   r   r   r	      s    

		r	   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚDefaultRootTestc                 C   sv   |   ttj¡ t ¡ }t ¡ }|  |t¡ |  |¡ |D ]}|  |t	¡ |  |¡ q| 
¡  t ¡  |   ttj¡ d S r/   )ÚassertRaisesÚRuntimeErrorr   r<   r   r3   r"   r=   r>   r#   r4   ÚNoDefaultRoot)r'   r   r<   r   r   r   r   r?   |   s   
zDefaultRootTest.test_familiesc                 C   s‚   |   ttj¡ t ¡ }t ¡ }|  |t¡ |  |¡ |D ]}|  |t	¡ |  |¡ q|  
t|¡ | ¡  t ¡  |   ttj¡ d S r/   )rN   rO   r   r@   r   r3   r"   r=   r>   r#   rA   r   r4   rP   )r'   r   r@   r   r   r   r   rB   ‰   s   
zDefaultRootTest.test_namesc                 C   sb   |   ttjt¡ t ¡ }t t¡}|  |tj¡ |  	|j
t¡ | ¡  t ¡  |   ttjt¡ d S r/   )rN   rO   r   rC   r   r   r3   r"   r   r    r   r4   rP   )r'   r   rD   r   r   r   rE   —   s   
zDefaultRootTest.test_nametofontN)rI   rJ   rK   r?   rB   rE   r   r   r   r   rM   z   s    rM   Ú__main__)Zunittestr   r   Ztest.supportr   r   r   r   Ztkinter.test.supportr   r   r   ZTestCaser	   rM   Z	tests_guirI   r   r   r   r   Ú<module>   s    o(ÿ