
    0hh&                         S r SSKrSSKrSSKrSSKrSSKJr  SSKJ	r	   SSK
JrJrJr   " S S\R                  5      r\S	:X  a  \R$                  " 5         gg! \ a	    S=r=rr N<f = f)
zTest script for the Unicode implementation.

Written by Bill Tutt.
Modified for Python 2.0 by Fredrik Lundh (fredrik@pythonware.com)

(c) Copyright CNRI, All Rights Reserved. NO WARRANTY.

    N)support)HTTPException)INT_MAXPY_SSIZE_T_MAXUINT_MAXl    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\R&                  \R*                  " \\:  S5      \R0                  " \S-   SSS9S 5       5       5       rSrg)UnicodeNamesTest   c                 Z    [         R                  " SU-  5      nU R                  X25        U$ )Nz"\N{%s}")astliteral_evalassertEqual)selfnamecoderess       6/opt/python-3.13.8/usr/lib/python3.13/test/test_ucn.pycheckletterUnicodeNamesTest.checkletter   s,     {T12#
    c           
          / SQnSnU R                  SR                  [        X5       Vs/ s H  o0R                  " U6 PM     sn5      U5        g s  snf )N)zLATIN CAPITAL LETTER TLATIN SMALL LETTER HLATIN SMALL LETTER ESPACEzLATIN SMALL LETTER RzLATIN CAPITAL LETTER EzLATIN SMALL LETTER Dr   zLATIN SMALL LETTER fzLATIN CAPITAL LeTtEr ozLATIN SMaLl LETTER xr   zLATIN SMALL LETTER ALATIN SMALL LETTER Tr   r   r   r   r   SpAcEzLATIN SMALL LETTER Sr   LATIN small LETTER er   zLATIN SMALL LETTER Pz	FULL STOPzThe rEd fOx ate the sheep. )r   joinzipr   )r   charsstringargss       r   test_generalUnicodeNamesTest.test_general!   sO    
8 .GGU9KL9K%%t,9KLM	
Ls   Ac                 &   SR                  [        [        [        [	        S5      [	        S5      5      5      5       HR  nSUR                  5       -  n[        R                  " U5      nU R                  [        R                  " U5      U5        MT     g )Nr   azzLATIN SMALL LETTER %s)
r   mapchrrangeordupperunicodedatalookupr   r   )r   charr   r   s       r   test_ascii_letters#UnicodeNamesTest.test_ascii_lettersF   sg    GGCU3s8SX%>?@D*TZZ\9D%%d+D[--d3T: Ar   c                 "   U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  S	S
5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  [        [        R                  S5        g )NzHANGUL SYLLABLE GAu   가zHANGUL SYLLABLE GGWEOSSu   꿨zHANGUL SYLLABLE DOLSu   돐zHANGUL SYLLABLE RYANu   랸zHANGUL SYLLABLE MWIKu   뮠zHANGUL SYLLABLE BBWAEMu   뾈zHANGUL SYLLABLE SSEOLu   썰zHANGUL SYLLABLE YIu   의zHANGUL SYLLABLE JJYOSSu   쭀zHANGUL SYLLABLE KYEOLSu   켨zHANGUL SYLLABLE PANu   판zHANGUL SYLLABLE HWEOKu   훸zHANGUL SYLLABLE HIHu   힣u   힤)r   assertRaises
ValueErrorr.   r   r   s    r   test_hangul_syllables&UnicodeNamesTest.test_hangul_syllablesL   s    -x82H=/:/:/:18<0(;-x818<18<.90(;.9*k&6&6Ar   c                    U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  S	S
5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        g )NzCJK UNIFIED IDEOGRAPH-3400u   㐀zCJK UNIFIED IDEOGRAPH-4DB5u   䶵zCJK UNIFIED IDEOGRAPH-4E00u   一zCJK UNIFIED IDEOGRAPH-9FCBu   鿋zCJK UNIFIED IDEOGRAPH-20000u   𠀀zCJK UNIFIED IDEOGRAPH-2A6D6u   𪛖zCJK UNIFIED IDEOGRAPH-2A700u   𪜀zCJK UNIFIED IDEOGRAPH-2B734u   𫜴zCJK UNIFIED IDEOGRAPH-2B740u   𫝀zCJK UNIFIED IDEOGRAPH-2B81Du   𫠝zCJK UNIFIED IDEOGRAPH-3134Au   𱍊r   r6   s    r   test_cjk_unified_ideographs,UnicodeNamesTest.test_cjk_unified_ideographs]   s    5x@5x@5x@5x@6E6E6E6E6E6E6Er   c                     [        S5       HP  n[        U5      n[        R                  " US 5      nUc  M*  U R	                  [        R
                  " U5      U5        MR     g )Ni   )r+   r*   r.   r   r   r/   )r   r   r0   r   s       r   test_bmp_characters$UnicodeNamesTest.test_bmp_charactersj   sL    'NDt9D##D$/D  !3!3D!94@	 #r   c                     U R                  SS5        U R                  SS5        U R                  SS5        U R                  SS5        g )	NzPILCROW SIGN   ¶zREPLACEMENT CHARACTERu   �z)HALFWIDTH KATAKANA SEMI-VOICED SOUND MARKu   ﾟzFULLWIDTH LATIN SMALL LETTER Au   ａr:   r6   s    r   test_misc_symbols"UnicodeNamesTest.test_misc_symbolsq   sE    20(;DhO98Dr   c                    / SQnU H  u  p#U R                  U[        U5      5        [        R                  " [        U5      5      nU R	                  XB5        U R                  [        R                  " U5      [        R                  " U5      5        U R                  [        5         [        R                  R                  U5        S S S 5        M     g ! , (       d  f       M  = f)N))zLATIN CAPITAL LETTER GHAi  )zLATIN SMALL LETTER GHAi  )zKANNADA LETTER LLLAi  )zLAO LETTER FO FONi  )zLAO LETTER FO FAYi  )zLAO LETTER ROi  )zLAO LETTER LOi  )z#TIBETAN MARK BKA- SHOG GI MGO RGYANi  )zYI SYLLABLE ITERATION MARKi  )z=PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKETi  )z4BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASISi )
r   r*   r.   r   assertNotEqualr   r/   r4   KeyError	ucd_3_2_0)r   aliasesalias	codepointr   s        r   test_aliasesUnicodeNamesTest.test_aliasesw   s    
 !(EUC	N3##C	N3D,[//6(//57""8,%%,,U3 -, !( -,s   & C
C"	c                    [        SS5       He  nU R                  [        5       n[        R                  " [        U5      5        S S S 5        U R                  [        WR                  5      S5        Mg     g ! , (       d  f       N8= f)Ni     no such name	r+   r4   r5   r.   r   r*   r   str	exceptionr   cpcms      r   test_aliases_names_in_pua_range0UnicodeNamesTest.test_aliases_names_in_pua_range   Z    )B"":."  R) /S.? *..    A77
B	c                    [        SS5       He  nU R                  [        5       n[        R                  " [        U5      5        S S S 5        U R                  [        WR                  5      S5        Mg     g ! , (       d  f       N8= f)NrN   i rO   rP   rS   s      r   'test_named_sequences_names_in_pua_range8UnicodeNamesTest.test_named_sequences_names_in_pua_range   rX   rY   c                    / SQnU H  u  p#U R                  [        R                  " U5      U5        U R                  [        5         U R                  US 5        S S S 5        U R                  [        5         [        R                  R                  U5        S S S 5        M     g ! , (       d  f       NP= f! , (       d  f       M  = f)N))zLATIN SMALL LETTER R WITH TILDEu   r̃)zTAMIL SYLLABLE SAIu   ஸை)zTAMIL SYLLABLE MOOu   மோ)zTAMIL SYLLABLE NNOOu   ணோ)zTAMIL CONSONANT KSSu   க்ஷ்)r   r.   r/   r4   SyntaxErrorr   rF   rG   )r   	sequencesseqname
codepointss       r   test_named_sequences_sample,UnicodeNamesTest.test_named_sequences_sample   s    
	 $-G[//8*E"";/  $/ 0""8,%%,,W5 -,	 $-//,,s   B$7 B5$
B2	5
C	c                    S nS[         R                  -  n [        R                  " USUS9nW   U H  nUR                  5       nU(       a  UR                  S5      (       a  M2  UR                  S5      u  pgS	R                  S
 UR                  5        5       5      nU R                  [         R                   " U5      U5        U R#                  [$        5         U R'                  US 5        S S S 5        U R#                  [(        5         [         R*                  R!                  U5        S S S 5        GM     S S S 5        g ! [        R
                  R                   a3  nUR                  5         U R                  SU SU< 35         S nAGN]S nAf[        [        4 a#  nU R                  SU SU< 35         S nAGNS nAff = f! , (       d  f       N= f! , (       d  f       GM  = f! , (       d  f       g = f)Nc                 H    U R                  5       n[        R                  U;   $ )N)readliner.   unidata_version)testfilehdrs     r   check_versionAUnicodeNamesTest.test_named_sequences_full.<locals>.check_version   s!    ##%C..#55r   z7http://www.pythontest.net/unicode/%s/NamedSequences.txtzutf-8)encodingcheckzCould not retrieve z: #;r   c              3   L   #    U  H  n[        [        US 5      5      v   M     g7f)   N)r*   int).0rT   s     r   	<genexpr>=UnicodeNamesTest.test_named_sequences_full.<locals>.<genexpr>   s      $S@R"SR%5%5@Rs   "$)r.   rg   r   open_urlresourceurlliberror	HTTPErrorcloseskipTestOSErrorr   strip
startswithsplitr   r   r/   r4   r^   r   rF   rG   )r   rj   urltestdataexcliner`   ra   s           r   test_named_sequences_full*UnicodeNamesTest.test_named_sequences_full   s   	6 I**+	@//g6CEH  zz|ts33&*jjo#WW$S
@P@P@R$SS
  !3!3G!<jI&&{3$$Wd3 4&&x0))009 10 ! X ||%% 	@IIKMM/uBsg>??' 	@MM/uBsg>??	@ 4300 Xs_   D? B)G(G,G(	 G)G(?G(FGF<<G
GG(
G%	G((
G6c                 (   U R                  [        [        R                  5        U R                  [        [        R                  S5        U R                  [        [        R                  5        U R                  [
        [        R                  S5        g )Nxxunknown)r4   	TypeErrorr.   r   r/   rF   r6   s    r   test_errorsUnicodeNamesTest.test_errors   s^    )[%5%56)[%5%5t<)[%7%78(K$6$6	Br   c           	         U R                  [        [        SSS5        U R                  [        [        [        SSS-  -  S5      SS5        U R                  [        [        SSS5        U R                  [        [        S	SS5        g )
Ns   \N{blah}unicode-escapestrictz\N{%s}xi ascii   \N{SPACEs   \NSPACE)r4   UnicodeErrorrQ   bytesr6   s    r   test_strict_error_handling+UnicodeNamesTest.test_strict_error_handling   s    /	

 	yC&L17;=Mx	

 	/	

 	.	
r   zneeds UINT_MAX < SIZE_MAX      F)sizememusedry_runc                     SS[         S-   -  -   S-   nU R                  [        U5      [        S5      [         S-   -   5        U R                  [        SUR
                  S5        g )Nr      xr      }s	   \N{SPACE}zunknown Unicode character namer   )r   r   lenassertRaisesRegexr   decode)r   r   r   s      r   test_issue16335 UnicodeNamesTest.test_issue16335   s[    
 48a<0047Q]!3x!|!DE|,HH&	
r    N)__name__
__module____qualname____firstlineno__r   r$   r1   r7   r;   r>   rB   rK   rV   r[   rb   r   r   r   r   cpython_onlyunittest
skipUnlessr   r   
bigmemtestr   r   __static_attributes__r   r   r   r	   r	      s    #
J;B"FAE44@@6 :8C
, >13NOX\%G
 H P 
r   r	   __main__)__doc__r   r   r.   urllib.errorrw   testr   http.clientr   	_testcapir   r   r   ImportErrorTestCaser	   r   mainr   r   r   <module>r      sw         %4;;Z
x(( Z
z zMMO A  4*33G3nx4s   
A A'&A'