
    i.j                        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                  j                  ej                  j                  ej                  j                  e            dd      Zd Zd ej                         k(  Z ej"                  ed       G d d	ej$                               Z ej"                  ed       G d
 dej$                               Z ej"                  ed       G d dej$                               Z ej"                  ed       G d dej$                               Zedk(  r ej0                          yy)    N)fontfixturesfontsc                     | j                         }|j                         |k7  ry|\  }}t        |      D ]<  }t        |      D ],  }| j                  ||f      |j                  ||f      k7  s+  y > y)NFT)get_sizerangeget_at)s1s2sizewhxys          `/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/pygame/tests/font_test.pyequal_imagesr      sw    ;;=D	{{}DAq1X q 	Ayy!Q BIIq!f$55	     PyPyzpypy skip known failurec                   x    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zy)FontModuleTestc                 ,    t        j                          y Npygame_fontinitselfs    r   setUpzFontModuleTest.setUp        r   c                 ,    t        j                          y r   r   quitr   s    r   tearDownzFontModuleTest.tearDown#   r   r   c                       fd}t         j                  dk7  rOt        j                         }t        j                  d      } ||        ||        j                  ||k\         y y )Nc                     j                  | t               j                  t        |       d       | D ]  }j                  |t                y )N   )assertIsInstancetupleassertEquallenint)verir   s     r   test_ver_tuplez?FontModuleTest.test_get_sdl_ttf_version.<locals>.test_ver_tuple'   sF    !!#u-SXq) .%%a-.r   pygame.ftfontT)linked)r   __name__get_sdl_ttf_version
assertTrue)r   r.   compiledr0   s   `   r   test_get_sdl_ttf_versionz'FontModuleTest.test_get_sdl_ttf_version&   s\    	. ?2"668H 44DAF8$6"OOFh./ 3r   c                 V   t        j                         }d|v rd}nt        |      d   }t        j                  |d      }| j	                  t        |t         j                               t        j                  |dd      }| j	                  t        |t         j                               t        j                  |dd      }| j	                  t        |t         j                               t        j                  dd      }| j	                  t        |t         j                               y )Narialr      Titalicboldthisisnotafont)r   	get_fontssortedSysFontr3   
isinstanceFontType)r   r   	font_nameos       r   test_SysFontzFontModuleTest.test_SysFont6   s    %%'e  Iua(I	2.
1k&:&:;<	2d;
1k&:&:;<	2D9
1k&:&:;< 0"5
1k&:&:;<r   c                 L    | j                  t        j                         d       y )Nzfreesansbold.ttf)r)   r   get_default_fontr   s    r   test_get_default_fontz$FontModuleTest.test_get_default_fontH   s    5579KLr   c                 N    t        j                         }| j                  |       y r   )r   r>   r3   )r   fntss     r    test_get_fonts_returns_somethingz/FontModuleTest.test_get_fonts_returns_somethingK   s    $$&r   c                 4   t        j                         }| j                  |t        |             |D ]c  }| j                  t	        |t
              |       | j                  t        d |D                     | j                  |j                         |       e y )N)msgc              3   <   K   | ]  }|j                           y wr   )isupper).0cs     r   	<genexpr>z0FontModuleTest.test_get_fonts.<locals>.<genexpr>e   s      ; ;s   )	r   r>   r3   reprrA   strassertFalseanyisalnum)r   rJ   names      r   test_get_fontszFontModuleTest.test_get_fontsZ   sy    $$&$t*- 	2D OOJtS148 S ;d ;;<OODLLND1	2r   c                     | j                  t        j                                t        j                          | j	                  t        j                                y r   )r3   r   get_initr"   rU   r   s    r   test_get_initzFontModuleTest.test_get_inith   s:    ,,./--/0r   c                 ,    t        j                          y r   r   r   s    r   	test_initzFontModuleTest.test_initm   r   r   c                 (   t        j                         }|D ]y  }t        j                  |      }| j                  |d u        | j	                  t
        j                  j                  |      xr t
        j                  j                  |             { y r   )	r   r>   
