From 3695211576ed69671b98412ff5278265ab65e6bd Mon Sep 17 00:00:00 2001 From: Damien George Date: Wed, 27 Sep 2023 13:11:58 +1000 Subject: [PATCH] tests/float/float_format_ints.py: Put power-of-10 test in separate file. This test doesn't pass on builds with 30-bit floats (object repr C). Signed-off-by: Damien George --- tests/float/float_format_ints.py | 6 ------ tests/float/float_format_ints_power10.py | 8 ++++++++ tests/run-tests.py | 1 + 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 tests/float/float_format_ints_power10.py diff --git a/tests/float/float_format_ints.py b/tests/float/float_format_ints.py index 0bf4baf12d..df4444166c 100644 --- a/tests/float/float_format_ints.py +++ b/tests/float/float_format_ints.py @@ -12,12 +12,6 @@ for b in [13, 123, 457, 23456]: print(title, "with format", f_fmt, "gives", f_fmt.format(f)) print(title, "with format", g_fmt, "gives", g_fmt.format(f)) -# Check that powers of 10 (that fit in float32) format correctly. -for i in range(31): - # It works to 12 digits on all platforms *except* qemu-arm, where - # 10^11 comes out as 10000000820 or something. - print("{:.7g}".format(float("1e" + str(i)))) - # 16777215 is 2^24 - 1, the largest integer that can be completely held # in a float32. print("{:f}".format(16777215)) diff --git a/tests/float/float_format_ints_power10.py b/tests/float/float_format_ints_power10.py new file mode 100644 index 0000000000..98900c135b --- /dev/null +++ b/tests/float/float_format_ints_power10.py @@ -0,0 +1,8 @@ +# Test that integers format to exact values. +# This test requires at least 32-bit floats (won't work with 30-bit). + +# Check that powers of 10 (that fit in float32) format correctly. +for i in range(31): + # It works to 12 digits on all platforms *except* qemu-arm, where + # 10^11 comes out as 10000000820 or something. + print(i, "{:.7g}".format(float("1e" + str(i)))) diff --git a/tests/run-tests.py b/tests/run-tests.py index de886b8ae7..2d511c20ca 100755 --- a/tests/run-tests.py +++ b/tests/run-tests.py @@ -525,6 +525,7 @@ def run_tests(pyb, tests, args, result_dir, num_threads=1): ) # requires fp32, there's string_format_fp30.py instead skip_tests.add("float/bytes_construct.py") # requires fp32 skip_tests.add("float/bytearray_construct.py") # requires fp32 + skip_tests.add("float/float_format_ints_power10.py") # requires fp32 if upy_float_precision < 64: skip_tests.add("float/float_divmod.py") # tested by float/float_divmod_relaxed.py instead skip_tests.add("float/float2int_doubleprec_intbig.py")