o
    tVÆg.j  ã                   @   s   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 ej 	ej 
ej e¡¡dd¡Zdd„ Zde ¡ kZe ed¡G d	d
„ d
ejƒƒZe ed¡G dd„ dejƒƒZe ed¡G dd„ dejƒƒZe ed¡G dd„ dejƒƒZedkr~e ¡  dS dS )é    N)ÚfontÚfixturesÚfontsc                 C   sd   |   ¡ }|  ¡ |krdS |\}}t|ƒD ]}t|ƒD ]}|  ||f¡| ||f¡kr.  dS qqdS )NFT)Úget_sizeÚrangeÚget_at)Ús1Ús2ÚsizeÚwÚhÚxÚy© r   úJ/home/ubuntu/.local/lib/python3.10/site-packages/pygame/tests/font_test.pyÚequal_images   s   ÿÿr   ÚPyPyzpypy skip known failurec                   @   sœ   e Z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d„ Zdd„ Zdd„ Zdd„ Zdd „ Zd!d"„ Zd#d$„ Zd%S )&ÚFontModuleTestc                 C   ó   t  ¡  d S ©N©Úpygame_fontÚinit©Úselfr   r   r   ÚsetUp    ó   zFontModuleTest.setUpc                 C   r   r   ©r   Úquitr   r   r   r   ÚtearDown#   r   zFontModuleTest.tearDownc                    sP   ‡ fdd„}t jdkr&t  ¡ }t jdd}||ƒ ||ƒ ˆ  ||k¡ d S d S )Nc                    s6   ˆ   | t¡ ˆ  t| ƒd¡ | D ]}ˆ   |t¡ qd S )Né   )ÚassertIsInstanceÚtupleÚassertEqualÚlenÚint)ÚverÚir   r   r   Útest_ver_tuple'   s
   ÿz?FontModuleTest.test_get_sdl_ttf_version.<locals>.test_ver_tupleúpygame.ftfontT)Úlinked)r   Ú__name__Úget_sdl_ttf_versionÚ
assertTrue)r   r(   Úcompiledr*   r   r   r   Útest_get_sdl_ttf_version&   s   
ùz'FontModuleTest.test_get_sdl_ttf_versionc                 C   s¦   t  ¡ }d|v rd}nt|ƒd }t  |d¡}|  t|t jƒ¡ t j|ddd}|  t|t jƒ¡ t j|ddd}|  t|t jƒ¡ t  dd¡}|  t|t jƒ¡ d S )NÚarialr   é   T©Úitalic©ÚboldÚthisisnotafont)r   Ú	get_fontsÚsortedÚSysFontr-   Ú
isinstanceÚFontType)r   r   Ú	font_nameÚor   r   r   Útest_SysFont6   s   zFontModuleTest.test_SysFontc                 C   s   |   t ¡ d¡ d S )Nzfreesansbold.ttf)r#   r   Úget_default_fontr   r   r   r   Útest_get_default_fontH   s   z$FontModuleTest.test_get_default_fontc                 C   s   t  ¡ }|  |¡ d S r   )r   r7   r-   )r   Úfntsr   r   r   Ú test_get_fonts_returns_somethingK   s   z/FontModuleTest.test_get_fonts_returns_somethingc                 C   sb   t  ¡ }| j|t|ƒd |D ]}|  t|tƒ|¡ |  tdd„ |D ƒƒ¡ |  | ¡ |¡ qd S )N)Úmsgc                 s   s    | ]}|  ¡ V  qd S r   )Úisupper)Ú.0Úcr   r   r   Ú	<genexpr>e   s   € z0FontModuleTest.test_get_fonts.<locals>.<genexpr>)	r   r7   r-   Úreprr:   ÚstrÚassertFalseÚanyÚisalnum)r   rA   Únamer   r   r   Útest_get_fontsZ   s   ùzFontModuleTest.test_get_fontsc                 C   s(   |   t ¡ ¡ t ¡  |  t ¡ ¡ d S r   )r-   r   Úget_initr   rJ   r   r   r   r   Útest_get_inith   s   zFontModuleTest.test_get_initc                 C   r   r   r   r   r   r   r   Ú	test_initm   r   zFontModuleTest.test_initc                 C   sL   t  ¡ }|D ]}t  |¡}|  |d u ¡ |  tj |¡o!tj |¡¡ qd S r   )	r   r7   Ú
match_fontrJ   r-   ÚosÚpathÚisabsÚisfile)r   r   r   rT   r   r   r   Útest_match_font_all_existp   s   
 ýz(FontModuleTest.test_match_font_all_existc              
   C   s    t  ¡ d }t  |¡}|  |¡ | ¡ }d}d}|d |||g¡|||gdd„ |||fD ƒd |||g¡|||g||||gg}|D ]}|  t  |¡||¡ qAdS )	z.That match_font accepts names of various typesr   r6   ó   thisisnotafontú,c                 s   ó    | ]}|V  qd S r   r   ©rE   rM   r   r   r   rG   Š   ó   € z6FontModuleTest.test_match_font_name.<locals>.<genexpr>ó   ,N)r   r7   rR   ÚassertIsNotNoneÚencodeÚjoinr#   )r   r   Ú	font_pathÚfont_bÚ
