Repository: systemml
Updated Branches:
  refs/heads/master bd34292d4 -> 07650acf2


[SYSTEMML-2479] Fix MNC sparsity estimator reshape operations

This patch fixes various smaller correctness issues of MNC sketch
propagation for reshape operations, adds a related test, and finally
removes the invalid skipping of estimation tests.


Project: http://git-wip-us.apache.org/repos/asf/systemml/repo
Commit: http://git-wip-us.apache.org/repos/asf/systemml/commit/07650acf
Tree: http://git-wip-us.apache.org/repos/asf/systemml/tree/07650acf
Diff: http://git-wip-us.apache.org/repos/asf/systemml/diff/07650acf

Branch: refs/heads/master
Commit: 07650acf25a7ffb3d9663c622be0ae82778c0db0
Parents: bd34292
Author: Matthias Boehm <[email protected]>
Authored: Sat Oct 20 20:25:29 2018 +0200
Committer: Matthias Boehm <[email protected]>
Committed: Sat Oct 20 20:27:16 2018 +0200

----------------------------------------------------------------------
 .../sysml/hops/estim/EstimatorBitsetMM.java     |  1 -
 .../hops/estim/EstimatorMatrixHistogram.java    | 52 ++++++------
 .../org/apache/sysml/hops/estim/MMNode.java     | 28 ++++++-
 .../functions/estim/MNCReshapeTest.java         | 83 ++++++++++++++++++++
 .../functions/estim/OpBindChainTest.java        |  3 -
 .../integration/functions/estim/OpBindTest.java |  3 -
 .../functions/estim/OpElemWChainTest.java       |  3 -
 .../functions/estim/OpElemWTest.java            |  3 -
 .../functions/estim/OpSingleTest.java           |  3 -
 .../functions/estim/OuterProductTest.java       |  3 -
 .../functions/estim/SelfProductTest.java        |  3 -
 .../estim/SquaredProductChainTest.java          |  3 -
 .../functions/estim/SquaredProductTest.java     |  3 -
 .../functions/estim/ZPackageSuite.java          |  1 +
 14 files changed, 140 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java 
b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
index 8802e9c..99354fd 100644
--- a/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
+++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorBitsetMM.java
@@ -406,7 +406,6 @@ public class EstimatorBitsetMM extends SparsityEstimator
                }
        }
        
-       @SuppressWarnings("unused")
        public static class BitsetMatrix2 extends BitsetMatrix {
                private BitSet[] _data;
 

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java
----------------------------------------------------------------------
diff --git 
a/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java 
b/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java
index 52cca3d..83d918a 100644
--- a/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java
+++ b/src/main/java/org/apache/sysml/hops/estim/EstimatorMatrixHistogram.java
@@ -24,7 +24,7 @@ import java.util.Random;
 import java.util.stream.IntStream;
 
 import org.apache.commons.lang.ArrayUtils;
-import org.apache.directory.api.util.exception.NotImplementedException;
+import org.apache.commons.lang.NotImplementedException;
 import org.apache.sysml.hops.OptimizerUtils;
 import org.apache.sysml.runtime.matrix.MatrixCharacteristics;
 import org.apache.sysml.runtime.matrix.data.DenseBlock;
@@ -58,22 +58,22 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                //recursive histogram computation of non-leaf nodes
                if( !root.getLeft().isLeaf() )
                        estim(root.getLeft()); //obtain synopsis
-               if( !root.getRight().isLeaf() )
+               if( root.getRight()!=null && !root.getRight().isLeaf() )
                        estim(root.getRight()); //obtain synopsis
                MatrixHistogram h1 = !root.getLeft().isLeaf() ?
                        (MatrixHistogram)root.getLeft().getSynopsis() :
                        new MatrixHistogram(root.getLeft().getData(), 
_useExcepts);
-               MatrixHistogram h2 = !root.getRight().isLeaf() ?
+               MatrixHistogram h2 = root.getRight() != null ? 
!root.getRight().isLeaf() ?
                        (MatrixHistogram)root.getRight().getSynopsis() :
-                       new MatrixHistogram(root.getRight().getData(), 
_useExcepts);
+                       new MatrixHistogram(root.getRight().getData(), 
_useExcepts) : null;
                
                //estimate output sparsity based on input histograms
-               double ret = estimIntern(h1, h2, root.getOp());
-               MatrixHistogram outMap = 
MatrixHistogram.deriveOutputHistogram(h1, h2, ret, root.getOp());
+               double ret = estimIntern(h1, h2, root.getOp(), root.getMisc());
+               MatrixHistogram outMap = MatrixHistogram
+                       .deriveOutputHistogram(h1, h2, ret, root.getOp(), 
root.getMisc());
                root.setSynopsis(outMap);
                return root.setMatrixCharacteristics(new MatrixCharacteristics(
                        outMap.getRows(), outMap.getCols(), 
outMap.getNonZeros()));
-
        }
        
        @Override 
