
    0hhF                     *   S SK r S SKJr  S SKrS SKrS SKrS SKJrJrJ	r	J
r
JrJr   " S S\R                  5      r " S S\R                  5      r " S S	\5      r " S
 S\5      r " S S\R                  5      r\S:X  a  \R(                  " 5         gg)    N)HTTPException)open_urlresourcerequires_resourcescript_helpercpython_onlycheck_disallow_instantiationforce_not_colorizedc                   4    \ rS rSrSr\" S5      S 5       rSrg)UnicodeMethodsTest   (63aa77dcb36b0e1df082ee2a6071caeda7f0955ecpuc                    [         R                  " 5       n[        [        R                  S-   5       GH  n[        U5      nSUR                  5          SUR                  5          SUR                  5          SUR                  5          SUR                  5          SUR                  5          SUR                  5          SUR                  5          SUR                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          SUS-   R                  5          UR                  5       UR!                  5       UR#                  5       US-   R                  5       US-   R!                  5       US-   R#                  5       US-   R#                  5       /nUR%                  SR'                  U5      R)                  SS	5      5        GM     UR+                  5       nU R-                  XPR.                  5        g )
N   01abc123z 	ABC utf-8surrogatepass)hashlibsha1rangesys
maxunicodechrisalnumisalpha	isdecimalisdigitislower	isnumericisspaceistitleisupperloweruppertitleupdatejoinencode	hexdigestassertEqualexpectedchecksum)selfhichardataresults         >/opt/python-3.13.8/usr/lib/python3.13/test/test_unicodedata.pytest_method_checksum'UnicodeMethodsTest.test_method_checksum   s   LLNs~~)*Aq6D T\\^$T\\^$T^^%&T\\^$T\\^$T^^%&T\\^$T\\^$T\\^$ dUl++-.dUl++-.dUl--/0dUl++-.dUl++-.dUl--/0dUl++-.dUl++-.dUl++-. 





 $$&$$&$$&$$&A"DF HHRWWT]))'?CDK +L !6!67     N)__name__
__module____qualname____firstlineno__r/   r   r7   __static_attributes__r:   r9   r6   r   r      s"     Bu)8 )8r9   r   c                       \ rS rSr\rSrg)UnicodeDatabaseTestI   r:   N)r;   r<   r=   r>   unicodedatadbr?   r:   r9   r6   rA   rA   I   s    	Br9   rA   c                       \ rS rSrSr\" S5      S 5       r\" S5      S 5       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)UnicodeFunctionsTestL   (232affd2a50ec4bd69d2482aa0291385cbdefabar   c                    / n[         R                  " 5       n[        [        R                  S-   5       GHs  n[        U5      n[        U R                  R                  US5      S5      [        U R                  R                  US5      S5      [        U R                  R                  US5      S5      U R                  R                  U5      U R                  R                  U5      U R                  R                  U5      [        U R                  R                  U5      5      [        U R                  R!                  U5      5      ["        R$                  " U5      U R                  R'                  US5      /
nUR)                  SR+                  U5      R-                  S5      5        GMv     UR/                  5       nU R1                  XPR2                  5        g )Nr   z.12gr   ascii)r   r   r   r   r   r   formatrD   digitnumericdecimalcategorybidirectionaldecompositionstrmirrored	combiningrC   east_asian_widthnamer*   r+   r,   r-   r.   r/   )r0   r4   r1   r2   r3   r5   s         r6   test_function_checksum+UnicodeFunctionsTest.test_function_checksumR   sM   LLNs~~)*Aq6D tww}}T2.7twwtR0&9twwtR0&9  &%%d+%%d+DGG$$T*+DGG%%d+,,,T2T2&D HHRWWT]))'23 +  !6!67r9   c                     [        [        R                  S-   5       H^  n[        U5      nU R                  R                  US 5      =n(       d  M3  U R                  U R                  R                  U5      U5        M`     g )Nr   )r   r   r   r   rD   rW   r.   lookup)r0   r2   r3   looked_names       r6   test_name_inverse_lookup-UnicodeFunctionsTest.test_name_inverse_lookupj   sZ    s~~)*Aq6D"ggll466{6  !<dC +r9   c                     / [        SS5      Q[        SS5      Q[        SS5      QnU H9  n[        U5      nU R                  [        U R                  R
                  U5        M;     g )Ni   i  i   i i   i )r   r   assertRaises
