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"));
+    }
+  }
 }