match_fontrU   r3   ospathisabsisfile)r   r   r   rb   s       r   test_match_font_all_existz(FontModuleTest.test_match_font_all_existp   sp    %%'  	JD))$/DTT\*OOBGGMM$/HBGGNN44HI	Jr   c           
         t        j                         d   }t        j                  |      }| j                  |       |j	                         }d}d}|dj                  |||g      |||gd |||fD        dj                  |||g      |||g||||gg}|D ](  }| j                  t        j                  |      ||       * y)z.That match_font accepts names of various typesr   r=      thisisnotafont,c              3       K   | ]  }|  y wr    rP   rX   s     r   rR   z6FontModuleTest.test_match_font_name.<locals>.<genexpr>   s     =dT=      ,N)r   r>   r`   assertIsNotNoneencodejoinr)   )r   r   	font_pathfont_b
not_a_fontnot_a_font_bgood_font_namesrC   s           r   test_match_font_namez#FontModuleTest.test_match_font_namez   s    $$&q)**40	Y'%
( HHj$
34z*=z4<=II|V\:;6<0:v|4
  ) 	VI[33I>	9U	Vr   c           
          d}d}|dj                  |||g      |||gd |||fD        |dj                  |||g      |||g|||gg}|D ]'  }| j                  t        j                  |      |       ) y)z?match_font return None when names of various types do not existr=   rg   rh   c              3       K   | ]  }|  y wr   rj   rk   s     r   rR   z:FontModuleTest.test_not_match_font_name.<locals>.<genexpr>   s     CdTCrl   rm   N)rp   assertIsNoner   r`   )r   rs   rt   bad_font_namesrC   s        r   test_not_match_font_namez'FontModuleTest.test_not_match_font_name   s    %