not_a_fontÚnot_a_font_bÚgood_font_namesr<   r   r   r   Útest_match_font_namez   s"   


òÿz#FontModuleTest.test_match_font_namec              
   C   sv   d}d}|d  |||g¡|||gdd„ |||fD ƒ|d  |||g¡|||g|||gg}|D ]}|  t |¡|¡ q-dS )z?match_font return None when names of various types do not existr6   rX   rY   c                 s   rZ   r   r   r[   r   r   r   rG      r\   z:FontModuleTest.test_not_match_font_name.<locals>.<genexpr>r]   N)r`   ÚassertIsNoner   rR   )r   rc   rd   Úbad_font_namesr<   r   r   r   Útest_not_match_font_name•   s   ø
ÿz'FontModuleTest.test_not_match_font_namec                 C   ó$   t  ¡ }|  tdd„ |D ƒƒ¡ d S )Nc                 s   ó    | ]
}t j|d dV  qdS )Tr4   N©r   rR   ©rE   r   r   r   r   rG   ª   ó   € z6FontModuleTest.test_match_font_bold.<locals>.<genexpr>©r   r7   r-   rK   ©r   r   r   r   r   Útest_match_font_bold¦   s   z#FontModuleTest.test_match_font_boldc                 C   rj   )Nc                 s   rk   )Tr2   Nrl   rm   r   r   r   rG   ±   rn   z8FontModuleTest.test_match_font_italic.<locals>.<genexpr>ro   rp   r   r   r   Útest_match_font_italic¬   s   ÿz%FontModuleTest.test_match_font_italicc                 C   sj   t  d¡}t dd¡}| dddd¡}|  | ¡ ¡ | d¡ | |d	¡ |  	| 
d	¡t  ddd¡¡ dS )
z(that the font background does not crash.)i@  éð   Né   ÚTestr   ©éÿ   rw   rw   ©r   r   r   rw   ©r   r   )ÚpygameÚSurfacer   ÚFontÚrenderrg   Úget_colorkeyÚ	set_alphaÚblitr#   r   ÚColor)r   Úsurfr   Úimager   r   r   Útest_issue_742´   s   

 zFontModuleTest.test_issue_742c           
      C   st   t j d¡ t dd¡}d\}}}}| |d|¡}t j| ¡ dd}| d¡}| 	|d¡ | d¡}	|  
||	¡ dS )	zPCheck that blitting anti-aliased text doesn't
        change the background blue©éX  i  Nrt   ))é    éÈ   éú   ÚMusic)é¾   éª   ÚmidrightTé    )Údepthry   )rz   ÚdisplayÚset_moder   r|   r}   r{   r   r   r€   r#   )
r   r   ÚcolorÚtextÚcenterÚposÚimg1ÚimgÚpre_blit_corner_pixelÚpost_blit_corner_pixelr   r   r   Útest_issue_font_alphablitÁ   s   

z(FontModuleTest.test_issue_font_alphablitc                 C   s2   ddl }t dd¡}t ¡  t ¡  ~| ¡  dS )zKReinitialization of font module should not cause
        segmentation faultr   Nr1   )Úgcr   r|   r   r   Úcollect)r   r›   r   r   r   r   Útest_segfault_after_reinitÒ   s   z)FontModuleTest.test_segfault_after_reinitc                 C   r   r   r   r   r   r   r   Ú	test_quitÝ   r   zFontModuleTest.test_quitN)r+   Ú
__module__Ú__qualname__r   r   r/   r>   r@   rB   rN   rP   rQ   rW   rf   ri   rq   rr   r„   rš   r   rž   r   r   r   r   r      s&    
r   c                   @   s$   e Zd Zdd„ Zdd„ Zdd„ ZdS )ÚFontTestc                 C   r   r   r   r   r   r   r   r   ã   r   zFontTest.setUpc                 C   r   r   r   r   r   r   r   r   æ   r   zFontTest.tearDownc                 C   sÖ  t j d¡}| ¡ }t d d¡}| d¡ | dddd¡}| ¡ }|j|_|  	|¡ | 
|||¡ t j ¡  |  t| d¡ƒd d	… d¡ |  t| |j¡ƒd d	… d¡ tj d
¡dkré| d¡ | dddd ¡}| ¡ }|j|_|  	|¡ | 
|||¡ t j ¡  |  t| d¡ƒd d	… d¡ |  t| |j¡ƒd d	… d¡ | d¡ | ddd¡}| ¡ }|j|_|  	|¡ | 
|||¡ t j |¡ |  t| d¡ƒd d	… d¡ |  t| |j¡ƒd d	… d¡ d S d S )Nr…   r1   )é
   r¢   r¢   z   barTrx   rv   ry   r    ÚSDL_VIDEODRIVERÚdummy)rz   r   r‘   Úget_rectr   r|   Úfillr}   Útopleftr-   r€   Úupdater#   r"   r   rS   ÚenvironÚget)r   ÚscreenÚrectÚfÚfont_surfaceÚ	font_rectr   r   r   Útest_render_argsé   s@   


 


 

$ízFontTest.test_render_argsN)r+   rŸ   r    r   r   r°   r   r   r   r   r¡   á   s    r¡   c                   @   s  e Z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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/d0„ Zd1d2„ Zd3d4„ Zd5d6„ Zd7d8„ Zd9d:„ Zd;d<„ Z d=d>„ Z!d?d@„ Z"dAdB„ Z#dCdD„ Z$dES )FÚFontTypeTestc                 C   r   r   r   r   r   r   r   r     r   zFontTypeTest.setUpc                 C   r   r   r   r   r   r   r   r     r   zFontTypeTest.tearDownc                 C   s   t  ¡ }d S r   )r   r|   ©r   r­   r   r   r   Útest_default_parameters  r   z$FontTypeTest.test_default_parametersc                 C   sZ   t  d d¡}| ¡ }|  t|tƒ¡ |  |dk¡ | ddd¡}|  | ¡ d |k¡ d S ©Nr1   r   ÚXFrv   é   )r   r|   Ú
get_ascentr-   r:   r%   r}   r   )r   r­   ÚascentÚsr   r   r   Útest_get_ascent  ó   zFontTypeTest.test_get_ascentc                 C   s6   t  d d¡}| ¡ }|  t|tƒ¡ |  |dk ¡ d S ©Nr1   r   )r   r|   Úget_descentr-   r:   r%   )r   r­   Údescentr   r   r   Útest_get_descent#  s   zFontTypeTest.test_get_descentc                 C   sZ   t  d d¡}| ¡ }|  t|tƒ¡ |  |dk¡ | ddd¡}|  | ¡ d |k¡ d S r´   )r   r|   Ú
get_heightr-   r:   r%   r}   r   )r   r­   Úheightr¹   r   r   r   Útest_get_height*  r»   zFontTypeTest.test_get_heightc                 C   s6   t  d d¡}| ¡ }|  t|tƒ¡ |  |dk¡ d S r¼   )r   r|   Úget_linesizer-   r:   r%   )r   r­   Úlinesizer   r   r   Útest_get_linesize3  s   zFontTypeTest.test_get_linesizec                 C   s  t  d d¡}| d¡}| d¡}|  t|ƒd¡ |  t|ƒd¡ |  |d ¡ |  ||¡ d}| d¡dd … }| |¡}|  t|ƒd¡ z| |¡}W n
 tjyV   Y nw |  t|ƒd¡ |  	|d |d ¡ |  	|d |d ¡ d	}| |¡}|  t|ƒd¡ |  
|d ¡ d S )
Nr1   Ú.ó   .r¶   r   õ   â„ªúUTF-16é   u   ð“€€)r   r|   Úmetricsr#   r$   r^   r_   rz   ÚerrorÚassertNotEqualrg   Úfail)r   r­   ÚumÚbmÚuÚbr   r   r   Útest_metrics;  s0   


ÿ
zFontTypeTest.test_metricsc              	   C   sb  t  d d¡}| ddg d¢g d¢¡}| ddg d¢g d¢¡}| ddg d¢g d¢¡}| ddg d¢g d¢¡}| ddg d¢g d¢¡}| ddg d¢¡}| d	dg d¢¡}| d	dg d¢g d¢¡}| ddg d¢g d¢¡}|  | ¡ d
 d
¡ | d dg d¢g d¢¡}|  | ¡ d
 d
¡ |  t|jg dg d¢g d¢¡ |  t|jddg d¢g d¢¡ | ddg d¢¡}|  | d¡d d
¡ | ddg d¢g d¢¡}| ddg d¢g d¢¡}|  t	||ƒ¡ d}| 
d¡dd … }| |dg d¢g d¢¡}z| |dg d¢g d¢¡}W n tjy   Y n	w |  t	||ƒ¡ |  t|jdd
g d¢¡ |  t|jdd
g d¢¡ d S )Nr1   ÚfooTrx   rv   ÚxxxÚ Fz   r   r¶   rÆ   ry   r    rÇ   rÈ   rÉ   rÊ   s   ab cdzab cd)r   r|   r}   r#   r   ÚassertRaisesÚ	TypeErrorr   r-   r   r_   rz   rÌ   rJ   Ú
ValueError)r   r­   r¹   ÚsuÚsbrÑ   rÒ   r   r   r   Útest_rendern  s>   ÿzFontTypeTest.test_renderc                 C   sV   t  dd¡}tt dƒr)d}| |dg d¢g d¢¡}d}| |dg d¢g d¢¡}dS dS )	zAthat it renders without raising if there is a new enough SDL_ttf.Nr1   ÚUCS4u   ï¿®Frx   rv   u   ð€€)r   r|   Úhasattrr}   )r   r­   Úucs_2r¹   Úucs_4r   r   r   Útest_render_ucs2_ucs4˜  s   
üz"FontTypeTest.test_render_ucs2_ucs4c                 C   óN   t  d d¡}|  | ¡ ¡ | d¡ |  | ¡ ¡ | d¡ |  | ¡ ¡ d S ©Nr1   TF)r   r|   rJ   Úget_boldÚset_boldr-   r²   r   r   r   Útest_set_bold£  ó   

zFontTypeTest.test_set_boldc                 C   râ   rã   )r   r|   rJ   Ú
get_italicÚ
set_italicr-   r²   r   r   r   Útest_set_italic«  rç   zFontTypeTest.test_set_italicc                 C   râ   rã   )r   r|   rJ   Úget_underlineÚset_underliner-   r²   r   r   r   Útest_set_underline³  rç   zFontTypeTest.test_set_underlinec                 C   s\   t jdkr,t  d d¡}|  | ¡ ¡ | d¡ |  | ¡ ¡ | d¡ |  | ¡ ¡ d S d S ©Nr)   r1   TF)r   r+   r|   rJ   Úget_strikethroughÚset_strikethroughr-   r²   r   r   r   Útest_set_strikethrough»  s   


úz#FontTypeTest.test_set_strikethroughc                 C   ó@   t  d d¡}|  |j¡ d|_|  |j¡ d|_|  |j¡ d S rã   )r   r|   rJ   r5   r-   r²   r   r   r   Útest_bold_attrÄ  ó   zFontTypeTest.test_bold_attrc                 C   rò   rã   )r   r|   rJ   r3   r-   r²   r   r   r   Útest_set_italic_propertyÌ  rô   z%FontTypeTest.test_set_italic_propertyc                 C   rò   rã   )r   r|   rJ   Ú	underliner-   r²   r   r   r   Útest_set_underline_propertyÔ  rô   z(FontTypeTest.test_set_underline_propertyc                 C   sN   t jdkr%t  d d¡}|  |j¡ d|_|  |j¡ d|_|  |j¡ d S d S rî   )r   r+   r|   rJ   Ústrikethroughr-   r²   r   r   r   Útest_set_strikethrough_propertyÜ  s   
úz,FontTypeTest.test_set_strikethrough_propertyc           	      C   s®   t  d d¡}d}| |¡}|\}}| |dd¡}| d¡}|  |t¡ |  |t¡ |  | ¡ |¡ |  | |¡|¡ d}| d¡dd … }| |¡}| |¡}|  	||¡ d S )	Nr1   ÚXgFrv   ÚasciirÈ   rÉ   rÊ   )
r   r|   r
   r}   r_   r!   r%   r#   r   rÍ   )	r   r­   r“   r
   r   r   r¹   ÚbtextÚbsizer   r   r   Ú	test_sizeå  s   



zFontTypeTest.test_sizec                 C   s   t  ¡  |  tt jdd¡ d S )Nzsome-fictional-font.ttfr1   )r   r   r×   ÚFileNotFoundErrorr|   r   r   r   r   Útest_font_file_not_foundù  s   
ÿz%FontTypeTest.test_font_file_not_foundc                 C   s8   t  ¡ }tj tj tj¡d t  ¡ ¡}t  |d¡}d S ©Nr   r1   ©	r   r?   rS   rT   r`   Úsplitrz   Ú__file__r|   ©r   r<   ra   r­   r   r   r   Útest_load_from_file  s
   ÿz FontTypeTest.test_load_from_filec                 C   s6   t  ¡ }tj tj tj¡d t  ¡ ¡}t  |¡}d S ©Nr   r  r  r   r   r   Útest_load_from_file_default	  s
   ÿz(FontTypeTest.test_load_from_file_defaultc                 C   sN   t  ¡ }tj tj tj¡d t  ¡ ¡}t  t	 
