a 5êdgý%ã@sŠdZddlZddlZddlmZddlmZzddlmZm Z m Z Wne ybdZZ Z Yn0Gdd„dej ƒZ ed kr†e ¡dS) z¾ Test 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@s®eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„Zdd„Zdd„Zeje eekd¡ejeddd d!d"d#„ƒƒƒZd$S)%ÚUnicodeNamesTestcCstd|ƒ}| ||¡|S)Nz"\N{%s}")ÚevalÚ assertEqual)ÚselfÚnameÚcodeÚres©rú)/usr/local/lib/python3.9/test/test_ucn.pyÚ checkletters  zUnicodeNamesTest.checklettercs6gd¢}d}ˆ d ‡fdd„t||ƒDƒ¡|¡dS)N)zLATIN CAPITAL LETTER TúLATIN SMALL LETTER HúLATIN SMALL LETTER EÚSPACEzLATIN SMALL LETTER RzLATIN CAPITAL LETTER EzLATIN SMALL LETTER DrzLATIN SMALL LETTER fzLATIN CAPITAL LeTtEr ozLATIN SMaLl LETTER xrzLATIN SMALL LETTER AúLATIN SMALL LETTER TrrrrrZSpAcEzLATIN SMALL LETTER SrúLATIN small LETTER erzLATIN SMALL LETTER Pz FULL STOPzThe rEd fOx ate the sheep.Úcsg|]}ˆj|Ž‘qSr©r)Ú.0Úargs©r rrÚ @óz1UnicodeNamesTest.test_general..)r ÚjoinÚzip)r ÚcharsÚstringrrrÚ test_generals þzUnicodeNamesTest.test_generalcCsPd ttttdƒtdƒƒƒ¡D],}d| ¡}t |¡}| t  |¡|¡qdS)NrÚaÚzzLATIN SMALL LETTER %s) rÚmapÚchrÚrangeÚordÚupperÚ unicodedataÚlookupr r )r Úcharr r rrrÚtest_ascii_lettersDs"  z#UnicodeNamesTest.test_ascii_letterscCs°| dd¡| dd¡| dd¡| dd¡| d d ¡| d d ¡| d d¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| ttjd¡dS)NzHANGUL SYLLABLE GAuê°€zHANGUL SYLLABLE GGWEOSSu꿨zHANGUL SYLLABLE DOLSuëzHANGUL SYLLABLE RYANu랸zHANGUL SYLLABLE MWIKuë® zHANGUL SYLLABLE BBWAEMu뾈zHANGUL SYLLABLE SSEOLuì°zHANGUL SYLLABLE YIuì˜zHANGUL SYLLABLE JJYOSSuì­€zHANGUL SYLLABLE KYEOLSu켨zHANGUL SYLLABLE PANuíŒzHANGUL SYLLABLE HWEOKu훸zHANGUL SYLLABLE HIHu힣u힤)rÚ assertRaisesÚ ValueErrorr)r rrrrÚtest_hangul_syllablesJs             z&UnicodeNamesTest.test_hangul_syllablescCsˆ| dd¡| dd¡| dd¡| dd¡| d d ¡| d d ¡| d d¡| dd¡| dd¡| dd¡| dd¡dS)NzCJK UNIFIED IDEOGRAPH-3400uã€zCJK UNIFIED IDEOGRAPH-4DB5uä¶µzCJK UNIFIED IDEOGRAPH-4E00u一zCJK UNIFIED IDEOGRAPH-9FCBué¿‹zCJK UNIFIED IDEOGRAPH-20000uð €€zCJK UNIFIED IDEOGRAPH-2A6D6u𪛖zCJK UNIFIED IDEOGRAPH-2A700u𪜀zCJK UNIFIED IDEOGRAPH-2B734u𫜴zCJK UNIFIED IDEOGRAPH-2B740uð«€zCJK UNIFIED IDEOGRAPH-2B81Duð« zCJK UNIFIED IDEOGRAPH-3134Auð±ŠrrrrrÚtest_cjk_unified_ideographs[s          z,UnicodeNamesTest.test_cjk_unified_ideographscCs@tdƒD]2}t|ƒ}t |d¡}|dur| t |¡|¡qdS)Ni)r&r%r)r r r*)r r r+r rrrÚtest_bmp_charactershs   z$UnicodeNamesTest.test_bmp_characterscCs4| dd¡| dd¡| dd¡| dd¡dS) Nz PILCROW SIGNõ¶zREPLACEMENT CHARACTERu�z)HALFWIDTH KATAKANA SEMI-VOICED SOUND MARKu゚zFULLWIDTH LATIN SMALL LETTER Auï½rrrrrÚtest_misc_symbolsos   z"UnicodeNamesTest.test_misc_symbolsc Cs’gd¢}|D]€\}}| |t|ƒ¡t t|ƒ¡}| ||¡| t |¡t |¡¡| t¡tj  |¡Wdƒq 1s‚0Yq dS)N) )zLATIN CAPITAL LETTER GHAi¢)zLATIN SMALL LETTER GHAi£)zKANNADA LETTER LLLAiÞ )zLAO LETTER FO FONi)zLAO LETTER FO FAYiŸ)z LAO LETTER ROi£)z LAO LETTER LOi¥)z#TIBETAN MARK BKA- SHOG GI MGO RGYANiÐ)zYI SYLLABLE ITERATION MARKi )z=PRESENTATION FORM FOR VERTICAL RIGHT WHITE LENTICULAR BRACKETiþ)z4BYZANTINE MUSICAL SYMBOL FTHORA SKLIRON CHROMA VASISiÅÐ) rr%r)r ZassertNotEqualr r*r-ÚKeyErrorÚ ucd_3_2_0)r ÚaliasesÚaliasZ codepointr rrrÚ test_aliasesus   ÿ zUnicodeNamesTest.test_aliasesc Cs^tddƒD]N}| t¡}t t|ƒ¡Wdƒn1s<0Y| t|jƒd¡q dS)Niéú no such name© r&r-r.r)r r%r ÚstrÚ exception©r ÚcpÚcmrrrÚtest_aliases_names_in_pua_ranges ,z0UnicodeNamesTest.test_aliases_names_in_pua_rangec Cs^tddƒD]N}| t¡}t t|ƒ¡Wdƒn1s<0Y| t|jƒd¡q dS)Nr9iÿr:r;r>rrrÚ'test_named_sequences_names_in_pua_range–s ,z8UnicodeNamesTest.test_named_sequences_names_in_pua_rangec Cs˜gd¢}|D]†\}}| t |¡|¡| t¡| |d¡Wdƒn1sR0Y| t¡tj |¡Wdƒq 1sˆ0Yq dS)N))zLATIN SMALL LETTER R WITH TILDEur̃)zTAMIL SYLLABLE SAIuஸை)zTAMIL SYLLABLE MOOuமோ)zTAMIL SYLLABLE NNOOuணோ)zTAMIL CONSONANT KSSu கà¯à®·à¯)r r)r*r-Ú SyntaxErrorrr4r5)r Ú sequencesÚseqnameÚ codepointsrrrÚtest_named_sequences_samples  * z,UnicodeNamesTest.test_named_sequences_samplec Cs$dd„}dtj}ztj|d|d}Wn$ttfyJ| d|¡Yn0| |j¡|D]Â}|  ¡}|r\|  d¡rxq\|  d¡\}}d   d d „|  ¡Dƒ¡}|  t |¡|¡| t¡| |d¡Wdƒn1sÜ0Y| t¡tj |¡Wdƒq\1s0Yq\dS) NcSs| ¡}tj|vS)N)Úreadliner)Úunidata_version)ZtestfileZhdrrrrÚ check_version¯szAUnicodeNamesTest.test_named_sequences_full..check_versionz7http://www.pythontest.net/unicode/%s/NamedSequences.txtzutf-8)ÚencodingÚcheckzCould not retrieve ú#ú;rcss|]}tt|dƒƒVqdS)éN)r%Úint)rr?rrrÚ ¿rz=UnicodeNamesTest.test_named_sequences_full..)r)rIrZopen_urlresourceÚOSErrorrZskipTestZ addCleanupÚcloseÚstripÚ startswithÚsplitrr r*r-rCrr4r5)r rJÚurlZtestdataÚlinerErFrrrÚtest_named_sequences_full­s,ÿÿ   * z*UnicodeNamesTest.test_named_sequences_fullcCs@| ttj¡| ttjd¡| ttj¡| ttjd¡dS)NÚxxÚunknown)r-Ú TypeErrorr)r r*r4rrrrÚ test_errorsÆszUnicodeNamesTest.test_errorscCsZ| ttddd¡| tttddddƒdd¡| ttddd¡| ttd dd¡dS) Ns\N{blah}úunicode-escapeÚstrictz\N{%s}Úxi †Úasciió\N{SPACEs\NSPACE)r-Ú UnicodeErrorr<ÚbytesrrrrÚtest_strict_error_handlingÌs þþþþz+UnicodeNamesTest.test_strict_error_handlingzneeds UINT_MAX < SIZE_MAXééF)ÚsizeZmemuseÚdry_runcCsFddtdd}| t|ƒtdƒtd¡| td|jd¡dS)Nrbóxrfó}s \N{SPACE}zunknown Unicode character namer^)rr ÚlenZassertRaisesRegexrcÚdecode)r rhr`rrrÚtest_issue16335âs þz UnicodeNamesTest.test_issue16335N)Ú__name__Ú __module__Ú __qualname__rr!r,r/r0r1r3r8rArBrGrYr]rerZ cpython_onlyÚunittestZ skipUnlessrrZ bigmemtestrrnrrrrrs$% rÚ__main__)Ú__doc__rrr)ÚtestrZ http.clientrZ _testcapirrrÚ ImportErrorZTestCaserroÚmainrrrrÚs    [