[Piglit] [PATCH] builtin_function*py: more test data for "trunc"

Andres Gomez agomez at igalia.com
Tue May 3 13:56:43 UTC 2016


When performing a trunc op in a float value there is, basically, three
scenarios: when the exponent is < 0, when it is > bitsize of the
significand or with a value in the middle. Current generator was using
data for values in the middle and < 0 but not for the last case so we
add now a couple of values in that range and also the interesting 0.0
special value.

Signed-off-by: Andres Gomez <agomez at igalia.com>
---
 generated_tests/builtin_function.py      | 8 +++++++-
 generated_tests/builtin_function_fp64.py | 8 +++++++-
 2 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/generated_tests/builtin_function.py b/generated_tests/builtin_function.py
index b587851..7cbd237 100644
--- a/generated_tests/builtin_function.py
+++ b/generated_tests/builtin_function.py
@@ -859,7 +859,13 @@ def _make_componentwise_test_vectors(test_suite_dict):
     f('sign', 1, 110, np.sign, None, [np.linspace(-1.5, 1.5, 5)])
     f('sign', 1, 130, np.sign, None, [ints])
     f('floor', 1, 110, np.floor, None, [np.linspace(-2.0, 2.0, 4)])
-    f('trunc', 1, 130, _trunc, None, [np.linspace(-2.0, 2.0, 8)])
+
+    # Note: with trunc we want to test values in which the floating
+    # point exponent is < 0, > 23 or in the middle. Hence, we append
+    # some numbers to cover all possible scenarios.
+    f('trunc', 1, 130, _trunc, None,
+      [np.append(np.linspace(-2.0, 2.0, 8),
+                 [0.0, 45027112.0, -45027112.0])])
 
     # Note: the direction of rounding used by round() is not specified
     # for half-integer values, so we test it over a range that doesn't
diff --git a/generated_tests/builtin_function_fp64.py b/generated_tests/builtin_function_fp64.py
index 7e4d3eb..af3599b 100644
--- a/generated_tests/builtin_function_fp64.py
+++ b/generated_tests/builtin_function_fp64.py
@@ -768,7 +768,13 @@ def _make_componentwise_test_vectors(test_suite_dict):
     f('abs', 1, np.abs, None, [np.linspace(-1.5, 1.5, 5)])
     f('sign', 1, np.sign, None, [np.linspace(-1.5, 1.5, 5)])
     f('floor', 1, np.floor, None, [np.linspace(-2.0, 2.0, 4)])
-    f('trunc', 1, _trunc, None, [np.linspace(-2.0, 2.0, 8)])
+
+    # Note: with trunc we want to test values in which the floating
+    # point exponent is < 0, > 52 or in the middle. Hence, we append
+    # some numbers to cover all possible scenarios.
+    f('trunc', 1, _trunc, None,
+      [np.append(np.linspace(-2.0, 2.0, 8),
+                 [0.0, 4.5027112340958570e19, -4.5027112340958570e19])])
 
     # Note: the direction of rounding used by round() is not specified
     # for half-integer values, so we test it over a range that doesn't
-- 
2.8.0.rc3



More information about the Piglit mailing list