ValueErrorrD   rW   )r0   puasr2   r3   s       r6   test_no_names_in_pua)UnicodeFunctionsTest.test_no_names_in_puaq   sd    ,vv& ,w(,x*, Aq6Dj$'',,= r9   c                 l    S H.  nU R                  [        U R                  R                  U5        M0     g )N)zLATIN SMLL LETR AzOPEN HANDS SIGHSDREGSHANDBUGz,MODIFIER LETTER CYRILLIC SMALL QUESTION MARKz???)r`   KeyErrorrD   r[   )r0   nonexistants     r6   test_lookup_nonexistant,UnicodeFunctionsTest.test_lookup_nonexistanty   s*    
K hD
r9   c                    U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S	5        U R                  [
        U R                  R                  S
5        g NA9	      ⅛   ⑨   𠀀u   𝟽   xxx)r.   rD   rM   r`   	TypeErrorra   r0   s    r6   
test_digitUnicodeFunctionsTest.test_digit   s   sD148s+Q/x6=x0!4|T:DA|4a8)TWW]]3)TWW]]D9*dggmmS9r9   c                 b   U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S	5        U R                  U R                  R                  S
S 5      S 5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        U R                  [
        U R                  R                  S5        g )Nrn   ro   rp   rq   g      ?rr   g      "@u   ꘧g      @rs      𐄪i(#  ru   rv   )r.   rD   rN   r`   rw   ra   rx   s    r6   test_numeric!UnicodeFunctionsTest.test_numeric   s   T2D9-q12E:2C82C8t<dC6=)TWW__5)TWW__d;*dggoos;r9   c                    U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  SS 5      S 5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S	5        U R                  [
        U R                  R                  S
