
    &h.j                        S SK r S SKrS SKrS SKrS SKrS SKrS SKJr  \R                  R                  \R                  R                  \R                  R                  \5      5      SS5      rS rS\R                  " 5       :H  r\R"                  " \S5       " S S	\R$                  5      5       r\R"                  " \S5       " S
 S\R$                  5      5       r\R"                  " \S5       " S S\R$                  5      5       r\R"                  " \S5       " S S\R$                  5      5       r\S:X  a  \R0                  " 5         gg)    N)fontfixturesfontsc                     U R                  5       nUR                  5       U:w  a  gUu  p4[        U5       H>  n[        U5       H,  nU R                  XV45      UR                  XV45      :w  d  M+      g   M@     g)NFT)get_sizerangeget_at)s1s2sizewhxys          N/var/www/auris/envauris/lib/python3.13/site-packages/pygame/tests/font_test.pyequal_imagesr      sg    ;;=D	{{}DA1XqAyy! BIIqf$55       PyPyzpypy skip known failurec                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rSrg)FontModuleTest   c                 .    [         R                  " 5         g Npygame_fontinitselfs    r   setUpFontModuleTest.setUp        r   c                 .    [         R                  " 5         g r   r   quitr   s    r   tearDownFontModuleTest.tearDown#   r!   r   c                    ^  U 4S jn[         R                  S:w  aM  [         R                  " 5       n[         R                  " SS9nU" U5        U" U5        T R                  X2:  5        g g )Nc                    > TR                  U [        5        TR                  [        U 5      S5        U  H  nTR                  U[        5        M     g )N   )assertIsInstancetupleassertEquallenint)verir   s     r   test_ver_tuple?FontModuleTest.test_get_sdl_ttf_version.<locals>.test_ver_tuple'   sA    !!#u-SXq)%%a- r   pygame.ftfontT)linked)r   __name__get_sdl_ttf_version
assertTrue)r   r1   compiledr4   s   `   r   test_get_sdl_ttf_version'FontModuleTest.test_get_sdl_ttf_version&   sZ    	. ?2"668H 44DAF8$6"OOF./ 3r   c                 X   [         R                  " 5       nSU;   a  SnO[        U5      S   n[         R                  " US5      nU R	                  [        U[         R                  5      5        [         R                  " USSS9nU R	                  [        U[         R                  5      5        [         R                  " USSS9nU R	                  [        U[         R                  5      5        [         R                  " SS5      nU R	                  [        U[         R                  5      5        g )Narialr      Titalicboldthisisnotafont)r   	get_fontssortedSysFontr7   
isinstanceFontType)r   r   	font_nameos       r   test_SysFontFontModuleTest.test_SysFont6   s    %%'e  Iua(I	2.
1k&:&:;<	2d;
1k&:&:;<	2D9
1k&:&:;< 0"5
1k&:&:;<r   c                 N    U R                  [        R                  " 5       S5        g )Nzfreesansbold.ttf)r,   r   get_default_fontr   s    r   test_get_default_font$FontModuleTest.test_get_default_fontH   s    5579KLr   c                 P    [         R                  " 5       nU R                  U5        g r   )r   rC   r7   )r   fntss     r    test_get_fonts_returns_something/FontModuleTest.test_get_fonts_returns_somethingK   s    $$&r   c                 4   [         R                  " 5       nU R                  U[        U5      S9  U Hd  nU R                  [	        U[
        5      U5        U R                  [        S U 5       5      5        U R                  UR                  5       U5        Mf     g )N)msgc              3   @   #    U  H  oR                  5       v   M     g 7fr   )isupper).0cs     r   	<genexpr>0FontModuleTest.test_get_fonts.<locals>.<genexpr>e   s      ;dds   )	r   rC   r7   reprrF   strassertFalseanyisalnum)r   rQ   names      r   test_get_fontsFontModuleTest.test_get_fontsZ   st    $$&$t*-D OOJtS148 S ;d ;;<OODLLND1 r   c                     U R                  [        R                  " 5       5        [        R                  " 5         U R	                  [        R                  " 5       5        g r   )r7   r   get_initr$   r^   r   s    r   test_get_initFontModuleTest.test_get_inith   s:    ,,./--/0r   c                 .    [         R                  " 5         g r   r   r   s    r   	test_initFontModuleTest.test_initm   r!   r   c                 :   [         R                  " 5       nU H  n[         R                  " U5      nU R                  US L 5        U R	                  [
        R                  R                  U5      =(       a    [
        R                  R                  U5      5        M     g r   )	r   rC   
match_fontr^   r7   ospathisabsisfile)r   r   r   rn   s       r   test_match_font_all_exist(FontModuleTest.test_match_font_all_existp   si    %%' D))$/DTT\*OOBGGMM$/HBGGNN44HI r   c           
      |   [         R                  " 5       S   n[         R                  " U5      nU R                  U5        UR	                  5       nSnSnUSR                  XAU/5      XAU/S XAU4 5       SR                  XSU/5      XSU/XX5//nU H)  nU R                  [         R                  " U5      X'5        M+     g)z.That match_font accepts names of various typesr   rB      thisisnotafont,c              3   $   #    U  H  ov   M     g 7fr    rX   ra   s     r   rZ   6FontModuleTest.test_match_font_name.<locals>.<genexpr>   s     =<dT<      ,N)r   rC   rl   assertIsNotNoneencodejoinr,   )r   r   	font_pathfont_b
not_a_fontnot_a_font_bgood_font_namesrH   s           r   test_match_font_name#FontModuleTest.test_match_font_namez   s    $$&q)**40	Y'%
( HHj
34z*=z<=II|\:;<0v4
  )I[33I>	U )r   c           
          SnSnUSR                  XU/5      XU/S XU4 5       USR                  X"U/5      X"U/XU//nU H)  nU R                  [        R                  " U5      U5        M+     g)z?match_font return None when names of various types do not existrB   rt   ru   c              3   $   #    U  H  ov   M     g 7fr   rw   rx   s     r   rZ   :FontModuleTest.test_not_match_font_name.<locals>.<genexpr>   s     CBdTBrz   r{   N)r~   assertIsNoner   rl   )r   r   r   bad_font_namesrH   s        r   test_not_match_font_name'FontModuleTest.test_not_match_font_name   s    %
(HHjj9:Z0CzzBCII|<@A6z2	
 (Ik44Y?K (r   c                 p    [         R                  " 5       nU R                  [        S U 5       5      5        g )Nc              3   L   #    U  H  n[         R                  " US S9v   M     g7f)Tr@   Nr   rl   rX   r   s     r   rZ   6FontModuleTest.test_match_font_bold.<locals>.<genexpr>   s     VPUK224dCPU   "$r   rC   r7   r_   r   r   s     r   test_match_font_bold#FontModuleTest.test_match_font_bold   s*    %%' 	VPUVVWr   c                 p    [         R                  " 5       nU R                  [        S U 5       5      5        g )Nc              3   L   #    U  H  n[         R                  " US S9v   M     g7f)Tr>   Nr   r   s     r   rZ   8FontModuleTest.test_match_font_italic.<locals>.<genexpr>   s     Led&&tD9er   r   r   s     r   test_match_font_italic%FontModuleTest.test_match_font_italic   s,    %%' 	LeLL	
r   c                 x   [         R                  " S5      n[        R                  " SS5      nUR	                  SSSS5      nU R                  UR                  5       5        UR                  S5        UR                  US	5        U R                  UR                  S	5      [         R                  " SSS5      5        g)
z(that the font background does not crash.)i@     N   Testr      r   r   r   r   r   r   r   r   )pygameSurfacer   Fontrenderr   get_colorkey	set_alphablitr,   r	   Color)r   surfr   images       r   test_issue_742FontModuleTest.test_issue_742   s    ~~j)b)FA	B%,,./		%  	V,fll1a.CDr   c                 p   [         R                  R                  S5        [        R                  " SS5      nSu  p#pEUR                  USU5      n[         R                  " UR                  5       SS9nUR                  S5      nUR                  US5        UR                  S5      n	U R                  X5        g)	zHCheck 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_alphablit(FontModuleTest.test_issue_font_alphablit   s     	
+b)%W"f{{4u-nnT]]_B7 #

6 2v!$F!3.Gr   c                     SSK n[        R                  " SS5      n[        R                  " 5         [        R                  " 5         AUR                  5         g)zCReinitialization of font module should not cause
segmentation faultr   Nr=   )gcr   r   r$   r   collect)r   r   r   s      r   test_segfault_after_reinit)FontModuleTest.test_segfault_after_reinit   s=     	b)


r   c                 .    [         R                  " 5         g r   r#   r   s    r   	test_quitFontModuleTest.test_quit   r!   r   rw   N)r5   
__module____qualname____firstlineno__r   r%   r9   rJ   rN   rR   rb   rf   ri   rq   r   r   r   r   r   r   r   r   __static_attributes__rw   r   r   r   r      sc    0 =$M21
JV6L"X
EH"	r   r   c                   &    \ rS rSrS rS rS rSrg)FontTest   c                 .    [         R                  " 5         g r   r   r   s    r   r   FontTest.setUp   r!   r   c                 .    [         R                  " 5         g r   r#   r   s    r   r%   FontTest.tearDown   r!   r   c                 \   [         R                  R                  S5      nUR                  5       n[        R
                  " S S5      nUR                  S5        UR                  SSSS5      nUR                  5       nUR                  Ul        U R                  U5        UR                  XEU5        [         R                  R                  5         U R                  [        UR                  S5      5      S S	 S5        U R                  [        UR                  UR                  5      5      S S	 S5        [        R                   R#                  S
5      S:w  Ga  UR                  S5        UR                  SSSS 5      nUR                  5       nUR                  Ul        U R                  U5        UR                  XEU5        [         R                  R                  5         U R                  [        UR                  S5      5      S S	 S5        U R                  [        UR                  UR                  5      5      S S	 S5        UR                  S5        UR                  SSS5      nUR                  5       nUR                  Ul        U R                  U5        UR                  XEU5        [         R                  R                  U5        U R                  [        UR                  S5      5      S S	 S5        U R                  [        UR                  UR                  5      5      S S	 S5        g g )Nr   r=   )
   r   r   z   barTr   r   r   r)   SDL_VIDEODRIVERdummy)r   r   r   get_rectr   r   fillr   topleftr7   r   updater,   r+   r	   rm   environget)r   screenrectffont_surface	font_rects         r   test_render_argsFontTest.test_render_args   sm   ((4 T2&L!xx$	?K ))+	 LL	%LY7v}}V45bq9?Kv}}Y->->?@!DoV ::>>+,7KK%88HdItDL$--/I $IOOL)KK;NN!!#U6==#89"1=|LU6==1B1B#CDRaH,WKK%88HdI>L$--/I $IOOL)KK;NN!!$'U6==#89"1=|LU6==1B1B#CDRaH,W' 8r   rw   N)r5   r   r   r   r   r%   r   r   rw   r   r   r   r      s    #Xr   r   c                       \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS rS r S r!S  r"S! r#S" r$S# r%S$r&g%)&FontTypeTesti  c                 .    [         R                  " 5         g r   r   r   s    r   r   FontTypeTest.setUp  r!   r   c                 .    [         R                  " 5         g r   r#   r   s    r   r%   FontTypeTest.tearDown  r!   r   c                 .    [         R                  " 5       ng r   )r   r   r   r   s     r   test_default_parameters$FontTypeTest.test_default_parameters  s    r   c                 (   [         R                  " S S5      nUR                  5       nU R                  [	        U[
        5      5        U R                  US:  5        UR                  SSS5      nU R                  UR                  5       S   U:  5        g Nr=   r   XFr      )r   r   
get_ascentr7   rF   r.   r   r   )r   r   ascentss       r   test_get_ascentFontTypeTest.test_get_ascent  so    T2&
63/0
#HHS%1

Q&01r   c                     [         R                  " S S5      nUR                  5       nU R                  [	        U[
        5      5        U R                  US:  5        g Nr=   r   )r   r   get_descentr7   rF   r.   )r   r   descents      r   test_get_descentFontTypeTest.test_get_descent#  sB    T2&--/
7C01!$r   c                 (   [         R                  " S S5      nUR                  5       nU R                  [	        U[
        5      5        U R                  US:  5        UR                  SSS5      nU R                  UR                  5       S   U:H  5        g r   )r   r   
get_heightr7   rF   r.   r   r   )r   r   heightr   s       r   test_get_heightFontTypeTest.test_get_height*  so    T2&
63/0
#HHS%1

Q612r   c                     [         R                  " S S5      nUR                  5       nU R                  [	        U[
        5      5        U R                  US:  5        g r   )r   r   get_linesizer7   rF   r.   )r   r   linesizes      r   test_get_linesizeFontTypeTest.test_get_linesize3  sE     T2&>>#
8S121%r   c                 "   [         R                  " S S5      nUR                  S5      nUR                  S5      nU R                  [	        U5      S5        U R                  [	        U5      S5        U R                  US   5        U R                  X#5        SnUR                  S5      SS  nUR                  U5      nU R                  [	        U5      S5         UR                  U5      nU R                  [	        U5      S5        U R                  US   US   5        U R                  US   US   5        S	nUR                  U5      nU R                  [	        U5      S5        U R                  US   5        g ! [        R                   a     NYf = f)
Nr=   .   .r   r      KUTF-16   u   𓀀)r   r   metricsr,   r-   r|   r}   assertNotEqualr   errorr   fail)r   r   umbmubs         r   test_metricsFontTypeTest.test_metrics;  s^    T2&YYs^YYt_R!$R!$RU# HHXqr"YYq\R!$	.1B SWa(1r!u-1r!u-YYq\R!$"Q%  || 		s   E7 7FFc           	         [         R                  " S S5      nUR                  SS/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nUR                  SS/ SQ5      nUR                  S	S/ SQ5      nUR                  S	S/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nU R                  UR	                  5       S
   S
5        UR                  S S/ SQ/ SQ5      nU R                  UR	                  5       S
   S
5        U R                  [        UR                  / S/ SQ/ SQ5        U R                  [        UR                  SS/ SQ/ SQ5        UR                  SS/ SQ5      nU R                  UR                  S5      S   S
5        UR                  SS/ SQ/ SQ5      nUR                  SS/ SQ/ SQ5      nU R                  [        X45      5        SnUR                  S5      SS  nUR                  US/ SQ/ SQ5      n UR                  US/ SQ/ SQ5      nU R                  [        X45      5        U R                  [        UR                  SS
/ SQ5        U R                  [        UR                  SS
/ SQ5        g ! [        R                   a     Naf = f)Nr=   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	   r7   r   r}   r^   r   r  
ValueError)r   r   r   susbr  r  s          r   test_renderFontTypeTest.test_rendern  sY   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 \"12 	*ahhQ	J*ahh
AyI || 		s   
K KKc                     [         R                  " SS5      n[        [         S5      (       a5  SnUR                  US/ SQ/ SQ5      nSnUR                  US/ SQ/ SQ5      ngg)	zAthat it renders without raising if there is a new enough SDL_ttf.Nr=   UCS4u   ￮Fr   r   u   𐀀)r   r   hasattrr   )r   r   ucs_2r   ucs_4s        r   test_render_ucs2_ucs4"FontTypeTest.test_render_ucs2_ucs4  sZ    T2& ;''Ey/BA Ey/BA	 (r   c                 0   [         R                  " S S5      nU R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        g Nr=   TF)r   r   r^   get_boldset_boldr7   r   s     r   test_set_boldFontTypeTest.test_set_bold  sf    T2&&	

4

%	

5&r   c                 0   [         R                  " S S5      nU R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        g r2  )r   r   r^   
get_italic
set_italicr7   r   s     r   test_set_italicFontTypeTest.test_set_italic  sf    T2&(	T'	U(r   c                 0   [         R                  " S S5      nU R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        UR	                  S5        U R                  UR                  5       5        g r2  )r   r   r^   get_underlineset_underliner7   r   s     r   test_set_underlineFontTypeTest.test_set_underline  si    T2&*+	)*	*+r   c                 Z   [         R                  S:w  a  [         R                  " S S5      nU R                  UR	                  5       5        UR                  S5        U R                  UR	                  5       5        UR                  S5        U R                  UR	                  5       5        g g Nr3   r=   TF)r   r5   r   r^   get_strikethroughset_strikethroughr7   r   s     r   test_set_strikethrough#FontTypeTest.test_set_strikethrough  s    ?2  r*AQ0023%OOA//12&Q0023 3r   c                     [         R                  " S S5      nU R                  UR                  5        SUl        U R	                  UR                  5        SUl        U R                  UR                  5        g r2  )r   r   r^   rA   r7   r   s     r   test_bold_attrFontTypeTest.test_bold_attr  sV    T2&  r   c                     [         R                  " S S5      nU R                  UR                  5        SUl        U R	                  UR                  5        SUl        U R                  UR                  5        g r2  )r   r   r^   r?   r7   r   s     r   test_set_italic_property%FontTypeTest.test_set_italic_property  sV    T2&"!"r   c                     [         R                  " S S5      nU R                  UR                  5        SUl        U R	                  UR                  5        SUl        U R                  UR                  5        g r2  )r   r   r^   	underliner7   r   s     r   test_set_underline_property(FontTypeTest.test_set_underline_property  sV    T2&%$%r   c                    [         R                  S:w  aw  [         R                  " S S5      nU R                  UR                  5        SUl        U R                  UR                  5        SUl        U R                  UR                  5        g g rB  )r   r5   r   r^   strikethroughr7   r   s     r   test_set_strikethrough_property,FontTypeTest.test_set_strikethrough_property  si    ?2  r*AQ__-"AOOOAOO,#AOQ__- 3r   c                    [         R                  " S S5      nSnUR                  U5      nUu  pEUR                  USS5      nUR	                  S5      nU R                  U[        5        U R                  U[        5        U R                  UR                  5       U5        U R                  UR                  U5      U5        SnUR	                  S5      SS  nUR                  U5      nUR                  U5      nU R                  X85        g )	Nr=   XgFr   asciir  r  r  )
r   r   r   r   r}   r*   r.   r,   r   r  )	r   r   r   r   r   r   r   btextbsizes	            r   	test_sizeFontTypeTest.test_size  s    T2&vvd|HHT5/2G$a%a%t,-H%ab)uvvd|D(r   c                 z    [         R                  " 5         U R                  [        [         R                  SS5        g )Nzsome-fictional-font.ttfr=   )r   r   r#  FileNotFoundErrorr   r   s    r   test_font_file_not_found%FontTypeTest.test_font_file_not_found  s.     	{//1JB	
r   c                    [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[         R                  " US5      ng Nr   r=   	r   rM   rm   rn   r~   splitr   __file__r   r   rH   r   r   s       r   test_load_from_file FontTypeTest.test_load_from_file  sZ    002	GGLLGGMM&//*1-{/K/K/M
	 Y+r   c                    [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[         R                  " U5      ng Nr   rb  re  s       r   test_load_from_file_default(FontTypeTest.test_load_from_file_default	  sX    002	GGLLGGMM&//*1-{/K/K/M
	 Y'r   c                    [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[         R                  " [        R                  " U5      S5      n[         R                  " [        R                  " U5      5      ng ra  r   rM   rm   rn   r~   rc  r   rd  r   pathlibPathre  s       r   test_load_from_pathlib#FontTypeTest.test_load_from_pathlib  s|    002	GGLLGGMM&//*1-{/K/K/M
	 W\\)4b9W\\)45r   c                 D   [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[         R                  " [        R                  " U5      5      ng ri  rm  re  s       r   test_load_from_pathlib_default+FontTypeTest.test_load_from_pathlib_default  sa    002	GGLLGGMM&//*1-{/K/K/M
	 W\\)45r   c                 j   [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[        US5       n[         R                  " US5      nS S S 5        g ! , (       d  f       g = f)Nr   rbr=   
r   rM   rm   rn   r~   rc  r   rd  openr   r   rH   r   r   r   s        r   test_load_from_file_obj$FontTypeTest.test_load_from_file_obj  sr    002	GGLLGGMM&//*1-{/K/K/M
	 )T"a##Ar*D #""s   B$$
B2c                 h   [         R                  " 5       n[        R                  R	                  [        R                  R                  [        R                  5      S   [         R                  " 5       5      n[        US5       n[         R                  " U5      nS S S 5        g ! , (       d  f       g = f)Nr   rv  rw  ry  s        r   test_load_from_file_obj_default,FontTypeTest.test_load_from_file_obj_default'  sp    002	GGLLGGMM&//*1-{/K/K/M
	 )T"a##A&D #""s   B##
B1c                 X    [         R                  " [         R                  " 5       S5      ng )Nr=   r   r   rM   r   s     r   test_load_default_font_filename,FontTypeTest.test_load_default_font_filename/  s     [99;R@r   c                 V    [         R                  " [         R                  " 5       5      ng r   r  r   s     r   'test_load_default_font_filename_default4FontTypeTest.test_load_default_font_filename_default4  s     [99;<r   c                    SS K n[        [        5      n[        R                  R                  X15      n[        R                  R                  US5      nUR                  XT5         [        US5       n S S S 5         [        R                  " US5        [        R                  " U5        g ! , (       d  f       N== f! [         a    [        R                  " S5      ef = f! [        R                  " U5        f = f)Nr   ztest_sans.ttfrv  zthe path cannot be openedr=   )shutilr]   FONTDIRrm   rn   r~   copyrx  r]  unittestSkipTestr   r   remove)r   rn   r  fdirtemppgfontr   s          r   _load_unicodeFontTypeTest._load_unicode9  s    7|ww||D'dO4F!	AdD!Q "	T2&IIdO "!  	A##$?@@	A
 IIdOs6   %B; 1B*3B; <C *
B84B; 8B; ;!CC7c                 &    U R                  S5        g)z ASCII string as a unicode objectztemp_file.ttfNr  r   s    r   test_load_from_file_unicode_0*FontTypeTest.test_load_from_file_unicode_0J  s    ?+r   c                 &    U R                  S5        g )Nu
   你好.ttfr  r   s    r   test_load_from_file_unicode_1*FontTypeTest.test_load_from_file_unicode_1N  s    <(r   c                    [         R                  R                  [         R                  R                  [        R
                  5      S   [        R                  " 5       5      n[        R                  " 5       n[        R                  S:X  a  SOSn UR                  X#5      nUR                  X#5      n[        R                  " US5      ng ! [         a     N5f = f)Nr   win32replacesurrogateescaper=   )rm   rn   r~   rc  r   rd  r   rM   sysgetfilesystemencodingplatformdecodeAttributeErrorr}   r   )r   r   filesystem_encodingfilesystem_errors
bfont_pathr   s         r   test_load_from_file_bytes&FontTypeTest.test_load_from_file_bytesQ  s    GGLLGGMM&//*1-{/K/K/M
	 "779),)@IFW	!(()<PI %%&9M
Z,  		s   C
 

CCc                     [         R                  R                  [        S5      nS H,  n[        R
                  " X5      nUR                  SSS5        M.     g )NzPlayfairDisplaySemibold.ttf)<   (   r   r=   F   -   2   r   WHERETblack)rm   rn   r~   r  r   r   r   )r   fpathr   r   s       r   test_issue_3144FontTypeTest.test_issue_3144^  sC    W&CD 5D##E0DKKw/ 5r   c                    [         R                  S:X  a  g [         R                  " S S5      n[         R                  " 5       nUS:  Gad  U R	                  [
        [        R                  R                  R                  5        U R	                  [
        [        R                  R                  R                  U5        U R	                  [
        [        R                  R                  R                  SS5        U R	                  [
        UR                  S5        U R	                  [
        UR                  / SQ5        U R	                  [        UR                  S5        U R	                  [        UR                  S	5        U R	                  [        UR                  S
5        UR                  S5        g U R	                  [        R                  UR                  S5        g )Nr3      )r  r=   r   heyDevar   )Devaztoo long by farr"  r  )r   r5   r   r6   r#  r$  r   r   
set_scriptr%  r  )r   r   ttf_versions      r   test_font_set_script!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   rw   N)'r5   r   r   r   r   r%   r   r   r  r  r  r  r(  r/  r5  r:  r?  rE  rH  rK  rO  rS  rZ  r^  rf  rj  rp  rs  rz  r}  r  r  r  r  r  r  r  r  r   rw   r   r   r   r     s    2%3&1f(JT	C'),4!#&.)(
,(66+'A
=
",)-0Er   r   c                   r    \ rS rSrS/rSrSrS rS r     SS jr	S r
S	 rS
 rS rS rS rS rS rSrg)VisualTestsi~  interactiveNFc                 <   U R                   c  [        R                  " 5         [        R                  R	                  S5      U l         U R                   R                  S5        [        R                  R                  5         [        R                  " S S5      U l	        g g )N)r   r   r   r   )
r   r   r   r   r   r   flipr   r   r   r   s    r   r   VisualTests.setUp  sf    ;;KKM ..11*=DKKK_-NN! %%dB/DF r   c                 V    U R                   b  [        R                  " 5         SU l        g )NT)r   r   r$   abortedr   s    r   abortVisualTests.abort  s    ;;"KKMr   c                 V   U R                   (       a  gSnSnUnU R                  n	U R                  n
U
R                  S5        [        R
                  R                  5         U(       d  U(       d  U(       d  U(       d
  U(       d  SnO/ nU(       a  UR                  S5        U(       a  UR                  S5        U(       a  UR                  S5        U(       a  UR                  S	5        U(       a  UR                  S
5        SR                  U5       S3nU	R                  U5        U	R                  U5        U	R                  U5        [        R                  S:w  a  U	R                  U5        U	R                  XS5      nU
R!                  XU45        XR#                  5       S   U-   -  nU	R                  S5        U	R                  S5        U	R                  S5        [        R                  S:w  a  U	R                  S5        U	R                  SSS5      nU
R!                  XU45        [        R
                  R                  5          [        R$                  R'                  5        H  nUR(                  [        R*                  :X  ap  UR,                  [        R.                  :X  a  U R1                  5           gUR,                  [        R2                  :X  a    gUR,                  [        R4                  :X  a    gUR(                  [        R6                  :X  d  M  U R1                  5           g   M  )NFr   r=   r   normalrA   r?   
underlinedrR  antialiased-z (y/n):r3   r   r   z(some comparison text)T)r  r   r   r   r   r   r  appendr~   r4  r9  r>  r   r5   rD  r   r   r   eventr   typeKEYDOWNkeyK_ESCAPEr  K_yK_nQUIT)r   rA   r?   rN  rR  
antialiasespacingoffsetr   r   r   r   modesr   evts                  r   queryVisualTests.query  s7    <<FFO$)}
DEV$X&\*_-]+hhuo&g.D	

4	V		"?2.HHTy1A{#	ZZ\!_w&&	

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

$ww&**,#ww&**,$88v{{*JJL  * r   c                 @    U R                  U R                  SS95        g )NTr@   r7   r  r   s    r   	test_boldVisualTests.test_bold  s    


-.r   c                 @    U R                  U R                  SS95        g )NTr>   r  r   s    r   test_italicVisualTests.test_italic  s    

$
/0r   c                 @    U R                  U R                  SS95        g )NT)rN  r  r   s    r   test_underlineVisualTests.test_underline  s    

T
23r   c                 j    [         R                  S:w  a  U R                  U R                  SS95        g g )Nr3   T)rR  r   r5   r7   r  r   s    r   test_strikethroughVisualTests.test_strikethrough  s,    ?2OODJJTJ:; 3r   c                 @    U R                  U R                  SS95        g )NT)r  r  r   s    r   test_antialiaseVisualTests.test_antialiase  s    

d
34r   c                 B    U R                  U R                  SSS95        g )NT)rA   r  r  r   s    r   test_bold_antialiase VisualTests.test_bold_antialiase  s    


>?r   c                 B    U R                  U R                  SSS95        g )NT)r?   rN  r  r   s    r   test_italic_underline!VisualTests.test_italic_underline  s    

$$
?@r   c                 l    [         R                  S:w  a   U R                  U R                  SSS95        g g )Nr3   T)rA   rR  r  r   s    r   test_bold_strikethrough#VisualTests.test_bold_strikethrough  s.    ?2OODJJDJEF 3r   )r  r   r   )FFFFF)r5   r   r   r   __tags__r   r  r   r  r  r  r  r  r  r  r  r  r  r   rw   r   r   r  r  ~  s_    HFG0 <!|/14<5@AGr   r  __main__)r  rm   r  rn  r  r   r   r   rn   r~   dirnameabspathrd  r  r   python_implementationIS_PYPYskipIfTestCaser   r   r   r  r5   mainrw   r   r   <module>r      sH   
 	     & '',,rwwrwwx'@A:w
W	 H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MMO r   