a ze@sddlZddlZddlZddlZddlZddlZddlZddlZddlm Z ddl m Z m Z ddl mZmZmZmZedZedZeedZeedZeeed d ZejepejZejed Z Gd d d eZ!GdddeZ"Gdddej#Z$eGdddej#Z%dZ&e'e(e&Z)dZ*e'e(e*Z+dZ,e'e(e,Z-dZ.e'e(e.Z/eGdddej#Z0Gdddej#Z1Gdddej#Z2Gdddej#Z3e j4Gd d!d!ej#Z5Gd"d#d#ej#Z6ej7Z8ej9Z:Gd$d%d%ej#Z;eEz5GeneralFloatCases.test_underscores..ZjJxXoObB_)Z0_7Z09_99c3s|]}|vVqdSr%rr&r(rrr)Kr*Z_NaNZNa_NZIN_Fz-_INFz-INF_s0_.9) ranyrrevalreplacerrrr"rr(rtest_underscoresCsz"GeneralFloatCases.test_underscoresc s GdddtGdddt}Gdddt}ttfdd||tg}zd d lmWntyjYn0|fd d|D]}|d }|t|X| t |d | t dt |dWdn1s0YWdq1s0YqdS)Nc@s eZdZdS)zAGeneralFloatCases.test_non_numeric_input_types..CustomStrNrrrrr CustomStr[r*r1c@s eZdZdS)zCGeneralFloatCases.test_non_numeric_input_types..CustomBytesNrrrrr CustomBytes\r*r2c@s eZdZdS)zGGeneralFloatCases.test_non_numeric_input_types..CustomByteArrayNrrrrrCustomByteArray]r*r3cs |Sr%)decodeb)r1rrbr*z@GeneralFloatCases.test_non_numeric_input_types..rarraycs d|S)NBrr5r8rrr7lr*s 3.14 rzcould not convertsAAAAAAAAAAAAAAAA) strbytes bytearray memoryviewr9 ImportErrorappendZsubTesttyperrr!r)r#r2r3Z factoriesfxr)r1r9rtest_non_numeric_input_typesXs*  z.GeneralFloatCases.test_non_numeric_input_typescCs|ttdddd|ttdddd|ttdddd|ttdddd|ttdddddS) Ns12.3gffffff@s12.3s12.3 s12.3As12.34)rrr>r"rrrtest_float_memoryviewus z'GeneralFloatCases.test_float_memoryviewcs`fdd}|d|d|d|d|d|d|d |d |d |d dS) NcsXjtd|fd}t|Wdn1s20Yt|jd|fdS)Nz float(%r))msgz%could not convert string to float: %r)rrrrr; exception)scmr"rrcheck}s & z3GeneralFloatCases.test_error_message..check½u123½z 123 456 s 123 456 u٣١٤!z123z123 245z123245s123s123r)r#rLrr"rtest_error_message|s z$GeneralFloatCases.test_error_message LC_NUMERICfr_FRde_DEcCs*ddl}|ddks"|d|tdd|tdd|tdd |td d |td d |tdd|tdd|tdd|tdd|ttd|ttd|ttd|ttd|ttd|ttd|tdd|tdddS) Nr decimal_point,zdecimal_point is not ","rrz+3.14 z-3.14 gQ z.14 gQ?z3. @z3.e3 gp@z3.2e3 g@z2.5e-1 ?z5e-1?z 3,14 z +3,14 z -3,14 rrrz 25.e-1 @z .25e-1 g?)locale localeconvZskipTestrrrrZassertAlmostEqual)r#rXrrrtest_float_with_commas( z'GeneralFloatCases.test_float_with_commac Cs`Gdddt}Gdddt}Gdddt}Gdddt}Gd d d t}|t|d |t|d |t$|t|d d Wdn1s0Y|tt|d |t|ddGddd}|ttj |Gddd}|t"|t|d Wdn1s:0Y|t&| t t|tWdn1s|0Y|t"|t |d Wdn1s0Y|t&| t t |t Wdn1s0YGddd}|t|d d |t t|ddGddd} |tt| dS)Nc@seZdZddZdS)z4GeneralFloatCases.test_floatconversion..Foo1cSsdSNE@rr"rrr __float__sz>GeneralFloatCases.test_floatconversion..Foo1.__float__Nrrrr]rrrrFoo1sr_c@seZdZddZdS)z4GeneralFloatCases.test_floatconversion..Foo2cSsdSr[rr"rrrr]sz>GeneralFloatCases.test_floatconversion..Foo2.__float__Nr^rrrrFoo2sr`c@seZdZdddZddZdS)z4GeneralFloatCases.test_floatconversion..Foo3cSst|d|S)Nr__new__clsvaluerrrrdsz.Foo3.__new__cSs|Sr%rr"rrrr]sz>GeneralFloatCases.test_floatconversion..Foo3.__float__N)ra)rrrrdr]rrrrFoo3s rhc@seZdZddZdS)z4GeneralFloatCases.test_floatconversion..Foo4cSsdSN*rr"rrrr]sz>GeneralFloatCases.test_floatconversion..Foo4.__float__Nr^rrrrFoo4srkc@seZdZddZdS)z6GeneralFloatCases.test_floatconversion..FooStrcSstt|dSNrE)rr;r"rrrr]sz@GeneralFloatCases.test_floatconversion..FooStr.__float__Nr^rrrrFooStrsrmr\rj8g"@c@seZdZddZdS)z4GeneralFloatCases.test_floatconversion..Foo5cSsdS)Nr,rr"rrrr]sz>GeneralFloatCases.test_floatconversion..Foo5.__float__Nr^rrrrFoo5srpc@seZdZddZdS)z1GeneralFloatCases.test_floatconversion..FcSstdSr[)rr"rrrr]sz;GeneralFloatCases.test_floatconversion..F.__float__Nr^rrrrFsrqc@seZdZddZddZdS)z7GeneralFloatCases.test_floatconversion..MyIndexcSs ||_dSr%rgr#rgrrr__init__sz@GeneralFloatCases.test_floatconversion..MyIndex.__init__cSs|jSr%rrr"rrr __index__szAGeneralFloatCases.test_floatconversion..MyIndex.__index__N)rrrrtrurrrrMyIndexsrvrbic@seZdZddZdS)z5GeneralFloatCases.test_floatconversion..MyIntcSsdSrirr"rrr__int__sz=GeneralFloatCases.test_floatconversion..MyInt.__int__N)rrrrwrrrrMyIntsrx)objectrr;rZ assertWarnsDeprecationWarningrr timesleepassertIsrAr OverflowError) r#r_r`rhrkrmrprqrvrxrrrtest_floatconversions6 2 2 6 2 6z&GeneralFloatCases.test_floatconversioncCs:|tdtddWdn1s,0YdS)Nzkeyword argumentz3.14rC)r!r rr"rrrtest_keyword_argssz#GeneralFloatCases.test_keyword_argscCsD|d|d|td|tddS)Ng??r r )Z assertFalse is_integer assertTruerr"rrrtest_is_integersz!GeneralFloatCases.test_is_integercCs^dD]\}}|||qtdD]B}t}|dtdd9}|\}}|t|||q&tj}||dd|td||d d |td ||dd |td ||d d|td||dd|td||dd|td| t tdj| t tdj| t tdjdS)N))g?))g)ir)ra)rrE)g'@)rb' idrrErarbrWrVlL33l@g@lL33gighr -infr ) ras_integer_ratiorangerandomrandintr __truediv__ fractionsZFractionrr~r)r#rBZratioindRrrrtest_floatasratios:         z#GeneralFloatCases.test_floatasratiocCsjtt ddtf}|D]d}|||g|||f|||h|||di||g|dd||||q|D]}||g|gkd||f||f|fkd||f||h|hkd||f||di|dikd||f|g|f|h|dif\}}}}|||kd ||||kd ||||kd ||||kd |q~dS) NrarrEz[].count('%r') != 1z [%r] != [%r]z(%r,) != (%r,)z {%r} != {%r}z{%r : None} != {%r : None}z[%r] not equal to itselfz(%r,) not equal to itselfz{%r} not equal to itselfz{%r : None} not equal to itself)INFNANassertInrcountr)r#ZfloatsrBltrJrrrrtest_float_containments(z(GeneralFloatCases.test_float_containmentcCs$||td|f|td|fdS)Nr)rr)r#ar6rrrassertEqualAndEqualSign5sz)GeneralFloatCases.assertEqualAndEqualSigncCs|tdt|tdd|tdd|tdd|tdd|tdd|td d |td d |td d |ttd j|ttdj|ttdjdS)NrVrrrE?NݯbNݯr r r)assertIsInstancer __floor__intrrrr~r"rrrtest_float_floor;sz"GeneralFloatCases.test_float_floorcCs|tdt|tdd|tdd|tdd|tdd|tdd |td d |td d |td d |ttd j|ttdj|ttdjdS)NrVrErrrbrrrrrrrr r r)rr__ceil__rrrrr~r"rrrtest_float_ceilIsz!GeneralFloatCases.test_float_ceilcCstj}||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddddS)Nrrra0.+0.++)operatormodr)r#rrrrtest_float_modWsz GeneralFloatCases.test_float_modcCs ttjfD ]}|t|t t|t|dt|t|dt|t|dt|t|dt|t|dt|t|dt|t|dt|t|tt|t|tt|t|tt |t|td|t|td|t|td|t|td|t|td|t|td|t|tt|t|dd|t|dd|t|dd|t|dd|t|dd|t|dd||ddd||ddd||ddd||ddd||ddd||ddd||dt d||dtd||dt d||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||dtd||dtd||t dd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||tdd||tdd||t dd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||ddd||tdd||tdd| t |ddt | t |ddt | t |ddt | t |ddt | t |ddt | t |ddt ||dt t||dt t||dt t||dt t||t t d||dt d||dt d||tt d||dtd||dtd||dtd||dtd||t tt||dtt||dtt||ttt||t dd||t dd||t dd||t dt ||t dt||t dt||tdt||tdt||tdt||tdd||tdd||tdd||ddd ||ddd||ddd||ddd||ddd||ddd ||ddd||ddd||ddd||ddd||ddd||ddd||ddd ||ddd||ddd||ddd||ddd||ddd ||dd d||dd d||dd d||dd d||dd d| t |ddt ||ddd||dd d||ddd||ddd||ddd| t |ddt ||ddd||ddd||ddd||dddq dS)NgrrrrarV@rrUg@}Ô%I}Ô%ITg@gBgDg@@gB@gD@) powrrrrrrZeroDivisionErrorrrrAcomplex)r#Zpow_oprrrtest_float_powks z GeneralFloatCases.test_float_powN)rrrr$r0rDrGrNrZrun_with_localerZrrrrrrrrrequires_IEEE_754rrrrrrr"s&  C! rc@s,eZdZddZddZddZddZd S) FormatFunctionsTestCasecCstdtdd|_dS)Ndoublerrr)rr save_formatsr"rrrsetUp8szFormatFunctionsTestCase.setUpcCs(td|jdtd|jddSNrrrr rr"rrrtearDown<sz FormatFunctionsTestCase.tearDowncCsP|tdgd|tdgd|ttjd|ttjddS)Nr)unknownIEEE, big-endianIEEE, little-endianrchickenrE)rrr rrr r"rrrtest_getformat@s  z&FormatFunctionsTestCase.test_getformatcCsdD]}t|d|j|dkr6|ttj|dnF|j|dkrX|ttj|dn$|ttj|d|ttj|d|ttj|dq|ttjdddS)Nrrrrr)rr rrr)r#rrrrtest_setformatHs,       z&FormatFunctionsTestCase.test_setformatN)rrrrrrrrrrrr5srssssc@s,eZdZddZddZddZddZd S) UnknownFormatTestCasecCs4tdtdd|_tddtdddS)Nrrrr)rr rr r"rrrrjs  zUnknownFormatTestCase.setUpcCs(td|jdtd|jddSrrr"rrrrpszUnknownFormatTestCase.tearDowncCs<dtfdtfdtfdtffD]\}}|ttj||qdSNz>dzf2rz1.000000rz -1.000000z fz 1.000000z+fz +1.000000%z -100.000000%rTrJcSsg|] }t|qSrchrr'rCrrr r*z.FormatTestCase.test_format..rzrEcSsg|] }t|qSrrrrrrrr*AZzeEfFgGn%rrrrr rqrr r) rformatr;rrrordrr)r#rC format_specrrr test_formats@ zFormatTestCase.test_formatcCstt}|D]n}|drq|}|s,qttj|d\}}|\}}||t||||t| d|qWdn1s0YdS)Nz--z->r) openformat_testfile startswithstripmapr;splitrr)r#ZtestfilelineZlhsZrhsrargrrrtest_format_testfiles   z#FormatTestCase.test_format_testfilecCs:|tddd|tddd|tddddS)Nw/^@z.4z123.5g ףp=J@z 1.235e+03g@z 1.235e+04rrr"rrrtest_issue5864szFormatTestCase.test_issue5864cCs$|tddd|tddd|tddd|tdd d |tdd d |tdd d|tddd |tddd|tddd|tddd|tddd|tdd d|tdd d|tdd d|tdd d|tddddS)Ng^@Z00z123.0g(\^@Z00fz 123.340000Z00ez 1.233400e+02Z00gz123.34z00.10fz123.3400000000z00.10ez1.2334000000e+02z00.10gZ01fg^z-123.0g(\^z -123.340000z -1.233400e+02z-123.34z-123.3400000000z-1.2334000000e+02rr"rrrtest_issue35560s zFormatTestCase.test_issue35560N) rrrrrrrrrrrrrrs 5 rc@s4eZdZddZeeedddkdddZd S) ReprTestCasecCsttjtjtddN}|D]8}|}|r$|dr@q$t|}| |tt |q$Wdn1sr0YdS)Nrzfloating_points.txt#) rospathjoinr__file__rrr.rrepr)r#Z floats_filervrrr test_reprszReprTestCase.test_reprfloat_repr_styler,short.applies only when using short float repr stylecCs~gd}|D]l}d|}||tt|||tt||tt|tt||tt|tt|q dS)N)r1.0rz0.02z0.03z0.04z0.05z 1.23456789z10.0z100.0z1000000000000000.0z9999999999999990.0z1e+16z1e+17z0.001z0.001001z0.00010000000000001z0.0001z9.999999999999e-05z1e-05z8.72293771110361e+25z7.47005307342313e+26z2.86438000439698e+28z8.89142905246179e+28z3.08578087079232e+35r)rr rr;)r#Z test_stringsrJZnegsrrrtest_short_repr s "zReprTestCase.test_short_reprN) rrrr unittest skipUnlessgetattrsysrrrrrrs  rc@s|eZdZddZddZddZddZee e d d d kd d dZ ee e d d d kd ddZ ddZ ddZdS) RoundTestCasecCsr|ttt|ttt |ttt|tttd|ttt d|tttd|ttdddS)Nrarzceci n'est pas un integerry?)rr~roundrrrr r"rrr test_inf_nan@szRoundTestCase.test_inf_nancCsddddddddfD]L}|td |d |td |d |td |d |td |d q|td dd |td dd |tddd|td dd |tddddS)NiDiEiillrbrrw/^u<7~gP.5_i,i3go! i4i5gSi;gi rrr#rrrr test_large_nIszRoundTestCase.test_large_ncCsjdddddddd fD]L}|td |d |td |d |td |d |td|d qdS)Niipiilrbrrrarrrrrrrrr test_small_nUs zRoundTestCase.test_small_ncCs$|ttdd|ttdddS)Ng3t<{r gv;w0B)rr~rr"rrr test_overflow\szRoundTestCase.test_overflowrr,rrcCs|tddd|tddd|tddd|tddd |td dd |td dd |td dd |tddd|tddd|tddddS)NgCrEgBg9@rg4@gA@gD@gF@gK@gN@g@P@gR@gT@g@U@gW@gY@rr"rrrtest_previous_round_bugs`s  z&RoundTestCase.test_previous_round_bugscCstdD]|}|d}|tt|dt|d|tt|dt|d|tt|dt|d|tt|d t|d qtd d d D]|}|d}|tt|dt|d|tt|dt|d|tt|dt|d|tt|d t|d qtdD]~}t}|tt|dt|d|tt|dt|d|tt|dt|d|tt|d t|d qdS)Nig@@z.0frz.1frEz.2frbz.3fr#rir)rrrrrr)r#rrCrrrtest_matches_float_formatrs$  z'RoundTestCase.test_matches_float_formatcsfdd}dD]}d|dd}d|dd}||td||t d||td ||t d ||td ||t d||td ||t d ||td ||t d||td ||t d qdS)Ncs6|||||dd}t||||dSrlr)rrgexpectedr"rrtests z0RoundTestCase.test_format_specials..test) z%ez%fz%gz%.0ez%.6fz%.20gz%#ez%#fz%#gz%#.20ez%#.15fz%#.3gz%+rEz% r rr +inf+nanz infz nan)rr)r#r'rZpfmtZsfmtrr"rtest_format_specialss        z"RoundTestCase.test_format_specialscCsxtdtddtdddfD]}||d||tqtdtddtdddfD]}||d||tqVdS)NgGz?)ndigitsrEg{Gz?rb)rrrr)r#rCrrrtest_None_ndigitss     zRoundTestCase.test_None_ndigitsN)rrrrrr!r"rrrrr$r%r*r,rrrrr=s    rc@sTeZdZddZddZddZddZd d Ze e e d d d kdddZ dS) InfNanTestcCs|ttd|ttd|ttd|ttd|ttd|ttd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttd d|ttd d|ttd d|ttd d|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttd |ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttd|ttddS)Nr r(rZinfinityz +infinity -infinityr+Infz-iNFInfinityz +iNfInItYz -INFINITYinfoz+infoz-infoinz+inz-inZinfinitz+Infinz-INFIZ infinitysz++Infz-+infz +-infinityz --Infinity)rrrrr r;rrr"rrrtest_inf_from_strsLzInfNanTest.test_inf_from_strcCsD|tdd|tdd|tdd|tdddS)Ngr grrr r;r"rrrtest_inf_as_strszInfNanTest.test_inf_as_strcCsz|ttd|ttd|ttd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttdd|ttd|ttd|ttd |ttd |ttd |ttd |ttd |ttd|ttd|ttddS)Nr r)-nanrz+NAn-NaNZnanaz+nanaz-nanaZnaz+naz-naz++nanz-+NAN+-NaNz--nAn)rrrrr r;rrr"rrrtest_nan_from_strs,zInfNanTest.test_nan_from_strcCsD|tdd|tdd|tdd|tdddS)Ngr gggr4r"rrrtest_nan_as_strszInfNanTest.test_nan_as_strcCs0|tdtdd|tdtdddS)Nrr rrrrrr"rrrtest_inf_signs szInfNanTest.test_inf_signsrr,rrcCs0|tdtdd|tdtdddS)Nrr r6rr;r"rrrtest_nan_signsszInfNanTest.test_nan_signsN) rrrr3r5r9r:r<rrrrr=rrrrr-s-r-c@sdeZdZedZedZedZedZddZddZ d d Z d d Z d dZ ddZ ddZdS)HexFloatTestCasez0x.fffffffffffff8p+1024z 0x1p-1022z0x0.0000000000001p-1022z0x0.0000000000001p0cCsdt|st|r&t|t|krNdSn(||krN|dksJtd|td|krNdS|d||fdS)Nrarz%r not identical to %r)rrfail)r#rCyrrr identical"s $zHexFloatTestCase.identicalcCsb||jtdd||jtdd||jtdd||jdtddtdddS)Nriiirii)rAMINrTINYEPSMAXr"rrr test_ends,szHexFloatTestCase.test_endsc CsHgd}|D]6}z t|}Wnty.Yq 0|d||fq dS)N)3Zinfiz-Infinitz++infz-+Infz--nanr8ZsnanZNaNsZnnaZanZnfZnfinityZinityZiinityZ0xnanr, zx1.0p0z0xX1.0p0z + 0x1.0p0z - 0x1.0p0z0 x1.0p0z0x 1.0p0z 0x1 2.0p0z +0x1 .0p0z0x1. 0p0z -0x1.0 1p0z -0x1.0 p0z +0x1.0p +0z 0x1.0p -0z0x1.0p 0z +0x1.0p+ 0z -0x1.0p- 0z ++0x1.0p-0z --0x1.0p0z +-0x1.0p+0z -+0x1.0p0z 0x1.0p++0z +0x1.0p+-0z -0x1.0p-+0z 0x1.0p--0z0x1.0.p0z0x.p0z0x1,p0Z0x1pau0x1p0u0x1p0u0x1p0u 0x1.0p0z 0x1p0 0x2p0z 0x1p0 0x1p0z>Expected float.fromhex(%r) to raise ValueError; got %r instead)fromHexrr?)r#Zinvalid_inputsrCresultrrrtest_invalid_inputs2s5  z$HexFloatTestCase.test_invalid_inputscCshdtfdt fdtfdddg}gd}|D]8\}}|D]*}|D] }t|||}|||q>q6q*dS)Nr z -Infinityr )rr)z-0x.2g)z-0.0r)r,rG  z    )rrrHrA)r#Z value_pairs whitespaceinpr&ZleadtrailZgotrrrtest_whitespacers z HexFloatTestCase.test_whitespacecCs\|j}|j}|j}|j}|tdt|tdt|tdt |tdt|tdt|tdt|tdt |tdt |td t|td t|td t|td t|td d|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|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*d+|td,d+|td-d+|td.d+|td/d0|td1d0|td2d0|td3d0|td4d0|td5d0|td6d0|td7d0td8}|td9||td:||td;||td<||td=||td>||td?||td@||tdA||tdB||td8||tdC||tdD||tdE||tdF||tdG||tdH||tdI||tdJ||tdK||tdL||tdM||tdN||tdO||tdP||tdQ||tdR||tdS||tdT||tdU||tdV||tdW||t tdX|t tdY|t tdZ|t td[|t td\|t td]|t td^|t td_|t td`|t tda|t tdb|t tdc|t tdd|t tde|t tdf|t tdg|t tdh|t tdi|t tdj|tdk||tdl| |tdm||tdndo|tdpdo|tdqdr|tdsdo|tdtdr|tdudo|tdvdo|tdwdr|tdxdr|tdydo|tdzdr|td{dr|td|dr|td}do|td~dr|tddo|tddo|tddr|tddr|tddo|tddr|tddr|td||td| |td||tddo|tddo|td||td||td||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tddr|tddr|td| |td| |td| |tdd||tdd||tdd||tdd||tdd||tdd||tdd||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|||td|||td|||td|||td|||td|||td|||td||td||tdƒ||tdÃ||tdă||tdŃ||tdƃ||tdǃ||tdȃ||tdɃ|||tdʃ|||td˃|||td̃|||td̓|||td΃|||tdσ|||tdЃ|d||tdуd||td҃d||tdӃd||tdԃd||tdՃd||tdփd|d|td׃d|d|td؃d|d|tdكd|d|tdڃd|d|tdۃd|d|td܃d|d|td݃d|tdރd|td߃d|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd|tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tdd||tddd||tddd||tddd||tddd||tddd||tddd||tddd||tddd||tddd||tddd||tddo|tddo|td ||td do|td do|td ||td do|td||tddo|tddo|tddr|tddodS(Nr r/z-INFZiNfr0z +INFINITYr.z -iNFiNitYr z+NaNr7z-nAN1rz+1z1.rz1.0p0Z01z01.Z0x1z0x1.z0x1.0z+0x1.0Z0x1p0Z0X1p0Z0X1P0Z0x1P0z0x1.p0z0x1.0p0z0x.1p4z0x.1p04z0x.1p004z0x1p+0z0x1P-0z+0x1p0Z0x01p0Z0x1p00z 0x1p0 z 0x1p0z0x1p0 Z0xap0g$@Z0xAp0Z0xaP0Z0xAP0Z0xbep0gg@Z0xBep0Z0xbEp0z0XBE0P-4Z0xBEp0z0xB.Ep4z0x.BEp8z 0x.0BEp12z0x1.921fb54442d18p1z0x.006487ed5110b46p11z0x.00c90fdaa22168cp10z0x.01921fb54442d18p9z0x.03243f6a8885a3p8z0x.06487ed5110b46p7z0x.0c90fdaa22168cp6z0x.1921fb54442d18p5z0x.3243f6a8885a3p4z0x.6487ed5110b46p3z0x.c90fdaa22168cp2z0x3.243f6a8885a3p0z0x6.487ed5110b46p-1z0xc.90fdaa22168cp-2z0x19.21fb54442d18p-3z0x32.43f6a8885a3p-4z0x64.87ed5110b46p-5z0xc9.0fdaa22168cp-6z0x192.1fb54442d18p-7z0x324.3f6a8885a3p-8z0x648.7ed5110b46p-9z0xc90.fdaa22168cp-10z0x1921.fb54442d18p-11z0x1921fb54442d1.8p-47z0x3243f6a8885a3p-48z0x6487ed5110b46p-49z0xc90fdaa22168cp-50z0x1921fb54442d18p-51z0x3243f6a8885a30p-52z0x6487ed5110b460p-53z0xc90fdaa22168c0p-54z0x1921fb54442d180p-55z -0x1p1024z 0x1p+1025z +0X1p1030z -0x1p+1100Z0X1p123456789123456789z +0X.8p+1025z +0x0.8p1025z -0x0.4p1026z 0X2p+1023z 0x2.p1023z -0x2.0p+1023z +0X4p+1022z0x1.ffffffffffffffp+1023z-0X1.fffffffffffff9p1023z0X1.fffffffffffff8p1023z+0x3.fffffffffffffp1022z0x3fffffffffffffp+970Z0x10000000000000000p960z-0Xffffffffffffffffp960z+0x1.fffffffffffffp+1023z-0X1.fffffffffffff7p1023z$0X1.fffffffffffff7fffffffffffffp1023Z0x0p0raZ0x0p1000z -0x0p1023rZ0X0p1024z -0x0p1025Z0X0p2000Z0x0p123456789123456789z-0X0p-0z -0X0p-1000z 0x0p-1023z -0X0p-1024z -0x0p-1025z -0x0p-1072z 0X0p-1073z -0x0p-1074z 0x0p-1075z 0X0p-1076z -0X0p-2000z-0x0p-123456789123456789z 0X1p-1075z -0X1p-1075z-0x1p-123456789123456789z0x1.00000000000000001p-1075z -0x1.1p-1075z0x1.fffffffffffffffffp-1075z 0x1p-1076z 0X2p-1076z 0X3p-1076z 0x4p-1076z 0X5p-1076z 0X6p-1076rbz 0x7p-1076z 0X8p-1076z 0X9p-1076z 0xap-1076z 0Xbp-1076r#z 0xcp-1076z 0Xdp-1076z 0Xep-1076rFz 0xfp-1076z 0x10p-1076z -0x1p-1076z -0X2p-1076z -0x3p-1076z -0X4p-1076z -0x5p-1076z -0x6p-1076rz -0X7p-1076z -0X8p-1076z -0X9p-1076z -0Xap-1076z -0xbp-1076z -0xcp-1076z -0Xdp-1076z -0xep-1076z -0Xfp-1076z -0X10p-1076z0x0.ffffffffffffd6p-1022z0x0.ffffffffffffd8p-1022z0x0.ffffffffffffdap-1022z0x0.ffffffffffffdcp-1022z0x0.ffffffffffffdep-1022z0x0.ffffffffffffe0p-1022z0x0.ffffffffffffe2p-1022z0x0.ffffffffffffe4p-1022z0x0.ffffffffffffe6p-1022z0x0.ffffffffffffe8p-1022z0x0.ffffffffffffeap-1022z0x0.ffffffffffffecp-1022z0x0.ffffffffffffeep-1022z0x0.fffffffffffff0p-1022z0x0.fffffffffffff2p-1022z0x0.fffffffffffff4p-1022z0x0.fffffffffffff6p-1022z0x0.fffffffffffff8p-1022z0x0.fffffffffffffap-1022z0x0.fffffffffffffcp-1022z0x0.fffffffffffffep-1022z0x1.00000000000000p-1022z0x1.00000000000002p-1022z0x1.00000000000004p-1022z0x1.00000000000006p-1022z0x1.00000000000008p-1022z0x1.0000000000000ap-1022z0x1.0000000000000cp-1022z0x1.0000000000000ep-1022z0x1.00000000000010p-1022z0x1.00000000000012p-1022z0x1.00000000000014p-1022z0x1.00000000000016p-1022z0x1.00000000000018p-1022z0x0.fffffffffffff0p0z0x0.fffffffffffff1p0z0X0.fffffffffffff2p0z0x0.fffffffffffff3p0z0X0.fffffffffffff4p0z0X0.fffffffffffff5p0z0X0.fffffffffffff6p0z0x0.fffffffffffff7p0z0x0.fffffffffffff8p0z0X0.fffffffffffff9p0z0X0.fffffffffffffap0z0x0.fffffffffffffbp0z0X0.fffffffffffffcp0z0x0.fffffffffffffdp0z0X0.fffffffffffffep0z0x0.ffffffffffffffp0z0X1.00000000000000p0z0X1.00000000000001p0z0x1.00000000000002p0z0X1.00000000000003p0z0x1.00000000000004p0z0X1.00000000000005p0z0X1.00000000000006p0z0X1.00000000000007p0z(0x1.00000000000007ffffffffffffffffffffp0z0x1.00000000000008p0z&0x1.00000000000008000000000000000001p0rEz0X1.00000000000009p0z0x1.0000000000000ap0z0x1.0000000000000bp0z0X1.0000000000000cp0z0x1.0000000000000dp0z0x1.0000000000000ep0z0X1.0000000000000fp0z0x1.00000000000010p0z0X1.00000000000011p0z0x1.00000000000012p0z0X1.00000000000013p0z0X1.00000000000014p0z0x1.00000000000015p0z0x1.00000000000016p0z0X1.00000000000017p0z(0x1.00000000000017ffffffffffffffffffffp0z0x1.00000000000018p0z&0X1.00000000000018000000000000000001p0z0x1.00000000000019p0z0X1.0000000000001ap0z0X1.0000000000001bp0z0x1.0000000000001cp0z0x1.0000000000001dp0z0x1.0000000000001ep0z0X1.0000000000001fp0z0x1.00000000000020p0z 0x.8p-1074z 0x.80p-1074z 0x.81p-1074z 0x8p-1078z 0x8.0p-1078z 0x8.1p-1078z 0x80p-1082z 0x81p-1082z.8p-1074z8p-1078z -.8p-1074z+8p-1078) rBrErCrDrArHrrrr~)r#rBrErCrDpirrr test_from_hexs&     zHexFloatTestCase.test_from_hexc Csdd}tt|j|j|j|j|jdfD](}|||||| || q(ddl}tdD]`}|dd}|}| dd g}z|t ||}Wnt yYqb0||t t |qbdS) NcSs tt|Sr%)rHtoHexrrrr roundtripsz2HexFloatTestCase.test_roundtrip..roundtriprarriPirr)rrrErBrCrArr randrangechoicerr~rHrY)r#rZrCrremrJrrrtest_roundtrips$   zHexFloatTestCase.test_roundtripcCsGdddt}|d}|t||||dGdddt}|d}|t||||d|t|ddd dS) Nc@seZdZddZdS)z)HexFloatTestCase.test_subclass..FcSst||dSrlrcrerrrrdsz1HexFloatTestCase.test_subclass..F.__new__N)rrrrdrrrrrqsrqrrWc@seZdZddZdS)z*HexFloatTestCase.test_subclass..F2cSs d|_dS)Nbar)foorsrrrrtsz3HexFloatTestCase.test_subclass..F2.__init__N)rrrrtrrrrF2srbraZnoner`)rfromhexhexr}rArr)r#rqrBrbrrr test_subclasss  zHexFloatTestCase.test_subclassN)rrrrHrErBrCrDrArFrJrSrXr_rerrrrr>s @-r>__main__)>rrrrrrr{rr'rZtest.test_grammarrrmathrrrrrrrhasattrZhave_getformatrZrequires_getformatZrequires_setformatrdirnamer curdirZtest_dirr rr rZTestCaserrrr<reversedrrrrrrrrrrrrrr-rcrHrdrYr>rmainrrrrsl   %    ^?vfF