ÿØÿà 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 3gŀ@sddlZddlZddlmZddlmZmZddlmZddlm Z m Z m Z ddl Z e dZe dZGdd d ejZed kredS) N)support)VALID_UNDERSCORE_LITERALSINVALID_UNDERSCORE_LITERALS)random)atan2isnancopysigninfnanc@s$eZdZddZd?ddZddZd@dd Zd d Zd d ZddZ ddZ ddZ ddZ ddZ ddZddZddZddZd d!Zejd"d#Zd$d%Zd&d'Zd(d)Zd*d+Zejd,d-Zd.d/Zd0d1Zd2d3Zejd4d5Zejd6d7Zejd8d9Z ejd:d;Z!dS)A ComplexTestcCst|trdt|tr>tj||j|jtj||j|jqtj||j|tj||jdn@t|trtj|||jtj|d|jntj|||dS)N) isinstancecomplexunittestTestCaseassertAlmostEqualrealimag)selfabr0/opt/python39/lib/python3.9/test/test_complex.pyrs   zComplexTest.assertAlmostEqual& .>cCs`t|t|kr||}}|dkr.t||kS|dkrBt||kS|t||||kdS)z+Return true iff floats x and y "are close".rN)abs assertTruerxyZepsrrrassertCloseAbs s   zComplexTest.assertCloseAbscCstd}t|st|r*t|r^t|r^dSn4||kr^|dkr>dStd|td|krVdS|d7}||||dS)a#assert that floats x and y are identical, in the sense that: (1) both x and y are nans, or (2) both x and y are infinities, with the same sign, or (3) both x and y are zeros, with the same sign, or (4) x and y are both finite and nonzero, and x == y z&floats {!r} and {!r} are not identicalNr ?z: zeros have different signs)rrfailformat)rrrmsgrrrassertFloatsAreIdentical,sz$ComplexTest.assertFloatsAreIdenticalcCs(||j|j|||j|j|dS)z.Return true iff complexes x and y "are close".N)rrrrrrr assertCloseCszComplexTest.assertClosecCsp||}|dkr:||}|||||}||||dkrl||}|||||}|||dS)z8Compute complex z=x*y, and check that z/x==y and z/y==x.rN)r% __truediv__)rrrzqrrr check_divHs     zComplexTest.check_divcs8ddtddDfddD}|D]}|D]}|||q2q*|tddd|tdddtd D]$}|ttttttqr|ttjd d |ttd d | td d d|ttjd d dt ft dft t ffD]<\}}tddt||}| t |j | t |jqdS)NcSsg|] }t|qSr)float).0irrr Wz,ComplexTest.test_truediv..cs g|]}D]}t||q qSr)rr+rrZ simple_realrrr-Xr.gZbti?N~hd??yZbti?@y?r)ranger)rr assertRaisesZeroDivisionErrorr& OverflowErrorpowrNANrrrr)rZsimple_complexrrr,Z denom_realZ denom_imagr'rr2r test_truedivVs&  zComplexTest.test_truedivcCs(|ttjdd|ttjdddS)N@y?r7)r: TypeErrorr __floordiv__rrrr test_floordivrszComplexTest.test_floordivcCs|tddd>d|tddt|tddd|tddd|tddd|tdddtddD]p}|d}|t|d |d|t|d |d|tt|||d|tt|||dq|tddt|tddt|tddt|t ddt| t t j dd| t t jdd| t t jdd| t t jdd|t ddd|t ddd|t ddd|t ddddS) Nr6i'FTy@@r5gY@r7)assertIsr__eq____lt__NotImplemented__ne__r9__le____gt____ge__r:rAoperatorltlegtgeeqne)rr,frrrtest_richcomparevs0zComplexTest.test_richcomparecsdfdd }tddD]R}d|}d||d|tddfd d |d|tddd d t|q|d td ddd dS)Nr csR|D]H}||}t||}t||||t|||| qdSN)rrFrGrJ)nZdeltasZis_equalrdeltar,r'rCrrchecks  z6ComplexTest.test_richcompare_boundaries..checkrE 4ecs |dkS)NrrrY)multrrr.z9ComplexTest.test_richcompare_boundaries..cSsdS)NFrr_rrrrar.lircSsdS)NTrr_rrrrar.)r )r9r*)rrZr,r=r)r`rrtest_richcompare_boundariess "z'ComplexTest.test_richcompare_boundariescCs4|tdjd|tdd|tdjddS)Nr6r7cSsddS)Np= ף @Q@rrrrrrrar.z&ComplexTest.test_mod..y333333@)r:rA__mod__rCrrrtest_modszComplexTest.test_modcCs$|ttdd|ttdddS)Nr6r3r7)r:rAdivmodrCrrr test_divmodszComplexTest.test_divmodc Cs(|tddd|tddd|ttdd|tddd|tdd d |ttdddd }||dd ||ddd |d d |d d z d|WntyYn 0|d z ddWntyYn 0|d ||d|d||d|d||d|d|d d d}|tt||dtjtjd tjd tj tj d tj d f}|D]}|D]}|j ||d^t ||}z ||Wnt yYn0z ||Wnt yYn0Wdn1s0YqqdS)Nr6r7r r8r ?yrErcr3z,should fail 0.0 to negative or complex powery@iiffffff@ffffff@rrr) rr=r:r; ValueError assertEqualr!sysmaxsizesubTestrr<)rrrvaluesrrcrrrtest_powsT            zComplexTest.test_powc Cstddtddtdtttdg}gd}|D]}|D]}|j||dz ||}Wntynd }Yn0z|t|}Wntyd }Yn0z|t|}Wntyd }Yn0|t|t||t|t|Wdq81s0Yq8q0dS) Ng@g(@g\nTg;%_nTgr ) ir/rirrEr])valueexponentZoverflow)rINFrsr<r*rpstr)rrtZ exponentsr|r}Zint_powZ float_powZ complex_powrrr%test_pow_with_small_integer_exponentss.       z1ComplexTest.test_pow_with_small_integer_exponentscCs@tdD] }|ttdtdq|tdd dS)Nr5gư>r )r9rrr)rr,rrrtest_boolcontexts zComplexTest.test_boolcontextcCs|tddddS)Ng333333@g#@y333333@#)r%r conjugaterCrrrtest_conjugateszComplexTest.test_conjugatec s0Gddd}Gdddt}|t|dd|t|dd|tt|d|tt|d|tti|tt|d|tt|d|tdd|td d |td d |td d |td d |tdd d|tdd d|tdd d|tdd d|tdd d|tdd d|td d d|td d d|td d d|td d |tdd |tdd|tdd|td dd |tddd |tddd|tddd|tddd|tddd|tddd|tddd|tdd|tdd|td|tdd|tdd|tdd|tdd |td!d"|td#d$|td%d&|td'd"|td(d|td)d|td*d|td+d,|td-d|td.d|td/dGd0d1d1t}|t|d2d2|td3d4d5d6|td6d7d6|td6d4d5d8|tdd9d5d:d;d<}||td dj|d||td d=j|d=||tdd j|d||td=d j|d=d"}|t||u~|ttdd|ttdd|t td>|tt d?|tt d?|tt d?|t td@|ttd| tdAtd|t tdB|t tdC|ttddD|ttddE|ttddD|t tdF|t tdG|t tdH|t tdI|t tdJ|t tdK|t tdL|t tdM|t tdN|t tdO|t tdP|t tdQ| tdRtddSid| tdTtdddSi|t tdU|t tdV|t tdW|t tdXt|tdYd2|t tdZGd[d\d\tGfd]d^d^}|t|Gd_d`d`}|t|dadE|t|db|dcd5d6|tt|dGdddede}|t|dEdf|tdg|dEdh|tt|dSdi|ttdg|dSdiGdjdkdk} |tt| |ttdg| Gdldmdmt} Gdndodot} Gdpd1d1t}|t| ddq|t$|t| ddrWdn1s0Y|tt|ddS)sNc@seZdZddZddZdS)z(ComplexTest.test_constructor..OScSs ||_dSrWr|rr|rrr__init__ r.z1ComplexTest.test_constructor..OS.__init__cSs|jSrWrrCrrr __complex__ r.z4ComplexTest.test_constructor..OS.__complex__N__name__ __module__ __qualname__rrrrrrOS src@seZdZddZddZdS)z(ComplexTest.test_constructor..NScSs ||_dSrWrrrrrrr.z1ComplexTest.test_constructor..NS.__init__cSs|jSrWrrCrrrrr.z4ComplexTest.test_constructor..NS.__complex__NrrrrrNSsry?$@g?rEz1+10jr[y$@g$@r yQ @gQ @i:ys@r7r ryQ @yQ 1r31jrhz-1riz+1z(1+2j)?@z (1.3+2.2j)y?@z3.14+1JyQ @?z ( +3.14-6J )yQ @z ( +3.14-J )yQ @z ( +3.14+j )Jz( j )z+Jz( -j)yz1e-500z-1e-500jz-1e-500+1e-500jc@s eZdZdS).ComplexTest.test_constructor..complex2Nrrrrrrrcomplex2Fr.rr6rny1@7@)ry1@G@y@@y@cSs t|dS)z7Function that produces different results for 0. and -0.)r)rrrr split_zerosPsz1ComplexTest.test_constructor..split_zerosz1+1jjy@@znot 'NoneType'z392*z1+z1+1j+1jz--z(1+2jz1+2j)z1+(2j)z (1+2j)123rz1j+2Z1e1ejz1e++1ejz)1+2j(z7first argument must be a string or a number, not 'dict'r]z,second argument must be a number, not 'dict'z1..1jz1.11.1jz1e1.1jA11111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111u ( 1+1j ) uこんにちはc@s eZdZdS)z-ComplexTest.test_constructor..EvilExcNrrrrrEvilExcsrcseZdZfddZdS)z1ComplexTest.test_constructor..evilcomplexcsdSrWrrCrrrrsz=ComplexTest.test_constructor..evilcomplex.__complex__N)rrrrrrrr evilcomplexsrc@seZdZddZddZdS)z,ComplexTest.test_constructor..float2cSs ||_dSrWrrrrrrsz5ComplexTest.test_constructor..float2.__init__cSs|jSrWrrCrrr __float__sz6ComplexTest.test_constructor..float2.__float__N)rrrrrrrrrfloat2srgE@g1@g7@c@seZdZddZddZdS)z-ComplexTest.test_constructor..MyIndexcSs ||_dSrWrrrrrrsz6ComplexTest.test_constructor..MyIndex.__init__cSs|jSrWrrCrrr __index__sz7ComplexTest.test_constructor..MyIndex.__index__N)rrrrrrrrrMyIndexsryE@{y^@E@ic@seZdZddZdS)z+ComplexTest.test_constructor..MyIntcSsdS)NrrrCrrr__int__sz3ComplexTest.test_constructor..MyInt.__int__N)rrrrrrrrMyIntsrc@seZdZdZddZdS)z.ComplexTest.test_constructor..complex0z:Test usage of __complex__() when inheriting from 'complex'cSsdS)NE@rrCrrrrsz:ComplexTest.test_constructor..complex0.__complex__Nrrr__doc__rrrrrcomplex0src@s"eZdZdZdddZddZdS) z.ComplexTest.test_constructor..complex1z3Test usage of __complex__() with a __new__() methodr7cSst|d|S)Nr])r__new__rrrrrsz6ComplexTest.test_constructor..complex1.__new__cSs|SrWrrCrrrrsz:ComplexTest.test_constructor..complex1.__complex__N)r7)rrrrrrrrrrcomplex1s rc@seZdZdZddZdS)rz`Make sure that __complex__() calls fail if anything other than a complex is returnedcSsdSrWrrCrrrrsz:ComplexTest.test_constructor..complex2.__complex__Nrrrrrrsr@)objectrprr:rArrrrrointr*ZassertRaisesRegextype Exceptionr<Z assertWarnsDeprecationWarning) rrrrrrurrrrrrrrrtest_constructor s   4zComplexTest.test_constructorc CsDGdddt}ddtt tfD]}ddtt tfD]}|j||dt||}||j|||j||||}|t||||j|||j|t|||}|t|t||j|||j||t||}|t||||j|||j|Wdq61s20Yq6q dS)Nc@s eZdZdS)z>ComplexTest.test_constructor_special_numbers..complex2Nrrrrrrsrr r)rr) rr~r>rsr$rrrFr)rrrrr'rrr test_constructor_special_numberss&  z,ComplexTest.test_constructor_special_numbersc stD]JtfdddDs|tt|ttddqtD]2dvrbqTtfdddDsT|ttqTdS)Nc3s|]}|vVqdSrWrr+ZchZlitrr r.z/ComplexTest.test_underscores..ZxXoObB_r)Z0_7Z09_99c3s|]}|vVqdSrWrrrrrrr.) ranyrprevalreplacerr:rorCrrrtest_underscoresszComplexTest.test_underscorescCsPtddD]@}|t|tt|d|d}|t|tt|dq dS)Nrlr@r )r9rphashr)rrrrr test_hashszComplexTest.test_hashcCsFddtddD}|D](}||jd|jddt|qdS)NcSs.g|]&}tddD]}t|d|dqqS) rg@)r9rr1rrrr-r.z(ComplexTest.test_abs..rrr]g?)r9rrrr)rZnumsnumrrrtest_absszComplexTest.test_abscCs,|jfdd}|dd|dd|dd|jd |td td |td t d |ttd d|tt td|ttd d|td td|tttd|tdtd|tdt d|tdtd|dttd|dttd|dttd|dttddS)NcSs |t|||t||dSrWreprrvZexpectedtest_fnrrrtestsz'ComplexTest.test_repr_str..testy?@z(1+6j)y?z(1-6j)yz(-1+-0j))rr z(1+infj)z(1-infj)rEz(inf+1j)z (-inf+infj)z(nan+1j)z(1+nanj)z (nan+nanj)rinfjz-infjnanjyy@)rpZassertNotEqualrr~r>rrrrrr test_repr_strs$  zComplexTest.test_repr_strcCs|jfdd}|tddd|tddd|tddd |tddd |tddd |tddd |tddd |tddddS)NcSs |t|||t||dSrWrrrrrrsz5ComplexTest.test_negative_zero_repr_str..testr r rrz(-0+1j)rz-1jz(-0-1j)Z0jz-0jz(-0+0j)z(-0-0j))rprrrrrtest_negative_zero_repr_strsz'ComplexTest.test_negative_zero_repr_strcCs|dddS)Ny)rprCrrrtest_neg%szComplexTest.test_negc Csd}d}d}zlttjd}t|||d|ttjd}||d||fW|durl|jsl|ttjn$|dur|js|ttj0dS)Nrcrmw)filerz%s %s ) openrZTESTFNprintcloserpreadclosedunlink)rrrforrr test_file(s  zComplexTest.test_filecCsx|dd|dd|dd|dd|td td tf|ttd td fdS) Nr)r @y?)r gr)r r)r rrr )rp__getnewargs__rr~rCrrrtest_getnewargs8s zComplexTest.test_getnewargscCs@d\}}|t|jdtdd|t|jdtdddS)N)r7rrr r)rprr)rz1z2rrrtest_plus_minus_0j@szComplexTest.test_plus_minus_0jcCsfd}d}d}||jd||jd||jd||jd||jd||jt dS)Nryyrg)r$rrr~)rZz0rrrrrtest_negated_imaginary_literalGsz*ComplexTest.test_negated_imaginary_literalcCsJ|tdttd|tdtdt |tdtt tdS)NZ1e500r z-1e500jz-1e500+1.8e308j)rprr~rCrrr test_overflowWszComplexTest.test_overflowc Csdddddddttg }|dd|D7}|D]D}|D]:}t||}tt|}||j|j||j|jq4q,td td }}td|td|}} |D]T}|D]J}t||}tt|}|d|jd|j|d|jd|jqqdS) Nr gi r4g( 0?go! @gd~QJcSsg|] }| qSrr)r+rrrrr-`r.z3ComplexTest.test_repr_roundtrip..r r ) r~r>rrr$rrr*r) rZvalsrrr'Z roundtripr r rrrrrtest_repr_roundtrip]s(      zComplexTest.test_repr_roundtripcCs&|tddtd|tddtd|tddtd|tddtd|tddtd|tddtd|tddtd|tdd tdd }|t|dt||t|dt||t|d t||t|d t|td d }|t|dt||t|dt||t|d t||t|dt|tdd}|t|dt||t|dt||t|d t||t|dt||tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd|tddd |td!dd"|td#dd$|td!d%d&|td!d'd&|td!d(d)|td!d*d+|td!d,d-|td.d/d0|td1d2d3|td1d4d5|td1d6d7|td1d8d9|td1d:d;|td1d<d=|td1d>d?|td@dAdB|td1dCdD|td1dEdD|td1dFdG|tdHdFdI|tdHdJdK|tdHdLdM|tdNdLdO|tdPdQdR|tdSdTdU|tdSdVdW|tdSdXdY|tdSdZd[|td\dd]|td\d^d_|tdSd`da|tdSdbda|tdSdcdd|tdSdedd|tdfdgdh|tdfdZdi|tdfdjdk|tdfdVdl|tdfd^dm|tdfdndo|tdfdpdq|tdrjds|td1jdtduD]}|tdrj|qx|dvdwdx|ttttd%dy|ttdztd%d{|tttdzd%d||tttd}d%d~|ttttd'd|ttdztd'd|tttdzd'd|tttd}d'd|ttttd%d|ttdztd%d|tttdzd%d|tttd}d%d|ttttd'd|ttdztd'd|tttdzd'd|tttd}d'ddS)Ny?@ry? @y@y @r@y @-20gz 1.5+3jz^20gz 1.5+3j z<20z(1.5+3j) z>20z (1.5+3j)z^20z (1.5+3j) y+?Clz^20.2z (1.1-3.1j) z20.2fz 1.50+3.00jz>20.2fz<20.2fz1.50+3.00j y0)VC D@z150000000000000000000.00+3.00jz>40.2fz( 150000000000000000000.00+3.00jz^40,.2fz( 150,000,000,000,000,000,000.00+3.00j y|3*+TTD@z( 1,500,000,000,000,000,000,000.00+3.00j y|3*+TTDp@z,.2fz*1,500,000,000,000,000,000,000.00+3,000.00jr6z.0ez 1e+00+1e+00jz#.0ez1.e+00+1.e+00jz.0fz1+1jz#.0fz1.+1.jy??z1.1+1.1jz#gz1.10000+1.10000jz.1ez1.0e+00+1.0e+00jz#.1ez.1fz1.0+1.0jz#.1fy?z#fz-1.500000+0.500000jz-2.+0.jz#ez-1.500000e+00+5.000000e-01jz-2.e+00+5.e-01jz-1.50000+0.500000jz.0gz-2+0.5jz#.0gz-2.+0.5jy??Z010fz=20ZbcdoxXz *{0:.3f}*yn! @ @z*3.142+2.718j*znan+nanjrEz 1.000000+nanjz nan+1.000000jriz nan-1.000000jzNAN+NANjz 1.000000+NANjz NAN+1.000000jz NAN-1.000000jzinf+infjz 1.000000+infjz inf+1.000000jz inf-1.000000jzINF+INFjz 1.000000+INFjz INF+1.000000jz INF-1.000000j) rpr"rrr:ro __format__r>r~)rr'trrr test_formatys  zComplexTest.test_formatN)r)r)#rrrrrr$r%r)r?rDrVrbrergrvrrrrrZrequires_IEEE_754rrrrrrrrrrrrrrrrrrr sJ  ;C       r __main__)rrqrrZtest.test_grammarrrrmathrrrrNr*r~r>rr rmainrrrrs   i