o 6aH@s^dZddlZddlZddlZddlZddlmZddlZddl m Z m Z m Z GdddZ dS)z! Test printing of scalar types. N) TemporaryFile)assert_ assert_equal assert_raisesc@sheZdZddZddZddZddZd d Zej j e d  d d ddZddZddZdS)TestRealScalarsc Csddddtjtj tjg}tjtjtjtjg}gdgdgdgdgd gd gd g}t||D]%\}}t||D]\}}d t |j t |}t t ||||d q.checkgfotӭ?gEa-&?gh㈵>g-C6?g4&k Cg7yACr%)rr*r%r%r&test_scalar_cutoffs s z#TestRealScalars.test_scalar_cutoffsc s:td}td}t||d|d|}Wdn1s#wYt|t|ddd}|dfd d }tdF}td2}tj tj }} ||t_ t_ t j d ti|dd || t_ t_ |d| } Wdn1s}wYWdn1swYt| ttd dS)Ng?zr+t)filer css dVt)Nz np.sqrt(2))EOFErrorr%r%r%r& userinputLsz7TestRealScalars.test_py2_float_print..userinputcstSr()next)promptgenr%r&Psz6TestRealScalars.test_py2_float_print..r)localreadfuncbanner)r0)rdoublerprintseekreadrrsysstdoutstderrcodeinteractstriprsqrt) rxfoutputr/ input_funcfofe orig_stdout orig_stderrcapturer%r3r&test_py2_float_print3s*       z$TestRealScalars.test_py2_float_printcCsdd}dd}dd}dd}dd}t|ddt|dd t|d d t|d d t|d d t|d d t|ddt|ddddt|dddd t|d dddt|d dddt|d dddt|d dddt|d dddt|d dddt|dZi|ddt|d[i|ddt|d\i|ddt|d]i|ddt|d]i|dd t|d]i|dd!t|d]i|dd"t|d^i|d$d%t|d^i|d$d&t|d^i|d$d't|d^i|d$d&t|d]i|d(d)t|d]i|d*d+t|dd,t|d-d.d/d0d1t|d2d.d3d0d4ttjj}t||fi|dd5t|ttjjfi|dd6t||d7t||d8d8dd9d7t||d8d8d:d9d7t||d8d8dd;d5t||d8d8d:d;d<t||d8d8d:d:d=d<tt||d8d.dd9t||d8d.d:d9d>t||d8d.d?d9d7t||d8d.d:d;d7t||d8d.d?d;d@t||d8d.dAd;dBt||d.d.d:d9d>tjdC}t||d8dDdEt||d.dAd0dFt||d8dAd0dEt||d8dAdGdEt||d8dAdAdHdEt||d8dId0dJt||d8ddGdKt||d8dd0dEt||d8dIdGdEt|dLdMdNdOt|dPdMdNdQt|dd.dMd0dRt|dd.dMd0dRt|dd.dMd0dSt|dd.dMd0dSt|dTd.dMd0dUt|dTd.dMd0dUt|dTd.dMd0dVt|dTd.dMd0dVt|dWd.d$d.dXdYdS)_Nc[tjt|fi|Sr()rformat_float_positionalrrEkr%r%r&r5cz.TestRealScalars.test_dragon4..c[rOr()rformat_float_scientificrrQr%r%r&r5drSc[rOr()rrPrrQr%r%r&r5erSc[rOr()rrTrrQr%r%r&r5frScSs d|dS)NFunique precisionr%)precr%r%r&r5hs r 1.z1.e+00z10.234z-10.234z 1.0234e+01z -1.0234e+01z1000.0z1000.r)rWz10.z-10.z1.e+01z-1.e+01r9z10.23z -1.02e+019.9999999999999995e-089.8813129168249309e-3249.9999999999999694e-3113.14159265358979323846 z 3.1415927410z3.1415927410e+00z 3.1415926536z3.1415926536e+00 299792458.0z299792448.00000z 2.99792e+08z299792458.00000z3.14159274101257324218750002z43.14159265358979311599796346854418516159057617187500z3.141592653589793g6FrUz0.00000000000000000000000000000000000000000000140129846432481707092372958328991613128026194187651577175706828388979108268586060148663818836212158203125gi2a40.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004940656458412465441765687928682213723650598026143247644255856825006755072702087518652998363616359923797965646954457177309266567103559397963987747960107818781263007131903114045278458171678489821036887186360569987307230500063874091535649843873124733972731696151400317153853980741262385655911710266585566867681870395603106249319452715914924553293054565444011274801297099995419319894090804165633245247571478690147267801593552386115501348035264934720193790268107107491703332226844753335720832431936092382893458368060106011506169809753078342277318329247904982524730776375927247874656084778203734469699533647017972677717585125660551199131504891101451037862738167250955837389733598993664809941164205702637090279242767544565229087538682506419718265533447265625z(340282346638528859811704183484516925440.a6179769313486231570814527423731704356798070567525844996598917476803157260780028538760589558632766878171540458953514382464234321326889464182768467546703537516986049910576551282076245490090389328944075868508455133942304583236903222948165808559332123348274797826204144723168738177180919299881250404026184124858368.z(340282350000000000000000000000000000000.T)rV fractionalrW)rVre min_digitsz,340282346638528859811704183484516925440.0000)rVrergrWz(340300000000000000000000000000000000000.z(340282346638528859810000000000000000000.z(340282346638529000000000000000000000000.z-1p-97)rVz-6.310887241768095e-30z-6.310887241768094e-30)rVrg)rVrWrgz-6.31088724176809e-30z-6.3108872417680944e-301e120)rgz 1.000e+1201e100z 1.000e+100z1.000z 1.000e+00z1.5z1.500z 1.500e+00324)rVrWrez324.00)rZ)r\)r])r^)r`) rrfinformaxrr ValueErrorfromhex)rfpos32fsci32fpos64fsci64preckwdf32xar%r%r& test_dragon4_s.       zTestRealScalars.test_dragon4cCstjtjtjg}ttdr|tjtj}tj}|D]}t ||dddddt ||dddddt ||ddddd t ||d d d d t ||dddddt ||dddddt ||ddddddt ||ddddddt ||ddddd|tjkrdndt ||ddddddt ||ddddd|tjkrdndt ||ddddt ||ddddddt ||ddddd|tjkrdndt ||ddddqdS)Nfloat128r rf)pad_left pad_rightz 1. r z -1. z-10.2z -10.2 z1.23e1ra) exp_digitsz 1.23e+00001FrUz1.0000z 1.0000e+00rYrR)rVrWtrim.z1.2z1.20020)r-1) rrrrhasattrappendr{rPrTr)rtpsfposfscitpr%r%r&test_dragon4_interface sT   z&TestRealScalars.test_dragon4_interfaceppc64z#only applies to ppc float128 values)reasoncsxtdfddtddD}gd}t||tdtd}tt|}tt|t|t||kdS) Nz(2.123123123123123123123123123123123e-286c s&g|]}ttdt|qS)2e)rrr{).0irEr%r& ?s&zCTestRealScalars.test_ppc64_ibm_double_double128..r()(z'1.06156156156156156156156156156157e-286z'1.06156156156156156156156156156158e-287z'1.06156156156156156156156156156159e-288z&1.0615615615615615615615615615616e-289z'1.06156156156156156156156156156157e-290z'1.06156156156156156156156156156156e-291z&1.0615615615615615615615615615616e-292z&1.0615615615615615615615615615615e-293z%1.061561561561561561561561561562e-294z$1.06156156156156156156156156155e-295z#1.0615615615615615615615615616e-296z!1.06156156156156156156156156e-297z!1.06156156156156156156156157e-298z 1.0615615615615615615615616e-299z1.06156156156156156156156e-300z1.06156156156156156156155e-301z1.0615615615615615615616e-302z1.061561561561561561562e-303z1.06156156156156156156e-304z1.0615615615615615618e-305z1.06156156156156156e-306z1.06156156156156157e-307z1.0615615615615616e-308z1.06156156156156e-309z1.06156156156157e-310z1.0615615615616e-311z1.06156156156e-312z1.06156156154e-313z1.0615615616e-314z1.06156156e-315z1.06156155e-316z 1.061562e-317z 1.06156e-318z 1.06155e-319z 1.0617e-320z 1.06e-321z 1.04e-322z1e-323r r 23)rr{rangerrr)rgotexpectedrybr%rr&test_ppc64_ibm_double_double1287s  )z/TestRealScalars.test_ppc64_ibm_double_double128cCsTtd}td}tt|t|kttt||ttt||dS)Ng@g@)rrrrr)rrEyr%r%r&float32_roundtripss  z!TestRealScalars.float32_roundtripcCs6tttdtdtttdtdkdS)Ng?g?g?)rrrrr)rr%r%r&float64_vs_python{sz!TestRealScalars.float64_vs_pythonN)__name__ __module__ __qualname__r'r+rNrzrpytestmarkskipifplatformmachine startswithrrrr%r%r%r&rs,+. : r)__doc__rArrr>tempfilernumpyr numpy.testingrrrrr%r%r%r&s