def test_zero(self): ibm_start = b'\0\0\0\0' f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) assert ibm_start == ibm_result
def test_subnormal(self): ibm_start = bytes((0x00, 0x00, 0x00, 0x20)) f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) assert ibm_start == ibm_result
def test_one(self): assert ibm2ieee(b'\x41\x10\x00\x00') == 1.0
def test_error_1(self): assert ibm2ieee(bytes((196, 74, 194, 143))) == -19138.55859375
def test_subnormal_smallest_subnormal(self): assert ibm2ieee(bytes( (0x00, 0x00, 0x00, 0x01))) == 5.147557589468029e-85
def test_smallest_representable_number(self): self.assertEqual(ibm2ieee(bytes((0b11111111, 0b11111111, 0b11111111, 0b11111111))), MIN_IBM_FLOAT)
def test_subnormal_is_subnormal(self): self.assertTrue(0 < ibm2ieee(bytes((0x00, 0x00, 0x00, 0x20))) < SMALLEST_POSITIVE_NORMAL_IBM_FLOAT)
def test_negative_half(self): assert ibm2ieee(bytes((0b01000000, 0x80, 0x00, 0x00))) == 0.5
def test_zero(self, a): assert ibm2ieee(bytes([a, 0, 0, 0])) == 0.0
def test_positive_half(self): assert ibm2ieee(bytes((0b11000000, 0x80, 0x00, 0x00))) == -0.5
def test_one(self): ibm_start = b'\x41\x10\x00\x00' f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) assert ibm_start == ibm_result
def test_positive_half(self): ibm_start = bytes((0b11000000, 0x80, 0x00, 0x00)) f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) assert ibm_start == ibm_result
def test_negative_118_625(self): # Example taken from Wikipedia http://en.wikipedia.org/wiki/IBM_Floating_Point_Architecture self.assertEqual(ibm2ieee(bytes((0b11000010, 0b01110110, 0b10100000, 0b00000000))), -118.625)
def test_largest_representable_number(self): assert ibm2ieee(bytes((0b01111111, 0b11111111, 0b11111111, 0b11111111))) == MAX_IBM_FLOAT
def test_smallest_positive_normalised_number(self): self.assertEqual(ibm2ieee(bytes((0b00000000, 0b00010000, 0b00000000, 0b00000000))), SMALLEST_POSITIVE_NORMAL_IBM_FLOAT)
def test_smallest_representable_number(self): assert ibm2ieee(bytes((0b11111111, 0b11111111, 0b11111111, 0b11111111))) == MIN_IBM_FLOAT
def test_error_2(self): self.assertEqual(ibm2ieee(bytes((191, 128, 0, 0))), -0.03125)
def test_zero(self, a): self.assertEqual(ibm2ieee(bytes([a, 0, 0, 0])), 0.0)
def test_largest_negative_normalised_number(self): assert ibm2ieee(bytes( (0b10000000, 0b00010000, 0b00000000, 0b00000000))) == LARGEST_NEGATIVE_NORMAL_IBM_FLOAT
def test_one(self): ibm_start = b'\x41\x10\x00\x00' f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) self.assertEqual(ibm_start, ibm_result)
def test_subnormal(self): assert ibm2ieee(bytes( (0x00, 0x00, 0x00, 0x20))) == 1.6472184286297693e-83
def test_subnormal(self): ibm_start = bytes((0x00, 0x00, 0x00, 0x20)) f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) self.assertEqual(ibm_start, ibm_result)
def test_negative_half(self): ibm_start = bytes((0b01000000, 0x80, 0x00, 0x00)) f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) assert ibm_start == ibm_result
def test_zero(self): self.assertEqual(ibm2ieee(b'\0\0\0\0'), 0.0)
def test_positive_half(self): self.assertEqual(ibm2ieee(bytes((0b11000000, 0x80, 0x00, 0x00))), -0.5)
def test_largest_representable_number(self): assert ibm2ieee(bytes( (0b01111111, 0b11111111, 0b11111111, 0b11111111))) == MAX_IBM_FLOAT
def test_negative_half(self): self.assertEqual(ibm2ieee(bytes((0b01000000, 0x80, 0x00, 0x00))), 0.5)
def test_one(self): self.assertEqual(ibm2ieee(b'\x41\x10\x00\x00'), 1.0)
def test_largest_representable_number(self): self.assertEqual(ibm2ieee(bytes((0b01111111, 0b11111111, 0b11111111, 0b11111111))), MAX_IBM_FLOAT)
def test_largest_representable_number(self): self.assertEqual( ibm2ieee(bytes((0b01111111, 0b11111111, 0b11111111, 0b11111111))), MAX_IBM_FLOAT)
def test_largest_negative_normalised_number(self): self.assertEqual(ibm2ieee(bytes((0b10000000, 0b00010000, 0b00000000, 0b00000000))), LARGEST_NEGATIVE_NORMAL_IBM_FLOAT)
def test_smallest_representable_number(self): self.assertEqual( ibm2ieee(bytes((0b11111111, 0b11111111, 0b11111111, 0b11111111))), MIN_IBM_FLOAT)
def test_error_1(self): self.assertEqual(ibm2ieee(bytes((196, 74, 194, 143))), -19138.55859375)
def test_subnormal(self): self.assertEqual(ibm2ieee(bytes((0x00, 0x00, 0x00, 0x20))), 1.6472184286297693e-83)
def test_subnormal_smallest_subnormal(self): self.assertEqual(ibm2ieee(bytes((0x00, 0x00, 0x00, 0x01))), 5.147557589468029e-85)
def test_smallest_representable_number(self): assert ibm2ieee(bytes( (0b11111111, 0b11111111, 0b11111111, 0b11111111))) == MIN_IBM_FLOAT
def test_error_2(self): assert ibm2ieee(bytes((191, 128, 0, 0))) == -0.03125
def test_zero(self): ibm_start = b'\0\0\0\0' f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) self.assertEqual(ibm_start, ibm_result)
def test_subnormal_is_subnormal(self): assert 0 < ibm2ieee(bytes( (0x00, 0x00, 0x00, 0x20))) < SMALLEST_POSITIVE_NORMAL_IBM_FLOAT
def test_negative_half(self): ibm_start = bytes((0b01000000, 0x80, 0x00, 0x00)) f = ibm2ieee(ibm_start) ibm_result = ieee2ibm(f) self.assertEqual(ibm_start, ibm_result)
def test_negative_118_625(self): # Example taken from Wikipedia http://en.wikipedia.org/wiki/IBM_Floating_Point_Architecture assert ibm2ieee(bytes( (0b11000010, 0b01110110, 0b10100000, 0b00000000))) == -118.625
def test_smallest_positive_normalised_number(self): assert ibm2ieee(bytes( (0b00000000, 0b00010000, 0b00000000, 0b00000000))) == SMALLEST_POSITIVE_NORMAL_IBM_FLOAT
def test_subnormal_smallest_subnormal(self): assert ibm2ieee(bytes((0x00, 0x00, 0x00, 0x01))) == 5.147557589468029e-85