
    5                     n    S SK r S SKr " S S\ R                  5      r\S:X  a  \ R
                  " 5         gg)    Nc                   ^    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rSS jrSS jrSrg)	IDNATests   c                    / SS/PSS/PSS/PSS/PS	S
/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS/PSS /PS!S"/PS#S$/PS%S&/PS'S(/PS)S*/PS+S,/PS-S./PS/S0/PS1S2/PS3S4/PS5S6/PS7S8/PS9S:/PS;S</PS=S>/PS?S@/PSASB/PSCSD/PSESF/PSGSH/PSISJ/PSKSL/PSMSN/PSOSP/PSQSR/PSSST/PSUSV/PSWSX/PSYSZ/PS[S\/PS]S^/PS_S`/PSaSb/PScSd/PSeSf/PU l         g )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setUp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                 z    U R                    H+  u  pU R                  U[        R                  " U5      5        M-     g N)r   assertEqualidnaalabelr
   ulabelr   s      r   testIDNTLDALabelsIDNATests.testIDNTLDALabelsF   -    "..NFVT[[%89 /r   c                 z    U R                    H+  u  pU R                  U[        R                  " U5      5        M-     g r   )r   r   r   r   r   s      r   testIDNTLDULabelsIDNATests.testIDNTLDULabelsJ   r   r   c                     U R                  [        R                  " S5      5        U R                  [        R                  " S5      5        U R	                  [        R
                  [        R                  S5        g )N?aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa)
assertTruer   valid_label_lengthassertFalseassertRaises	IDNAErrorencoder	   s    r   test_valid_label_length!IDNATests.test_valid_label_lengthN   sL    //9:00:;$..$++x@r   c                    SnSnSnSnSnSnSnSnS	n	S
n
SnSnU R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  " U5      5        U R                  [        R                  [        R                  U5        U R                  [        R                  " X#-   5      5        U R                  [        R                  " X#-   5      5        U R                  [        R                  " X$-   5      5        U R                  [        R                  " X%-   5      5        U R                  [        R                  " X&-   U-   5      5        U R                  [        R                  " X'-   U-   5      5        U R                  [        R                  " X(-   U-   5      5        U R                  [        R                  " X)-   U-   5      5        U R                  [        R                  " X*-   U-   5      5        U R                  [        R                  " X+-   5      5        U R                  [        R                  [        R                  X!-   5        U R                  [        R                  [        R                  X,-   5        U R                  [        R                  " X#-   5      5        U R                  [        R                  " X%-   5      5        U R                  [        R                  " X$-   5      5        U R                  [        R                  " X+-   5      5        U R                  [        R                  " X+-   U-   5      5        U R                  [        R                  [        R                  X)-   5        U R                  [        R                  " X%-   5      5        U R                  [        R                  " X$-   5      5        U R                  [        R                  [        R                  X%-   U-   5        U R                  [        R                  [        R                  X$-   U-   5        U R                  [        R                  " X-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   SS95        U R                  [        R                  " X-   SS95        U R                  [        R                  " X-   SS95        U R                  [        R                  " X-   U-   SS95        U R                  [        R                  " X-   U-   U-   SS95        U R                  [        R                  [        R                  X-   SS9  g )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_bidiIDNATests.test_check_bidiS   s:    	+,*++,$,,doorB 	/0/0/0/0454545454501$,,dooqvF$,,dooqvF 	/0/0/001#67$,,dooqvF 	/0/0$,,dooqv{K$,,dooqv{K 	4@A"EF"EF"EF"EF"EFDAB 	4@A4@A#FG#(;tLM$,,doorwRVWr   c                    SnSnU R                  [        R                  " U5      5        U R                  [        R                  " X!-   5      5        U R                  [        R                  [        R                  X-   5        g )Nu   ̀r(   )r   r   check_initial_combinerr"   r#   )r
   mr(   s      r   test_check_initial_combiner%IDNATests.test_check_initial_combiner   sZ    33A6733AE:;$..$*E*EquMr   c                    U R                  [        R                  " S5      5        U R                  [        R                  " S5      5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        U R                  [        R                  [        R                  S5        g )Nabcza--bzaa--za-z-a)r   r   check_hyphen_okr"   r#   r	   s    r   test_check_hyphen_okIDNATests.test_check_hyphen_ok   s    ,,U34,,V45$..$*>*>G$..$*>*>E$..$*>*>Er   c                    SnSnSnSnU R                  [        R                  " US5      5        U R                  [        R                  " XA-   S5      5        U R                  [        R                  " X1-   S5      5        U R                  [        R                  " US5      5        U R                  [        R                  " XB-   S5      5        U R                  [        R                  " X2-   S5      5        g )Nr0   u   ‍u   ्r(   r      )r!   r   valid_contextjr   )r
   zwnjzwjviramalatins        r   test_valid_contextjIDNATests.test_valid_contextj   s     	,,T156,,U\1=>++FM1=> 	,,S!45,,U[!<=++FL!<=r   c                    SnSnSnSnSnSnSnSnS	n	S
n
U R                  [        R                  " X*-   U-   S5      5        U R                  [        R                  " X-   S5      5        U R                  [        R                  " X*-   S5      5        U R                  [        R                  " U
S5      5        U R                  [        R                  " X*-   U-   S5      5        SnU R                  [        R                  " X-   S5      5        U R                  [        R                  " X-   S5      5        U R                  [        R                  " US5      5        U R                  [        R                  " X;-   S5      5        SnU R                  [        R                  " XL-   S5      5        U R                  [        R                  " X-   S5      5        SnU R                  [        R                  " XM-   S5      5        U R                  [        R                  " X-   S5      5        SnU R                  [        R                  " X^-   U-   S5      5        U R                  [        R                  " Xn-   U-   S5      5        U R                  [        R                  " X~-   U-   S5      5        U R                  [        R                  " X~-   U-   S5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " SS5      5        U R                  [        R                  " X-   S5      5        U R                  [        R                  " X-   S5      5        U R                  [        R                  " X-   S5      5        U R                  [        R                  " X-   S5      5        g )Nr(   lu   αr)   u   ァu   ぁu   漢r*   u   ۰   ·rN   r   u   ͵u   ׳u   ״u   ・u	   漢・字u   a・a)r   r   valid_contextor!   )r
   rS   latin_lgreekhebrewkatakanahiraganahanarabic_digitext_arabic_digitlatin_middle_dotglnsgeresh	gershayimja_middle_dots                  r   test_valid_contextoIDNATests.test_valid_contexto   s   # $++G,F,PRSTU,,-=-GKL,,W-GKL,,-=qAB,,W-G%-OQRST ++DL!<=,,T\1=>,,T156,,U\1=> ++FOQ?@,,U^Q?@ 	++F,>BC,,U->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,,\-LaPQ 	++,<,OQRST,,-=-LaPQr   Nc                    Uc  [         R                  n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        U[         R                  L a   U R                  [         R                  USSS9  U R                  U" S5      S5        U R                  [         R                  US5        U R                  [         R
                  R                  US5        U(       d"  U R                  [         R                  US5        g g )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_encode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                    Uc  [         R                  nU R                  U" S5      S5        U R                  U" S5      S5        U(       dH  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                  [         R                  US	5        U R                  [         R                  US
5        U R                  [         R                  US5        U R                  [         R                  US5        U R                  [         R                  US5        U R                  [         R                  US5        g )Nrj   rl   s   xn--d1acufc.xn--80akhbyknj4fu   домен.испытаниеrk   rm   ro   rn   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
   rx   skip_strs      r   test_decode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   r   )NF)__name__
__module____qualname____firstlineno__r   r   r   r%   rA   rF   rK   rT   rg   ru   rz   __static_attributes__ r   r   r   r      sC    ;
z::A
>X@NF> 3RjG6Tr   r   __main__)unittestr   TestCaser   r|   mainr   r   r   <module>r      s<     YT!! YTx zMMO r   