You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ah...@apache.org on 2019/12/05 02:31:55 UTC

[commons-numbers] 03/03: Added notes about testing odd/even functions.

This is an automated email from the ASF dual-hosted git repository.

aherbert pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-numbers.git

commit e0d38c83f2b3dbcad4da0a659051ac506eba9edb
Author: Alex Herbert <ah...@apache.org>
AuthorDate: Thu Dec 5 02:30:12 2019 +0000

    Added notes about testing odd/even functions.
---
 .../apache/commons/numbers/complex/CStandardTest.java    | 16 +++++++---------
 1 file changed, 7 insertions(+), 9 deletions(-)

diff --git a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
index 141448f..5d0b51e 100644
--- a/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
+++ b/commons-numbers-complex/src/test/java/org/apache/commons/numbers/complex/CStandardTest.java
@@ -199,9 +199,13 @@ public class CStandardTest {
      * @param odd true if odd
      */
     private static void assertOddOrEven(UnaryOperator<Complex> operation, boolean odd) {
-        // Edge cases
-        //final double[] parts = {Double.NEGATIVE_INFINITY, -1, -0.0, 0.0, 1,
-        //                        Double.POSITIVE_INFINITY, Double.NaN};
+        // Note: It may not be possible to satisfy the conjugate equality
+        // and be an odd/even function with regard to zero.
+        // The C99 standard allows for these cases to have unspecified sign.
+        // This test ignores parts that can result in unspecified signed results.
+        // The valid edge cases should be tested for each function separately.
+
+        // Edge cases around zero.
         final double[] parts = {-2, -1, -0.0, 0.0, 1, 2};
         for (final double x : parts) {
             for (final double y : parts) {
@@ -245,10 +249,6 @@ public class CStandardTest {
             c2 = c2.negate();
         }
 
-        // Note: It is not possible to satisfy the conjugate equality
-        // and be an even function with regard to zero.
-        
-        
         // Test for binary equality
         if (!equals(c1.getReal(), c2.getReal()) ||
             !equals(c1.getImaginary(), c2.getImaginary())) {
@@ -613,8 +613,6 @@ public class CStandardTest {
         assertComplex(NAN, Complex::acosh, NAN);
     }
 
-    // TODO: fix the 'IS ODD/ EVEN' specification
-
     /**
      * ISO C Standard G.6.2.2.
      */