@@ -89,7 +89,7 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                MatrixHistogram h1 = new MatrixHistogram(m1, _useExcepts);
                MatrixHistogram h2 = (m1 == m2) ? //self product
                        h1 : new MatrixHistogram(m2, _useExcepts);
-               return estimIntern(h1, h2, op);
+               return estimIntern(h1, h2, op, null);
        }
        
        @Override
@@ -97,10 +97,10 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                if( isExactMetadataOp(op) )
                        return 
estimExactMetaData(m1.getMatrixCharacteristics(), null, op).getSparsity();
                MatrixHistogram h1 = new MatrixHistogram(m1, _useExcepts);
-               return estimIntern(h1, null, op);
+               return estimIntern(h1, null, op, null);
        }
        
-       private double estimIntern(MatrixHistogram h1, MatrixHistogram h2, 
OpCode op) {
+       private double estimIntern(MatrixHistogram h1, MatrixHistogram h2, 
OpCode op, long[] misc) {
                double msize = (double)h1.getRows()*h1.getCols();
                switch (op) {
                        case MM:
@@ -312,13 +312,21 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                        return cNnz.length;
                }
                
+               public int[] getRowCounts() {
+                       return rNnz;
+               }
+               
+               public int[] getColCounts() {
+                       return cNnz;
+               }
+               
                public long getNonZeros() {
                        return getRows() < getCols() ?
                                IntStream.range(0, getRows()).mapToLong(i-> 
rNnz[i]).sum() :
                                IntStream.range(0, getCols()).mapToLong(i-> 
cNnz[i]).sum();
                }
                
-               public static MatrixHistogram 
deriveOutputHistogram(MatrixHistogram h1, MatrixHistogram h2, double spOut, 
OpCode op) {
+               public static MatrixHistogram 
deriveOutputHistogram(MatrixHistogram h1, MatrixHistogram h2, double spOut, 
OpCode op, long[] misc) {
                        switch(op) {
                                case MM:      return deriveMMHistogram(h1, h2, 
spOut);
                                case MULT:    return deriveMultHistogram(h1, 
h2);
@@ -329,8 +337,7 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                                case EQZERO:  return deriveEq0Histogram(h1);
                                case DIAG:    return deriveDiagHistogram(h1);
                                case TRANS:   return deriveTransHistogram(h1);
-                               case RESHAPE: return deriveReshapeHistogram(h1, 
h1.getRows(), h1.getCols());
-                               //FIXME: reshape requires additional meta data 
from MM node
+                               case RESHAPE: return deriveReshapeHistogram(h1, 
(int)misc[0], (int)misc[1]);
                                default:
                                        throw new NotImplementedException();
                        }
@@ -493,11 +500,10 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                                        rMaxNnz = Math.max(rMaxNnz, 
h1.rNnz[i]/scale);
                                }
                                //aggregate column counts
-                               for(int j=0; j<n; j+=scale)
-                                       for(int j2=0; j2<scale; j2++)
-                                               cNnz[j2] += h1.cNnz[j];
-                               for(int j2=0; j2<scale; j2++)
-                                       cMaxNnz = Math.max(cMaxNnz, cNnz[j2]);
+                               for(int j=0; j<n; j++)
+                                       cNnz[j%cols] += h1.cNnz[j];
+                               for(int j=0; j<cols; j++)
+                                       cMaxNnz = Math.max(cMaxNnz, cNnz[j]);
                        }
                        else if ( h1.getRows() % rows == 0 ) { //N->1 rows
                                int scale = h1.getRows()/rows;
@@ -508,11 +514,11 @@ public class EstimatorMatrixHistogram extends 
SparsityEstimator
                                        cMaxNnz = Math.max(cMaxNnz, 
h1.cNnz[i]/scale);
                                }
                                //aggregate row counts
-                               for(int j=0; j<m; j+=scale)
-                                       for(int j2=0; j2<scale; j2++)
-                                               rNnz[j2] += h1.rNnz[j];
-                               for(int j2=0; j2<scale; j2++)
-                                       rMaxNnz = Math.max(rMaxNnz, rNnz[j2]);
+                               for(int i=0, pos=0; i<m; i+=scale, pos++)
+                                       for(int i2=0; i2<scale; i2++)
+                                               rNnz[pos] += h1.rNnz[i+i2];
+                               for(int i=0; i<rows; i++)
+                                       rMaxNnz = Math.max(rMaxNnz, rNnz[i]);
                        }
                        return new MatrixHistogram(rNnz, null, cNnz, null, 
rMaxNnz, cMaxNnz);
                }

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/main/java/org/apache/sysml/hops/estim/MMNode.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/hops/estim/MMNode.java 
b/src/main/java/org/apache/sysml/hops/estim/MMNode.java
index 542449a..d508f82 100644
--- a/src/main/java/org/apache/sysml/hops/estim/MMNode.java
+++ b/src/main/java/org/apache/sysml/hops/estim/MMNode.java
@@ -20,6 +20,7 @@
 package org.apache.sysml.hops.estim;
 
 import org.apache.sysml.hops.estim.SparsityEstimator.OpCode;
