ÿØÿà JFIF    ÿÛ „ !.%+&8&+/1555$;@;4?.451 4,$,44444444444414444444444444444444444444444444444444ÿÀ  á á" ÿÄ     ÿÄ ?    !1AQaq"2‘¡±ÁðBRbrÑá#‚’¢²3S CñÿÄ   ÿÄ !    !1QAa‘2ÿÚ   ? 5˜Z¯V¦cø)›t/? z¨±>Õ5€¶‹Á¤·¼z¼Ü¬+ñ®v¤¨_ˆR­BFn©—˜ý®ç̝P8gýt·ÉSTŦˆìät?þé¼íìN/Þa)ì–í6ô… Ï¿øÃj´¿KÇü]ÿ ªô¹-eKànëÕHTx}ýSÜ›ÿ ”7Ø×&µ<¦  ¥ÑO¶[Ù¯ä¨ÞÃÿ PZ-¬;#õ|•oaÿ ©CìÞz3˜öː/¤­ñTûIØ}š^ mÓ%ªxˆ¥ÉŸu=Z+ISe¿45™¼u;ú&WØ÷€æßQ™®{|íx*TC“#ZŠìZ§²‹ 6pv…³¿¡äª*áZÐ%ÒOáˆo"x«OHk w±æ+¬V(kMúŸ5Vö«$ ÁrÏbàb57/luR ¸ÑÛj Òµì`Мq­û žICÀÊ•©4€Âcà¨Ï€O´<èÐ:›ù(Ë^L8þ‘ÍÌ#¸Ð_Ì©ÙK(Öz 4¬û+¸;ü’V’84‘¬ÃŽ:[â‡ÔÌáõp¢~§ªlæ£ö{®G>J¼"°‡7¯ÆÉèßû ‹É‹§ÁòÃýâßî ^ƾÙõ‹×óH#«LP½ïX=xÑÍ$|W?•~• îëÔ©ª‹ {ÝT…Kÿ ”hûâá)J*ö˜–ÔU;iÇ€/ ÆþjóZ\ýwØ=Ìm ºèËL9 ýèÆð/¨’¥öo=nË.%Îì ŽÕ¯È|{Oj²ƒE6e/ßdÄõ²Ìâ1O®ò×TsəԸhOMýíMˆ¿¼H˜l²,7Â¥#MF/Úf°Ö½± ¸–dr‹NýÊ íjqx{œÉ ä-È ¦ øÄër¨q°ð †nцýÑÄÆ’mä…n<0È™;ÁÝá¯ÁZƒ7FÀmì­ É&9ˆîéi¶ùN§Y• ÃZãAâ?•‡©‰ , ó¾IŸŠc1 4â&y­&pŠ­6;M À 0¹qç»p.á …ŸÅáK@%6·y6ƒ‰3?”úºŽ‰éX5ªPT §µ!=Mž«Ú½‹ÅgÂSâÉaþÓoö–¯ÁÔìR>5éÿ üs¶ÆUcÌ kÇR ]ÿ ù¬¼«VŽ;Â|‡~¢¦”ÏŰæ {L™Õ°Óv¹ò¸írޡעCÃ!íVÕ {¶»sŒNPg/ "uÕbkm²“$ďå¿é¹§°½æz¯6 †s¿!s–wÚÝ“™Œ °.ûj>·+™Òa…©Œ&rÝÎtÛë긪Ît’LAVp%c Úý[ÄzJ¾ÇàXXç@˜ó<êL]·T˜¾¥1Ó©V‡g´æ½¦Ý@¹óø!_@´ÞâSÁ —S3™•& ]@JHÚý©ZŽ €×æÔr»Áf!‡yÞ4Mv*èÓã_{‘åóUuљØ«Oïé*®EvÑ Œ÷‡U \"㪒ÍK+À 4“M¡ï:0¥5í!'<@î´”>Ç»&Z–ïCCV˜Ì5Šo&îhè.žû |ÓK©h$s6KìŒëã)¹hI¦GïOåóI;ììü#É$Š0…Ææ¥TØ.5­¾gn´ “ÂÖ\:hœ89G)J@„}œ:’Ò{/Š"¦_Æ×7Æ3VÇŠÊa]ÚŒÙ€Ä–=®uÁßâACZƒ§§£ Qnâ:«,×{tyø¬iÛcœÜÄ€H½ÄÍCk´÷šß .W'b¤Íåh]÷€=,Žv×cÚEÚHXJX¶îo¨FÒtèöŸ>ªª6[J®Fµ£sGÁeqõfe\íjÒÐïÄÐGˆe1Ø‹.Ø”‘Ëuø Y­ˆÜ ŽG|zùªüMpDnQWÄ”%JŠ™)â*p@Örš«ÕT2Ð%ˆG#ª„ ·¤!°ŸOTÂT¸aÚ%4&h™LµšØüÐ.F¿²ÐÞ_Ç‚¾ÅÃaÜ÷09Æ q€öy˜v‡85õN÷]¬äѼóS{°_MެúÔ#°Ç¸0åÞè2ëôPcvÆw9®ií1Ä8F™˜à‰´+‰Ik1òÝ7“Ñ×ÒsÝ\x‚h`ÞÑ`ó"|µEcý£n˜h`}GÞ !±ù²Ápü²ß6 0ïi󜵩SÈÇ7˜-ÕURO˜¦´f$ªž-Í6(œ}<„ éc øs]ŽŽ„*—¾ ìdŽ„)méª\¿êÎIg¾ØÞ~I#C/¼¼´EÁÈŽi8“©õådô·>euä ƒ'Ê×लR1ÉJE1ÐAát`t;ÇР%Ý<‡¥„ÍÆ`×Oyó)õiI€ñQaŸ4Ûù\áàaÃÔ¹HÃu¹*k€¦<„e S‡&õÏ B!ŽhüÞ`yj}mªf×\¿ Ç~æ­9‡û\՞Ǖg²1Žû5V7 !àöšm° c`ܬøÇìµÒ'P"?…´Ö,"§^•õލsÔ)6˜sæéÍR¼ ò|Sl”‹7 nPW Gòú÷½§O¯‡„l¡kSÞŒr½PÊ@æ¢pŽ-mÿ #Ÿ˜Àº¶Áä¦;ïÔæ$1££`“Õ>„—·ž)ßð³ñ#Ï Ô$¶œ‰ÊE‹À;÷º ¯«P:Ñ”8–IÊtpÞ3ª“>ê“þës4ò2OÏÕ­±zô†Õ§‰.÷ä¸;¿˜“'œ›žª}«Œ{ª±Ì 9ÔóÞÕ‡0 $íWV3Üì¬ —@kÝ4@¿r¼±½¬™›?øØæ´'Áé®CË3-g$˜ö‡×auÚi´Žp/êÛ æF›Ú2v‹ã¿¿,nB1̨ƃqÞa5͝@&Æû“él÷ \C²½UÍc ¯k×¢U ÖéQå™—-r wô ÞÏ<Ò=&=ÿ Ôê Òêˈt,i—;LîÜ á¸*ÚÃ1$êL•LÍ <É)ýÐà’ ;F™{ƒ™˜€&'}‚ãÄK`¡ÞT@I;®žZóè‚s’7®°›+§O­Åq©é»²9<Ô J ¼9O’HL»Ùïì¸rk¼Ž_ý‘TŸu[²ßÚŒ·ü÷B%¯E ŸÔX5êO´ Ç•€’I0 ÉJX` ñ¹õ%;µŸD‘«´€àwÒ™U ûئžÖö\×®×´8 ½‡ºÐÆÓ§?Àkmœ=;d5*@-ì0F Rªýš[Ü6âö̃ڸr*KA9· u*µæ£?U¸Âêí†8@¦X4 e-ò„0s{ HâUpU?¼mñRa°®a%Ð'tÉ×’\¾ÊÉ]t›h>·(Ë@R¼¡Ãt h}’O÷au<+nT…Ö…MӐ??Óe95 q>í/;&JSû °¯ÊéÞ øƒ*Ã2½Ài&:nôUl=¾¿5eˆ3”ñc|Ú2V”>„»&eE;«ÚäC p¢Û úy 9š[ŒÌx¼擼A&DåÒ¯ˆ¤ÀÌ;"˜ ÏQä¸åhÊ}Ûq«Û0WžÒ|»€ø®öCm5•\ÇÀ§Pe3£]0ÃàLDÉ‰1øªxjgwT‚÷¿LΨK‹›ùs—xˆÜ±µ kæ¸f‰‰ÜGk/LÛØ6d9ò¶ùA{ƒA3š/¬D¬khÓk‰`˜"㯒r¿±Óã jx‡°e}<Ñø\3y:'À•/h½Í€Ç4~g ?Û(¼]v‘ªlKÎâ~?O‚W%{Ì:“'©úNq¾›úo(X’¥¯ˆ nFê{Ç€ü?º'ë ø‹ì Þ09ŒÌç9Æ —ËC`j@ÓÄ(+a‹un¸#ÂꟋ{K`‘ÑÍÍ'à´»/Û,KW;Þ4²þð ï Nm|~fGÏ(…³Ã)«1ö­Õ ¥‡¨©ƒÃ™ü-s=à=U66Ï«Ýc蓦W¹íž®›nÔ%êÇìŒ<#Ü×84ån®Ð ÒåOC` ñânÑs‡¢ç 1õ%Îhì½Ã½® e:ݼUZo™`  ÅZŸŒÊ«ê1ÏÄo$q¹Þ€©ˆhÐÉä¯ñ[!…Ú˜àJ:x2$Íß&PåT£6ç— ‡Í*4Ýšçjÿ ‰É nófÐ ó(L5C•åÆ\rMÒ@ò }y-W}™üýVù—ú¢=Ù”c®‘< M ž ´Phr ¦©TD ‘ù.$´÷O‡‘V2Æò.=IUŒ=ž‡â¬i™aþÓåÙ?òUø'ØÖ•.~* šTŒ!•-×áºTâ®ä#õü'´ eýlYÅÓeÕKÂrT"CÚ@u!Óxƒ{š3€}1¿(r}%«nËamjÑ%ÑNEò v ˜à  σöK³,*º.àzù¨™Ó ÚçâU¦*¿ 9{%Ö¹ njûdaXöb) kÛÆ±ûÓ\°M7ˆÂ=û›ç¿Ã‚­V»Cg–8ÙêE- j)k$º`Ã-ùEýeBÆÇ]c¡°ñty&Òd0nõ'¡W+ƒ*|–øµFa\GQªEAÔp5\Ǽ·¼Ç8·õ -â§Ú[ ‡ uZeÖ 3}×d'+¹:ð+K†Û®s!Ï$úe€<Û”x)1»a­¡LC]¸µík…ÚàA»AYº{†ªS[¦5HÒ7ù --,ísòDØ€èk ÞÀîÜ ò@â( ËNˆë›4ô½•/¦o‡€Û7 ê•ÆêòðÜy'Án½µ á˜ݦ ndeo…[ì¶Ê,¥R³Ä=À±—–ß;£™´ñSâ*g§”ïaið‘Jå~™ÓÞ ß³Õ¢»8x埒²52>AÊb&-÷\7´éÄù€T˜,w;3{ï˜k…à¹ÄqÀ«œ{€\ ˆ¾[´¨јr &Úé„Ívˆ±8†¿]|¬ņ4I×pÞS1ÈÖz‰#Ìv‡G!YNògñ:màTz¢Ý1ô©^O=~ë|5Bã™ç•¼µõ•bÆ@úÕS¬ÈŒ#¬zünrŸ û” Z²•èðV"ÁHÚý©wÝ €7¼Ìu1hÑa3Éä û f$o¿É ™Ú›ÝçnpÒ3äÌ3†Í§,Äï]$‰/pê †«À¼¸e9­Æê_C]žƒ·ý·frÁN«, E=›Çq -‰öŒ:aÏ¿±í&£Í:-} 84‘ÿ eƒQÑeëSsuiA ³g㟥ú£?ÿ ʼn*”“÷aühe:ÊWa@ÒÞk±eØ] F Ô—r.åä˜ @ö¥ªZoÐýYL·¥S²G/‡ñ <~*ZÆ´è>JlòàÛÆ½ÿ 窘ìGN¢:I®KšJp/`íIÁÀõ#Ä-€ö­šµŒoF4|ÆQØÆ@Ì|£Ô…¢À{9˜è½Üó›€ôYÒÎYsið;ís¤€à²ˆ‚4qÉVŒI$ ‰"° æµ8cXGjœˏ¡Aâý•ËÜ¢ûï e·çLx']á"oÅÎê3¯Ç—¹”ó0nå‚âg{Œñ> S´˜îè°g238‚ãköÝfÚd´6Ò€;ò÷±¢™¼›º ¢Æ'¥Ðx'e¬ç ]bÈÆV¢ó‹kýBO ðÊâ$Ÿ!×T 3Mýמ žìٍàÌü‘8÷€àæØ8æ©6‰©L´«…oãpð„~Çk‰!ñ;‹”ÛžÍ àž±z Ÿôû øŸÝužÏ;ÿ #|u6™Þ¬ÚˆÐõA4¶â|ôl|Ê2ŽÇ¤ÝÅÇY.<#Aí.k§hóF‚”Y; M½Ö4hŸ4&›­¿tès´%FìL¥£Ãk‰ÇT¤haÁ¤ÚxfÉ`ÑìË›>i 3t‚:,–+^÷´–{Û–Nxi"x‘Ûg î¨>¥Õ܁ùZH,2Û“:8xÊ¢Çí9.É-Ìâã-=çjwµS˜dütžçwýGòú®®ûº_ˆýx$–¡ãøO EÚÛÏ÷R„×w+3£Á£öUMyR²¹âŒ°š›¸Ñãò9§Ó_Dl+Ùßc›úšGÅÌc†Ž!Ko=¶.‘Îÿ c²(2®V mª.ÿ ¹B›¹å ù„öŸSV>™ü¯$y:G¢Z×àøúdî¹û­·ýÇ´:•c LÍõi_‹ö+ÎæGÊè>OŠ•äž´§Þ{X}¨1ÚTc›»Qþ•êô°t¿OP?eæ~É{5]•ÙR£r5†nZ\ã@ &îJõ ¾àC°þV>fé¥/ü5ñÊIº_é5 ;e­h<@ Ä&æÃëE%;X,ÒãÆÞ`Oò¦kŸm#˜!ÀyÄ¢| óLšò¥Ä` ¶R=|ÈCâh5ò3DˆïF†ðÒ#ÅìÛœ?¸yhBãœí ZxßÎÄhºRK„`Þödvײ™ÀÈÑÒgŒuY w³%†ƒÓzõ ÖÏp‚dH®¦A´ù§»ÓÇMæ~)ˆð‡û:ù&Ä •vGD´À n ݇¼Ö8Fö óáà£~Ë¥x`oK|Ä?fxiØü%pìR>éò+Û±éÎ>núlFŤ'tq8LZÏvÃ?„¡ß±È⽆¯³íü@x|PöUäèØã¡ð‚ŒAìÏ"vÍwóŸÍ{ ý0.z È•Ö{,N¡£¡ŸKÕÙž>Ýœþ ÍÀ°<×EA!Å‚D™IúOÍ¡>ôG}Â` ÍßkÜL™Ž Þð™ {IøF²¹òQ3&!ÃÂÞz.d&Ï-sH¸,Ôõ˜ŽP€ 77ˆÝ¼ÊëÜw =cÕ Ú,ØÐ5ÎYÐ)ì´öœgŒ[¤ßv㙑8心>h]§µháYš£²ºÑ.{Ï7Sð•?´~×SÃKýJÛ˜ ™Íäiúu<µX¶1õ^kâçIÑ£sZ4h>j*ÔšD:4­¿_ ÷¸ Õxæÿ ¸?Mù _•­ÊÐ ä ÷ý ÑwL œ­ïnTkÛUÍN©ë:¦fV ¶ÜÔÜMªÅâA½–¿R×TXš-%iTÊT•‡Ù‚JôϐZxWÑè‰f‰òG º ×Õû2aZ7OU3[“×AT–ÞŒ…-‘¤”Ì ì&(ˆ¿­•ƒkï’:ðY¦W‘ Å)“†‘˜³Åtcø˜ñTÂwÚÇ4|üLÇªí–v- qˆèU qPE.†â‘˜µ Æ,ÐÅs]8¾„oúÑ i>ÜxxÈó)ƒ ´æÁâØ$À‰vžŸf$Ž |ãw;ÀÁIJ»b` {¦Ó¤Ú$©YÀ‘n@Óïž«9J¼êG m¤ ܯ¹ÌW4€ÐÒÅÛ‡#褕Ÿn-?í|с¥÷Ú¹¬'´ÞÜ9ÓK `hê£SÄSà?7—Wí_´…óB›»:=Ãïq`<8ñÓŒÑlú2d¬ê³£hÖ[l|$vÝro~'R®‰§°ñmY ͧäP |PUª¹·:3Œ[Û{Xÿ ºâ@‚W–Äé u‚ ¯´*=íή.pûÒdt @G‰¬ s¸ ëÉücr ÞæÑ¨Ê@>¤¢Ö±. Þ'¯°ÌME[YéïĵÂCå½ Ué©Áû'Ê9%eÔðNU”ë‘ÌsD3/®+UI˜9h.WC”빓$#:pz:YÓ ¿xž* ³$Í +$kñAŠ‹†¢ Uê>¸)_š¬÷©ßAÂÔb9ÇU ¯¾á•9¯ÏÏ÷O÷¼¼Fähal1‰3Ì[Ïr•´UCksNÐ] R‘¸¥H+§Šé†c©vÖÞ0iÓ76s†î!§=ß ¼~Ô'°Ãmäoäš³ªøi1úÉ)³yV8 CLÄØÁ‘WYïi€H6ÖÑiámø^ÈY´°Ñ7¥Û*—Ñ©L«Qƒï—Ùrÿ ›£Ð*š¸ˆL©ˆ$ˆ ÷¾D§9È®«qbqC)–ˆïv´çñsÑVT­Ø, <àïºÀO«Jý·õ àfPìð .wFšir´þ’2_Y *Æ€x\« ì€9š@ Ž|F⇥ˆkZ@hÖÄ0t¿-<“‹qµ¾*ZL¤Ú)&BJpÓF5=$„at*Zš$’ÑtdûÝRI1 2މ$€$I$#‰SÞ’Hë¬ï;Á$¡t$’`<(ñÇt)$‡Ð.Êf¢X’Kt=Éé$‚ˆªè¢oÝëòI%Rgcª÷ŠyI%¡‰ÿ !ñ)´õ $¤ Ô’IIGÿÙa 3gK_@sddlmZmZmZddlZddlZddlZddlZGdddejZ GdddejZ Gddde Z Gd d d e Z Gd d d e Z Gd ddeZGdddeZGdddejZGdddejZGddde eZGddde eZGddde eZGddde eZGdddejZGdd d e eZGd!d"d"ejZGd#d$d$ejZGd%d&d&e ZGd'd(d(e eZGd)d*d*e eZGd+d,d,e eZed-kre dS).)verbose is_androidcheck_warningsNc@s eZdZeddZddZdS)BaseLocalizedTestc Cstjdkr>ddl}d}t|jdddkrTtdntj drPd}nd }zrt t j }|D]4}zt t j |Wnt j yYqfYn0qqftd d |||_Wt t j |nt t j |0dS) Ndarwinr) en_US.UTF-8en_US.ISO8859-1en_US. z#Locale support on MacOSX is minimalwin)ZEnZEnglish)rren_US.US-ASCIIr z$Test locale not supported (tried %s)z, )sysplatformosintunamereleasesplitunittestSkipTest startswithlocale setlocale LC_NUMERICErrorjoin enUS_locale)clsrZtlocs oldlocaleZtlocr //opt/python39/lib/python3.9/test/test_locale.py setUpClass s*     zBaseLocalizedTest.setUpClasscCsJt|j}|tj|j|t|j|jtrFtd|jddddS)Nztesting with %r... Tendflush)rr locale_type addCleanuprrprint)selfrr r r!setUp+s  zBaseLocalizedTest.setUpN)__name__ __module__ __qualname__ classmethodr"r+r r r r!rs rc@seZdZddZddZdS)BaseCookedTestcCs |jt_dSN) cooked_valuesr_override_localeconvr*r r r!r+8szBaseCookedTest.setUpcCs it_dSr1)rr3r4r r r!tearDown;szBaseCookedTest.tearDownN)r,r-r.r+r5r r r r!r03sr0c@s6eZdZdddgdddgdddddddddddZdS) CCookedTestr currency_symbol decimal_point frac_digitsgroupingint_curr_symbolint_frac_digitsmon_decimal_point mon_groupingmon_thousands_sep n_cs_precedesn_sep_by_space n_sign_posn negative_sign p_cs_precedesp_sep_by_space p_sign_posn positive_sign thousands_sepNr,r-r.r2r r r r!r6>s&r6c@s>eZdZdddgddddgdddddd dddd dd Zd S) EnUSCookedTest$r rQrzUSD ,r-r7r9NrLr r r r!rMVs&rMc@s>eZdZdddgddddgdddddd dddd dd Zd S) FrFRCookedTest€rRrOrPzEUR r#rrSrTr7r9NrLr r r r!rUos&rUc@s,eZdZddZddZddZddZd S) BaseFormattingTestcKs||||fi||dSr1) assertEqual)r*formatvalueoutfunc format_optsr r r!_test_formatfuncsz#BaseFormattingTest._test_formatfunccKsLtdtf,|j|||fdtji|Wdn1s>0YdS)Nr7r\)rDeprecationWarningr^rrYr*rYrZr[r]r r r! _test_formats zBaseFormattingTest._test_formatcKs |j|||fdtji|dS)Nr\)r^r format_stringr`r r r!_test_format_strings z&BaseFormattingTest._test_format_stringcKs|tj|fi||dSr1)rXrcurrency)r*rZr[r]r r r!_test_currencysz!BaseFormattingTest._test_currencyN)r,r-r.r^rarcrer r r r!rWsrWc@sTeZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ dS)EnUSNumberFormattingcCstd|_dS)NrK)r localeconvsepr4r r r!r+szEnUSNumberFormatting.setUpcCsR|jdddd|jd|jddddd|jdddd d|jd ddd ddS) N%frSz 1%s024.000000r=r[f 102.000000 -42.000000%+frarhr4r r r! test_groupingsz"EnUSNumberFormatting.test_groupingcCs^|jdddddd|jrZ|jdddd |jd d|jd ddd |jd ddS) N%20.frnrS-42rk%+10.f-4%s200r %-10.f)rarjustrhljustr4r r r!test_grouping_and_paddings  z.EnUSNumberFormatting.test_grouping_and_paddingcCsL|jdddd|jd|jdddd|jd|jdddd |jddS) N%dhT4%s200rkz%+dz+4%s200rwrxrqr4r r r!test_integer_groupingsz*EnUSNumberFormatting.test_integer_groupingcCs@|jdddd|jdd|jdddd |jdddS) N%10dr~Trr rk%-10drwrx)rarhrzr{r4r r r!!test_integer_grouping_and_paddings   z6EnUSNumberFormatting.test_integer_grouping_and_paddingcCsL|jddddd|jddddd|jdddd d|jd ddd ddS) Nrirjrz 1024.000000rkrlrmrnrorprar4r r r! test_simplesz EnUSNumberFormatting.test_simplecCsL|jdddddd|jdddd d d|jd d dd d ddS)Nrsrnrrtrurkrvrwz-4200r ryr~Z4200rarzr{r4r r r! test_paddingsz!EnUSNumberFormatting.test_paddingcCs>|t tjddddWdn1s00YdS)Nryr~Tr=)Z assertWarnsr_rrYr4r r r!test_format_deprecations z,EnUSNumberFormatting.test_format_deprecationcCs|jdddd|j|jfd|jdddd|j|jfd|jdd d d |jrt|jd d ddd|jdd|jdddddd|jr|jdddd|jdd|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)rOrz1000.00z%*.*f)r rOrz 1%s000.00zint %i float %.2f str %s)rrstrz"int 1%s000 float 1%s000.00 str str)rcrhrzr4r r r!test_complex_formattings2      z,EnUSNumberFormatting.test_complex_formattingN) r,r-r.r+rrr|rrrrrrr r r r!rfsrfc@seZdZddZdS)TestFormatPatternArgcCstdtf|ttjdd|ttjdd|ttjdd|ttjdd|ttjdd|ttjdd|ttjd dWdn1s0YdS) Nr7z%f fooz%f z%f z %fz%fgz%^g%f%%)rr_ assertRaises ValueErrorrrYr4r r r!test_onlyOnePatternsz(TestFormatPatternArg.test_onlyOnePatternN)r,r-r.rr r r r!rsrc@s eZdZdZddZddZdS)TestLocaleFormatStringz%General tests on locale.format_stringcCsT|tdddd|tdddd|tdddidddidS)Nr?z%d %f%%d)rSrz %(foo)s %%drbarrXrrbr4r r r!test_percent_escapes z*TestLocaleFormatString.test_percent_escapecCsD|tdddidddi|tdddidddidS)Nz %(foo)s bing.rrz%(foo)srr4r r r! test_mappings   z#TestLocaleFormatString.test_mappingN)r,r-r.__doc__rrr r r r!rsrc@seZdZejZddZdS)TestNumberFormattingcCst|t|dSr1)rr+rfr4r r r!r+s zTestNumberFormatting.setUpN)r,r-r.rrr'r+r r r r!r src@seZdZddZddZdS)TestEnUSNumberFormattingcCst|t|dSr1)rMr+rfr4r r r!r+s zTestEnUSNumberFormatting.setUpcCs2|dd|jdddd|jddddddS)NPz $50000.00z $50,000.00Trz USD 50,000.00r= internationalrer4r r r! test_currencys  z&TestEnUSNumberFormatting.test_currencyN)r,r-r.r+rr r r r!rsrc@seZdZddZddZdS)TestCNumberFormattingcCs|jddddddS)N%.2f)\@Tz12345.67rkrr4r r r!rr$sz#TestCNumberFormatting.test_groupingcCs|jddddddS)N%9.2frTz 12345.67rkrr4r r r!r|'sz/TestCNumberFormatting.test_grouping_and_paddingN)r,r-r.rrr|r r r r!r!src@s<eZdZddZddZddZddZd d Zd d Zd S)TestFrFRNumberFormattingcCs|jdddddS)Nrrz12345,67rrr4r r r!test_decimal_point.sz+TestFrFRNumberFormatting.test_decimal_pointcCs(|jddddd|jddddddS)NrQu@T345,67rkr 12 345,67rr4r 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.2frTrrkz%7.2fz 345,67z%8.2frrrz%10.2fz 12 345,67z%-6.2fz%-7.2fz345,67 z%-8.2fz%-9.2fz%-10.2fz 12 345,67 rr4r r r!r|5sz2TestFrFRNumberFormatting.test_grouping_and_paddingcCs(|jddddd|jddddddS)Nr}TZ200rkr~4 200rr4r r r!rAsz.TestFrFRNumberFormatting.test_integer_groupingcCs||jddddd|jddddd|jdddddd|jd dddd|jd dddd|jd ddddddS) Nz%4dr~Trrkz%5drr z%-4dz%-5drrr4r r r!rEs z:TestFrFRNumberFormatting.test_integer_grouping_and_paddingcCs>d}|dd||jdd|dd|jddddddS) NrVrz 50000,00 z 50 000,00 Trz 50 000,00 EURrr)r*euror r r!rMs z&TestFrFRNumberFormatting.test_currencyN) r,r-r.rrrr|rrrr r r r!r+s  rc@seZdZddZddZdS) TestCollationcCsd|tddd|tddd|tddd|ttjdd|ttjdddS)Nabra) assertLessrstrcollrXZ assertGreaterrrr4r r r! test_strcollXs zTestCollation.test_strcollcCs,|tdtd|ttjddS)Nrrr)rrstrxfrmrrr4r r r! test_strxfrm`szTestCollation.test_strxfrmN)r,r-r.rrr r r r!rUsrc@sReZdZejZddZee j ddddZ ee j ddddZ d S) TestEnUSCollationcCsbttdpdj}|dvr(td|dkrTtjdksJt sJtj drTtdt |dS) NFascii)zutf-8 iso8859-1cp1252zencoding not suitablerrZfreebsdzwcscoll/wcsxfrm have known bugs) codecslookuprgetpreferredencodingnamerrrrrrrr+r*encr r r!r+ks   zTestEnUSCollation.setUpZaixzbpo-29972: broken test on AIXcCs|tddddS)Nàrr)rrrr4r r r!test_strcoll_with_diacritictsz-TestEnUSCollation.test_strcoll_with_diacriticcCs|tdtddS)Nrr)rrrr4r r r!test_strxfrm_with_diacriticysz-TestEnUSCollation.test_strxfrm_with_diacriticN)r,r-r.rLC_ALLr'r+rZskipIfrrrrrr r r r!rfs  rc@sleZdZddZddZddZddZd d Zd d Zd dZ ddZ ddZ ddZ ddZ ddZdS) NormalizeTestcCs|jt|||ddS)N)msg)rXr normalize)r* localenameZexpectedr r r!checkszNormalizeTest.checkc CsTtjD]D\}}|j||fd|||Wdq 1sD0Yq dS)N)r)r locale_aliasitemsZsubTestr)r*raliasr r r!test_locale_aliasszNormalizeTest.test_locale_aliascCs|dddS)Nr7rr4r r r! test_emptyszNormalizeTest.test_emptycCs|dd|dddS)NcCposixrr4r r r!test_cs zNormalizeTest.test_ccCs|dd|dd|dd|dd|dd|dd|d d |d d |d d |dd|d d|d d|dd|dd|dddS)NenrZENz en.iso88591r en_usen_GBzen_GB.ISO8859-1rz en_US.utf8z en_US:UTF-8r z en_US.88591z en_US.885915en_US.ISO8859-15englishzen_EN.ISO8859-1zenglish_uk.asciirr4r r r! test_englishs              zNormalizeTest.test_englishcCs|dd|dd|dd|dd|dd|dd|dd|dd |d d |d d |d d |d d|dddS)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-2rr4r r r!test_hyphenated_encodings            z&NormalizeTest.test_hyphenated_encodingcCs(|dd|dd|dddS)Nz de_DE@eurozde_DE.ISO8859-15zen_US.ISO8859-15@eurorzde_DE.utf8@euroz de_DE.UTF-8rr4r r r!test_euro_modifiers  z NormalizeTest.test_euro_modifiercCs(|dd|dd|dddS)Nzbe_BY.UTF-8@latinzsr_RS.UTF-8@latinzsr_RS.UTF-8@latnrr4r r r!test_latin_modifiers  z!NormalizeTest.test_latin_modifiercCs(|dd|dd|dddS)Nzca_ES.UTF-8@valenciazca_ES@valenciaz ca@valenciazca_ES.ISO8859-1@valenciarr4r r r!test_valencia_modifiers  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_INkszsd_IN.UTF-8@devanagarizsd_IN@devanagariz sd@devanagariz sd_IN.UTF-8Zsd_INsdrr4r r r!test_devanagari_modifiers           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.euctwrr4r r r!test_euc_encodings      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|dddS)Njarzja.jisz ja_JP.JIS7zja.sjisz ja_JP.SJISja_jpz ja_jp.ajecrrzja_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-8japanjapanesez japanese-eucz japanese.eucz japanese.sjisjp_jprr4r r r! test_japaneses,                     zNormalizeTest.test_japaneseN)r,r-r.rrrrrrrrrrrrr r r r!rs rc@sDeZdZddZddZddZddZd d Zd d Zd dZ dS)TestMiscellaneousc Csddl}ddl}|tddt|dr8|j}|`nd}i}z~dD]$}||jvrF|j|||<|j|=qFd|jd<|tdW|D]}|||j|<qd|vr|jd=|dur||_n8|D]}|||j|<qd|vr|jd=|dur||_0dS)NrUTF-8)Nr_getdefaultlocale)rLC_CTYPELANGLANGUAGEr) _localerrXr_parse_localenamehasattrrenvirongetdefaultlocale)r*rrZorig_getlocaleZorig_envkeykr r r!test_defaults_UTF8s6    z$TestMiscellaneous.test_defaults_UTF8cCst}|rt|dSr1)rrrrrr r r!test_getpreferredencodingsz+TestMiscellaneous.test_getpreferredencodingcCs(|ttjdd|ttjdddS)Nra)r TypeErrorrrr4r r r!test_strcoll_3303sz#TestMiscellaneous.test_strcoll_3303cCs^ttjttjttjttjttjttj|tj tjddS)Ni90) rrrLC_TIMEr LC_COLLATE LC_MONETARYrrrr4r r r!test_setlocale_categorys      z)TestMiscellaneous.test_setlocale_categoryc Csttj}|tjtj|zttjdWntjyN|dYn0ttj}trttd|fdddzttj|Wn<tjy}z"|d|d|WYd}~n d}~00| |ttjdS) Ntr_TRztest needs Turkish localeztesting with %ar#Tr$zsetlocale(LC_CTYPE, z ) failed: ) rrrr(rZskipTest getlocalerr)rX)r*rlocexcr r r!test_getsetlocale_issue1813*s  ,z-TestMiscellaneous.test_getsetlocale_issue1813cCs<|tttjdWdn1s.0YdS)Nsfi_FIrrrrrr4r r r!)test_invalid_locale_format_in_localetuple?s z;TestMiscellaneous.test_invalid_locale_format_in_localetuplecCs<|tttjdWdn1s.0YdS)N)snotsvalidrr4r r r!$test_invalid_iterable_in_localetupleCs z6TestMiscellaneous.test_invalid_iterable_in_localetupleN) r,r-r.rrrrrrr r r r r!rs$ rc@s$eZdZddZddZddZdS)BaseDelocalizeTestcCs|t||dSr1)rXr delocalizer*rZr[r r r!_test_delocalizeJsz#BaseDelocalizeTest._test_delocalizecCs|t||dSr1)rXratofr r r r! _test_atofMszBaseDelocalizeTest._test_atofcCs|t||dSr1)rXratoir r r r! _test_atoiPszBaseDelocalizeTest._test_atoiN)r,r-r.r rrr r r r!r Hsr c@s$eZdZddZddZddZdS)TestEnUSDelocalizecCs|dd|dddS)N50000.00 50,000.00r r4r r r!test_delocalizeVs z"TestEnUSDelocalize.test_delocalizecCs|dd|dddS)Nrj@rrr4r r r! test_atofZs zTestEnUSDelocalize.test_atofcCs|dd|dddS)N50000rz50,000rr4r r r! test_atoi^s zTestEnUSDelocalize.test_atoiNr,r-r.rrrr r r r!rTsrc@s$eZdZddZddZddZdS)TestCDelocalizeTestcCs|dddS)Nrrr4r r r!resz#TestCDelocalizeTest.test_delocalizecCs|dddS)Nrrrr4r r r!rhszTestCDelocalizeTest.test_atofcCs|dddS)Nrrrr4r r r!rkszTestCDelocalizeTest.test_atoiNrr r r r!rcsrc@s$eZdZddZddZddZdS)TestfrFRDelocalizeTestcCs|dd|dddS)N50000,00r 50 000,00rr4r r r!rqs z&TestfrFRDelocalizeTest.test_delocalizecCs|dd|dddS)Nr rr!rr4r r r!rus z TestfrFRDelocalizeTest.test_atofcCs|dd|dddS)Nrrz50 000rr4r r r!rys z TestfrFRDelocalizeTest.test_atoiNrr r r r!rosr__main__)!Z test.supportrrrrrrrZTestCaserr0r6rMrUobjectrWrfrrrrrrrrrrr rrrr,mainr r r r!s6+ I  *oZ