You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by lu...@apache.org on 2009/12/28 16:23:24 UTC
svn commit: r894186 -
/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java
Author: luc
Date: Mon Dec 28 15:23:23 2009
New Revision: 894186
URL: http://svn.apache.org/viewvc?rev=894186&view=rev
Log:
improved test coverage (now somewhere between 99% and 100%)
Modified:
commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java
Modified: commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java?rev=894186&r1=894185&r2=894186&view=diff
==============================================================================
--- commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java (original)
+++ commons/proper/math/trunk/src/test/java/org/apache/commons/math/linear/ArrayRealVectorTest.java Mon Dec 28 15:23:23 2009
@@ -522,6 +522,18 @@
assertEquals("testData len", 3, v3.getDimension());
assertEquals("testData is 2.0 ", 2.0, v3.getEntry(1));
+ ArrayRealVector v3_bis = new ArrayRealVector(vec1, true);
+ assertEquals("testData len", 3, v3_bis.getDimension());
+ assertEquals("testData is 2.0 ", 2.0, v3_bis.getEntry(1));
+ assertNotSame(v3_bis.getDataRef(), vec1);
+ assertNotSame(v3_bis.getData(), vec1);
+
+ ArrayRealVector v3_ter = new ArrayRealVector(vec1, false);
+ assertEquals("testData len", 3, v3_ter.getDimension());
+ assertEquals("testData is 2.0 ", 2.0, v3_ter.getEntry(1));
+ assertSame(v3_ter.getDataRef(), vec1);
+ assertNotSame(v3_ter.getData(), vec1);
+
ArrayRealVector v4 = new ArrayRealVector(vec4, 3, 2);
assertEquals("testData len", 2, v4.getDimension());
assertEquals("testData is 4.0 ", 4.0, v4.getEntry(0));
@@ -578,7 +590,50 @@
assertEquals("testData len", 10, v9.getDimension());
assertEquals("testData is 1.0 ", 1.0, v9.getEntry(7));
- }
+ ArrayRealVector v10 = new ArrayRealVector(v2, new RealVectorTestImpl(vec3));
+ assertEquals("testData len", 8, v10.getDimension());
+ assertEquals("testData is 1.23 ", 1.23, v10.getEntry(4));
+ assertEquals("testData is 7.0 ", 7.0, v10.getEntry(5));
+
+ ArrayRealVector v11 = new ArrayRealVector(new RealVectorTestImpl(vec3), v2);
+ assertEquals("testData len", 8, v11.getDimension());
+ assertEquals("testData is 9.0 ", 9.0, v11.getEntry(2));
+ assertEquals("testData is 1.23 ", 1.23, v11.getEntry(3));
+
+ ArrayRealVector v12 = new ArrayRealVector(v2, vec3);
+ assertEquals("testData len", 8, v12.getDimension());
+ assertEquals("testData is 1.23 ", 1.23, v12.getEntry(4));
+ assertEquals("testData is 7.0 ", 7.0, v12.getEntry(5));
+
+ ArrayRealVector v13 = new ArrayRealVector(vec3, v2);
+ assertEquals("testData len", 8, v13.getDimension());
+ assertEquals("testData is 9.0 ", 9.0, v13.getEntry(2));
+ assertEquals("testData is 1.23 ", 1.23, v13.getEntry(3));
+
+ ArrayRealVector v14 = new ArrayRealVector(vec3, vec4);
+ assertEquals("testData len", 12, v14.getDimension());
+ assertEquals("testData is 9.0 ", 9.0, v14.getEntry(2));
+ assertEquals("testData is 1.0 ", 1.0, v14.getEntry(3));
+
+ try {
+ new ArrayRealVector((double[]) null, false);
+ fail("expected exception");
+ } catch (NullPointerException npe) {
+ // expected
+ } catch (Exception e) {
+ fail("wrong exception caught");
+ }
+
+ try {
+ new ArrayRealVector(new double[0], false);
+ fail("expected exception");
+ } catch (IllegalArgumentException iae) {
+ // expected
+ } catch (Exception e) {
+ fail("wrong exception caught");
+ }
+
+ }
public void testDataInOut() {
@@ -603,6 +658,10 @@
assertEquals("testData len", 6, v_append_4.getDimension());
assertEquals("testData is 4.0 ", 4.0, v_append_4.getEntry(3));
+ RealVector v_append_5 = v1.append((RealVector) v2);
+ assertEquals("testData len", 6, v_append_5.getDimension());
+ assertEquals("testData is 4.0 ", 4.0, v_append_5.getEntry(3));
+
RealVector v_copy = v1.copy();
assertEquals("testData len", 3, v_copy.getDimension());
assertNotSame("testData not same object ", v1.data, v_copy.getData());
@@ -1042,6 +1101,10 @@
double dist_2 = v1.getDistance(v2_t);
assertEquals("compare values ", v1.subtract(v2).getNorm(),dist_2 );
+ //octave = sqrt(sumsq(v1-v2))
+ double dist_3 = v1.getDistance((RealVector) v2);
+ assertEquals("compare values ", v1.subtract(v2).getNorm(),dist_3 );
+
//octave = ???
double d_getL1Distance = v1. getL1Distance(v2);
assertEquals("compare values ",9d, d_getL1Distance );
@@ -1049,6 +1112,9 @@
double d_getL1Distance_2 = v1. getL1Distance(v2_t);
assertEquals("compare values ",9d, d_getL1Distance_2 );
+ double d_getL1Distance_3 = v1. getL1Distance((RealVector) v2);
+ assertEquals("compare values ",9d, d_getL1Distance_3 );
+
//octave = ???
double d_getLInfDistance = v1. getLInfDistance(v2);
assertEquals("compare values ",3d, d_getLInfDistance );
@@ -1056,6 +1122,9 @@
double d_getLInfDistance_2 = v1. getLInfDistance(v2_t);
assertEquals("compare values ",3d, d_getLInfDistance_2 );
+ double d_getLInfDistance_3 = v1. getLInfDistance((RealVector) v2);
+ assertEquals("compare values ",3d, d_getLInfDistance_3 );
+
//octave = v1 + v2
ArrayRealVector v_add = v1.add(v2);
double[] result_add = {5d, 7d, 9d};
@@ -1084,6 +1153,10 @@
double[] result_ebeMultiply_2 = {4d, 10d, 18d};
assertClose("compare vect" ,v_ebeMultiply_2.getData(),result_ebeMultiply_2,normTolerance);
+ RealVector v_ebeMultiply_3 = v1.ebeMultiply((RealVector) v2);
+ double[] result_ebeMultiply_3 = {4d, 10d, 18d};
+ assertClose("compare vect" ,v_ebeMultiply_3.getData(),result_ebeMultiply_3,normTolerance);
+
// octave v1 ./ v2
ArrayRealVector v_ebeDivide = v1.ebeDivide(v2);
double[] result_ebeDivide = {0.25d, 0.4d, 0.5d};
@@ -1093,6 +1166,10 @@
double[] result_ebeDivide_2 = {0.25d, 0.4d, 0.5d};
assertClose("compare vect" ,v_ebeDivide_2.getData(),result_ebeDivide_2,normTolerance);
+ RealVector v_ebeDivide_3 = v1.ebeDivide((RealVector) v2);
+ double[] result_ebeDivide_3 = {0.25d, 0.4d, 0.5d};
+ assertClose("compare vect" ,v_ebeDivide_3.getData(),result_ebeDivide_3,normTolerance);
+
// octave dot(v1,v2)
double dot = v1.dotProduct(v2);
assertEquals("compare val ",32d, dot);
@@ -1107,6 +1184,9 @@
RealMatrix m_outerProduct_2 = v1.outerProduct(v2_t);
assertEquals("compare val ",4d, m_outerProduct_2.getEntry(0,0));
+ RealMatrix m_outerProduct_3 = v1.outerProduct((RealVector) v2);
+ assertEquals("compare val ",4d, m_outerProduct_3.getEntry(0,0));
+
RealVector v_unitVector = v1.unitVector();
RealVector v_unitVector_2 = v1.mapDivide(v1.getNorm());
assertClose("compare vect" ,v_unitVector.getData(),v_unitVector_2.getData(),normTolerance);
@@ -1140,6 +1220,10 @@
double[] result_projection_2 = {1.662337662337662, 2.0779220779220777, 2.493506493506493};
assertClose("compare vect", v_projection_2.getData(), result_projection_2, normTolerance);
+ RealVector v_projection_3 = v1.projection(v2.getData());
+ double[] result_projection_3 = {1.662337662337662, 2.0779220779220777, 2.493506493506493};
+ assertClose("compare vect", v_projection_3.getData(), result_projection_3, normTolerance);
+
}
public void testMisc() {
@@ -1196,6 +1280,8 @@
assertFalse(v.isInfinite());
v.setEntry(1, 1);
assertTrue(v.isInfinite());
+ v.setEntry(0, 1);
+ assertFalse(v.isInfinite());
v.setEntry(0, 0);
assertEquals(v, new ArrayRealVector(new double[] { 0, 1, 2 }));
@@ -1208,6 +1294,13 @@
assertTrue(new ArrayRealVector(new double[] { Double.NaN, 1, 2 }).hashCode() !=
new ArrayRealVector(new double[] { 0, 1, 2 }).hashCode());
+ assertTrue(v.equals(v));
+ assertTrue(v.equals(v.copy()));
+ assertFalse(v.equals(null));
+ assertFalse(v.equals(v.getDataRef()));
+ assertFalse(v.equals(v.getSubVector(0, v.getDimension() - 1)));
+ assertTrue(v.equals(v.getSubVector(0, v.getDimension())));
+
}
public void testSerial() {