You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by ra...@apache.org on 2017/05/12 21:32:37 UTC
[28/31] [math] MATH-1284: Restore Vector2D class as an abstract
implementation of Vector and now Cartesian2D extends Vector2D.
Restore the public interface of Vector2DFormat to act on Vector2D.
MATH-1284: Restore Vector2D class as an abstract implementation of Vector<Euclidean2D> and now Cartesian2D extends Vector2D.
Restore the public interface of Vector2DFormat to act on Vector2D.
Project: http://git-wip-us.apache.org/repos/asf/commons-math/repo
Commit: http://git-wip-us.apache.org/repos/asf/commons-math/commit/09c55eb8
Tree: http://git-wip-us.apache.org/repos/asf/commons-math/tree/09c55eb8
Diff: http://git-wip-us.apache.org/repos/asf/commons-math/diff/09c55eb8
Branch: refs/heads/master
Commit: 09c55eb8120da36aef1807628f87bde83749428b
Parents: 9be91f3
Author: Ray DeCampo <ra...@decampo.org>
Authored: Sat May 6 10:51:16 2017 -0400
Committer: Ray DeCampo <ra...@decampo.org>
Committed: Sat May 6 10:51:16 2017 -0400
----------------------------------------------------------------------
.../geometry/euclidean/twod/Cartesian2D.java | 2 +-
.../math4/geometry/euclidean/twod/Vector2D.java | 38 ++++++++++++++++++
.../geometry/euclidean/twod/Vector2DFormat.java | 10 ++---
.../twod/Vector2DFormatAbstractTest.java | 42 ++++++++++----------
4 files changed, 65 insertions(+), 27 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/commons-math/blob/09c55eb8/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
index 51109d0..7e68362 100644
--- a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
+++ b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Cartesian2D.java
@@ -36,7 +36,7 @@ import org.apache.commons.math4.util.MathUtils;
* <p>Instances of this class are guaranteed to be immutable.</p>
* @since 4.0
*/
-public class Cartesian2D implements Point<Euclidean2D>, Vector<Euclidean2D> {
+public class Cartesian2D extends Vector2D implements Point<Euclidean2D> {
/** Origin (coordinates: 0, 0). */
public static final Cartesian2D ZERO = new Cartesian2D(0, 0);
http://git-wip-us.apache.org/repos/asf/commons-math/blob/09c55eb8/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2D.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2D.java b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2D.java
new file mode 100644
index 0000000..4a2a398
--- /dev/null
+++ b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2D.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.commons.math4.geometry.euclidean.twod;
+
+import org.apache.commons.math4.geometry.Vector;
+
+/** This class represents a 2D vector.
+ * @since 3.0
+ */
+public abstract class Vector2D implements Vector<Euclidean2D> {
+
+ /** Get the abscissa of the vector.
+ * @return abscissa of the vector
+ * @see #Vector2D(double, double)
+ */
+ public abstract double getX();
+
+ /** Get the ordinate of the vector.
+ * @return ordinate of the vector
+ * @see #Vector2D(double, double)
+ */
+ public abstract double getY();
+
+}
http://git-wip-us.apache.org/repos/asf/commons-math/blob/09c55eb8/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormat.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormat.java b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormat.java
index 936450a..cb76596 100644
--- a/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormat.java
+++ b/src/main/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormat.java
@@ -108,26 +108,26 @@ public class Vector2DFormat extends VectorFormat<Euclidean2D> {
@Override
public StringBuffer format(final Vector<Euclidean2D> vector, final StringBuffer toAppendTo,
final FieldPosition pos) {
- final Cartesian2D p2 = (Cartesian2D) vector;
+ final Vector2D p2 = (Vector2D) vector;
return format(toAppendTo, pos, p2.getX(), p2.getY());
}
/** {@inheritDoc} */
@Override
- public Cartesian2D parse(final String source) throws MathParseException {
+ public Vector2D parse(final String source) throws MathParseException {
ParsePosition parsePosition = new ParsePosition(0);
- Cartesian2D result = parse(source, parsePosition);
+ Vector2D result = parse(source, parsePosition);
if (parsePosition.getIndex() == 0) {
throw new MathParseException(source,
parsePosition.getErrorIndex(),
- Cartesian2D.class);
+ Vector2D.class);
}
return result;
}
/** {@inheritDoc} */
@Override
- public Cartesian2D parse(final String source, final ParsePosition pos) {
+ public Vector2D parse(final String source, final ParsePosition pos) {
final double[] coordinates = parseCoordinates(2, source, pos);
if (coordinates == null) {
return null;
http://git-wip-us.apache.org/repos/asf/commons-math/blob/09c55eb8/src/test/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormatAbstractTest.java
----------------------------------------------------------------------
diff --git a/src/test/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormatAbstractTest.java b/src/test/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormatAbstractTest.java
index 11f518a..93d3421 100644
--- a/src/test/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormatAbstractTest.java
+++ b/src/test/java/org/apache/commons/math4/geometry/euclidean/twod/Vector2DFormatAbstractTest.java
@@ -157,8 +157,8 @@ public abstract class Vector2DFormatAbstractTest {
@Test
public void testParseSimpleNoDecimals() throws MathParseException {
String source = "{1; 1}";
- Cartesian2D expected = new Cartesian2D(1, 1);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(1, 1);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -181,8 +181,8 @@ public abstract class Vector2DFormatAbstractTest {
"{1" + getDecimalCharacter() +
"23; 1" + getDecimalCharacter() +
"43}";
- Cartesian2D expected = new Cartesian2D(1.23, 1.43);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(1.23, 1.43);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -192,8 +192,8 @@ public abstract class Vector2DFormatAbstractTest {
"{1" + getDecimalCharacter() +
"2323; 1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(1.2323, 1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(1.2323, 1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -203,8 +203,8 @@ public abstract class Vector2DFormatAbstractTest {
"{-1" + getDecimalCharacter() +
"2323; 1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(-1.2323, 1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(-1.2323, 1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -214,8 +214,8 @@ public abstract class Vector2DFormatAbstractTest {
"{1" + getDecimalCharacter() +
"2323; -1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(1.2323, -1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(1.2323, -1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -225,8 +225,8 @@ public abstract class Vector2DFormatAbstractTest {
"{1" + getDecimalCharacter() +
"2323; 1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(1.2323, 1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(1.2323, 1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -236,8 +236,8 @@ public abstract class Vector2DFormatAbstractTest {
"{-1" + getDecimalCharacter() +
"2323; -1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(-1.2323, -1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(-1.2323, -1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -247,8 +247,8 @@ public abstract class Vector2DFormatAbstractTest {
"{0" + getDecimalCharacter() +
"0; -1" + getDecimalCharacter() +
"4343}";
- Cartesian2D expected = new Cartesian2D(0.0, -1.4343);
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D expected = new Cartesian2D(0.0, -1.4343);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(expected, actual);
}
@@ -258,29 +258,29 @@ public abstract class Vector2DFormatAbstractTest {
"[1" + getDecimalCharacter() +
"2323 : 1" + getDecimalCharacter() +
"4343]";
- Cartesian2D expected = new Cartesian2D(1.2323, 1.4343);
- Cartesian2D actual = vector2DFormatSquare.parse(source);
+ Vector2D expected = new Cartesian2D(1.2323, 1.4343);
+ Vector2D actual = vector2DFormatSquare.parse(source);
Assert.assertEquals(expected, actual);
}
@Test
public void testParseNan() throws MathParseException {
String source = "{(NaN); (NaN)}";
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(Cartesian2D.NaN, actual);
}
@Test
public void testParsePositiveInfinity() throws MathParseException {
String source = "{(Infinity); (Infinity)}";
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(Cartesian2D.POSITIVE_INFINITY, actual);
}
@Test
public void testParseNegativeInfinity() throws MathParseException {
String source = "{(-Infinity); (-Infinity)}";
- Cartesian2D actual = vector2DFormat.parse(source);
+ Vector2D actual = vector2DFormat.parse(source);
Assert.assertEquals(Cartesian2D.NEGATIVE_INFINITY, actual);
}