def testSignSetter(self) : f32 = Float() f64 = Float(length=64) def setSign(f, value) : f.raw_sign = value bin = '01000110000110110100100101100001' f32.bin = bin self.assertEqual(f32.bin, bin) self.assertEqual(f32.raw_sign, '0') self.assertEqual(f32.raw_exponent, '10001100') self.assertEqual(f32.raw_mantissa, '00110110100100101100001') # length 1 f32.raw_sign = '1' self.assertEqual(f32.raw_sign, '1') # length 0 self.assertRaises(bitstring.CreationError, setSign, f32, '') # exponent and sign (should remain unchanged) self.assertEqual(f32.raw_exponent, '10001100') self.assertEqual(f32.raw_mantissa, '00110110100100101100001') # invalid binary self.assertRaises(bitstring.CreationError, setSign, f32, '3') # invalid type self.assertRaises(bitstring.CreationError, setSign, f32, {})