
    n                          S r SSKrSSKrSSKrSSKr\R                  " S5      r\R                  " S5      r/ SQr	S r
S r " S S	\R                  5      rS
 rg)zTests for TR46 code.    Nz\\u([0-9a-fA-F]{4})u   [-][-])`u
   𐋷。‍u   𝟵隁⯮．᠍‌u   9隁⯮.᠍‌u   ß‌꫶ᢥ.⊶ⴡⴖu   ss‌꫶ᢥ.⊶ⴡⴖu   ß‌꫶ᢥ．⊶ⴡⴖu   ss‌꫶ᢥ．⊶ⴡⴖu   𐩗‍。ⴉⴕu   𐩗‍｡ⴉⴕu   𝟏𝨙⸖.‍u   1𝨙⸖.‍u   𝟠4󠇗𝈻．‍𐋵⛧‍u   84󠇗𝈻.‍𐋵⛧‍   ¡zxn--7au   ᧚zxn--pkfu   ☕zxn--53hu   𞤷.𐮐𞢁𐹠ؤu   𞤷.𐮐𞢁𐹠ؤu   𞤕.𐮐𞢁𐹠ؤu   𞤕.𐮐𞢁𐹠ؤzxn--ve6h.xn--jgb1694kz0b2176au   ß。𐋳ⴌྸu   ss。𐋳ⴌྸzss.xn--lgd921mvv0mu   ss.𐋳ⴌྸzxn--zca.xn--lgd921mvv0mu   ß.𐋳ⴌྸu   ß｡𐋳ⴌྸu   ss｡𐋳ⴌྸu   ᚭ｡𝌠ß𖫱u   ᚭ。𝌠ß𖫱u   ᚭ。𝌠SS𖫱u   ᚭ。𝌠ss𖫱u   ᚭ。𝌠Ss𖫱zxn--hwe.xn--ss-ci1ub261au   ᚭ.𝌠ss𖫱u   ᚭ.𝌠SS𖫱u   ᚭ.𝌠Ss𖫱zxn--hwe.xn--zca4946pblncu   ᚭ.𝌠ß𖫱u   ᚭ｡𝌠SS𖫱u   ᚭ｡𝌠ss𖫱u   ᚭ｡𝌠Ss𖫱u   ⴚ𐋸󠄄。5ퟶ်zxn--ilj2659d.xn--5-dug9054mu   ⴚ𐋸.5ퟶ်u   ⴚ𐋸󠄄。𝟝ퟶ်zxn--9-mfs8024b.u   9隁⯮.zxn--ss-4epx629f.xn--ifh802b6au   ss꫶ᢥ.⊶ⴡⴖzxn--pt9c.xn--0kjyau   𐩗.ⴉⴕu   ꗷ𑆀.ݝ𐩒zxn--ju8a625r.xn--hpb0073ku   ς.فمي🞛1.u   Σ.فمي🞛1.u   σ.فمي🞛1.zxn--4xa.xn--1-gocmu97674d.zxn--3xa.xn--1-gocmu97674d.zxn--1-5bt6845n.u	   1𝨙⸖.zxn--84-s850a.xn--59h6326eu   84𝈻.𐋵⛧z	xn--r97c.u   𐋷.u   0à.אu   0à.אu   0À.אu   0À.אzxn--0-sfa.xn--4dbu   àˇ.אu   àˇ.אu   Àˇ.אu   Àˇ.אzxn--0ca88g.xn--4dbu   0A.אu   0a.אz
0a.xn--4dbzc.xn--0-eha.xn--4dbu   c.0ü.אu	   c.0ü.אu	   C.0Ü.אu   C.0Ü.אu   C.0ü.אu	   C.0ü.אu   ڶ۟。₇꠆u   ڶ۟。7꠆zxn--pkb6f.xn--7-x93eu	   ڶ۟.7꠆u   1.걾6.𐱁ېu   1.걾6.𐱁ېz1.xn--6-945e.xn--glb1794kc                 Z    [         R                  S [        R                  S U 5      5      $ )z=Replace backslash-u-XXXX with appropriate unicode characters.c                     [        [        U R                  S5      S   5      S-
  S-  [        U R                  S5      S   5      -   S-
  S-   5      $ )Nr   i   i      i   i   )chrordgroupmatchs    9platform/gsutil/third_party/idna/tests/test_idna_uts46.py<lambda>unicode_fixup.<locals>.<lambda>x   sJ    c3u{{1~a01F:eCc%++VW.YZJ[F\\_eehoop    c                 J    [        [        U R                  S5      S5      5      $ )Nr      )r   intr	   r
   s    r   r   r   y   s    c#ekk!nb*A&Br   )_RE_SURROGATEsub_RE_UNICODE)strings    r   unicode_fixupr   u   s'    pBFK r   c              #   
  #    [        U 5       Hp  u  pUR                  S5      R                  5       nSU;   a  UR                  SS5      S   nU(       d  MH  US-   [	        S UR                  S5       5       5      4v   Mr     g7f)z1Parse IdnaTestV2.txt and return a list of tuples.zutf-8#r   r   c              3   @   #    U  H  oR                  5       v   M     g 7fN)strip).0fields     r   	<genexpr>(parse_idna_test_table.<locals>.<genexpr>   s     !M_E++--_s   ;N)	enumeratedecoder   splittuple)inputstreamlinenolines      r   parse_idna_test_tabler)   }   sq     !+.{{7#))+$;::c1%a(D
E!MTZZ_!MMNO /s   BBc                   H   ^  \ rS rSrSrSU 4S jjrU 4S jrS rS rSr	U =r
$ )	TestIdnaTest   z)Run one of the IdnaTestV2.txt test lines.c                 :   > [         TU ]  5         Xl        X l        g r   )super__init__r'   fields)selfr'   r0   	__class__s      r   r/   TestIdnaTest.__init__   s    r   c                 T   > SR                  [        TU ]	  5       U R                  5      $ )Nz{}.{})formatr.   idr'   )r1   r2   s    r   r6   TestIdnaTest.id   s    ~~egjlDKK88r   c                     U R                   (       d  gSR                  U R                  SR                  U R                   5      5      $ )N zIdnaTestV2.txt line {}: {}z; )r0   r5   r'   join)r1   s    r   shortDescriptionTestIdnaTest.shortDescription   s0    {{+224;;		$++@VWWr   c                    U R                   (       d  g U R                   u  nnnnnnnU[        ;   a  g U(       d  UnU(       d  SnU(       d  UnU(       d  UnU(       d  UnU(       d  Un [        R                  " USSS9nUS:w  a*  U R	                  SR                  U[        U5      5      5        U R                  XS5         [        R                  " USSS9R                  S5      nUS:w  a*  U R	                  S	R                  U[        U5      5      5        U R                  XS
5         [        R                  " USSSS9R                  S5      nUS:w  a*  U R	                  SR                  U[        U5      5      5        U R                  XS
5        g ! [        R                  [        [        4 aG  n	[        U	5      R                  S5      (       a  [        R                  " S5      eUS:X  a  e  S n	A	GN3S n	A	ff = f! [        R                  [        [        4 aG  n	[        U	5      R                  S5      (       a  [        R                  " S5      eUS:X  a  e  S n	A	GN4S n	A	ff = f! [        R                  [        [        4 aF  n	[        U	5      R                  S5      (       a  [        R                  " S5      eUS:X  a  e  S n	A	g S n	A	ff = f)Nz[]T)uts46strictz.decode() did not emit required error {} for {}zunexpected decode() outputUnknownzNTest requires support for a newer version of Unicode than this Python supportsasciiz.encode() did not emit required error {} for {}zunexpected encode() output)r>   r?   transitionalz?encode(transitional=True) did not emit required error {} for {})r0   _SKIP_TESTSidnar#   failr5   reprassertEqual	IDNAErrorUnicodeError
ValueErrorstr
startswithunittestSkipTestencode)
r1   source
to_unicodeto_unicode_statusto_asciito_ascii_status
to_ascii_tto_ascii_t_statusoutputexcs
             r   runTestTestIdnaTest.runTest   sy   {{ KK	
[ J  $!H/O!J  /		[[tDAF D(		JQQR\^bci^jklV1MN		[[tDAHHQF$&		JQQRacghncopqV/KL	[[tDtT[[\cdF D(		U\\]nptu{p|} V1MN/ j9 	3x""9--''({|| D( )	 j9 	3x""9--''({||$& '	 j9 	3x""9--''({|| D( )	sK   )AF A'G< *A(I% G92<G44G9<I"<II"%K
<KK
)r0   r'   )NN)__name__
__module____qualname____firstlineno____doc__r/   r6   r;   rY   __static_attributes____classcell__)r2   s   @r   r+   r+      s     3
9X
< <r   r+   c                 >   [         R                  " 5       n[        [        R                  R                  [        R                  R                  [        5      S5      S5       nUR                  S [        U5       5       5        SSS5        U$ ! , (       d  f       U$ = f)z+Create a suite of all the individual tests.zIdnaTestV2.txtrbc              3   <   #    U  H  u  p[        X5      v   M     g 7fr   )r+   )r   r'   r0   s      r   r   load_tests.<locals>.<genexpr>   s     lJk|F33Jks   N)
rM   	TestSuiteopenospathr:   dirname__file__addTestsr)   )loadertestspatternsuite
tests_files        r   
load_testsrr      sm     E	bggll277??846FG	NR\lJ_`jJkll 
OL 
O	NLs   !"B
B)r_   os.pathrh   rerM   rD   compiler   r   rC   r   r)   TestCaser+   rr    r   r   <module>rx      s`      	  jj01

;<gTPL8$$ L^r   