
    5                     l    d dl Z d dlZ G d de j                        Zedk(  r e j
                          yy)    Nc                   R    e Zd Zd Zd Zd Zd Zd Zd Zd Z	d Z
d	 ZddZddZy
)	IDNATestsc                    g ddgddgddgddgd	d
gddgddgddgddgddgddgddgddgddgddgdd gd!d"gd#d$gd%d&gd'd(gd)d*gd+d,gd-d.gd/d0gd1d2gd3d4gd5d6gd7d8gd9d:gd;d<gd=d>gd?d@gdAdBgdCdDgdEdFgdGdHgdIdJgdKdLgdMdNgdOdPgdQdRgdSdTgdUdVgdWdXgdYdZgd[d\gd]d^gd_d`gdadbgdcddgdedfg| _         y )gNu   测试s   xn--0zwm56du   परीक्षाs   xn--11b5bs3a9aj6gu   한국s   xn--3e0b707eu   ভারতs   xn--45brj9cu   বাংলাs   xn--54b7fta0ccu   испытаниеs   xn--80akhbyknj4fu   србs
   xn--90a3acu	   테스트s   xn--9t4b11yi5au!   சிங்கப்பூர்s   xn--clchc0ea0b2g2a9gcdu   טעסטs   xn--deba0adu   中国s
   xn--fiqs8su   中國s
   xn--fiqz9su   భారత్s   xn--fpcrj9c3du   ලංකාs   xn--fzc2c9e2cu   測試s   xn--g6w251du   ભારતs   xn--gecrj9cu   भारतs   xn--h2brj9cu   آزمایشیs   xn--hgbk6aj7f53bbau   பரிட்சைs   xn--hlcj6aya9esc7au   укрs	   xn--j1amhu   香港s   xn--j6w193gu   δοκιμήs   xn--jxalpdlpu   إختبارs   xn--kgbechtvu   台湾s   xn--kprw13du   台灣s   xn--kpry57du   الجزائرs   xn--lgbbat1ad8ju   عمانs   xn--mgb9awbfu
   ایرانs   xn--mgba3a4f16au   اماراتs   xn--mgbaam7a8hu   پاکستانs   xn--mgbai9azgqp6ju   الاردنs   xn--mgbayh7gpau
   بھارتs   xn--mgbbh1a71eu   المغربs   xn--mgbc0a9azcgu   السعوديةs   xn--mgberp4a5d4aru   გეs   xn--nodeu	   ไทยs
   xn--o3cw4hu
   سوريةs   xn--ogbpf8flu   рфs   xn--p1aiu   تونسs   xn--pgbs0dhu   ਭਾਰਤs   xn--s9brj9cu   مصرs
   xn--wgbh1cu   قطرs
   xn--wgbl6au   இலங்கைs   xn--xkc2al3hye2au   இந்தியாs   xn--xkc2dl3a5ee0hu	   新加坡s   xn--yfro4i67ou   فلسطينs   xn--ygbi2ammxu	   テストs
   xn--zckzahu   қазs   xn--80ao21au   مليسياs   xn--mgbx4cd0abu   монs	   xn--l1accu
   سودانs   xn--mgbpl2fh)tld_stringsselfs    3platform/gsutil/third_party/idna/tests/test_idna.pysetUpzIDNATests.setUp	   sV   :
