def test_round_trip(self): test_data = [struct.unpack('<d', os.urandom(8))[0] for _ in range(1000)] for value in test_data: print(value) round_tripped = hex_to_double(double_to_hex(value)) if math.isnan(value): assert math.isnan(round_tripped) else: assert round_tripped == value
def test_round_trip(self): test_data = [ struct.unpack('<d', os.urandom(8))[0] for _ in range(1000) ] for value in test_data: print(value) round_tripped = hex_to_double(double_to_hex(value)) if math.isnan(value): assert math.isnan(round_tripped) else: assert round_tripped == value
def test_round_trip(self): test_data = [ _pad_to(hex(struct.unpack('<Q', os.urandom(8))[0]), 16) for _ in range(1000)] # Python 2 uses an L suffix on long integer types, even in hex. for value in [v.rstrip('L') for v in test_data]: fromhex = hex_to_double(value) if math.isnan(fromhex): continue round_tripped = double_to_hex(fromhex) assert round_tripped == value
def test_round_trip(self): test_data = [ _pad_to(hex(struct.unpack('<Q', os.urandom(8))[0]), 16) for _ in range(1000) ] # Python 2 uses an L suffix on long integer types, even in hex. for value in [v.rstrip('L') for v in test_data]: fromhex = hex_to_double(value) if math.isnan(fromhex): continue round_tripped = double_to_hex(fromhex) assert round_tripped == value
def test_negative_inf(self): result = hex_to_double('0xfff0000000000000') assert math.isinf(result) assert result < 0
def test_inf(self): result = hex_to_double('0x7ff0000000000000') assert math.isinf(result) assert result > 0
def test_nan(self): result = hex_to_double('0x7ff0000000000001') assert math.isnan(result)
def test_negative_zero(self): expected = -0.0 result = hex_to_double('0x8000000000000000') assert result == expected
def test_zero(self): expected = 0.0 result = hex_to_double('0x0000000000000000') assert result == expected
def test_nan(self): round_tripped = hex_to_double(double_to_hex(float('nan'))) assert math.isnan(round_tripped)