You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by er...@apache.org on 2018/11/30 14:00:26 UTC

[6/8] commons-numbers git commit: Use named constants.

Use named constants.


Project: http://git-wip-us.apache.org/repos/asf/commons-numbers/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-numbers/commit/daa6a061
Tree: http://git-wip-us.apache.org/repos/asf/commons-numbers/tree/daa6a061
Diff: http://git-wip-us.apache.org/repos/asf/commons-numbers/diff/daa6a061

Branch: refs/heads/master
Commit: daa6a0616ac85869a2e078eb276438380643398a
Parents: a058f41
Author: Gilles Sadowski <gi...@harfang.homelinux.org>
Authored: Fri Nov 30 14:01:49 2018 +0100
Committer: Gilles Sadowski <gi...@harfang.homelinux.org>
Committed: Fri Nov 30 14:01:49 2018 +0100

----------------------------------------------------------------------
 .../apache/commons/numbers/complex/Complex.java | 46 +++++++++++++++-----
 .../commons/numbers/quaternion/Quaternion.java  | 34 +++++++++------
 2 files changed, 57 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/daa6a061/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
----------------------------------------------------------------------
diff --git a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
index 979c474..90a140c 100644
--- a/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
+++ b/commons-numbers-complex/src/main/java/org/apache/commons/numbers/complex/Complex.java
@@ -56,9 +56,17 @@ public final class Complex implements Serializable  {
     public static final Complex ZERO = new Complex(0, 0);
     /** A complex number representing "NaN + NaN i" */
     private static final Complex NAN = new Complex(Double.NaN, Double.NaN);
+
     /** Serializable version identifier. */
     private static final long serialVersionUID = 20180201L;
 
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_START = "(";
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_END = ")";
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_SEP = ",";
+
     /** The imaginary part. */
     private final double imaginary;
     /** The real part. */
@@ -143,21 +151,33 @@ public final class Complex implements Serializable  {
      */
     public static Complex parse(String s) {
         final int len = s.length();
-        final int startParen = s.indexOf("(");
+        final int startParen = s.indexOf(FORMAT_START);
         if (startParen != 0) {
-            throw new ComplexParsingException("Missing start parenthesis");
+            throw new ComplexParsingException("Expected start string: " + FORMAT_START);
         }
-        final int endParen = s.indexOf(")");
+        final int endParen = s.indexOf(FORMAT_END);
         if (endParen != len - 1) {
-            throw new ComplexParsingException("Missing end parenthesis");
+            throw new ComplexParsingException("Expected end string: " + FORMAT_END);
         }
-        final int comma = s.indexOf(",");
-        if (comma == -1) {
-            throw new ComplexParsingException("Missing comma");
+        final String[] elements = s.substring(1, s.length() - 1).split(FORMAT_SEP);
+        if (elements.length != 2) {
+            throw new ComplexParsingException("Incorrect number of parts: Expected 2 but was " +
+                                              elements.length +
+                                              " (separator is '" + FORMAT_SEP + "')");
         }
 
-        final double re = Double.parseDouble(s.substring(startParen + 1, comma));
-        final double im = Double.parseDouble(s.substring(comma + 1, endParen));
+        final double re;
+        try {
+            re = Double.parseDouble(elements[0]);
+        } catch (NumberFormatException ex) {
+            throw new ComplexParsingException("Could not parse real part" + elements[0]);
+        }
+        final double im;
+        try {
+            im = Double.parseDouble(elements[1]);
+        } catch (NumberFormatException ex) {
+            throw new ComplexParsingException("Could not parse imaginary part" + elements[1]);
+        }
 
         return ofCartesian(re, im);
     }
@@ -1314,7 +1334,13 @@ public final class Complex implements Serializable  {
     /** {@inheritDoc} */
     @Override
     public String toString() {
-        return "(" + real + ", " + imaginary + ")";
+        final StringBuilder s = new StringBuilder();
+        s.append(FORMAT_START)
+            .append(real).append(FORMAT_SEP)
+            .append(imaginary)
+            .append(FORMAT_END);
+
+        return s.toString();
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/commons-numbers/blob/daa6a061/commons-numbers-quaternion/src/main/java/org/apache/commons/numbers/quaternion/Quaternion.java
----------------------------------------------------------------------
diff --git a/commons-numbers-quaternion/src/main/java/org/apache/commons/numbers/quaternion/Quaternion.java b/commons-numbers-quaternion/src/main/java/org/apache/commons/numbers/quaternion/Quaternion.java
index 4126a85..afd1a63 100644
--- a/commons-numbers-quaternion/src/main/java/org/apache/commons/numbers/quaternion/Quaternion.java
+++ b/commons-numbers-quaternion/src/main/java/org/apache/commons/numbers/quaternion/Quaternion.java
@@ -44,6 +44,13 @@ public final class Quaternion implements Serializable {
     /** Error message. */
     private static final String ZERO_NORM_MSG = "Norm is zero";
 
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_START = "[";
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_END = "]";
+    /** {@link #toString() String representation}. */
+    private static final String FORMAT_SEP = " ";
+
     /** First component (scalar part). */
     private final double q0;
     /** Second component (first vector part). */
@@ -308,7 +315,7 @@ public final class Quaternion implements Serializable {
             return ((Double)q0).equals(q.q0) &&
                     ((Double)q1).equals(q.q1) &&
                     ((Double)q2).equals(q.q2) &&
-                    ((Double)q3).equals(q.q3) ;
+                    ((Double)q3).equals(q.q3);
         }
 
         return false;
@@ -498,17 +505,19 @@ public final class Quaternion implements Serializable {
      */
     public static Quaternion parse(String s) {
         final int len = s.length();
-        final int startBracket = s.indexOf("[");
+        final int startBracket = s.indexOf(FORMAT_START);
         if (startBracket != 0) {
-            throw new QuaternionParsingException("Missing opening square bracket");
+            throw new QuaternionParsingException("Expected start string: " + FORMAT_START);
         }
-        final int endBracket = s.indexOf("]");
+        final int endBracket = s.indexOf(FORMAT_END);
         if (endBracket != len - 1) {
-            throw new QuaternionParsingException("Missing closing square bracket");
+            throw new QuaternionParsingException("Expected end string: " + FORMAT_END);
         }
-        String[] elements = s.substring(1, s.length()-1).split(" ");
+        final String[] elements = s.substring(1, s.length() - 1).split(FORMAT_SEP);
         if (elements.length != 4) {
-            throw new QuaternionParsingException("Incorrect number of parts");
+            throw new QuaternionParsingException("Incorrect number of parts: Expected 4 but was " +
+                                                 elements.length +
+                                                 " (separator is '" + FORMAT_SEP + "')");
         }
 
         final double q1;
@@ -544,14 +553,13 @@ public final class Quaternion implements Serializable {
      */
     @Override
     public String toString() {
-        final String sp = " ";
         final StringBuilder s = new StringBuilder();
-        s.append("[")
-            .append(q0).append(sp)
-            .append(q1).append(sp)
-            .append(q2).append(sp)
+        s.append(FORMAT_START)
+            .append(q0).append(FORMAT_SEP)
+            .append(q1).append(FORMAT_SEP)
+            .append(q2).append(FORMAT_SEP)
             .append(q3)
-            .append("]");
+            .append(FORMAT_END);
 
         return s.toString();
     }