|¡d¡}t  t	 
|¡¡}d S r  ©r   r?   rS   rT   r`   r  rz   r  r|   ÚpathlibÚPathr  r   r   r   Útest_load_from_pathlib  s   ÿz#FontTypeTest.test_load_from_pathlibc                 C   s<   t  ¡ }tj tj tj¡d t  ¡ ¡}t  t	 
|¡¡}d S r  r	  r  r   r   r   Útest_load_from_pathlib_default  s
   ÿz+FontTypeTest.test_load_from_pathlib_defaultc                 C   sd   t  ¡ }tj tj tj¡d t  ¡ ¡}t|dƒ}t  	|d¡}W d   ƒ d S 1 s+w   Y  d S )Nr   Úrbr1   ©
r   r?   rS   rT   r`   r  rz   r  Úopenr|   ©r   r<   ra   r­   r   r   r   r   Útest_load_from_file_obj  s   ÿ"ÿz$FontTypeTest.test_load_from_file_objc                 C   sb   t  ¡ }tj tj tj¡d t  ¡ ¡}t|dƒ}t  	|¡}W d   ƒ d S 1 s*w   Y  d S )Nr   r  r  r  r   r   r   Útest_load_from_file_obj_default'  s   ÿ"ÿz,FontTypeTest.test_load_from_file_obj_defaultc                 C   s   t  t  ¡ d¡}d S )Nr1   ©r   r|   r?   r²   r   r   r   Útest_load_default_font_filename/  s   z,FontTypeTest.test_load_default_font_filenamec                 C   s   t  t  ¡ ¡}d S r   r  r²   r   r   r   Ú'test_load_default_font_filename_default4  s   z4FontTypeTest.test_load_default_font_filename_defaultc              	   C   sª   dd l }ttƒ}tj ||¡}tj |d¡}| ||¡ zt|dƒ}W d   ƒ n1 s-w   Y  W n ty?   t	 
d¡‚w zt |d¡ W t |¡ d S t |¡ w )Nr   ztest_sans.ttfr  zthe path cannot be openedr1   )ÚshutilrI   ÚFONTDIRrS   rT   r`   Úcopyr  rÿ   ÚunittestÚSkipTestr   r|   Úremove)r   rT   r  ÚfdirÚtempÚpgfontr­   r   r   r   Ú_load_unicode9  s    ÿ€
ÿzFontTypeTest._load_unicodec                 C   s   |   d¡ dS )z ASCII string as a unicode objectztemp_file.ttfN©r   r   r   r   r   Útest_load_from_file_unicode_0J  s   z*FontTypeTest.test_load_from_file_unicode_0c                 C   s   |   d¡ d S )Nu
   ä½ å¥½.ttfr!  r   r   r   r   Útest_load_from_file_unicode_1N  s   z*FontTypeTest.test_load_from_file_unicode_1c                 C   sz   t j t j tj¡d t ¡ ¡}t 	¡ }tj
dkrdnd}z| ||¡}W n	 ty.   Y nw | ||¡}t |d¡}d S )Nr   Úwin32ÚreplaceÚsurrogateescaper1   )rS   rT   r`   r  rz   r  r   r?   ÚsysÚgetfilesystemencodingÚplatformÚdecodeÚAttributeErrorr_   r|   )r   ra   Úfilesystem_encodingÚfilesystem_errorsÚ
bfont_pathr­   r   r   r   Útest_load_from_file_bytesQ  s   ÿÿz&FontTypeTest.test_load_from_file_bytesc                 C   s6   t j td¡}dD ]}t ||¡}| ddd¡ q	d S )NzPlayfairDisplaySemibold.ttf)é<   é(   r¢   r1   éF   é-   é2   r¢   ÚWHERETÚblack)rS   rT   r`   r  r   r|   r}   )r   Úfpathr
   r   r   r   r   Útest_issue_3144^  s
   þzFontTypeTest.test_issue_3144c                 C   sÞ   t jdkrd S t  d d¡}t  ¡ }|dkrd|  ttjjj¡ |  ttjjj|¡ |  ttjjjdd¡ |  t|jd¡ |  t|jg d¢¡ |  t	|jd¡ |  t	|jd	¡ |  t	|jd
¡ | d¡ d S |  tj
|jd¡ d S )Nr)   é   )rÊ   r1   r   ÚheyÚDevar¶   )ÚDÚeÚvÚaztoo long by farrÖ   r?  )r   r+   r|   r,   r×   rØ   rz   r   Ú
set_scriptrÙ   rÌ   )r   r   Úttf_versionr   r   r   Útest_font_set_scriptg  s   
z!FontTypeTest.test_font_set_scriptN)%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  r  r  r  r  r  r  r   r"  r#  r/  r8  rB  r   r   r   r   r±     sF    		3*				r±   c                   @   s~   e Zd ZdgZdZdZdd„ Zdd„ Z					d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 )ÚVisualTestsÚinteractiveNFc                 C   sL   | j d u r$t ¡  tj d¡| _ | j  d¡ tj ¡  t d d¡| _	d S d S )N)r†   rˆ   rv   rŽ   )
r«   rz   r   r   r‘   r¦   Úflipr   r|   r­   r   r   r   r   r   …  s   

ûzVisualTests.setUpc                 C   s   | j d ur	t ¡  d| _d S )NT)r«   rz   r   Úabortedr   r   r   r   Úabort  s   

zVisualTests.abortc                 C   sà  | j rdS d}d}|}| j}	| j}
|
 d¡ tj ¡  |s(|s(|s(|s(|s(d}n-g }|r1| d¡ |r8| d¡ |r?| d¡ |rF| d	¡ |rM| d
¡ d |¡› d}|	 	|¡ |	 
|¡ |	 |¡ tjdkrn|	 |¡ |	 ||d¡}|
 |||f¡ || ¡ d | 7 }|	 	d¡ |	 
d¡ |	 d¡ tjdkr |	 d¡ |	 ddd¡}|
 |||f¡ tj ¡  	 tj ¡ D ]4}|jtjkrá|jtjkrÏ|  ¡   dS |jtjkrØ dS |jtjkrá dS |jtjkrî|  ¡   dS qºqµ)NFr¢   r1   rv   Únormalr5   r3   Ú
underlinedrø   Úantialiasedú-z (y/n):r)   rx   r¶   z(some comparison text)T)rF  r­   r«   r¦   rz   r   rE  Úappendr`   rå   ré   rì   r   r+   rð   r}   r€   r   Úeventrª   ÚtypeÚKEYDOWNÚkeyÚK_ESCAPErG  ÚK_yÚK_nÚQUIT)r   r5   r3   rö   rø   Ú
antialiaseÚspacingÚoffsetr   r­   r«   r“   Úmodesr¹   Úevtr   r   r   Úquery’  sl   

















