kopia lustrzana https://github.com/micropython/micropython
tests/float/float_struct_e.py: Add specific test for struct 'e' type.
Signed-off-by: Damien George <damien@micropython.org>pull/12799/head
rodzic
b80607ecaf
commit
9d27183bde
|
@ -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
|
Ładowanie…
Reference in New Issue