a 5êdgJ_ã@s¸ddlmZmZmZddlZddlZddlZddlZGdd„dejƒZ Gdd„dejƒZ Gdd„de ƒZ Gd d „d e ƒZ Gd d „d e ƒZ Gd d„deƒZGdd„deƒZGdd„dejƒZGdd„dejƒZGdd„de eƒZGdd„de eƒZGdd„de eƒZGdd„de eƒZGdd„dejƒZGdd „d e eƒZGd!d"„d"ejƒZGd#d$„d$ejƒZGd%d&„d&e ƒZGd'd(„d(e eƒZGd)d*„d*e eƒZGd+d,„d,e eƒZed-kr´e  ¡dS).é)ÚverboseÚ is_androidÚcheck_warningsNc@s eZdZedd„ƒZdd„ZdS)ÚBaseLocalizedTestc CsÜtjdkr>ddl}d}t| ¡j d¡dƒdkrTt d¡‚ntj  d¡rPd}nd }zrt   t j ¡}|D]4}zt   t j |¡Wnt j y”YqfYn0q°qft d d  |¡¡‚||_Wt   t j |¡nt   t j |¡0dS) NÚdarwinr)ú en_US.UTF-8úen_US.ISO8859-1Úen_USÚ.é z#Locale support on MacOSX is minimalÚwin)ZEnZEnglish)rrúen_US.US-ASCIIr z$Test locale not supported (tried %s)z, )ÚsysÚplatformÚosÚintÚunameÚreleaseÚsplitÚunittestÚSkipTestÚ startswithÚlocaleÚ setlocaleÚ LC_NUMERICÚErrorÚjoinÚ enUS_locale)ÚclsrZtlocsÚ oldlocaleZtloc©r ú,/usr/local/lib/python3.9/test/test_locale.pyÚ setUpClass s*     ÿzBaseLocalizedTest.setUpClasscCsJt |j¡}| tj|j|¡t |j|j¡trFtd|jddddS)Nztesting with %r...ú T©ÚendÚflush)rrÚ locale_typeÚ addCleanuprrÚprint)Úselfrr r r!ÚsetUp+s  zBaseLocalizedTest.setUpN)Ú__name__Ú __module__Ú __qualname__Ú classmethodr"r+r r r r!rs rc@seZdZdd„Zdd„ZdS)ÚBaseCookedTestcCs |jt_dS©N)Ú cooked_valuesrÚ_override_localeconv©r*r r r!r+8szBaseCookedTest.setUpcCs it_dSr1)rr3r4r r r!ÚtearDown;szBaseCookedTest.tearDownN)r,r-r.r+r5r r r r!r03sr0c@s6eZdZdddgdddgdddddddddddœZdS)Ú CCookedTestÚr é©Úcurrency_symbolÚ decimal_pointÚ frac_digitsÚgroupingÚint_curr_symbolÚint_frac_digitsÚmon_decimal_pointÚ mon_groupingÚmon_thousands_sepÚ n_cs_precedesÚn_sep_by_spaceÚ n_sign_posnÚ negative_signÚ p_cs_precedesÚp_sep_by_spaceÚ p_sign_posnÚ positive_signÚ thousands_sepN©r,r-r.r2r r r r!r6>s&îr6c@s>eZdZdddgd¢dddgd¢ddddd dddd dd œZd S) ÚEnUSCookedTestú$r é©érQrzUSD ú,érú-r7r9NrLr r r r!rMVs&îrMc@s>eZdZdddgd¢dddgd¢ddddd dddd dd œZd S) ÚFrFRCookedTestõ€rRrOrPzEUR r#rrSrTr7r9NrLr r r r!rUos&îrUc@s,eZdZdd„Zdd„Zdd„Zdd„Zd S) ÚBaseFormattingTestcKs| |||fi|¤Ž|¡dSr1)Ú assertEqual)r*ÚformatÚvalueÚoutÚfuncÚ format_optsr r r!Ú_test_formatfuncŽsÿz#BaseFormattingTest._test_formatfunccKsLtdtfƒ,|j|||fdtji|¤ŽWdƒn1s>0YdS)Nr7r\)rÚDeprecationWarningr^rrY©r*rYrZr[r]r r r!Ú _test_format’s ÿÿzBaseFormattingTest._test_formatcKs |j|||fdtji|¤ŽdS)Nr\)r^rÚ format_stringr`r r r!Ú_test_format_string—s ÿÿz&BaseFormattingTest._test_format_stringcKs| tj|fi|¤Ž|¡dSr1)rXrÚcurrency)r*rZr[r]r r r!Ú_test_currency›sz!BaseFormattingTest._test_currencyN)r,r-r.r^rarcrer r r r!rW‰srWc@sTeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dS)ÚEnUSNumberFormattingcCst ¡d|_dS)NrK)rÚ localeconvÚsepr4r r r!r+£szEnUSNumberFormatting.setUpcCsR|jdddd|jd|jddddd|jdddd d|jd ddd ddS) Nú%férSz 1%s024.000000©r=r[éfú 102.000000éÖÿÿÿú -42.000000ú%+f©rarhr4r r r!Ú test_grouping¦sz"EnUSNumberFormatting.test_groupingcCs^|jdddd d¡d|jrZ|jdddd |j d ¡d|jd ddd |j d ¡ddS) Nú%20.frnrSú-42érkú%+10.fé˜ïÿÿú-4%s200r ú%-10.f)raÚrjustrhÚljustr4r r r!Útest_grouping_and_padding¬s ÿ ÿz.EnUSNumberFormatting.test_grouping_and_paddingcCsL|jdddd|jd|jdddd|jd|jdddd |jddS) Nú%déhTú4%s200rkz%+dz+4%s200rwrxrqr4r r r!Útest_integer_grouping´sz*EnUSNumberFormatting.test_integer_groupingcCs@|jdddd|j d¡d|jdddd |j d¡ddS) Nú%10dr~Trr rkú%-10drwrx)rarhrzr{r4r r r!Ú!test_integer_grouping_and_padding¹s  ÿ ÿz6EnUSNumberFormatting.test_integer_grouping_and_paddingcCsL|jddddd|jddddd|jdddd d|jd ddd ddS) Nrirjrz 1024.000000rkrlrmrnrorp©rar4r r r!Ú test_simple¿sz EnUSNumberFormatting.test_simplecCsL|jdddd d¡d|jdddd  d ¡d|jd d dd  d ¡ddS)Nrsrnrrtrurkrvrwz-4200r ryr~Z4200©rarzr{r4r r r!Ú test_paddingÅsz!EnUSNumberFormatting.test_paddingcCs>| t¡ tjddddWdƒn1s00YdS)Nryr~T©r=)Z assertWarnsr_rrYr4r r r!Útest_format_deprecationÊs z,EnUSNumberFormatting.test_format_deprecationcCsØ|jdddd|j|jfd|jdddd|j|jfd|jdd d d |jrt|jd d ddd|j d¡d|jdddd d¡d|jr°|jdddd|j d¡d|jrÔ|jdddd|j|jfddS)NzOne million is %ii@BrSzOne million is 1%s000%s000rkzOne million is %izOne million is 1%s000%s000z.%f.ç@@z .1000.000000.©r[z --> %10.2fr~z--> z 4%s200.00r z%10.*f)rOéèrz1000.00z%*.*f)r rOrŒz 1%s000.00zint %i float %.2f str %s)rŒrŠÚstrz"int 1%s000 float 1%s000.00 str str)rcrhrzr4r r r!Útest_complex_formattingÎs2 ÿ ÿ ÿ ÿ ÿ ÿþz,EnUSNumberFormatting.test_complex_formattingN) r,r-r.r+rrr|r€rƒr…r‡r‰rŽr r r r!rfŸsrfc@seZdZdd„ZdS)ÚTestFormatPatternArgcCs®tdtfƒŽ| ttjdd¡| ttjdd¡| ttjdd¡| ttjdd¡| ttjdd¡| ttjdd¡| ttjd d¡Wdƒn1s 0YdS) Nr7z%f Úfooz%f z%f z %fz%fgz%^gú%f%%)rr_Ú assertRaisesÚ ValueErrorrrYr4r r r!Útest_onlyOnePatternësz(TestFormatPatternArg.test_onlyOnePatternN)r,r-r.r”r r r r!rèsrc@seZdZdd„Zdd„ZdS)ÚTestLocaleFormatStringcCsT| t dd¡dd¡| t dd¡dd¡| t dddi¡dddi¡dS)Nr‘çð?z%d %f%%d)rSr–z %(foo)s %%drÚbar©rXrrbr4r r r!Útest_percent_escapeúsÿ ÿz*TestLocaleFormatString.test_percent_escapecCsD| t dddi¡dddi¡| t dddi¡dddi¡dS)Nz %(foo)s bing.rr—z%(foo)sr˜r4r r r!Ú test_mappings  ÿ ÿz#TestLocaleFormatString.test_mappingN)r,r-r.r™ršr r r r!r•÷sr•c@seZdZejZdd„ZdS)ÚTestNumberFormattingcCst |¡t |¡dSr1)rr+rfr4r r r!r+s zTestNumberFormatting.setUpN)r,r-r.rrr'r+r r r r!r› sr›c@seZdZdd„Zdd„ZdS)ÚTestEnUSNumberFormattingcCst |¡t |¡dSr1)rMr+rfr4r r r!r+s zTestEnUSNumberFormatting.setUpcCs2| dd¡|jdddd|jddddddS)NéPÃz $50000.00z $50,000.00Trˆz USD 50,000.00©r=Ú international©rer4r r r!Ú test_currencys  ÿz&TestEnUSNumberFormatting.test_currencyN)r,r-r.r+r¡r r r r!rœsrœc@seZdZdd„Zdd„ZdS)ÚTestCNumberFormattingcCs|jddddddS)Nú%.2fç)\ÂÕÈ@Tz12345.67rkr„r4r r r!rr$sz#TestCNumberFormatting.test_groupingcCs|jddddddS)Nú%9.2fr¤Tz 12345.67rkr„r4r r r!r|'sz/TestCNumberFormatting.test_grouping_and_paddingN)r,r-r.rrr|r r r r!r¢!sr¢c@s<eZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd S)ÚTestFrFRNumberFormattingcCs|jdddddS)Nr£r¤z12345,67r‹r„r4r r r!Útest_decimal_point.sz+TestFrFRNumberFormatting.test_decimal_pointcCs(|jddddd|jddddddS)Nr£ç…ëQ¸šu@Tú345,67rkr¤ú 12 345,67r„r4r r r!rr1sz&TestFrFRNumberFormatting.test_groupingcCs¸|jddddd|jddddd|jdd dd d|jd d dd d|jd d dd d|jddddd|jddddd|jdd dd d|jdd dd d|jdd ddddS)Nz%6.2fr¨Tr©rkz%7.2fz 345,67z%8.2fr¤rªr¥z%10.2fz 12 345,67z%-6.2fz%-7.2fz345,67 z%-8.2fz%-9.2fz%-10.2fz 12 345,67 r„r4r r r!r|5sz2TestFrFRNumberFormatting.test_grouping_and_paddingcCs(|jddddd|jddddddS)Nr}éÈTZ200rkr~ú4 200r„r4r r r!r€Asz.TestFrFRNumberFormatting.test_integer_groupingcCs||jddddd|jddddd|jdddd d¡d|jd dddd|jd dddd|jd ddd d¡ddS) Nz%4dr~Tr¬rkz%5drr z%-4dz%-5dr‚r†r4r r r!rƒEs z:TestFrFRNumberFormatting.test_integer_grouping_and_paddingcCs>d}| dd|¡|jdd|dd|jddddddS) NrVrz 50000,00 z 50 000,00 Trˆz 50 000,00 EURržr )r*Úeuror r r!r¡Ms ÿz&TestFrFRNumberFormatting.test_currencyN) r,r-r.r§rrr|r€rƒr¡r r r r!r¦+s  r¦c@seZdZdd„Zdd„ZdS)Ú TestCollationcCsd| t dd¡d¡| t dd¡d¡| t dd¡d¡| ttjdd¡| ttjdd¡dS)NÚaÚbrúa)Ú assertLessrÚstrcollrXZ assertGreaterr’r“r4r r r!Ú test_strcollXs zTestCollation.test_strcollcCs,| t d¡t d¡¡| ttjd¡dS)Nr¯r°r±)r²rÚstrxfrmr’r“r4r r r!Ú test_strxfrm`szTestCollation.test_strxfrmN)r,r-r.r´r¶r r r r!r®Usr®c@sReZdZejZdd„Ze e j   d¡d¡dd„ƒZ e e j   d¡d¡dd„ƒZ d S) ÚTestEnUSCollationcCsbt t d¡pd¡j}|dvr(t d¡‚|dkrTtjdksJt sJtj  d¡rTt d¡‚t   |¡dS) NFÚascii)zutf-8ú iso8859-1Úcp1252zencoding not suitabler¹rZfreebsdzwcscoll/wcsxfrm have known bugs) ÚcodecsÚlookuprÚgetpreferredencodingÚnamerrrrrrrr+©r*Úencr r r!r+ks  ÿ zTestEnUSCollation.setUpZaixzbpo-29972: broken test on AIXcCs| t dd¡d¡dS)Nõàr°r)r²rr³r4r r r!Útest_strcoll_with_diacritictsz-TestEnUSCollation.test_strcoll_with_diacriticcCs| t d¡t d¡¡dS)NrÁr°)r²rrµr4r r r!Útest_strxfrm_with_diacriticysz-TestEnUSCollation.test_strxfrm_with_diacriticN)r,r-r.rÚLC_ALLr'r+rZskipIfrrrrÂrÃr r r r!r·fs ÿ ÿr·c@sleZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z dd„Z dd„Z dd„ZdS)Ú NormalizeTestcCs|jt |¡||ddS)N)Úmsg)rXrÚ normalize)r*Ú localenameZexpectedr r r!Úcheck€szNormalizeTest.checkc CsTtj ¡D]D\}}|j||fd| ||¡Wdƒq 1sD0Yq dS)N)r)rÚ locale_aliasÚitemsZsubTestrÉ)r*rÈÚaliasr r r!Útest_locale_aliasƒszNormalizeTest.test_locale_aliascCs| dd¡dS)Nr7©rÉr4r r r!Ú test_emptyˆszNormalizeTest.test_emptycCs| dd¡| dd¡dS)NÚcÚCÚposixrÎr4r r r!Útest_c‹s zNormalizeTest.test_ccCs¸| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| d d ¡| d d ¡| d d ¡| dd¡| d d¡| d d¡| dd¡| dd¡| dd¡dS)NÚenrZENz en.iso88591r Úen_usÚen_GBzen_GB.ISO8859-1rz en_US.utf8z en_US:UTF-8r z en_US.88591z en_US.885915úen_US.ISO8859-15Úenglishzen_EN.ISO8859-1zenglish_uk.asciirÎr4r r r!Ú test_englishs              zNormalizeTest.test_englishcCs | dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd ¡| d d ¡| d d ¡| d d ¡| d d¡| dd¡dS)Nzaz_AZ.iso88599ezaz_AZ.ISO8859-9Ez tt_RU.koi8cz tt_RU.KOI8-Cz lo_LA.cp1133zlo_LA.IBM-CP1133zlo_LA.ibmcp1133zuk_ua.microsoftcp1251z uk_UA.CP1251zuk_ua.microsoft-cp1251zka_ge.georgianacademyzka_GE.GEORGIAN-ACADEMYzcs_CZ.iso88592zcs_CZ.ISO8859-2rÎr4r r r!Útest_hyphenated_encoding s            z&NormalizeTest.test_hyphenated_encodingcCs(| dd¡| dd¡| dd¡dS)Nz de_DE@eurozde_DE.ISO8859-15zen_US.ISO8859-15@euror×zde_DE.utf8@euroz de_DE.UTF-8rÎr4r r r!Útest_euro_modifier¯s  z NormalizeTest.test_euro_modifiercCs(| dd¡| dd¡| dd¡dS)Nzbe_BY.UTF-8@latinzsr_RS.UTF-8@latinzsr_RS.UTF-8@latnrÎr4r r r!Útest_latin_modifier´s  z!NormalizeTest.test_latin_modifiercCs(| dd¡| dd¡| dd¡dS)Nzca_ES.UTF-8@valenciazca_ES@valenciaz ca@valenciazca_ES.ISO8859-1@valenciarÎr4r r r!Útest_valencia_modifier¹s  z$NormalizeTest.test_valencia_modifiercCs”| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| d d¡| d d ¡| d d ¡| d d ¡dS) Nzks_IN.UTF-8@devanagarizks_IN@devanagariz ks@devanagariz ks_IN.UTF-8Zks_INÚkszsd_IN.UTF-8@devanagarizsd_IN@devanagariz sd@devanagariz sd_IN.UTF-8Zsd_INÚsdrÎr4r r r!Útest_devanagari_modifier¾s           z&NormalizeTest.test_devanagari_modifiercCsX| dd¡| dd¡| dd¡| dd¡| dd¡| d d ¡| d d ¡dS) Nú ja_jp.eucú ja_JP.eucJPú ja_jp.eucjpz ko_kr.eucz ko_KR.eucKRz ko_kr.euckrz zh_cn.eucz zh_CN.eucCNz zh_tw.eucz zh_TW.eucTWz zh_tw.euctwrÎr4r r r!Útest_euc_encodingÌs      zNormalizeTest.test_euc_encodingcCs | dd¡| dd¡| dd¡| dd¡| dd¡| d d¡| d d¡| d d¡| d d¡| d d¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡| dd¡dS)NÚjarâzja.jisz ja_JP.JIS7zja.sjisz ja_JP.SJISÚja_jpz ja_jp.ajecrárãzja_jp.iso-2022-jpzja_jp.iso2022jpz ja_jp.jisz ja_jp.jis7z ja_jp.mscodez ja_jp.pckz ja_jp.sjisz ja_jp.ujisz ja_jp.utf8z ja_JP.UTF-8ÚjapanÚjapanesez japanese-eucz japanese.eucz japanese.sjisÚjp_jprÎr4r r r!Ú test_japaneseÕs,                     zNormalizeTest.test_japaneseN)r,r-r.rÉrÍrÏrÓrÙrÚrÛrÜrÝràrärêr r r r!rÅs rÅc@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚTestMiscellaneousc Csüddl}ddl}| t d¡d¡t|dƒr8|j}|`nd}i}z~dD]$}||jvrF|j|||<|j|=qFd|jd<| t ¡d¡W|D]}|||j|<qŒd|vr°|jd=|durø||_n8|D]}|||j|<qÄd|vrè|jd=|durö||_0dS)NrúUTF-8)NrìÚ_getdefaultlocale)rÄÚLC_CTYPEÚLANGÚLANGUAGErî) Ú_localerrXrÚ_parse_localenameÚhasattrríÚenvironÚgetdefaultlocale)r*rñrZorig_getlocaleZorig_envÚkeyÚkr r r!Útest_defaults_UTF8ïs6    ùz$TestMiscellaneous.test_defaults_UTF8cCst ¡}|rt |¡dSr1)rr½r»r¼r¿r r r!Útest_getpreferredencodingsz+TestMiscellaneous.test_getpreferredencodingcCs(| ttjdd¡| ttjdd¡dS)Nr¯óa)r’Ú TypeErrorrr³r4r r r!Útest_strcoll_3303sz#TestMiscellaneous.test_strcoll_3303cCs^t tj¡t tj¡t tj¡t tj¡t tj¡t tj¡| tj tjd¡dS)Ni90) rrrÄÚLC_TIMErîÚ LC_COLLATEÚ LC_MONETARYrr’rr4r r r!Útest_setlocale_categorys      z)TestMiscellaneous.test_setlocale_categoryc CsÜt tj¡}| tjtj|¡zt tjd¡WntjyN| d¡Yn0t tj¡}trttd|fdddzt tj|¡Wn<tjyÂ}z"| d|›d|›¡WYd}~n d}~00|  |t tj¡¡dS) NÚtr_TRztest needs Turkish localeztesting with %ar#Tr$zsetlocale(LC_CTYPE, z ) failed: ) rrrîr(rZskipTestÚ getlocalerr)rX)r*rÚlocÚexcr r r!Útest_getsetlocale_issue1813*s  ,z-TestMiscellaneous.test_getsetlocale_issue1813cCs<| t¡t tjd¡Wdƒn1s.0YdS)Nsfi_FI©r’rûrrrÄr4r r r!Ú)test_invalid_locale_format_in_localetuple?s z;TestMiscellaneous.test_invalid_locale_format_in_localetuplecCs<| t¡t tjd¡Wdƒn1s.0YdS)N)snotsvalidrr4r r r!Ú$test_invalid_iterable_in_localetupleCs z6TestMiscellaneous.test_invalid_iterable_in_localetupleN) r,r-r.rørùrürrrrr r r r!rëîs$ rëc@s$eZdZdd„Zdd„Zdd„ZdS)ÚBaseDelocalizeTestcCs| t |¡|¡dSr1)rXrÚ delocalize©r*rZr[r r r!Ú_test_delocalizeJsz#BaseDelocalizeTest._test_delocalizecCs| t |¡|¡dSr1)rXrÚatofr r r r!Ú _test_atofMszBaseDelocalizeTest._test_atofcCs| t |¡|¡dSr1)rXrÚatoir r r r!Ú _test_atoiPszBaseDelocalizeTest._test_atoiN)r,r-r.r rrr r r r!r Hsr c@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestEnUSDelocalizecCs| dd¡| dd¡dS)Nú50000.00ú 50,000.00©r r4r r r!Útest_delocalizeVs z"TestEnUSDelocalize.test_delocalizecCs| dd¡| dd¡dS)Nrçjè@r©rr4r r r!Ú test_atofZs zTestEnUSDelocalize.test_atofcCs| dd¡| dd¡dS)NÚ50000rz50,000©rr4r r r!Ú test_atoi^s zTestEnUSDelocalize.test_atoiN©r,r-r.rrrr r r r!rTsrc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestCDelocalizeTestcCs| dd¡dS)Nrrr4r r r!resz#TestCDelocalizeTest.test_delocalizecCs| dd¡dS)Nrrrr4r r r!rhszTestCDelocalizeTest.test_atofcCs| dd¡dS)Nrrrr4r r r!rkszTestCDelocalizeTest.test_atoiNrr r r r!rcsrc@s$eZdZdd„Zdd„Zdd„ZdS)ÚTestfrFRDelocalizeTestcCs| dd¡| dd¡dS)Nú50000,00rú 50 000,00rr4r r r!rqs z&TestfrFRDelocalizeTest.test_delocalizecCs| dd¡| dd¡dS)Nrrr rr4r r r!rus z TestfrFRDelocalizeTest.test_atofcCs| dd¡| dd¡dS)Nrrz50 000rr4r r r!rys z TestfrFRDelocalizeTest.test_atoiNrr r r r!rosrÚ__main__)!Z test.supportrrrrrrr»ZTestCaserr0r6rMrUÚobjectrWrfrr•r›rœr¢r¦r®r·rÅrër rrrr,Úmainr r r r!Ús6+ I  *oZ