(HHj*j9:Z0Cz:zBCII|\<@A<6z2	
 ( 	LIk44Y?K	Lr   c                 n    t        j                         }| j                  t        d |D                     y )Nc              3   J   K   | ]  }t        j                  |d         yw)Tr;   Nr   r`   rP   r   s     r   rR   z6FontModuleTest.test_match_font_bold.<locals>.<genexpr>   s      VK224dCCV   !#r   r>   r3   rV   r   r   s     r   test_match_font_boldz#FontModuleTest.test_match_font_bold   s*    %%' 	VPUVVWr   c                 n    t        j                         }| j                  t        d |D                     y )Nc              3   J   K   | ]  }t        j                  |d         yw)Tr9   Nr~   r   s     r   rR   z8FontModuleTest.test_match_font_italic.<locals>.<genexpr>   s      Ld&&tD99Lr   r   r   s     r   test_match_font_italicz%FontModuleTest.test_match_font_italic   s,    %%' 	LeLL	
r   c                 r   t        j                  d      }t        j                  dd      }|j	                  dddd      }| j                  |j                                |j                  d       |j                  |d	       | j                  |j                  d	      t        j                  ddd             y)
z(that the font background does not crash.)i@     N   Testr      r   r   r   r   r   r   r   r   )pygameSurfacer   Fontrenderry   get_colorkey	set_alphablitr)   r	   Color)r   surfr   images       r   test_issue_742zFontModuleTest.test_issue_742   s    ~~j)b)FA	B%,,./		%  	V,fll1a.CDr   c                 x   t         j                  j                  d       t        j                  dd      }d\  }}}}|j                  |d|      }t        j                  |j                         d      }|j                  d      }|j                  |d       |j                  d      }	| j                  ||	       y)	zPCheck that blitting anti-aliased text doesn't
        change the background blueX  i  Nr   ))         Music)      midrightT    )depthr   )r   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_pixels
             r   test_issue_font_alphablitz(FontModuleTest.test_issue_font_alphablit   s     	
+b)%W"fc{{4u-nnT]]_B7 #

6 2v!$F!3.0FGr   c                     ddl }t        j                  dd      }t        j                          t        j                          ~|j                          y)zKReinitialization of font module should not cause
        segmentation faultr   Nr8   )gcr   r   r"   r   collect)r   r   r   s      r   test_segfault_after_reinitz)FontModuleTest.test_segfault_after_reinit   s=     	b)


r   c                 ,    t        j                          y r   r!   r   s    r   	test_quitzFontModuleTest.test_quit   r   r   N)r1   
__module____qualname__r   r#   r5   rE   rH   rK   rY   r\   r^   re   rv   r{   r   r   r   r   r   r   rj   r   r   r   r      sc    0 =$M21
JV6L"X
EH"	r   r   c                       e Zd Zd Zd Zd Zy)FontTestc                 ,    t        j                          y r   r   r   s    r   r   zFontTest.setUp   r   r   c                 ,    t        j                          y r   r!   r   s    r   r#   zFontTest.tearDown   r   r   c                 ^   t         j                  j                  d      }|j                         }t	        j
                  d d      }|j                  d       |j                  dddd      }|j                         }|j                  |_        | j                  |       |j                  |||       t         j                  j                          | j                  t        |j                  d            d d	 d       | j                  t        |j                  |j                              d d	 d       t        j                   j#                  d
      dk7  r|j                  d       |j                  dddd       }|j                         }|j                  |_        | j                  |       |j                  |||       t         j                  j                          | j                  t        |j                  d            d d	 d       | j                  t        |j                  |j                              d d	 d       |j                  d       |j                  ddd      }|j                         }|j                  |_        | j                  |       |j                  |||       t         j                  j                  |       | j                  t        |j                  d            d d	 d       | j                  t        |j                  |j                              d d	 d       y y )Nr   r8   )
   r   r   z   barTr   r   r   r&   SDL_VIDEODRIVERdummy)r   r   r   get_rectr   r   fillr   topleftr3   r   updater)   r(   r	   ra   environget)r   screenrectffont_surface	font_rects         r   test_render_argszFontTest.test_render_args   ss   ((4 T2&L!xx$	?K ))+	 LL	%L)Y7v}}V45bq9?Kv}}Y->->?@!DoV ::>>+,7KK%88HdItDL$--/I $IOOL)KKi;NN!!#U6==#89"1=|LU6==1B1B#CDRaH,WKK%88HdI>L$--/I $IOOL)KKi;NN!!$'U6==#89"1=|LU6==1B1B#CDRaH,W' 8r   N)r1   r   r   r   r#   r   rj   r   r   r   r      s    #Xr   r   c                       e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d  Z"d! Z#d" Z$y#)$FontTypeTestc                 ,    t        j                          y r   r   r   s    r   r   zFontTypeTest.setUp  r   r   c                 ,    t        j                          y r   r!   r   s    r   r#   zFontTypeTest.tearDown  r   r   c                 ,    t        j                         }y r   )r   r   r   r   s     r   test_default_parametersz$FontTypeTest.test_default_parameters  s    r   c                 &   t        j                  d d      }|j                         }| j                  t	        |t
                     | j                  |dkD         |j                  ddd      }| j                  |j                         d   |kD         y Nr8   r   XFr      )r   r   
get_ascentr3   rA   r+   r   r   )r   r   ascentss       r   test_get_ascentzFontTypeTest.test_get_ascent  so    T2&
63/0
#HHS%1

Q&01r   c                     t        j                  d d      }|j                         }| j                  t	        |t
                     | j                  |dk         y Nr8   r   )r   r   get_descentr3   rA   r+   )r   r   descents      r   test_get_descentzFontTypeTest.test_get_descent#  sB    T2&--/
7C01!$r   c                 &   t        j                  d d      }|j                         }| j                  t	        |t
                     | j                  |dkD         |j                  ddd      }| j                  |j                         d   |k(         y r   )r   r   
get_heightr3   rA   r+   r   r   )r   r   heightr   s       r   test_get_heightzFontTypeTest.test_get_height*  so    T2&
63/0
#HHS%1

Q612r   c                     t        j                  d d      }|j                         }| j                  t	        |t
                     | j                  |dkD         y r   )r   r   get_linesizer3   rA   r+   )r   r   linesizes      r   test_get_linesizezFontTypeTest.test_get_linesize3  sE     T2&>>#
8S121%r   c                     t        j                  d d      }|j                  d      }|j                  d      }| j                  t	        |      d       | j                  t	        |      d       | j                  |d          | j                  ||       d}|j                  d      dd  }|j                  |      }| j                  t	        |      d       	 |j                  |      }| j                  t	        |      d       | j                  |d   |d          | j                  |d   |d          d	}|j                  |      }| j                  t	        |      d       | j                  |d          y # t        j                  $ r Y Xw xY w)
Nr8   .   .r   r      KUTF-16   u   𓀀)r   r   metricsr)   r*   rn   ro   assertNotEqualr   errorry   fail)r   r   umbmubs         r   test_metricszFontTypeTest.test_metrics;  s`    T2&YYs^YYt_R!$R!$RU#R HHXqr"YYq\R!$	.1B SWa(1r!u-1r!u-YYq\R!$"Q%  || 		s   E7 7FFc           	         t        j                  d d      }|j                  ddg dg d      }|j                  ddg dg d      }|j                  ddg dg d      }|j                  ddg dg d      }|j                  ddg dg d      }|j                  ddg d      }|j                  d	dg d      }|j                  d	dg dg d      }|j                  ddg dg d      }| j                  |j	                         d
   d
       |j                  d dg dg d      }| j                  |j	                         d
   d
       | j                  t        |j                  g dg dg d       | j                  t        |j                  ddg dg d       |j                  ddg d      }| j                  |j                  d      d   d
       |j                  ddg dg d      }|j                  ddg dg d      }| j                  t        ||             d}|j                  d      dd  }|j                  |dg dg d      }	 |j                  |dg dg d      }| j                  t        ||             | j                  t        |j                  dd
