1919have_getformat = hasattr (float , "__getformat__" )
2020requires_getformat = unittest .skipUnless (have_getformat ,
2121 "requires __getformat__" )
22- requires_setformat = unittest .skipUnless (hasattr (float , "__setformat__" ),
23- "requires __setformat__" )
2422
2523#locate file with float format test values
2624test_dir = os .path .dirname (__file__ ) or os .curdir
@@ -612,44 +610,6 @@ class F(float, H):
612610 self .assertEqual (hash (value ), object .__hash__ (value ))
613611
614612
615- @requires_setformat
616- class FormatFunctionsTestCase (unittest .TestCase ):
617-
618- def setUp (self ):
619- self .save_formats = {'double' :float .__getformat__ ('double' ),
620- 'float' :float .__getformat__ ('float' )}
621-
622- def tearDown (self ):
623- float .__setformat__ ('double' , self .save_formats ['double' ])
624- float .__setformat__ ('float' , self .save_formats ['float' ])
625-
626- def test_getformat (self ):
627- self .assertIn (float .__getformat__ ('double' ),
628- ['unknown' , 'IEEE, big-endian' , 'IEEE, little-endian' ])
629- self .assertIn (float .__getformat__ ('float' ),
630- ['unknown' , 'IEEE, big-endian' , 'IEEE, little-endian' ])
631- self .assertRaises (ValueError , float .__getformat__ , 'chicken' )
632- self .assertRaises (TypeError , float .__getformat__ , 1 )
633-
634- def test_setformat (self ):
635- for t in 'double' , 'float' :
636- float .__setformat__ (t , 'unknown' )
637- if self .save_formats [t ] == 'IEEE, big-endian' :
638- self .assertRaises (ValueError , float .__setformat__ ,
639- t , 'IEEE, little-endian' )
640- elif self .save_formats [t ] == 'IEEE, little-endian' :
641- self .assertRaises (ValueError , float .__setformat__ ,
642- t , 'IEEE, big-endian' )
643- else :
644- self .assertRaises (ValueError , float .__setformat__ ,
645- t , 'IEEE, big-endian' )
646- self .assertRaises (ValueError , float .__setformat__ ,
647- t , 'IEEE, little-endian' )
648- self .assertRaises (ValueError , float .__setformat__ ,
649- t , 'chicken' )
650- self .assertRaises (ValueError , float .__setformat__ ,
651- 'chicken' , 'unknown' )
652-
653613BE_DOUBLE_INF = b'\x7f \xf0 \x00 \x00 \x00 \x00 \x00 \x00 '
654614LE_DOUBLE_INF = bytes (reversed (BE_DOUBLE_INF ))
655615BE_DOUBLE_NAN = b'\x7f \xf8 \x00 \x00 \x00 \x00 \x00 \x00 '
@@ -660,36 +620,6 @@ def test_setformat(self):
660620BE_FLOAT_NAN = b'\x7f \xc0 \x00 \x00 '
661621LE_FLOAT_NAN = bytes (reversed (BE_FLOAT_NAN ))
662622
663- # on non-IEEE platforms, attempting to unpack a bit pattern
664- # representing an infinity or a NaN should raise an exception.
665-
666- @requires_setformat
667- class UnknownFormatTestCase (unittest .TestCase ):
668- def setUp (self ):
669- self .save_formats = {'double' :float .__getformat__ ('double' ),
670- 'float' :float .__getformat__ ('float' )}
671- float .__setformat__ ('double' , 'unknown' )
672- float .__setformat__ ('float' , 'unknown' )
673-
674- def tearDown (self ):
675- float .__setformat__ ('double' , self .save_formats ['double' ])
676- float .__setformat__ ('float' , self .save_formats ['float' ])
677-
678- def test_double_specials_dont_unpack (self ):
679- for fmt , data in [('>d' , BE_DOUBLE_INF ),
680- ('>d' , BE_DOUBLE_NAN ),
681- ('<d' , LE_DOUBLE_INF ),
682- ('<d' , LE_DOUBLE_NAN )]:
683- self .assertRaises (ValueError , struct .unpack , fmt , data )
684-
685- def test_float_specials_dont_unpack (self ):
686- for fmt , data in [('>f' , BE_FLOAT_INF ),
687- ('>f' , BE_FLOAT_NAN ),
688- ('<f' , LE_FLOAT_INF ),
689- ('<f' , LE_FLOAT_NAN )]:
690- self .assertRaises (ValueError , struct .unpack , fmt , data )
691-
692-
693623# on an IEEE platform, all we guarantee is that bit patterns
694624# representing infinities or NaNs do not raise an exception; all else
695625# is accident (today).
0 commit comments