5        g rm   )r.   rD   rO   r`   rw   ra   rx   s    r6   test_decimal!UnicodeFunctionsTest.test_decimal   s   T2D9-q148$?48$?t<dC6:)TWW__5)TWW__d;*dggoos;r9   c                 \   U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S	5      S
5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        g )N   ￾CnaLlrn   Lurs   Lor|   Noru   )r.   rD   rP   r`   rw   rx   s    r6   test_category"UnicodeFunctionsTest.test_category   s    ))(3T:))#.5))#.5)),7>)),7>)TWW%5%56)TWW%5%5t<r9   c                    U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        g )	Nr   r    WSrn   Lrs   ru   )r.   rD   rQ   r`   rw   rx   s    r6   test_bidirectional'UnicodeFunctionsTest.test_bidirectional   s    ..x8"=..s3T:..s3S9..|<cB)TWW%:%:;)TWW%:%:DAr9   c                 Z   U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        g )Nr   r      ¼z<fraction> 0031 2044 0034ru   )r.   rD   rR   r`   rw   rx   s    r6   test_decomposition'UnicodeFunctionsTest.test_decomposition   sw    ..x8<..x8:UV)TWW%:%:;)TWW%:%:DAr9   c                    U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        g )Nr   r   r   u   ∁r   rs   ru   )r.   rD   rT   r`   rw   rx   s    r6   test_mirrored"UnicodeFunctionsTest.test_mirrored   s    ))(3Q7))#.2))(3Q7)),7;)TWW%5%56)TWW%5%5t<r9   c                    U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  U R                  R                  S5      S5        U R                  [        U R                  R                  5        U R                  [        U R                  R                  S5        g )Nr   r   r   u   ⃡   rs   ru   )r.   rD   rU   r`   rw   rx   s    r6   test_combining#UnicodeFunctionsTest.test_combining   s    **84a8**3/3**84c:**<8!<)TWW%6%67)TWW%6%6=r9   c                 r    SnU H/  nU R                  U R                  R                  SU5      U5        M1     g )N)u   େ̀ାu   ᄀ̀ᅡu   Li̍t-sṳ́u.   मार्क ज़ुकेरबर्गu'   किर्गिज़स्तानNFCr.   rD   	normalize)r0   composedtexts      r6   	test_pr29UnicodeFunctionsTest.test_pr29   s6    8 DTWW..ud;TB r9   c                 d    SnSnU R                  U R                  R                  SU5      U5        g )Nu?   C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸Çu>   C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸C̸Çr   r   )r0   r   bs      r6   test_issue10254$UnicodeFunctionsTest.test_issue10254   s-    '$**5!4a8r9   c                 $   SnSnSnSnSnSnU R                  U R                  R                  SU5      U5        U R                  U R                  R                  SU5      U5        U R                  U R                  R                  SU5      U5        g )Nu	   ᄀᅶᆨu	   기ᆧu   기ᆧu	   기ᇃu   기ᇃr   r   )r0   u1176_str_au1176_str_bu11a7_str_au11a7_str_bu11c3_str_au11c3_str_bs          r6   test_issue29456$UnicodeFunctionsTest.test_issue29456   s    ***$*$**5+>L**5+>L**5+>Lr9   c                 H   U R                   R                  nU R                  [        US5        U R                  [        U[	        5       5        U R                  [        US5        U R                  [        US5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S	5        U R                  U" S
5      S5        U R                  U" S5      S5        U R                  U" S5      S5        U R                  U" S5      S	5        g )N   ar   raNr   Nau   좔Wu   ｦHu   ？Fu   ‐rn   rs   )rD   rV   r`   rw   	bytearrayr.   )r0   eaws     r6   test_east_asian_width*UnicodeFunctionsTest.test_east_asian_width   s    gg&&)S$/)S)+6)S"-)S$/Vc*Vd+X,X,X,X,\*C0r9   c                    U R                   R                  nS HG  nU R                  U" U5      S5        U R                  U R                   R	                  US 5      S 5        MI     S HG  nU R                  U" U5      S5        U R                  U R                   R	                  US 5      S 5        MI     S HG  nU R                  U" U5      S5        U R                  U R                   R	                  US 5      S 5        MI     g )Nu   ԰໏჆⃼꫊𐞽𑗲r   u   﩮﫚𪛠𯨠𱍋𿿽r   u   󰀀󿿮􀀀􏿰rn   )rD   rV   r.   assertIsrW   )r0   r   r3   s      r6    test_east_asian_width_unassigned5UnicodeFunctionsTest.test_east_asian_width_unassigned  s    gg&&HDSY,MM$'',,tT2D9 I
 KDSY,MM$'',,tT2D9 K
 KDSY,MM$'',,tT2D9 Kr9   c                     U R                  U R                  R                  R                  S5      S5        U R                  U R                  R                  S5      S5        g )Nu   ⌚r   r   )r.   rD   	ucd_3_2_0rV   rx   s    r6   !test_east_asian_width_9_0_changes6UnicodeFunctionsTest.test_east_asian_width_9_0_changes  sF    **;;HEsK11(;SAr9   r:   N)r;   r<   r=   r>   r/   r   rX   r]   rc   rj   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r?   r:   r9   r6   rF   rF   L   s     Bu8 8. uD D>