g d       | j                  t        |j                  dd
g d       y # t        j                  $ r Y `w xY w)Nr8   fooTr   r   xxx Fz   r   r   r   r   r&   r   r   r   r   s   ab cdzab cd)r   r   r   r)   r   assertRaises	TypeErrorr	   r3   r   ro   rU   r   r   
ValueError)r   r   r   susbr   r   s          r   test_renderzFontTypeTest.test_rendern  s]   T2&HHUD)_=HHUD)_=HHRy/:HHUE9o>HHUE9o>HHUE9-HHUE9-HHUE9o>HHR	?;a!,HHT5)_=a!,)QXXr5)_U)QXXq%OTHHS$0&)!,a0 XXc5)_=XXdE9o>R,-HHXqr"XXa	?;	3!UI?B \"b12 	*ahhQ	J*ahh
AyI || 		s   
K KKc                     t        j                  dd      }t        t         d      r5d}|j                  |dg dg d      }d}|j                  |dg dg d      }yy)	zAthat it renders without raising if there is a new enough SDL_ttf.Nr8   UCS4u   ￮Fr   r   u   𐀀)r   r   hasattrr   )r   r   ucs_2r   ucs_4s        r   test_render_ucs2_ucs4z"FontTypeTest.test_render_ucs2_ucs4  sW    T2& ;'Ey/BA Ey/BA	 (r   c                 .   t        j                  d d      }| j                  |j                                |j	                  d       | j                  |j                                |j	                  d       | j                  |j                                y Nr8   TF)r   r   rU   get_boldset_boldr3   r   s     r   test_set_boldzFontTypeTest.test_set_bold  sf    T2&&	

4

%	

