o
    OZŽh.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)ÚfontZ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   úE/var/www/auris/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 )NZarialr   é   T©Úitalic©ÚboldÚthisisnotafont)r   Ú	get_fontsÚsortedZSysFontr,   Ú
isinstanceZ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   r5   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   r5   r,   Úreprr7   ÚstrÚassertFalseÚanyÚisalnum)r   r=   Únamer   r   r   Útest_get_fontsZ   s   ùzFontModuleTest.test_get_fontsc                 C   s(   |   t ¡ ¡ t ¡  |  t ¡ ¡ d S r   )r,   r   Zget_initr   rF   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   r5   Ú
match_fontrF   r,   ÚosÚpathÚisabsÚisfile)r   r   r   rO   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   r4   ó   thisisnotafontú,c                 s   ó    | ]}|V  qd S r   r   ©rA   rI   r   r   r   rC   Š   ó   € z6FontModuleTest.test_match_font_name.<locals>.<genexpr>ó   ,N)r   r5   rM   ÚassertIsNotNoneÚencodeÚjoinr"   )r   r   Ú	font_pathZfont_bÚ
not_a_fontÚnot_a_font_bZgood_font_namesr8   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 existr4   rS   rT   c                 s   rU   r   r   rV   r   r   r   rC      rW   z:FontModuleTest.test_not_match_font_name.<locals>.<genexpr>rX   N)r[   ÚassertIsNoner   rM   )r   r]   r^   Zbad_font_namesr8   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 )Tr2   N©r   rM   ©rA   r   r   r   r   rC   ª   ó   € z6FontModuleTest.test_match_font_bold.<locals>.<genexpr>©r   r5   r,   rG   ©r   r   r   r   r   Útest_match_font_bold¦   s   z#FontModuleTest.test_match_font_boldc                 C   rb   )Nc                 s   rc   )Tr0   Nrd   re   r   r   r   rC   ±   rf   z8FontModuleTest.test_match_font_italic.<locals>.<genexpr>rg   rh   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é   ZTestr   ©éÿ   rn   rn   ©r   r   r   rn   ©r   r   )ÚpygameÚSurfacer   ÚFontÚrenderr`   Zget_colorkeyZ	set_alphaÚblitr"   r   ÚColor)r   Z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  Nrl   ))é    éÈ   éú   ZMusic)é¾   éª   ZmidrightTé    )Údepthrp   )rq   ÚdisplayÚset_moder   rs   rt   rr   r   r   ru   r"   )
r   r   ÚcolorÚtextÚcenterÚposZimg1ZimgZpre_blit_corner_pixelZ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   Nr/   )Úgcr   rs   r   r   Z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<   r>   rJ   rK   rL   rR   r_   ra   ri   rj   rx   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 )Nry   r/   )é
   r   r   z   barTro   rm   rp   r   ZSDL_VIDEODRIVERÚdummy)rq   r‚   rƒ   Zget_rectr   rs   Úfillrt   Ztopleftr,   ru   Úupdater"   r!   r   rN   ÚenvironÚget)r   ÚscreenÚrectÚfZfont_surfaceZ	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   rs   ©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 ©Nr/   r   ÚXFrm   é   )r   rs   Z
get_ascentr,   r7   r$   rt   r   )r   r—   ZascentÚsr   r   r   Útest_get_ascent  ó   zFontTypeTest.test_get_ascentc                 C   s6   t  d d¡}| ¡ }|  t|tƒ¡ |  |dk ¡ d S ©Nr/   r   )r   rs   Zget_descentr,   r7   r$   )r   r—   Z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   rs   Z
get_heightr,   r7   r$   rt   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   rs   Zget_linesizer,   r7   r$   )r   r—   Z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 )
Nr/   Ú.ó   .rž   r   õ   â„ªúUTF-16é   u   ð“€€)r   rs   Zmetricsr"   r#   rY   rZ   rq   ÚerrorÚassertNotEqualr`   Zfail)r   r—   ZumZ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 )Nr/   ZfooTro   rm   ZxxxÚ Fz   r   rž   r§   rp   r   r¨   r©   rª   r«   s   ab cdzab cd)r   rs   rt   r"   r   ÚassertRaisesÚ	TypeErrorr   r,   r   rZ   rq   r¬   rF   Ú
ValueError)r   r—   rŸ   Z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.Nr/   ZUCS4u   ï¿®Fro   rm   u   ð€€)r   rs   Úhasattrrt   )r   r—   Zucs_2rŸ   Zucs_4r   r   r   Útest_render_ucs2_ucs4˜  s   
üz"FontTypeTest.test_render_ucs2_ucs4c                 C   óN   t  d d¡}|  | ¡ ¡ | d¡ |  | ¡ ¡ | d¡ |  | ¡ ¡ d S ©Nr/   TF)r   rs   rF   Zget_boldÚset_boldr,   rš   r   r   r   Útest_set_bold£  ó   

