%PDF- %PDF-
Direktori : /usr/local/lib/python2.7/test/ |
Current File : //usr/local/lib/python2.7/test/test_strtod.pyc |
Nac @ s d d l Z d d l Z d d l Z d d l Z d d l Z d d l m Z e e d d d k rv e j d n e j d e j e j B j Z d d d d Z d Z d e j f d YZ d Z e d k r e n d S( iN( t test_supportt float_repr_stylet t shortsH correctly-rounded string->float conversions not available on this systemsm # A numeric string consists of: (?P<sign>[-+])? # an optional sign, followed by (?=\d|\.\d) # a number with at least one digit (?P<int>\d*) # having a (possibly empty) integer part (?:\.(?P<frac>\d*))? # followed by an optional fractional part (?:E(?P<exp>[-+]?\d+))? # and an optional exponent \Z i5 ii c C s t | } | d k r' t d n | j d p9 d } t | j d | } t | j d pj d t | } | j d d k } | d t | d d t d | } } | s | r d Sd S| j | j } | | d k r | | ?n | | >| k 7} t | | | } | t | d >| t | d >} } t | | \ } } d | | k sd | | k r| d @r| d 7} | j | d k r| d } | d 7} qn | j | k r| | | k st | j | k s| | | k st | | j | k r8| r4d Sd S| sL| rHd Sd Sd | d d } d | d d } | | >| | } } d j | rd n d | d | | d | | | d | S( s Convert a finite decimal string to a hex string representing an IEEE 754 binary64 float. Return 'inf' or '-inf' on overflow. This function makes no use of floating-point arithmetic at any stage.s invalid numeric stringt fracR t intt expt 0t signt -i i s -0x0.0p+0s 0x0.0p+0i i s -inft infi i s {}0x{:x}.{:0{}x}p{:+d}i N( t strtod_parsert Nonet ValueErrort groupR t lent maxt bit_lengtht divmodt AssertionErrort format( t st mant_digt min_expt max_expt mt fractiont intpartR t negativet at bt dt et qt rt hexdigst shift( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt strtod sF %,+(* ((i t StrtodTestsc B s e Z d Z d Z d Z d Z d Z d Z d Z e j d e j d d d e d Z d Z d Z RS( c C s y t | } WnC t k r? | d d k r6 d n d } n# t k rU d } n X| j } t | } | j | | d j | | | d S( s Compare the result of Python's builtin correctly rounded string->float conversion (using float) to a pure Python correctly rounded string->float implementation. Fail if the two methods give different results.i R s -infR s memory errorsE Incorrectly rounded str->float conversion for {}: expected {}, got {}N( t floatt OverflowErrort MemoryErrort hexR% t assertEqualR ( t selfR t fst gott expected( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt check_strtodX s c C s xd D]} d d | } d d | } | d d k rH | d 7} n x\t t D]N} t j | | d | } } x) | d d k r | d | d } } qz W| d d k s t | | } } x` | d k r(d j | | } | j | d j | d | d } | j | | d 9} q W| | } } xj | d k rd j | | } | j | d j | d | d } | j | | d 9} | d 8} q9WqU Wq Wd S( Ni i i i i i i6 i5 i i i i s {}e{}i( ( i i i i i I @ I I I ( i i i i l Fx:^V l Ozpcl Fx:^V l Ozpc( t xranget TEST_SIZEt randomt randrangeR R R0 ( R, t kt uppert lowert it nR t digitst exponentR ( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt test_short_halfway_casesk s2 c C s x t d t D] } t j d d } t | d \ } } | r] | d | d } } n | d 8} d | d | d } } | d k r | | >} d } n | d | } | } d j | | } | j | q Wd S( Nid i i i4 i i2 i i s {}e{}I I I ( R1 R2 R3 R4 R R R0 ( R, R8 t bitsR R R: R; R ( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt test_halfway_cases s c C s d d d d g } x | D] \ } } } xu t d D]g } | t j d | d | } | } d j | | } | j | | d 9} | d 9} | d 8} q5 Wq Wd S( Nl 9V iiV l %o$CK i! i l jT& iiM i i ii s {}e{}i i ( l 9V iiV ( l %o$CK i! i ( l jT& iiM ( i iiM ( R1 R3 R4 R R0 ( R, t boundariesR9 R t ut jR: R; R ( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt test_boundaries s c C sy xr t d d D]a } d | d } xI t t D]; } | t j d d } d j | | } | j | q2 Wq Wd S( Nipii i i3 ii s {}e{}lH ( R1 R2 R3 R4 R R0 ( R, R; t baseRA R: R ( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt test_underflow_boundary s c C sz xs d D]k } d | } xX t d t D]F } t j | } t j d d } d j | | } | j | q( Wq Wd S( Ni i i i i i i i i i( i) i2 ipi s {}e{}( i i i i i i i i i i( i) i2 ( R1 R2 R3 R4 R R0 ( R, t ndigst dig10R8 R: R; R ( ( s, /usr/local/lib/python2.7/test/test_strtod.pyt test_bigcomp s c s d d } xt d D]} xt t D]z} t j | } t j d } | d j f d t | D 7} t j t t g r | d 7} t j d } | d j f d t | D 7} n d } t j t t g rX| t j d d g 7} | t j | 7} t j d d } | d j f d t | D 7} n | | rr| j | q, y t | Wn t k rq, Xt s, t d q, Wq Wd S( Nt 000000123456789t +R R i i c 3 s | ] } t j Vq d S( N( R3 t choice( t .0t _( R: ( s, /usr/local/lib/python2.7/test/test_strtod.pys <genexpr>