You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mahout.apache.org by td...@apache.org on 2014/01/24 03:27:57 UTC
svn commit: r1560890 - in /mahout/trunk/math/src:
main/java/org/apache/mahout/math/MatrixVectorView.java
test/java/org/apache/mahout/math/MatrixVectorViewTest.java
Author: tdunning
Date: Fri Jan 24 02:27:57 2014
New Revision: 1560890
URL: http://svn.apache.org/r1560890
Log:
MAHOUT-1409 - bad index checking in viewColumn or viewRow.
Modified:
mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixVectorView.java
mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixVectorViewTest.java
Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixVectorView.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixVectorView.java?rev=1560890&r1=1560889&r2=1560890&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixVectorView.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixVectorView.java Fri Jan 24 02:27:57 2014
@@ -38,10 +38,10 @@ public class MatrixVectorView extends Ab
public MatrixVectorView(Matrix matrix, int row, int column, int rowStride, int columnStride) {
super(viewSize(matrix, row, column, rowStride, columnStride));
- if (row < 0 || row > matrix.rowSize()) {
+ if (row < 0 || row >= matrix.rowSize()) {
throw new IndexException(row, matrix.rowSize());
}
- if (column < 0 || column > matrix.columnSize()) {
+ if (column < 0 || column >= matrix.columnSize()) {
throw new IndexException(column, matrix.columnSize());
}
Modified: mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixVectorViewTest.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixVectorViewTest.java?rev=1560890&r1=1560889&r2=1560890&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixVectorViewTest.java (original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixVectorViewTest.java Fri Jan 24 02:27:57 2014
@@ -17,6 +17,7 @@
package org.apache.mahout.math;
+import org.apache.mahout.math.function.Functions;
import org.junit.Test;
public class MatrixVectorViewTest extends MahoutTestCase {
@@ -34,4 +35,24 @@ public class MatrixVectorViewTest extend
assertEquals(matrix.numRows(), outerProduct.numRows());
assertEquals(matrix.numRows(), outerProduct.numCols());
}
+
+ /**
+ * Test for out of range column or row access.
+ */
+ @Test
+ public void testIndexRange() {
+ Matrix m = new DenseMatrix(20, 30).assign(Functions.random());
+ try {
+ m.viewColumn(30);
+ fail("Should have thrown exception");
+ } catch (IllegalArgumentException e) {
+ assertTrue(e.getMessage().startsWith("Index 30 is outside allowable"));
+ }
+ try {
+ m.viewRow(20);
+ fail("Should have thrown exception");
+ } catch (IllegalArgumentException e) {
+ assertTrue(e.getMessage().startsWith("Index 20 is outside allowable"));
+ }
+ }
}