+import org.apache.sysml.runtime.DMLRuntimeException;
 import org.apache.sysml.runtime.matrix.MatrixCharacteristics;
 import org.apache.sysml.runtime.matrix.data.MatrixBlock;
 
@@ -35,6 +36,7 @@ public class MMNode
        private final MatrixCharacteristics _mc;
        private Object _synops = null;
        private final OpCode _op;
+       private final long[] _misc;
        
        public MMNode(MatrixBlock in) {
                _m1 = null;
@@ -42,14 +44,28 @@ public class MMNode
                _data = in;
                _mc = in.getMatrixCharacteristics();
                _op = null;
+               _misc = null;
        }
        
-       public MMNode(MMNode left, MMNode right, OpCode op) {
+       public MMNode(MMNode left, MMNode right, OpCode op, long[] misc) {
                _m1 = left;
                _m2 = right;
                _data = null;
                _mc = new MatrixCharacteristics(-1, -1, -1, -1);
                _op = op;
+               _misc = misc;
+       }
+       
+       public MMNode(MMNode left, MMNode right, OpCode op) {
+               this(left, right, op, null);
+       }
+       
+       public MMNode(MMNode left, OpCode op) {
+               this(left, null, op);
+       }
+       
+       public MMNode(MMNode left, OpCode op, long[] misc) {
+               this(left, null, op, misc);
        }
        
        public int getRows() {
@@ -60,6 +76,16 @@ public class MMNode
                return (int)_mc.getCols();
        }
        
+       public long[] getMisc() {
+               return _misc;
+       }
+       
+       public long getMisc(int pos) {
+               if( _misc == null )
+                       throw new DMLRuntimeException("Extra meta data not 
available.");
+               return _misc[pos];
+       }
+       
        public MatrixCharacteristics getMatrixCharacteristics() {
                return _mc;
        }

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java
new file mode 100644
index 0000000..7e9b1a5
--- /dev/null
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/MNCReshapeTest.java
@@ -0,0 +1,83 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ * 
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.sysml.test.integration.functions.estim;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.apache.sysml.hops.estim.EstimatorMatrixHistogram.MatrixHistogram;
+import org.apache.sysml.hops.estim.SparsityEstimator.OpCode;
+import org.apache.sysml.runtime.matrix.data.LibMatrixReorg;
+import org.apache.sysml.runtime.matrix.data.MatrixBlock;
+import org.apache.sysml.test.integration.AutomatedTestBase;
+
+public class MNCReshapeTest extends AutomatedTestBase 
+{
+       @Override
+       public void setUp() {
+               //do  nothing
+       }
+       
+       @Test
+       public void testMNCReshapeN1() {
+               runMNCReshapeTest(1000, 100, 200, 500);
+       }
+       
+       @Test
+       public void testMNCReshape1N() {
+               runMNCReshapeTest(100, 1000, 500, 200);
+       }
+
+       private void runMNCReshapeTest(int m, int n, int m2, int n2) {
+               MatrixBlock in = createStructuredInput(m, n, m2, n2);
+               MatrixBlock out = LibMatrixReorg.reshape(in, new 
MatrixBlock(m2, n2, false), m2, n2, true);
+               
+               MatrixHistogram hIn = new MatrixHistogram(in, false);
+               MatrixHistogram hOut = MatrixHistogram.deriveOutputHistogram(
+                       hIn, null, in.getSparsity(), OpCode.RESHAPE, new long[] 
{m2,n2});
+               
+               MatrixHistogram hExpect = new MatrixHistogram(out, false);
+               
+               //expected exact sparsity, even with sketch propagation
+               if( m % m2 == 0 )
+                       Assert.assertArrayEquals(hExpect.getRowCounts(), 
hOut.getRowCounts());
+               if( n % n2 == 0 )
+                       Assert.assertArrayEquals(hExpect.getColCounts(), 
hOut.getColCounts());
+       }
+       
+       private MatrixBlock createStructuredInput(int m, int n, int m2, int n2) 
{
+               if( n % n2 == 0  ) { //1:N
+                       MatrixBlock tmp = createStructuredInput(n, m, n2, m2);
+                       return LibMatrixReorg.transpose(tmp, new MatrixBlock(m, 
n, false));
+               }
+               else if( m % m2 == 0 ) { //N:1
+                       MatrixBlock tmp = new MatrixBlock(m, n, false);
+                       int L = m/m2;
+                       for(int i=0; i<m; i+=L) {
+                               for( int k=0; k<L; k++ )
+                                       for(int j=0; j<n/(k+1); j++ ) //j=i/100
+                                               tmp.quickSetValue(i+k, j, 1);
+                       }
+                       return tmp;
+               }
+               else {
+                       throw new RuntimeException("Unsupported general case.");
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java
index 38d7164..2d87e21 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindChainTest.java
@@ -124,9 +124,6 @@ public class OpBindChainTest extends AutomatedTestBase
        
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, int n, double[] sp, OpCode op) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1;
                MatrixBlock m2;
                MatrixBlock m3 = new MatrixBlock();

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java
index 03a823d..c04458b 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpBindTest.java
@@ -134,9 +134,6 @@ public class OpBindTest extends AutomatedTestBase
        
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, int n, double[] sp, OpCode op) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1;
                MatrixBlock m2;
                MatrixBlock m3 = new MatrixBlock();

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java
index b784915..6d69b69 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWChainTest.java
@@ -118,9 +118,6 @@ public class OpElemWChainTest extends AutomatedTestBase
        
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int n, double[] sp, OpCode op) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp[0], 1, 1, 
"uniform", 3);
                MatrixBlock m2 = MatrixBlock.randOperations(m, n, sp[1], 1, 1, 
"uniform", 5);
                MatrixBlock m3 = MatrixBlock.randOperations(n, m, sp[1], 1, 1, 
"uniform", 7);

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java
index 9df813b..69a7325 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpElemWTest.java
@@ -129,9 +129,6 @@ public class OpElemWTest extends AutomatedTestBase
        }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int n, double[] sp, OpCode op) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp[0], 1, 1, 