5&r   c                 .   t        j                  d d      }| j                  |j                                |j	                  d       | j                  |j                                |j	                  d       | j                  |j                                y r	  )r   r   rU   
get_italic
set_italicr3   r   s     r   test_set_italiczFontTypeTest.test_set_italic  sf    T2&(	T'	U(r   c                 .   t        j                  d d      }| j                  |j                                |j	                  d       | j                  |j                                |j	                  d       | j                  |j                                y r	  )r   r   rU   get_underlineset_underliner3   r   s     r   test_set_underlinezFontTypeTest.test_set_underline  si    T2&*+	)*	*+r   c                 V   t         j                  dk7  rt        j                  d d      }| j                  |j	                                |j                  d       | j                  |j	                                |j                  d       | j                  |j	                                y y Nr/   r8   TF)r   r1   r   rU   get_strikethroughset_strikethroughr3   r   s     r   test_set_strikethroughz#FontTypeTest.test_set_strikethrough  s    ?2  r*AQ0023%OOA//12&Q0023 3r   c                     t        j                  d d      }| j                  |j                         d|_        | j	                  |j                         d|_        | j                  |j                         y r	  )r   r   rU   r<   r3   r   s     r   test_bold_attrzFontTypeTest.test_bold_attr  sV    T2&  r   c                     t        j                  d d      }| j                  |j                         d|_        | j	                  |j                         d|_        | j                  |j                         y r	  )r   r   rU   r:   r3   r   s     r   test_set_italic_propertyz%FontTypeTest.test_set_italic_property  sV    T2&"!"r   c                     t        j                  d d      }| j                  |j                         d|_        | j	                  |j                         d|_        | j                  |j                         y r	  )r   r   rU   	underliner3   r   s     r   test_set_underline_propertyz(FontTypeTest.test_set_underline_property  sV    T2&%$%r   c                    t         j                  dk7  rvt        j                  d d      }| j                  |j                         d|_        | j                  |j                         d|_        | j                  |j                         y y r  )r   r1   r   rU   strikethroughr3   r   s     r   test_set_strikethrough_propertyz,FontTypeTest.test_set_strikethrough_property  si    ?2  r*AQ__-"AOOOAOO,#AOQ__- 3r   c                    t        j                  d d      }d}|j                  |      }|\  }}|j                  |dd      }|j	                  d      }| j                  |t               | j                  |t               | j                  |j                         |       | j                  |j                  |      |       d}|j	                  d      dd  }|j                  |      }|j                  |      }| j                  ||       y )	Nr8   XgFr   asciir   r   r   )
r   r   r   r   ro   r'   r+   r)   r   r   )	r   r   r   r   r   r   r   btextbsizes	            r   	test_sizezFontTypeTest.test_size  s    T2&vvd|1HHT5/2G$a%a%t,-H%ab)uvvd|D%(r   c                 x    t        j                          | j                  t        t         j                  dd       y )Nzsome-fictional-font.ttfr8   )r   r   r   FileNotFoundErrorr   r   s    r   test_font_file_not_foundz%FontTypeTest.test_font_file_not_found  s.     	{//1JB	
r   c                    t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        j                  |d      }y Nr   r8   	r   rG   ra   rb   rp   splitr   __file__r   r   rC   rq   r   s       r   test_load_from_filez FontTypeTest.test_load_from_file  sZ    002	GGLLGGMM&//*1-{/K/K/M
	 Y+r   c                    t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        j                  |      }y Nr   r/  r2  s       r   test_load_from_file_defaultz(FontTypeTest.test_load_from_file_default	  sX    002	GGLLGGMM&//*1-{/K/K/M
	 Y'r   c                    t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        j                  t        j                  |      d      }t        j                  t        j                  |            }y r.  r   rG   ra   rb   rp   r0  r   r1  r   pathlibPathr2  s       r   test_load_from_pathlibz#FontTypeTest.test_load_from_pathlib  s|    002	GGLLGGMM&//*1-{/K/K/M
	 W\\)4b9W\\)45r   c                 <   t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        j                  t        j                  |            }y r5  r8  r2  s       r   test_load_from_pathlib_defaultz+FontTypeTest.test_load_from_pathlib_default  sa    002	GGLLGGMM&//*1-{/K/K/M
	 W\\)45r   c                 Z   t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        |d      5 }t        j                  |d      }d d d        y # 1 sw Y   y xY w)Nr   rbr8   