þözVisualTests.queryc                 C   ó   |   | jdd¡ d S )NTr4   ©r-   rZ  r   r   r   r   Ú	test_boldÐ  ó   zVisualTests.test_boldc                 C   r[  )NTr2   r\  r   r   r   r   Útest_italicÓ  r^  zVisualTests.test_italicc                 C   r[  )NT)rö   r\  r   r   r   r   Útest_underlineÖ  r^  zVisualTests.test_underlinec                 C   s$   t jdkr|  | jdd¡ d S d S )Nr)   T)rø   ©r   r+   r-   rZ  r   r   r   r   Útest_strikethroughÙ  s   
ÿzVisualTests.test_strikethroughc                 C   r[  )NT)rU  r\  r   r   r   r   Útest_antialiaseÝ  r^  zVisualTests.test_antialiasec                 C   ó   |   | jddd¡ d S )NT)r5   rU  r\  r   r   r   r   Útest_bold_antialiaseà  ó   z VisualTests.test_bold_antialiasec                 C   rd  )NT)r3   rö   r\  r   r   r   r   Útest_italic_underlineã  rf  z!VisualTests.test_italic_underlinec                 C   s&   t jdkr|  | jddd¡ d S d S )Nr)   T)r5   rø   ra  r   r   r   r   Útest_bold_strikethroughæ  s   
ÿz#VisualTests.test_bold_strikethrough)FFFFF)r+   rŸ   r    Ú__tags__r«   rF  r   rG  rZ  r]  r_  r`  rb  rc  re  rg  rh  r   r   r   r   rC  ~  s(    
ú>rC  Ú__main__)r'  rS   r  r
  r)  rz   r   r   rT   r`   ÚdirnameÚabspathr  r  r   Úpython_implementationÚIS_PYPYÚskipIfÚTestCaser   r¡   r±   rC  r+   Úmainr   r   r   r   Ú<module>   s0    
 
C
-  
plÿ