"uniform", 3);
                MatrixBlock m2 = MatrixBlock.randOperations(m, n, sp[1], 1, 1, 
"uniform", 7);
                MatrixBlock m3 = new MatrixBlock();

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java
index fab3e19..fa567ed 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OpSingleTest.java
@@ -232,9 +232,6 @@ public class OpSingleTest extends AutomatedTestBase
 //     }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, double sp, OpCode op) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp, 1, 1, 
"uniform", 3);
                MatrixBlock m2 = new MatrixBlock();
                double est = 0;

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java
index f23ee2e..70ea63b 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/OuterProductTest.java
@@ -140,9 +140,6 @@ public class OuterProductTest extends AutomatedTestBase
        }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, int n, double[] sp) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, 
"uniform", 3);
                MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, 
"uniform", 3);
                MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m2, 

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java
index d46f55b..702514e 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SelfProductTest.java
@@ -141,9 +141,6 @@ public class SelfProductTest extends AutomatedTestBase
        }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int n, 
double sp) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, n, sp, 1, 1, 
"uniform", 3);
                MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m1, 
                        new MatrixBlock(), 
InstructionUtils.getMatMultOperator(1));

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java
index aae753e..7d97150 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductChainTest.java
@@ -138,9 +138,6 @@ public class SquaredProductChainTest extends 
AutomatedTestBase
        }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, int n, int n2, double[] sp) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, 
"uniform", 1);
                MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, 
"uniform", 2);
                MatrixBlock m3 = MatrixBlock.randOperations(n, n2, sp[2], 1, 1, 
"uniform", 3);

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java
index 7269612..51eb5d6 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/estim/SquaredProductTest.java
@@ -156,9 +156,6 @@ public class SquaredProductTest extends AutomatedTestBase
        }
        
        private void runSparsityEstimateTest(SparsityEstimator estim, int m, 
int k, int n, double[] sp) {
-               if(shouldSkipTest())
-                       return;
-               
                MatrixBlock m1 = MatrixBlock.randOperations(m, k, sp[0], 1, 1, 
"uniform", 3);
                MatrixBlock m2 = MatrixBlock.randOperations(k, n, sp[1], 1, 1, 
"uniform", 7);
                MatrixBlock m3 = m1.aggregateBinaryOperations(m1, m2, 

http://git-wip-us.apache.org/repos/asf/systemml/blob/07650acf/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java
----------------------------------------------------------------------
diff --git 
a/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java
 
b/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java
index 3cf152b..4a77ab5 100644
--- 
a/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java
+++ 
b/src/test_suites/java/org/apache/sysml/test/integration/functions/estim/ZPackageSuite.java
@@ -26,6 +26,7 @@ import org.junit.runners.Suite;
  *  won't run two of them at once. */
 @RunWith(Suite.class)
 @Suite.SuiteClasses({
+       MNCReshapeTest.class,
        OpBindChainTest.class,
        OpBindTest.class,
        OpElemWChainTest.class,

Reply via email to