^,:
9;OP:
 _-:
 (8	:

 ./@A:
 I#:
 "=1:
 "#45:
 U):
  (8!:
" ]+#:
$ ]+%:
& ./?@':
( ()9:):
* ^,+:
, (8-:
. (8/:
0 :;PQ1:
2 :;PQ3:
4 "<05:
6 ^,7:
8 4_E9:
: 4_E;:
< ^,=:
> ^,?:
@ :;MNA:
B (9C:
D ./ABE:
F 45FGG:
H :;OPI:
J 45FGK:
L ./@AM:
N 45GHO:
P @AUVQ:
R [)S:
T "=1U:
V .?W:
X [)Y:
Z (8[:
\ (8]:
^ "=1_:
` "=1a:
b 45HIc:
d :;OPe:
f "#34g:
h 45EFi:
j "=1k:
l ">2m:
n 45FGo:
p "<0q:
r .?s:
    c                 v    | j                   D ]*  \  }}| j                  |t        j                  |             , y N)r   assertEqualidnaalabelr   ulabelr   s      r	   testIDNTLDALabelszIDNATests.testIDNTLDALabelsF   /    "..NFFVT[[%89 /r   c                 v    | j                   D ]*  \  }}| j                  |t        j                  |             , y r   )r   r   r   r   r   s      r	   testIDNTLDULabelszIDNATests.testIDNTLDULabelsJ   r   r   c                     | j                  t        j                  d             | j                  t        j                  d             | j	                  t        j
                  t        j                  d       y )N?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
assertTruer   valid_label_lengthassertFalseassertRaises	IDNAErrorencoder   s    r	   test_valid_label_lengthz!IDNATests.test_valid_label_lengthN   sL    //9:00:;$..$++x@r   c                    d}d}d}d}d}d}d}d}d	}	d
}
d}d}| j                  t        j                  |             | j                  t        j                  |             | j                  t        j                  |             | j                  t        j                  t        j                  |       | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z   |z                | j                  t        j                  ||z   |z                | j                  t        j                  ||z   |z                | j                  t        j                  ||	z   |z                | j                  t        j                  ||
z   |z                | j                  t        j                  ||z                | j                  t        j                  t        j                  ||z          | j                  t        j                  t        j                  ||z          | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  ||z   |z                | j                  t        j                  t        j                  ||	z          | j                  t        j                  ||z                | j                  t        j                  ||z                | j                  t        j                  t        j                  ||z   |z          | j                  t        j                  t        j                  ||z   |z          | j                  t        j                  ||z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||	z   |z   d             | j                  t        j                  ||
z   |z   d             | j                  t        j                  ||z   d             | j                  t        j                  ||z   d             | j                  t        j                  ||z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   |z   d             | j                  t        j                  t        j                  ||z   d       y )Na   אu   ا   ٠0-,$!   ‌u   ؐ T)	check_ltr)r   r   
check_bidir   IDNABidiError)r   laralanenescsetonbnnsmwss                r	   test_check_bidizIDNATests.test_check_bidiS   s~    	+,*++,$,,doorB 	B/0B/0B/0B/0B45B45B45B45B45C01$,,dooq2vF$,,dooq2vF 	B/0B/0B/0C01C#67$,,dooq2vF 	B/0B/0$,,dooq2v{K$,,dooq2v{K 	R4@AR"EFR"EFR"EFR"EFR"EFSDAB 	R4@AR4@AR#FGR#(;tLM$,,doorBwRVWr   c                    d}d}| j                  t        j                  |             | j                  t        j                  ||z                | j                  t        j                  t        j                  ||z          y )Nu   ̀r"   )r   r   check_initial_combinerr   r   )r   mr"   s      r	   test_check_initial_combinerz%IDNATests.test_check_initial_combiner   s^    33A6733AE:;$..$*E*Eq1uMr   c                    | j                  t        j                  d             | j                  t        j                  d             | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       | j                  t        j                  t        j                  d       y )Nabcza--bzaa--za-z-a)r   r   check_hyphen_okr   r   r   s    r	   test_check_hyphen_okzIDNATests.test_check_hyphen_ok   s    ,,U34,,V45$..$*>*>G$..$*>*>E$..$*>*>Er   c                    d}d}d}d}| j                  t        j                  |d             | j                  t        j                  ||z   d             | j                  t        j                  ||z   d             | j                  t        j                  |d             | j                  t        j                  ||z   d             | j                  t        j                  ||z   d             y )Nr*   u   ‍u   ्r"   r      )r   r   valid_contextjr   )r   zwnjzwjviramalatins        r	   test_valid_contextjzIDNATests.test_valid_contextj   s     	,,T156,,UT\1=>++FTM1=> 	,,S!45,,US[!<=++FSL!<=r   c                 x   d}d}d}d}d}d}d}d}d	}	d
}
| j                  t        j                  ||
z   |z   d             | j                  t        j                  |
|z   d             | j                  t        j                  ||
z   d             | j                  t        j                  |
d             | j                  t        j                  ||
z   |z   d             d}| j                  t        j                  ||z   d             | j                  t        j                  ||z   d             | j                  t        j                  |d             | j                  t        j                  ||z   d             d}| j                  t        j                  ||z   d             | j                  t        j                  ||z   d             d}| j                  t        j                  ||z   d             | j                  t        j                  ||z   d             d}| j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  ||z   |z   d             | j                  t        j                  dd             | j                  t        j                  dd             | j                  t        j                  ||z   d             | j                  t        j                  ||	z   d             | j                  t        j                  |	|	z   d             | j                  t        j                  |	|z   d             y )Nr"   lu   αr#   u   ァu   ぁu   漢r$   u   ۰   ·rE   r   u   ͵u   ׳u   ״u   ・u	   漢・字u   a・a)r   r   valid_contextor   )r   rJ   latin_lgreekhebrewkatakanahiraganahanarabic_digitext_arabic_digitlatin_middle_dotglnsgeresh	gershayimja_middle_dots                  r	   test_valid_contextozIDNATests.test_valid_contexto   s7   # $++G6F,F,PRSTU,,-=-GKL,,W7G-GKL,,-=qAB,,W7G-G%-OQRST ++D5L!<=,,TE\1=>,,T156,,UT\1=> ++FVOQ?@,,UV^Q?@ 	++FY,>BC,,UY->BC !++H},Dx,OQRST++H},Dx,OQRST++C-,?#,EqIJ++C-,?%,GKL++,@!DE,,-A1EF 	++L<,GKL,,\<L-LaPQ 	++,<?O,OQRST,,-=-LaPQr   Nc                    |t         j                  }| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d	      d       | j                   |d
      d       |t         j                  u r#| j                  t         j                  |dd       | j                   |d      d       | j                  t         j                  |d       | j                  t         j
                  j                  |d       |s"| j                  t         j                  |d       y y )Nzxn--zckzah.xn--zckzah   xn--zckzah.xn--zckzah   テスト.xn--zckzah   テスト.テストabc.abcs   abc.abczxn--zckzah.abcs   xn--zckzah.abcu   テスト.abc   ԡԥԣ-ԣԣ-----ԡԣԣԣ.aa   xn---------90gglbagaar.aau   ԡԤԣ-ԣԣ-----ԡԣԣԣ.aaF)uts46r   s?   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaar   *s   
3)r   r   r   r   r   coreInvalidCodepoint)r   r   
skip_bytess      r	   test_encodezIDNATests.test_encode   sJ   >[[F 78:RS ?@BZ[ GHJbc	*J7 013DE 89;LMTU(	
 T[[ Q	   	)95$..&(;$))44fcBdnnfoF r   c                    |t         j                  }| j                   |d      d       | j                   |d      d       |sH| j                   |d      d       | j                   |d      d       | j                   |d      d       | j                   |d      d       | j                  t         j                  |d	       | j                  t         j                  |d
       | j                  t         j                  |d       | j                  t         j                  |d       | j                  t         j                  |d       | j                  t         j                  |d       y )Nr_   ra   s   xn--d1acufc.xn--80akhbyknj4fu   домен.испытаниеr`   rb   rd   rc   s   XN---------90GGLBAGAAC.AAs   xn---------90gglbagaac.aas   xn--s   s  A.A.0.a.a.A.0.a.A.A.0.a.A.0A.2.a.A.A.0.a.A.0.A.a.A0.a.a.A.0.a.fB.A.A.a.A.A.B.A.A.a.A.A.B.A.A.a.A.A.0.a.A.a.a.A.A.0.a.A.0.A.a.A0.a.a.A.0.a.fB.A.A.a.A.A.B.0A.A.a.A.A.B.A.A.a.A.A.a.A.A.B.A.A.a.A.0.a.B.A.A.a.A.B.A.a.A.A.5.a.A.0.a.Ba.A.B.A.A.a.A.0.a.Xn--B.A.A.A.as   xn--ukba655qaaaa14431eeaaba.c)r   decoder   r   r   )r   rl   skip_strs      r	   test_decodezIDNATests.test_decode  s@   >[[F 89;bc23c	
 677 >?7 VI.	:/0M	
 	$..&2NO$..&2NO$..&':$..&+>NN R	

 	$..&2RSr   )NF)__name__
__module____qualname__r
   r   r   r    r;   r?   rC   rK   r]   rj   rn    r   r	   r   r      sC    ;
z::A
>X@NF> 3RjG6Tr   r   __main__)unittestr   TestCaser   ro   mainrr   r   r	   <module>rw      s>     YT!! YTx zHMMO r   