zFontTypeTest.test_set_boldc                 C   r¹   rº   )r   rs   rF   Z
get_italicÚ
set_italicr,   rš   r   r   r   Útest_set_italic«  r½   zFontTypeTest.test_set_italicc                 C   r¹   rº   )r   rs   rF   Z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(   r/   TF)r   r*   rs   rF   Z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   rs   rF   r3   r,   rš   r   r   r   Útest_bold_attrÄ  ó   zFontTypeTest.test_bold_attrc                 C   rÅ   rº   )r   rs   rF   r1   r,   rš   r   r   r   Útest_set_italic_propertyÌ  rÇ   z%FontTypeTest.test_set_italic_propertyc                 C   rÅ   rº   )r   rs   rF   Ú	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*   rs   rF   Ú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 )	Nr/   ZXgFrm   Úasciir©   rª   r«   )
r   rs   r	   rt   rZ   r    r$   r"   r   r­   )	r   r—   r…   r	   r
   r   rŸ   ZbtextZbsizer   r   r   Ú	test_sizeå  s   



zFontTypeTest.test_sizec                 C   s   t  ¡  |  tt jdd¡ d S )Nzsome-fictional-font.ttfr/   )r   r   r²   ÚFileNotFoundErrorrs   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   r/   ©	r   r;   rN   rO   r[   Úsplitrq   Ú__file__rs   ©r   r8   r\   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;   rN   rO   r[   rÓ   rq   rÔ   rs   Ú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   Úrbr/   ©
r   r;   rN   rO   r[   rÓ   rq   rÔ   Úopenrs   ©r   r8   r\   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 )Nr/   ©r   rs   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 openedr/   )ÚshutilrE   ÚFONTDIRrN   rO   r[   Úcopyrà   rÏ   ÚunittestZSkipTestr   rs   Úremove)r   rO   rç   ZfdirÚtempZ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Úsurrogateescaper/   )rN   rO   r[   rÓ   rq   rÔ   r   r;   ÚsysÚgetfilesystemencodingÚplatformÚdecodeÚAttributeErrorrZ   rs   )r   r\   Zfilesystem_encodingZfilesystem_errorsZ
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   r/   éF   é-   é2   r   ZWHERETÚblack)rN   rO   r[   rè   r   rs   rt   )r   Z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«   r/   r   ZheyZDevarž   )ÚDÚeÚvÚaztoo long by farr±   r  )r   r*   rs   r+   r²   r³   rq   r   Z
set_scriptr´   r¬   )r   r   Z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ù   r   r  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)rz   r|   rm   r€   )
r•   rq   r   r‚   rƒ   r‘   Úflipr   rs   r—   r   r   r   r   r   …  s   

ûzVisualTests.setUpc                 C   s   | j d ur	t ¡  d| _d S )NT)r•   rq   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   r/   rm   Únormalr3   r1   Z
underlinedrË   Zantialiasedú-z (y/n):r(   ro   rž   z(some comparison text)T)r
  r—   r•   r‘   rq   r‚   r	  Úappendr[   r»   r¾   rÀ   r   r*   rÃ   rt   ru   r   Úeventr”   ÚtypeZKEYDOWNÚkeyZK_ESCAPEr  ZK_yZK_nZQUIT)r   r3   r1   rÉ   rË   Ú
antialiaseÚspacingÚoffsetr   r—   r•   r…   ÚmodesrŸ   Zevtr   r   r   Úquery’  sl   

















þözVisualTests.queryc                 C   ó   |   | jdd¡ d S )NTr2   ©r,   r  r   r   r   r   Ú	test_boldÐ  ó   zVisualTests.test_boldc                 C   r  )NTr0   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,   r  r   r   r   r   Útest_strikethroughÙ  s   
ÿzVisualTests.test_strikethroughc                 C   r  )NT)r  r  r   r   r   r   Útest_antialiaseÝ  r  zVisualTests.test_antialiasec                 C   ó   |   | jddd¡ d S )NT)r3   r  r  r   r   r   r   Útest_bold_antialiaseà  ó   z VisualTests.test_bold_antialiasec                 C   r   )NT)r1   rÉ   r  r   r   r   r   Útest_italic_underlineã  r"  z!VisualTests.test_italic_underlinec                 C   s&   t jdkr|  | jddd¡ d S d S )Nr(   T)r3   rË   r  r   r   r   r   Útest_bold_strikethroughæ  s   
ÿz#VisualTests.test_bold_strikethrough)FFFFF)r*   rŒ   r   Z__tags__r•   r
  r   r  r  r  r  r  r  r  r!  r#  r$  r   r   r   r   r  ~  s(    
ú>r  Ú__main__)rô   rN   rê   rÚ   rö   rq   r   r   rO   r[   ÚdirnameÚabspathrÔ   rè   r   Úpython_implementationZIS_PYPYZskipIfZTestCaser   rŽ   r™   r  r*   Úmainr   r   r   r   Ú<module>   s0    
 
C
-  
plÿ