Author: celestin
Date: Mon Jun 25 05:42:09 2012
New Revision: 1353387

URL: http://svn.apache.org/viewvc?rev=1353387&view=rev
Log:
MATH-795: factored out unit tests of getDistance and getNorm.

Modified:
    
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/linear/RealVectorAbstractTest.java

Modified: 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/linear/RealVectorAbstractTest.java
URL: 
http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math3/linear/RealVectorAbstractTest.java?rev=1353387&r1=1353386&r2=1353387&view=diff
==============================================================================
--- 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/linear/RealVectorAbstractTest.java
 (original)
+++ 
commons/proper/math/trunk/src/test/java/org/apache/commons/math3/linear/RealVectorAbstractTest.java
 Mon Jun 25 05:42:09 2012
@@ -612,6 +612,51 @@ public abstract class RealVectorAbstract
         doTestEbeBinaryOperationDimensionMismatch(BinaryOperation.DIV);
     }
 
+    private void doTestGetDistance(final boolean mixed) {
+        final double x = getPreferredEntryValue();
+        final double[] data1 = new double[] { x, x, 1d, x, 2d, x, x, 3d, x };
+        final double[] data2 = new double[] { 4d, x, x, 5d, 6d, 7d, x, x, 8d };
+        final RealVector v1 = create(data1);
+        final RealVector v2;
+        if (mixed) {
+            v2 = createAlien(data2);
+        } else {
+            v2 = create(data2);
+        }
+        final double actual = v1.getDistance(v2);
+        double expected = 0d;
+        for (int i = 0; i < data1.length; i++) {
+            final double delta = data2[i] - data1[i];
+            expected += delta * delta;
+        }
+        expected = FastMath.sqrt(expected);
+        Assert.assertEquals("", expected, actual, 0d);
+    }
+
+    @Test
+    public void testGetDistanceSameType() {
+        doTestGetDistance(false);
+    }
+
+    @Test
+    public void testGetDistanceMixedTypes() {
+        doTestGetDistance(true);
+    }
+
+    @Test
+    public void testGetNorm() {
+        final double x = getPreferredEntryValue();
+        final double[] data = new double[] { x, x, 1d, x, 2d, x, x, 3d, x };
+        final RealVector v = create(data);
+        final double actual = v.getNorm();
+        double expected = 0d;
+        for (int i = 0; i < data.length; i++) {
+            expected += data[i] * data[i];
+        }
+        expected = FastMath.sqrt(expected);
+        Assert.assertEquals("", expected, actual, 0d);
+    }
+
     @Test
     public void testDataInOut() {
         final RealVector v1 = create(vec1);
@@ -1022,16 +1067,6 @@ public abstract class RealVectorAbstract
         Assert.assertEquals("compare values  ", 6.0, d_getLInfNorm,
                             normTolerance);
 
-        // octave = sqrt(sumsq(v1-v2))
-        double dist = v1.getDistance(v2);
-        Assert.assertEquals("compare values  ", v1.subtract(v2).getNorm(),
-                            dist, normTolerance);
-
-        // octave = sqrt(sumsq(v1-v2))
-        double dist_2 = v1.getDistance(v2_t);
-        Assert.assertEquals("compare values  ", v1.subtract(v2).getNorm(),
-                            dist_2, normTolerance);
-
         // octave = ???
         double d_getL1Distance = v1.getL1Distance(v2);
         Assert.assertEquals("compare values  ", 9d, d_getL1Distance,


Reply via email to