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 2021/08/07 13:35:58 UTC
[commons-math] 01/11: MATH-1621: Override "equals" and "toString".
This is an automated email from the ASF dual-hosted git repository.
erans pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-math.git
commit b5d21665ff0c3a420564537cd1da88c8f77ab5a5
Author: Gilles Sadowski <gi...@gmail.com>
AuthorDate: Wed Aug 4 06:47:27 2021 +0200
MATH-1621: Override "equals" and "toString".
---
.../commons/math4/legacy/optim/PointValuePair.java | 20 ++++++++++++++++++++
.../math4/legacy/optim/PointValuePairTest.java | 19 +++++++++++++++++++
2 files changed, 39 insertions(+)
diff --git a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/PointValuePair.java b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/PointValuePair.java
index 6019e46..35f883c 100644
--- a/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/PointValuePair.java
+++ b/commons-math-legacy/src/main/java/org/apache/commons/math4/legacy/optim/PointValuePair.java
@@ -16,6 +16,7 @@
*/
package org.apache.commons.math4.legacy.optim;
+import java.util.Arrays;
import java.io.Serializable;
import org.apache.commons.math4.legacy.core.Pair;
@@ -80,6 +81,25 @@ public class PointValuePair extends Pair<double[], Double> implements Serializab
return getKey();
}
+ @Override
+ public boolean equals(Object o) {
+ if (o instanceof PointValuePair) {
+ final PointValuePair other = (PointValuePair) o;
+
+ return getValue().equals(other.getValue()) ?
+ Arrays.equals(getPointRef(),
+ other.getPointRef()) :
+ false;
+ }
+
+ return false;
+ }
+
+ @Override
+ public String toString() {
+ return "[" + Arrays.toString(getPointRef()) + ", " + getValue() + "]";
+ }
+
/**
* Replace the instance with a data transfer object for serialization.
* @return data transfer object that will be serialized
diff --git a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/PointValuePairTest.java b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/PointValuePairTest.java
index 8d0db0f..23a68db 100644
--- a/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/PointValuePairTest.java
+++ b/commons-math-legacy/src/test/java/org/apache/commons/math4/legacy/optim/PointValuePairTest.java
@@ -32,4 +32,23 @@ public class PointValuePairTest {
Assert.assertEquals(pv1.getValue(), pv2.getValue(), 1.0e-15);
}
+ @Test
+ public void testEquals() {
+ final double[] p1 = new double[] { 1 };
+ final PointValuePair pv1 = new PointValuePair(p1, 2);
+ Assert.assertFalse(pv1.equals(null));
+
+ final PointValuePair pv2 = new PointValuePair(pv1.getPointRef(), 3);
+ // Same array reference, different objective values.
+ Assert.assertFalse(pv1.equals(pv2));
+
+ final PointValuePair pv3 = new PointValuePair(pv2.getPoint(), pv2.getValue());
+ // Different array reference, same array values, same objective values.
+ Assert.assertTrue(pv2.equals(pv3));
+
+ final double[] p2 = new double[] { p1[0] + 1 };
+ final PointValuePair pv4 = new PointValuePair(p2, pv2.getValue());
+ // Different array values, same objective values.
+ Assert.assertFalse(pv2.equals(pv4));
+ }
}