aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien George2018-05-11 13:51:18 +1000
committerDamien George2018-05-11 13:51:18 +1000
commitd2c1db1e5cca03c9a34614af6d12045aefe3d719 (patch)
tree59b84f3b811f1bbaeb0124924fe3e714501b96da
parent6046e68fe19ca3e88e6e55438be9b2dee98723af (diff)
tests/float/float_parse: Allow test to run on 32-bit archs.
Printing of uPy floats can differ by the floating-point precision on different architectures (eg 64-bit vs 32-bit x86), so it's not possible to using printing of floats in some parts of this test. Instead we can just check for equivalence with what is known to be the correct answer.
-rw-r--r--tests/float/float_parse.py4
-rwxr-xr-xtests/run-tests1
2 files changed, 2 insertions, 3 deletions
diff --git a/tests/float/float_parse.py b/tests/float/float_parse.py
index 5eb16e79c..ae6b114f0 100644
--- a/tests/float/float_parse.py
+++ b/tests/float/float_parse.py
@@ -17,8 +17,8 @@ print(float('.' + '9' * 70 + 'e-50') == float('1e-50'))
# tiny fraction with large exponent
print(float('.' + '0' * 60 + '1e10') == float('1e-51'))
-print(float('.' + '0' * 60 + '9e25'))
-print(float('.' + '0' * 60 + '9e40'))
+print(float('.' + '0' * 60 + '9e25') == float('9e-36'))
+print(float('.' + '0' * 60 + '9e40') == float('9e-21'))
# ensure that accuracy is retained when value is close to a subnormal
print(float('1.00000000000000000000e-37'))
diff --git a/tests/run-tests b/tests/run-tests
index 82f05bfa8..afefa264f 100755
--- a/tests/run-tests
+++ b/tests/run-tests
@@ -324,7 +324,6 @@ def run_tests(pyb, tests, args, base_path="."):
skip_tests.add('basics/subclass_native_init.py')# native subclassing corner cases not support
skip_tests.add('misc/rge_sm.py') # too large
skip_tests.add('micropython/opt_level.py') # don't assume line numbers are stored
- skip_tests.add('float/float_parse.py') # minor parsing artifacts with 32-bit floats
# Some tests are known to fail on 64-bit machines
if pyb is None and platform.architecture()[0] == '64bit':