r   rG   ra   rb   rp   r0  r   r1  openr   r   rC   rq   r   r   s        r   test_load_from_file_objz$FontTypeTest.test_load_from_file_obj  s{    002	GGLLGGMM&//*1-{/K/K/M
	 )T" 	+a##Ar*D	+ 	+ 	+s   B!!B*c                 X   t        j                         }t        j                  j	                  t        j                  j                  t        j                        d   t        j                               }t        |d      5 }t        j                  |      }d d d        y # 1 sw Y   y xY w)Nr   r?  r@  rB  s        r   test_load_from_file_obj_defaultz,FontTypeTest.test_load_from_file_obj_default'  sy    002	GGLLGGMM&//*1-{/K/K/M
	 )T" 	'a##A&D	' 	' 	's   B  B)c                 T    t        j                  t        j                         d      }y )Nr8   r   r   rG   r   s     r   test_load_default_font_filenamez,FontTypeTest.test_load_default_font_filename/  s     [99;R@r   c                 R    t        j                  t        j                               }y r   rG  r   s     r   'test_load_default_font_filename_defaultz4FontTypeTest.test_load_default_font_filename_default4  s     [99;<r   c                    dd l }t        t              }t        j                  j                  ||      }t        j                  j                  |d      }|j                  ||       	 t        |d      5 }	 d d d        	 t        j                  |d       t        j                  |       y # 1 sw Y   6xY w# t        $ r t        j                  d      w xY w# t        j                  |       w xY w)Nr   ztest_sans.ttfr?  zthe path cannot be openedr8   )shutilrT   FONTDIRra   rb   rp   copyrA  r+  unittestSkipTestr   r   remove)r   rb   rL  fdirtemppgfontr   s          r   _load_unicodezFontTypeTest._load_unicode9  s    7|ww||D$'dO4FD!	AdD! Q	T2&IIdO   	A##$?@@	A
 IIdOs0   'B6 3B*5B6 >C *B3/B6 6CC/c                 &    | j                  d       y)z ASCII string as a unicode objectztemp_file.ttfNrU  r   s    r   test_load_from_file_unicode_0z*FontTypeTest.test_load_from_file_unicode_0J  s    ?+r   c                 &    | j                  d       y )Nu
   你好.ttfrW  r   s    r   test_load_from_file_unicode_1z*FontTypeTest.test_load_from_file_unicode_1N  s    <(r   c                    t         j                  j                  t         j                  j                  t        j
                        d   t        j                               }t        j                         }t        j                  dk(  rdnd}	 |j                  ||      }|j                  ||      }t        j                  |d      }y # t        $ r Y 4w xY w)Nr   win32replacesurrogateescaper8   )ra   rb   rp   r0  r   r1  r   rG   sysgetfilesystemencodingplatformdecodeAttributeErrorro   r   )r   rq   filesystem_encodingfilesystem_errors
bfont_pathr   s         r   test_load_from_file_bytesz&FontTypeTest.test_load_from_file_bytesQ  s    GGLLGGMM&//*1-{/K/K/M
	 "779),)@IFW	!(()<>OPI %%&9;LM
Z,  		s   C 	CCc                     t         j                  j                  t        d      }dD ]+  }t	        j
                  ||      }|j                  ddd       - y )NzPlayfairDisplaySemibold.ttf)<   (   r   r8   F   -   2   r   WHERETblack)ra   rb   rp   rM  r   r   r   )r   fpathr   r   s       r   test_issue_3144zFontTypeTest.test_issue_3144^  sJ    W&CD 5 	0D##E40DKKw/	0r   c                    t         j                  dk(  ry t        j                  d d      }t        j                         }|dk\  rd| j	                  t
        t        j                  j                  j                         | j	                  t
        t        j                  j                  j                  |       | j	                  t
        t        j                  j                  j                  dd       | j	                  t
        |j                  d       | j	                  t
        |j                  g d       | j	                  t        |j                  d       | j	                  t        |j                  d	       | j	                  t        |j                  d
       |j                  d       y | j	                  t        j                  |j                  d       y )Nr/      )r   r8   r   heyDevar   )Devaztoo long by farr   ry  )r   r1   r   r2   r   r   r   r   
set_scriptr   r   )r   r   ttf_versions      r   test_font_set_scriptz!FontTypeTest.test_font_set_scriptg  s7   ?2b)!557*$i)9)9)D)DEi)9)9)D)DdKi)9)9)D)DeVTi!<i:NOj$//;LMj$//2>j$//3?OOF#fllDOOVDr   N)%r1   r   r   r   r#   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r   r#  r)  r,  r3  r6  r;  r=  rC  rE  rH  rJ  rU  rX  rZ  rg  rq  r|  rj   r   r   r   r     s    2%3&1f(JT	C'),4!#&.)(
,(66+'A
=
",)-0Er   r   c                   h    e Zd ZdgZdZdZd Zd Z	 	 	 	 	 ddZd Z	d Z
d	 Zd
 Zd Zd Zd Zd Zy)VisualTestsinteractiveNFc                 6   | j                   t        j                          t        j                  j	                  d      | _         | j                   j                  d       t        j                  j                          t        j                  d d      | _	        y y )N)r   r   r   r   )
