tests/float/float_struct_e.py: Add specific test for struct 'e' type.

Signed-off-by: Damien George <damien@micropython.org>
pull/12799/head
Damien George 2024-03-20 13:30:22 +11:00
rodzic b80607ecaf
commit 9d27183bde
1 zmienionych plików z 43 dodań i 0 usunięć

Wyświetl plik

@ -0,0 +1,43 @@
# Test struct pack/unpack with 'e' typecode.
try:
import struct
except ImportError:
print("SKIP")
raise SystemExit
test_values = (
1e-7,
2e-7,
1e-6,
1e-5,
1e-4,
1e-3,
1e-2,
0.1,
0,
1,
2,
4,
8,
10,
100,
1e3,
1e4,
6e4,
float("inf"),
)
for j in test_values:
for i in (j, -j):
x = struct.pack("<e", i)
v = struct.unpack("<e", x)[0]
print("%.7f %s %.15f %s" % (i, x, v, i == v))
# In CPython, packing a float that doesn't fit into a half-float raises OverflowError.
# But in MicroPython it does not, but rather stores the value as inf.
# This test is here for coverage.
try:
struct.pack("e", 1e15)
except OverflowError:
pass