E
:<
<=BB=>
C9
M1:"Br9   rF   c                   t    \ rS rSr\S 5       r\S 5       rS rS r	S r
S r\" S5      S	 5       rS
 rS rSrg)UnicodeMiscTesti  c                 8    [        U [        R                  5        g N)r   rC   UCDrx   s    r6   test_disallow_instantiation+UnicodeMiscTest.test_disallow_instantiation  s     	%T;??;r9   c                     Sn[         R                  " SU5      nSnU R                  X2R                  R	                  S5      5        g )NzGimport sys;sys.modules['unicodedata'] = None;eval("'\\N{SOFT HYPHEN}'")z-czUSyntaxError: (unicode error) \N escapes not supported (can't load unicodedata module)rK   )r   assert_python_failureassertInerrdecode)r0   coder5   errors       r6   #test_failed_import_during_compiling3UnicodeMiscTest.test_failed_import_during_compiling  s?    /
 44T4@.eZZ..w78r9   c                    Sn[        S5       Ha  n[        U5      nU R                  R                  US5      nUS:w  d  M2  U R	                  X@R                  R                  U5      5        US-  nMc     U R                  US:  5        g Nr      rJ   r   
   )r   r   rD   rO   r.   rN   
assertTruer0   countr2   cdecs        r6   test_decimal_numeric_consistent/UnicodeMiscTest.test_decimal_numeric_consistent/  sq     wAAA''//!R(Cby  ggooa&89
   	$r9   c                    Sn[        S5       Ha  n[        U5      nU R                  R                  US5      nUS:w  d  M2  U R	                  X@R                  R                  U5      5        US-  nMc     U R                  US:  5        g r   )r   r   rD   rM   r.   rN   r   r   s        r6   test_digit_numeric_consistent-UnicodeMiscTest.test_digit_numeric_consistent<  sq     wAAA''--2&Cby  ggooa&89
   	$r9   c                 Z    U R                  U R                  R                  S5      S5        g )NzGOTHIC LETTER FAIHUu   𐍆)r.   rD   r[   rx   s    r6   test_bug_1704793 UnicodeMiscTest.test_bug_1704793I  s     (=>Mr9   c                 x   SS K nU R                  UR                  " S5      5        U R                  UR                  R                  S5      (       + 5        U R                  SR	                  5       S:H  5        U R                  SR	                  5       S:H  5        U R                  SR	                  5       S:H  5        g )Nr   u   ༺r   rn      ᵹu   Ᵹ.)rC   r   rT   r   r(   )r0   rC   s     r6   test_ucd_510UnicodeMiscTest.test_ucd_510L  s    ,,X67K11::8DDE 			S()((23		S()r9   r   c           
      p   U R                  SR                  5       S5        U R                  [        [        R                  S-   5       Vs/ s HX  nS[        U5      R                  5       [        U5      R                  5       -   [        U5      R                  5       -   ;   d  MV  UPMZ     snS/5        g s  snf )Nr   r    r   )r.   r'   r   r   r   r   r(   r)   )r0   r   s     r6   test_bug_5828UnicodeMiscTest.test_bug_5828W  s    )84 !122aSV\\^CFLLN:3q6<<>II 2 C	
s   
AB3#B3c                     U R                  SR                  5       S5        U R                  SR                  5       S5        U R                  SR                  5       S5        g )Nu   Ǆu   ǅu   ǆ)r.   r)   rx   s    r6   test_bug_4971UnicodeMiscTest.test_bug_4971c  sG    )84)84)84r9   c                     [        S5       He  n[        U5      S-   R                  5       nUS;   a!  U R                  [	        U5      SSU-  5        MF  U R                  [	        U5      SSU-  5        Mg     g )Nr   rn   )
r                        i(   i)      z\u%.4x should be a linebreakr   z \u%.4x should not be a linebreak)r   r   
splitlinesr.   len)r0   r2   liness      r6   test_linebreak_7643#UnicodeMiscTest.test_linebreak_7643i  ss    wAVc\--/E 7 7  UQ!@1!DF   UQ!Dq!HJ  r9   r:   N)r;   r<   r=   r>   r   r   r	   r   r   r   r   r   r   r   r   r   r?   r:   r9   r6   r   r     sa    < < 9 9 %%N	* u	
 	
5	Jr9   r   c                   x    \ rS rSr\S 5       r\S 5       r\" S5      \" S5      S 5       5       rS r	S r
S	 rS
rg)NormalizationTestit  c                 H    U R                  5       n[        R                  U;   $ r   )readlinerC   unidata_version)testfilehdrs     r6   check_versionNormalizationTest.check_versionu  s!    !**c11r9   c                     U R                  S5       Vs/ s H  n[        US5      PM     n nSR                  U  Vs/ s H  n[        U5      PM     sn5      $ s  snf s  snf )Nr      r   )splitintr+   r   )r4   rv   s     r6   unistrNormalizationTest.unistrz  sN    $(JJsO4OqAr
O4ww-1A-.. 5-s
   AAnetworkr   c                 b   SnS[         R                   SU 3n [        USU R                  S9nW   U R                  U5        S S S 5        g ! [         a    U R                  SU S35         N>[        [        4 a!  nU R                  SU S	U 35         S nANiS nAff = f! , (       d  f       g = f)
NzNormalizationTest.txtz"http://www.pythontest.net/unicode//r   )encodingcheckz"Permission error when downloading z into the test data directoryzFailed to download z: )	rC   r  r   r	  PermissionErrorskipTestOSErrorr   run_normalization_tests)r0   TESTDATAFILETESTDATAURLtestdataexcs        r6   test_normalization$NormalizationTest.test_normalization  s     /:;;V;V:WWXYeXfg	F'g.2.@.@BH ((2 X  	;MM>{m L9 : ;' 	FMM/}BseDEE	F Xs(   A B B-B<BB 
B.c                    S n0 nS nS nS nS nU GHB  nSU;   a  UR                  S5      S   nUR                  5       nU(       d  M7  UR                  S5      (       a  UR                  5       S   nMb  UR                  S5      S S	  V	s/ s H  oR                  U	5      PM     sn	u  ppnU R	                  X" U
5      s=:H  =(       a    U" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  X" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  X" U
5      s=:H  =(       a    U" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  X" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  X" U
5      s=:H  =(       aD    U" U5      s=:H  =(       a1    U" U5      s=:H  =(       a    U" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  X" U
5      s=:H  =(       aD    U" U5      s=:H  =(       a1    U" U5      s=:H  =(       a    U" U5      s=:H  =(       a    U" U5      :H  Os  U5        U R	                  [
        R                  " S
U5      5        U R	                  [
        R                  " S
U5      5        U R	                  [
        R                  " SU5      5        U R	                  [
        R                  " SU5      5        U R	                  [
        R                  " SU5      5        U R	                  [
        R                  " SU5      5        US:X  d  GM>  SX:'   GME     [        [        R                  S-   5       Hm  n[        U5      nUU;   a  M  U R	                  UU" U5      s=:H  =(       a1    U" U5      s=:H  =(       a    U" U5      s=:H  =(       a    U" U5      :H  Os  U5        Mo     g s  sn	f )Nc                 0    [         R                  " SU 5      $ )Nr   rC   r   rS   s    r6   r   6NormalizationTest.run_normalization_tests.<locals>.NFC      ((44r9   c                 0    [         R                  " SU 5      $ )NNFKCr"  r#  s    r6   r'  7NormalizationTest.run_normalization_tests.<locals>.NFKC      ((55r9   c                 0    [         R                  " SU 5      $ )NNFDr"  r#  s    r6   r+  6NormalizationTest.run_normalization_tests.<locals>.NFD  r%  r9   c                 0    [         R                  " SU 5      $ )NNFKDr"  r#  s    r6   r.  7NormalizationTest.run_normalization_tests.<locals>.NFKD  r)  r9   #r   z@Part;rJ   r   r+  r'  r.  z@Part1r   )r  strip
startswithr  r   rC   is_normalizedr   r   r   r   )r0   r  part
part1_datar   r'  r+  r.  linerv   c1c2c3c4c5r   Xs                    r6   r  )NormalizationTest.run_normalization_tests  s'   
	5	6	5	6 Dd{zz#q)::<Dw''zz|A6:jjocr6JK6Jkk!n6JKNB" OOB3r7BBs2wBB3r7BDIOOB3r766s2w6=OOB3r7BBs2wBB3r7BDIOOB3r766s2w6=OOB$r( = =d2h = = H= =(,R= =48H= " OOB$r( = =d2h = = H= =(,R= =48H= " OOK55eR@AOOK55eR@AOOK55eR@AOOK55eR@AOOK55fbABOOK55fbAB x!"
E J s~~a'(AAAJOOAQGG3q6GGT!WGGQGK	 )9 Ls   O(c                     U R                  [        [        R                  5        U R                  [        [        R                  SS5        U R                  [        R                  " SS5      S5        g )Nunknownru   r'  r   )r`   rw   rC   r   ra   r.   rx   s    r6   test_edge_cases!NormalizationTest.test_edge_cases  sO    )[%:%:;*k&;&;YM..vr:B?r9   c                 2    [         R                  " SS5        g )Nr   u   한글r"  rx   s    r6   test_bug_834676!NormalizationTest.test_bug_834676  s    e^4r9   r:   N)r;   r<   r=   r>   staticmethodr	  r  r   r  r  rA  rD  r?   r:   r9   r6   r  r  t  s`    2 2 / / y!u3  "3"9Lv@
5r9   r  __main__)r   http.clientr   r   rC   unittesttest.supportr   r   r   r   r   r	   TestCaser   rA   rF   r   r  r;   mainr:   r9   r6   <module>rM     s     % 
   /8** /8b(++ IB. IBV[J) [Jz`5)) `5F zMMO r9   