r   r   r   r   r   r   flipr   r   r   r   s    r   r   zVisualTests.setUp  sf    ;;KKM ..11*=DKKK_-NN! %%dB/DF r   c                 R    | j                   t        j                          d| _        y )NT)r   r   r"   abortedr   s    r   abortzVisualTests.abort  s    ;;"KKMr   c                    | j                   ryd}d}|}| j                  }	| j                  }
|
j                  d       t        j
                  j                          |s|s	|s|s|sd}nug }|r|j                  d       |r|j                  d       |r|j                  d       |r|j                  d	       |r|j                  d
       dj                  |       d}|	j                  |       |	j                  |       |	j                  |       t        j                  dk7  r|	j                  |       |	j                  ||d      }|
j!                  |||f       ||j#                         d   |z   z  }|	j                  d       |	j                  d       |	j                  d       t        j                  dk7  r|	j                  d       |	j                  ddd      }|
j!                  |||f       t        j
                  j                          	 t        j$                  j'                         D ]  }|j(                  t        j*                  k(  rm|j,                  t        j.                  k(  r| j1                           y|j,                  t        j2                  k(  r y|j,                  t        j4                  k(  r y|j(                  t        j6                  k(  s| j1                           y )NFr   r8   r   normalr<   r:   
underlinedr"  antialiased-z (y/n):r/   r   r   z(some comparison text)T)r  r   r   r   r   r   r  appendrp   r  r  r  r   r1   r  r   r   r   eventr   typeKEYDOWNkeyK_ESCAPEr  K_yK_nQUIT)r   r<   r:   r  r"  
antialiasespacingoffsetr   r   r   r   modesr   evts                  r   queryzVisualTests.query  sD    <<FFO$)}
DEV$X&\*_-]+hhuo&g.D	

4	V		"?2.HHT:y1A{#	QZZ\!_w&&	

5	U	?2&HH-ui@A{#||'') !88v~~-ww&//1

$ww&**,#ww&**,$88v{{*JJL ! r   c                 F    | j                  | j                  d             y )NTr;   r3   r  r   s    r   	test_boldzVisualTests.test_bold  s    


-.r   c                 F    | j                  | j                  d             y )NTr9   r  r   s    r   test_italiczVisualTests.test_italic  s    

$
/0r   c                 F    | j                  | j                  d             y )NT)r  r  r   s    r   test_underlinezVisualTests.test_underline  s    

T
23r   c                 n    t         j                  dk7  r"| j                  | j                  d             y y )Nr/   T)r"  r   r1   r3   r  r   s    r   test_strikethroughzVisualTests.test_strikethrough  s,    ?2OODJJTJ:; 3r   c                 F    | j                  | j                  d             y )NT)r  r  r   s    r   test_antialiasezVisualTests.test_antialiase  s    

d
34r   c                 H    | j                  | j                  dd             y )NT)r<   r  r  r   s    r   test_bold_antialiasez VisualTests.test_bold_antialiase  s    


>?r   c                 H    | j                  | j                  dd             y )NT)r:   r  r  r   s    r   test_italic_underlinez!VisualTests.test_italic_underline  s    

$$
?@r   c                 p    t         j                  dk7  r#| j                  | j                  dd             y y )Nr/   T)r<   r"  r  r   s    r   test_bold_strikethroughz#VisualTests.test_bold_strikethrough  s.    ?2OODJJDJEF 3r   )FFFFF)r1   r   r   __tags__r   r  r   r  r  r  r  r  r  r  r  r  r  rj   r   r   r~  r~  ~  s_    HFG0 <!|/14<5@AGr   r~  __main__)r_  ra   rO  r9  ra  r   r   r   rb   rp   dirnameabspathr1  rM  r   python_implementationIS_PYPYskipIfTestCaser   r   r   r~  r1   mainrj   r   r   <module>r     sU   
 	     & '',,rwwrwwx'@A:w
W	 2H224
4 34X&&  5D 34*Xx   *X 5*XZ 34kE8$$ kE 5kE\ 34iG(## iG 5iGX zHMMO r   