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 2012/07/14 22:09:35 UTC
svn commit: r1361581 - in /mahout/trunk/math/src:
main/java/org/apache/mahout/math/MatrixView.java
test/java/org/apache/mahout/math/MatrixTest.java
Author: tdunning
Date: Sat Jul 14 20:09:35 2012
New Revision: 1361581
URL: http://svn.apache.org/viewvc?rev=1361581&view=rev
Log:
MAHOUT-1046 - views of MatrixView broken.
Modified:
mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixView.java
mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixTest.java
Modified: mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixView.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixView.java?rev=1361581&r1=1361580&r2=1361581&view=diff
==============================================================================
--- mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixView.java (original)
+++ mahout/trunk/math/src/main/java/org/apache/mahout/math/MatrixView.java Sat Jul 14 20:09:35 2012
@@ -93,19 +93,19 @@ public class MatrixView extends Abstract
@Override
public Matrix viewPart(int[] offset, int[] size) {
- if (offset[ROW] < ROW) {
- throw new IndexException(offset[ROW], ROW);
+ if (offset[ROW] < 0) {
+ throw new IndexException(offset[ROW], 0);
}
if (offset[ROW] + size[ROW] > rowSize()) {
throw new IndexException(offset[ROW] + size[ROW], rowSize());
}
- if (offset[COL] < ROW) {
- throw new IndexException(offset[COL], ROW);
+ if (offset[COL] < 0) {
+ throw new IndexException(offset[COL], 0);
}
if (offset[COL] + size[COL] > columnSize()) {
throw new IndexException(offset[COL] + size[COL], columnSize());
}
- int[] origin = offset.clone();
+ int[] origin = this.offset.clone();
origin[ROW] += offset[ROW];
origin[COL] += offset[COL];
return new MatrixView(matrix, origin, size);
Modified: mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixTest.java
URL: http://svn.apache.org/viewvc/mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixTest.java?rev=1361581&r1=1361580&r2=1361581&view=diff
==============================================================================
--- mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixTest.java (original)
+++ mahout/trunk/math/src/test/java/org/apache/mahout/math/MatrixTest.java Sat Jul 14 20:09:35 2012
@@ -184,6 +184,15 @@ public abstract class MatrixTest extends
test.assign(new double[test.rowSize() + 1][test.columnSize()]);
}
+ /** Tests MAHOUT-1046 */
+ @Test
+ public void testMatrixViewBug() {
+ Matrix m = test.viewPart(0, 3, 0, 2);
+ // old bug would blow cookies with an index exception here.
+ m = m.viewPart(2, 1, 0, 1);
+ assertEquals(5.5, m.zSum(), 0);
+ }
+
@Test
public void testAssignMatrixBinaryFunction() {
test.assign(test, Functions.PLUS);