http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixVectorMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixVectorMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixVectorMultTest.java
index 29b467d..5a19f6e 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixVectorMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicMatrixVectorMultTest.java
@@ -49,9 +49,10 @@ public class BasicMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -75,13 +76,23 @@ public class BasicMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -110,13 +121,13 @@ public class BasicMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -149,8 +160,10 @@ public class BasicMatrixVectorMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        MatrixBlock vector = DataConverter.convertToMatrixBlock(
                                        TestUtils.generateTestMatrix(cols, 1, 
1, 1, 1.0, 3));
@@ -176,5 +189,8 @@ public class BasicMatrixVectorMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsSparseUnsafeTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsSparseUnsafeTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsSparseUnsafeTest.java
index 55497a6..218739b 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsSparseUnsafeTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsSparseUnsafeTest.java
@@ -47,9 +47,10 @@ public class BasicScalarOperationsSparseUnsafeTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -73,13 +74,23 @@ public class BasicScalarOperationsSparseUnsafeTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -108,13 +119,13 @@ public class BasicScalarOperationsSparseUnsafeTest 
extends AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -147,8 +158,10 @@ public class BasicScalarOperationsSparseUnsafeTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -173,5 +186,8 @@ public class BasicScalarOperationsSparseUnsafeTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsTest.java
index ec708a7..ed6f25c 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicScalarOperationsTest.java
@@ -47,9 +47,10 @@ public class BasicScalarOperationsTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -73,13 +74,23 @@ public class BasicScalarOperationsTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -108,13 +119,13 @@ public class BasicScalarOperationsTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runScalarOperationsTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runScalarOperationsTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -147,8 +158,10 @@ public class BasicScalarOperationsTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -173,5 +186,8 @@ public class BasicScalarOperationsTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicTransposeSelfLeftMatrixMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicTransposeSelfLeftMatrixMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicTransposeSelfLeftMatrixMultTest.java
index dfbe453..eb53024 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicTransposeSelfLeftMatrixMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicTransposeSelfLeftMatrixMultTest.java
@@ -45,9 +45,10 @@ public class BasicTransposeSelfLeftMatrixMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -71,13 +72,23 @@ public class BasicTransposeSelfLeftMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runTransposeSelfMatrixMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runTransposeSelfMatrixMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -106,13 +117,13 @@ public class BasicTransposeSelfLeftMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runTransposeSelfMatrixMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runTransposeSelfMatrixMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runTransposeSelfMatrixMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -145,8 +156,10 @@ public class BasicTransposeSelfLeftMatrixMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -168,5 +181,8 @@ public class BasicTransposeSelfLeftMatrixMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
index aca54aa..7f87219 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicUnaryAggregateTest.java
@@ -46,9 +46,10 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        public enum AggType {
@@ -87,13 +88,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMS, true);
+       public void testRowSumsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, true);
        }
        
        @Test
-       public void testRowSumsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMS, true);
+       public void testRowSumsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, true);
+       }
+       
+       @Test
+       public void testRowSumsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMS, true);
+       }
+       
+       @Test
+       public void testRowSumsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMS, true);
        }
        
        @Test
@@ -122,13 +133,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMS, false);
+       public void testRowSumsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, false);
        }
        
        @Test
-       public void testRowSumsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMS, false);
+       public void testRowSumsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, false);
        }
        
        @Test
@@ -157,13 +168,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMS, true);
+       public void testColSumsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, true);
        }
        
        @Test
-       public void testColSumsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMS, true);
+       public void testColSumsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, true);
+       }
+       
+       @Test
+       public void testColSumsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMS, true);
+       }
+       
+       @Test
+       public void testColSumsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMS, true);
        }
        
        @Test
@@ -192,13 +213,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMS, false);
+       public void testColSumsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, false);
        }
        
        @Test
-       public void testColSumsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMS, false);
+       public void testColSumsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, false);
        }
        
        @Test
@@ -227,13 +248,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUM, true);
+       public void testSumDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, true);
+       }
+       
+       @Test
+       public void testSumSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, true);
        }
        
        @Test
-       public void testSumSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUM, true);
+       public void testSumDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.SUM, true);
+       }
+       
+       @Test
+       public void testSumSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.SUM, true);
        }
        
        @Test
@@ -262,13 +293,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUM, false);
+       public void testSumDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, false);
        }
        
        @Test
-       public void testSumSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUM, false);
+       public void testSumSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, false);
        }
        
        @Test
@@ -297,13 +328,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMSSQ, true);
+       public void testRowSumsSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, true);
        }
        
        @Test
-       public void testRowSumsSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMSSQ, true);
+       public void testRowSumsSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, true);
+       }
+       
+       @Test
+       public void testRowSumsSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMSSQ, true);
+       }
+       
+       @Test
+       public void testRowSumsSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMSSQ, true);
        }
        
        @Test
@@ -332,13 +373,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMSSQ, false);
+       public void testRowSumsSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, false);
        }
        
        @Test
-       public void testRowSumsSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMSSQ, false);
+       public void testRowSumsSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, false);
        }
        
        @Test
@@ -367,13 +408,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMSSQ, true);
+       public void testColSumsSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, true);
+       }
+       
+       @Test
+       public void testColSumsSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, true);
+       }
+       
+       @Test
+       public void testColSumsSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMSSQ, true);
        }
        
        @Test
-       public void testColSumsSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMSSQ, true);
+       public void testColSumsSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMSSQ, true);
        }
        
        @Test
@@ -402,13 +453,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMSSQ, false);
+       public void testColSumsSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, false);
        }
        
        @Test
-       public void testColSumsSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMSSQ, false);
+       public void testColSumsSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, false);
        }
        
        @Test
@@ -437,13 +488,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUMSQ, true);
+       public void testSumSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, true);
+       }
+       
+       @Test
+       public void testSumSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, true);
        }
        
        @Test
-       public void testSumSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUMSQ, true);
+       public void testSumSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.SUMSQ, true);
+       }
+       
+       @Test
+       public void testSumSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.SUMSQ, true);
        }
        
        @Test
@@ -472,13 +533,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUMSQ, false);
+       public void testSumSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, false);
        }
        
        @Test
-       public void testSumSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUMSQ, false);
+       public void testSumSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, false);
        }
        
        @Test
@@ -507,13 +568,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMaxsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMAXS, true);
+       public void testRowMaxsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, true);
+       }
+       
+       @Test
+       public void testRowMaxsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, true);
+       }
+       
+       @Test
+       public void testRowMaxsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMAXS, true);
        }
        
        @Test
-       public void testRowMaxsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMAXS, true);
+       public void testRowMaxsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMAXS, true);
        }
        
        @Test
@@ -542,13 +613,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMaxsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMAXS, false);
+       public void testRowMaxsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, false);
        }
        
        @Test
-       public void testRowMaxsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMAXS, false);
+       public void testRowMaxsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, false);
        }
        
        @Test
@@ -577,13 +648,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMaxsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMAXS, true);
+       public void testColMaxsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, true);
        }
        
        @Test
-       public void testColMaxsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMAXS, true);
+       public void testColMaxsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, true);
+       }
+       
+       @Test
+       public void testColMaxsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMAXS, true);
+       }
+       
+       @Test
+       public void testColMaxsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMAXS, true);
        }
        
        @Test
@@ -612,13 +693,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMaxsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMAXS, false);
+       public void testColMaxsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, false);
        }
        
        @Test
-       public void testColMaxsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMAXS, false);
+       public void testColMaxsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, false);
        }
        
        @Test
@@ -647,13 +728,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMaxDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MAX, true);
+       public void testMaxDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, true);
        }
        
        @Test
-       public void testMaxSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MAX, true);
+       public void testMaxSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, true);
+       }
+       
+       @Test
+       public void testMaxDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.MAX, true);
+       }
+       
+       @Test
+       public void testMaxSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.MAX, true);
        }
        
        @Test
@@ -682,13 +773,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMaxDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MAX, false);
+       public void testMaxDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, false);
        }
        
        @Test
-       public void testMaxSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MAX, false);
+       public void testMaxSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, false);
        }
        
        @Test
@@ -717,13 +808,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMinsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMINS, true);
+       public void testRowMinsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, true);
        }
        
        @Test
-       public void testRowMinsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMINS, true);
+       public void testRowMinsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, true);
+       }
+       
+       @Test
+       public void testRowMinsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMINS, true);
+       }
+       
+       @Test
+       public void testRowMinsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMINS, true);
        }
        
        @Test
@@ -752,13 +853,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMinsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMINS, false);
+       public void testRowMinsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, false);
        }
        
        @Test
-       public void testRowMinsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMINS, false);
+       public void testRowMinsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, false);
        }
        
        @Test
@@ -787,13 +888,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMinsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMINS, true);
+       public void testColMinsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, true);
+       }
+       
+       @Test
+       public void testColMinsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, true);
+       }
+       
+       @Test
+       public void testColMinsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMINS, true);
        }
        
        @Test
-       public void testColMinsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMINS, true);
+       public void testColMinsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMINS, true);
        }
        
        @Test
@@ -822,13 +933,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMinsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMINS, false);
+       public void testColMinsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, false);
        }
        
        @Test
-       public void testColMinsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMINS, false);
+       public void testColMinsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, false);
        }
        
        @Test
@@ -857,13 +968,23 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMinDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MIN, true);
+       public void testMinDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, true);
        }
        
        @Test
-       public void testMinSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MIN, true);
+       public void testMinSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, true);
+       }
+       
+       @Test
+       public void testMinDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.MIN, true);
+       }
+       
+       @Test
+       public void testMinSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.MIN, true);
        }
        
        @Test
@@ -892,13 +1013,13 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMinDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MIN, false);
+       public void testMinDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, false);
        }
        
        @Test
-       public void testMinSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MIN, false);
+       public void testMinSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, false);
        }
        
        @Test
@@ -930,8 +1051,10 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols1, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        mb = mb.appendOperations(MatrixBlock.seqOperations(0.1, 
rows-0.1, 1), new MatrixBlock()); //uc group
                        
@@ -975,5 +1098,8 @@ public class BasicUnaryAggregateTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicVectorMatrixMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicVectorMatrixMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicVectorMatrixMultTest.java
index c9b7ec4..69a8016 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicVectorMatrixMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/BasicVectorMatrixMultTest.java
@@ -49,9 +49,10 @@ public class BasicVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -75,13 +76,23 @@ public class BasicVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -110,13 +121,13 @@ public class BasicVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -149,8 +160,10 @@ public class BasicVectorMatrixMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        MatrixBlock vector = DataConverter.convertToMatrixBlock(
                                        TestUtils.generateTestMatrix(1, rows, 
1, 1, 1.0, 3));
@@ -176,5 +189,8 @@ public class BasicVectorMatrixMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
index a74f784..7b10396 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedLinregCG.java
@@ -24,6 +24,7 @@ import java.util.HashMap;
 import org.apache.sysml.api.DMLScript;
 import org.apache.sysml.api.DMLScript.RUNTIME_PLATFORM;
 import org.apache.sysml.lops.LopProperties.ExecType;
+import org.apache.sysml.runtime.compress.CompressedMatrixBlock;
 import 
org.apache.sysml.runtime.controlprogram.parfor.stat.InfrastructureAnalyzer;
 import org.apache.sysml.runtime.matrix.data.MatrixValue.CellIndex;
 import org.apache.sysml.test.integration.AutomatedTestBase;
@@ -140,11 +141,11 @@ public class CompressedLinregCG extends AutomatedTestBase
                        HashMap<CellIndex, Double> rfile  = 
readRMatrixFromFS("w");
                        TestUtils.compareMatrices(dmlfile, rfile, eps, 
"Stat-DML", "Stat-R");
                }
-               finally
-               {
+               finally {
                        rtplatform = platformOld;
                        DMLScript.USE_LOCAL_SPARK_CONFIG = sparkConfigOld;
                        InfrastructureAnalyzer.setLocalMaxMemory(memOld);       
        
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
                }
        }
 

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedSerializationTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedSerializationTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedSerializationTest.java
index 9405aa8..b0857a1 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedSerializationTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/CompressedSerializationTest.java
@@ -49,9 +49,10 @@ public class CompressedSerializationTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -75,13 +76,23 @@ public class CompressedSerializationTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runCompressedSerializationTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runCompressedSerializationTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runCompressedSerializationTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runCompressedSerializationTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runCompressedSerializationTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runCompressedSerializationTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -110,13 +121,13 @@ public class CompressedSerializationTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runCompressedSerializationTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runCompressedSerializationTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runCompressedSerializationTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runCompressedSerializationTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -150,8 +161,10 @@ public class CompressedSerializationTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -181,5 +194,8 @@ public class CompressedSerializationTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeCompressionTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeCompressionTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeCompressionTest.java
index 4f9101c..d90118c 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeCompressionTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeCompressionTest.java
@@ -45,9 +45,10 @@ public class LargeCompressionTest extends AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -71,13 +72,23 @@ public class LargeCompressionTest extends AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runCompressionTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
true);
+       public void testDenseRoundRandDataOLECompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runCompressionTest(SparsityType.SPARSE, ValueType.RAND_ROUND, 
true);
+       public void testSparseRoundRandDataOLECompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -106,13 +117,13 @@ public class LargeCompressionTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runCompressionTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runCompressionTest(SparsityType.SPARSE, ValueType.RAND_ROUND, 
false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -145,8 +156,10 @@ public class LargeCompressionTest extends AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -165,5 +178,8 @@ public class LargeCompressionTest extends AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixVectorMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixVectorMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixVectorMultTest.java
index d2da1a6..f5a5a4b 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixVectorMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeMatrixVectorMultTest.java
@@ -49,9 +49,10 @@ public class LargeMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -75,13 +76,23 @@ public class LargeMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -110,13 +121,13 @@ public class LargeMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -149,8 +160,10 @@ public class LargeMatrixVectorMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        MatrixBlock vector = DataConverter.convertToMatrixBlock(
                                        TestUtils.generateTestMatrix(cols, 1, 
1, 1, 1.0, 3));
@@ -176,5 +189,8 @@ public class LargeMatrixVectorMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParMatrixVectorMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParMatrixVectorMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParMatrixVectorMultTest.java
index 6cdceee..4b6d033 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParMatrixVectorMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParMatrixVectorMultTest.java
@@ -50,9 +50,10 @@ public class LargeParMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -76,13 +77,23 @@ public class LargeParMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -111,13 +122,13 @@ public class LargeParMatrixVectorMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -150,8 +161,10 @@ public class LargeParMatrixVectorMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        MatrixBlock vector = DataConverter.convertToMatrixBlock(
                                        TestUtils.generateTestMatrix(cols, 1, 
1, 1, 1.0, 3));
@@ -178,5 +191,8 @@ public class LargeParMatrixVectorMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
index 6cd1f35..6d2585a 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeParUnaryAggregateTest.java
@@ -49,9 +49,10 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        public enum AggType {
@@ -90,13 +91,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMS, true);
+       public void testRowSumsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, true);
        }
        
        @Test
-       public void testRowSumsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMS, true);
+       public void testRowSumsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, true);
+       }
+       
+       @Test
+       public void testRowSumsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMS, true);
+       }
+       
+       @Test
+       public void testRowSumsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMS, true);
        }
        
        @Test
@@ -125,13 +136,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMS, false);
+       public void testRowSumsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, false);
        }
        
        @Test
-       public void testRowSumsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMS, false);
+       public void testRowSumsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMS, false);
        }
        
        @Test
@@ -160,13 +171,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMS, true);
+       public void testColSumsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, true);
+       }
+       
+       @Test
+       public void testColSumsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, true);
+       }
+       
+       @Test
+       public void testColSumsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMS, true);
        }
        
        @Test
-       public void testColSumsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMS, true);
+       public void testColSumsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMS, true);
        }
        
        @Test
@@ -195,13 +216,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMS, false);
+       public void testColSumsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, false);
        }
        
        @Test
-       public void testColSumsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMS, false);
+       public void testColSumsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMS, false);
        }
        
        @Test
@@ -230,13 +251,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUM, true);
+       public void testSumDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, true);
+       }
+       
+       @Test
+       public void testSumSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, true);
        }
        
        @Test
-       public void testSumSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUM, true);
+       public void testSumDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.SUM, true);
+       }
+       
+       @Test
+       public void testSumSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.SUM, true);
        }
        
        @Test
@@ -265,13 +296,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUM, false);
+       public void testSumDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, false);
        }
        
        @Test
-       public void testSumSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUM, false);
+       public void testSumSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUM, false);
        }
        
        @Test
@@ -300,13 +331,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMSSQ, true);
+       public void testRowSumsSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, true);
        }
        
        @Test
-       public void testRowSumsSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMSSQ, true);
+       public void testRowSumsSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, true);
+       }
+       
+       @Test
+       public void testRowSumsSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMSSQ, true);
+       }
+       
+       @Test
+       public void testRowSumsSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWSUMSSQ, true);
        }
        
        @Test
@@ -314,10 +355,10 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
                runUnaryAggregateTest(SparsityType.DENSE, ValueType.CONST, 
AggType.ROWSUMSSQ, true);
        }
        
-       //@Test
-       //public void testRowSumsSqSparseConstDataCompression() {
-       //      runUnaryAggregateTest(SparsityType.SPARSE, ValueType.CONST, 
AggType.ROWSUMSSQ, true);
-       //}
+       @Test
+       public void testRowSumsSqSparseConstDataCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, ValueType.CONST, 
AggType.ROWSUMSSQ, true);
+       }
        
        @Test
        public void testRowSumsSqDenseRandDataNoCompression() {
@@ -335,13 +376,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowSumsSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWSUMSSQ, false);
+       public void testRowSumsSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, false);
        }
        
        @Test
-       public void testRowSumsSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWSUMSSQ, false);
+       public void testRowSumsSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWSUMSSQ, false);
        }
        
        @Test
@@ -370,13 +411,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMSSQ, true);
+       public void testColSumsSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, true);
        }
        
        @Test
-       public void testColSumsSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMSSQ, true);
+       public void testColSumsSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, true);
+       }
+       
+       @Test
+       public void testColSumsSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMSSQ, true);
+       }
+       
+       @Test
+       public void testColSumsSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLSUMSSQ, true);
        }
        
        @Test
@@ -405,13 +456,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColSumsSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLSUMSSQ, false);
+       public void testColSumsSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, false);
        }
        
        @Test
-       public void testColSumsSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLSUMSSQ, false);
+       public void testColSumsSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLSUMSSQ, false);
        }
        
        @Test
@@ -440,13 +491,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumSqDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUMSQ, true);
+       public void testSumSqDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, true);
+       }
+       
+       @Test
+       public void testSumSqSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, true);
        }
        
        @Test
-       public void testSumSqSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUMSQ, true);
+       public void testSumSqDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.SUMSQ, true);
+       }
+       
+       @Test
+       public void testSumSqSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.SUMSQ, true);
        }
        
        @Test
@@ -475,13 +536,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testSumSqDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.SUMSQ, false);
+       public void testSumSqDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, false);
        }
        
        @Test
-       public void testSumSqSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.SUMSQ, false);
+       public void testSumSqSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.SUMSQ, false);
        }
        
        @Test
@@ -494,7 +555,6 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
                runUnaryAggregateTest(SparsityType.SPARSE, ValueType.CONST, 
AggType.SUMSQ, false);
        }
        
-
        @Test
        public void testRowMaxsDenseRandDataCompression() {
                runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND, 
AggType.ROWMAXS, true);
@@ -511,13 +571,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMaxsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMAXS, true);
+       public void testRowMaxsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, true);
        }
        
        @Test
-       public void testRowMaxsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMAXS, true);
+       public void testRowMaxsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, true);
+       }
+       
+       @Test
+       public void testRowMaxsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMAXS, true);
+       }
+       
+       @Test
+       public void testRowMaxsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMAXS, true);
        }
        
        @Test
@@ -546,13 +616,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMaxsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMAXS, false);
+       public void testRowMaxsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, false);
        }
        
        @Test
-       public void testRowMaxsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMAXS, false);
+       public void testRowMaxsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMAXS, false);
        }
        
        @Test
@@ -581,13 +651,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMaxsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMAXS, true);
+       public void testColMaxsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, true);
        }
        
        @Test
-       public void testColMaxsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMAXS, true);
+       public void testColMaxsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, true);
+       }
+       
+       @Test
+       public void testColMaxsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMAXS, true);
+       }
+       
+       @Test
+       public void testColMaxsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMAXS, true);
        }
        
        @Test
@@ -616,13 +696,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMaxsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMAXS, false);
+       public void testColMaxsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, false);
        }
        
        @Test
-       public void testColMaxsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMAXS, false);
+       public void testColMaxsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMAXS, false);
        }
        
        @Test
@@ -651,13 +731,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMaxDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MAX, true);
+       public void testMaxDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, true);
+       }
+       
+       @Test
+       public void testMaxSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, true);
        }
        
        @Test
-       public void testMaxSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MAX, true);
+       public void testMaxDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.MAX, true);
+       }
+       
+       @Test
+       public void testMaxSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.MAX, true);
        }
        
        @Test
@@ -686,13 +776,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMaxDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MAX, false);
+       public void testMaxDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, false);
        }
        
        @Test
-       public void testMaxSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MAX, false);
+       public void testMaxSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MAX, false);
        }
        
        @Test
@@ -721,13 +811,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMinsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMINS, true);
+       public void testRowMinsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, true);
+       }
+       
+       @Test
+       public void testRowMinsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, true);
+       }
+       
+       @Test
+       public void testRowMinsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMINS, true);
        }
        
        @Test
-       public void testRowMinsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMINS, true);
+       public void testRowMinsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.ROWMINS, true);
        }
        
        @Test
@@ -756,13 +856,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testRowMinsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.ROWMINS, false);
+       public void testRowMinsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, false);
        }
        
        @Test
-       public void testRowMinsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.ROWMINS, false);
+       public void testRowMinsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.ROWMINS, false);
        }
        
        @Test
@@ -791,13 +891,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMinsDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMINS, true);
+       public void testColMinsDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, true);
        }
        
        @Test
-       public void testColMinsSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMINS, true);
+       public void testColMinsSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, true);
+       }
+       
+       @Test
+       public void testColMinsDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMINS, true);
+       }
+       
+       @Test
+       public void testColMinsSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.COLMINS, true);
        }
        
        @Test
@@ -826,13 +936,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testColMinsDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.COLMINS, false);
+       public void testColMinsDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, false);
        }
        
        @Test
-       public void testColMinsSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.COLMINS, false);
+       public void testColMinsSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.COLMINS, false);
        }
        
        @Test
@@ -861,13 +971,23 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMinDenseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MIN, true);
+       public void testMinDenseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, true);
        }
        
        @Test
-       public void testMinSparseRoundRandDataCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MIN, true);
+       public void testMinSparseRoundRandDataOLECompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, true);
+       }
+       
+       @Test
+       public void testMinDenseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, AggType.MIN, true);
+       }
+       
+       @Test
+       public void testMinSparseRoundRandDataDDCCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, AggType.MIN, true);
        }
        
        @Test
@@ -896,13 +1016,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testMinDenseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
AggType.MIN, false);
+       public void testMinDenseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, false);
        }
        
        @Test
-       public void testMinSparseRoundRandDataNoCompression() {
-               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, AggType.MIN, false);
+       public void testMinSparseRoundRandDataOLENoCompression() {
+               runUnaryAggregateTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, AggType.MIN, false);
        }
        
        @Test
@@ -934,8 +1054,10 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        mb = mb.appendOperations(MatrixBlock.seqOperations(0.1, 
rows-0.1, 1), new MatrixBlock()); //uc group
                        
@@ -975,10 +1097,13 @@ public class LargeParUnaryAggregateTest extends 
AutomatedTestBase
                                        || aggtype == AggType.ROWMINS || 
aggtype == AggType.ROWMINS)?rows:1;
                        int dim2 = (aggtype == AggType.COLSUMS || aggtype == 
AggType.COLSUMSSQ 
                                        || aggtype == AggType.COLMAXS || 
aggtype == AggType.COLMINS)?cols:1;
-                       TestUtils.compareMatrices(d1, d2, dim1, dim2, 
0.00000000001);
+                       TestUtils.compareMatrices(d1, d2, dim1, dim2, 
0.000000001);
                }
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeVectorMatrixMultTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeVectorMatrixMultTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeVectorMatrixMultTest.java
index 8335ca4..4da0a79 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeVectorMatrixMultTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/LargeVectorMatrixMultTest.java
@@ -49,9 +49,10 @@ public class LargeVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -75,13 +76,23 @@ public class LargeVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, true);
+       public void testDenseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, true);
+       public void testSparseRoundRandDataOLECompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -110,13 +121,13 @@ public class LargeVectorMatrixMultTest extends 
AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND, false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND, false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runMatrixVectorMultTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -149,8 +160,10 @@ public class LargeVectorMatrixMultTest extends 
AutomatedTestBase
                        //generate input data
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        MatrixBlock vector = DataConverter.convertToMatrixBlock(
                                        TestUtils.generateTestMatrix(1, rows, 
1, 1, 1.0, 3));
@@ -176,5 +189,8 @@ public class LargeVectorMatrixMultTest extends 
AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }

http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/37a215bc/src/test/java/org/apache/sysml/test/integration/functions/compress/ParCompressionTest.java
----------------------------------------------------------------------
diff --git 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/ParCompressionTest.java
 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/ParCompressionTest.java
index 603584c..a7b42d7 100644
--- 
a/src/test/java/org/apache/sysml/test/integration/functions/compress/ParCompressionTest.java
+++ 
b/src/test/java/org/apache/sysml/test/integration/functions/compress/ParCompressionTest.java
@@ -47,9 +47,10 @@ public class ParCompressionTest extends AutomatedTestBase
        }
        
        public enum ValueType {
-               RAND,
-               RAND_ROUND,
-               CONST,
+               RAND, //UC
+               CONST, //RLE
+               RAND_ROUND_OLE, //OLE
+               RAND_ROUND_DDC, //RLE
        }
        
        @Override
@@ -73,13 +74,23 @@ public class ParCompressionTest extends AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataCompression() {
-               runCompressionTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
true);
+       public void testDenseRoundRandDataOLECompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, true);
        }
        
        @Test
-       public void testSparseRoundRandDataCompression() {
-               runCompressionTest(SparsityType.SPARSE, ValueType.RAND_ROUND, 
true);
+       public void testSparseRoundRandDataOLECompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, true);
+       }
+       
+       @Test
+       public void testDenseRoundRandDataDDCCompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_DDC, true);
+       }
+       
+       @Test
+       public void testSparseRoundRandDataDDCCompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_DDC, true);
        }
        
        @Test
@@ -108,13 +119,13 @@ public class ParCompressionTest extends AutomatedTestBase
        }
        
        @Test
-       public void testDenseRoundRandDataNoCompression() {
-               runCompressionTest(SparsityType.DENSE, ValueType.RAND_ROUND, 
false);
+       public void testDenseRoundRandDataOLENoCompression() {
+               runCompressionTest(SparsityType.DENSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
-       public void testSparseRoundRandDataNoCompression() {
-               runCompressionTest(SparsityType.SPARSE, ValueType.RAND_ROUND, 
false);
+       public void testSparseRoundRandDataOLENoCompression() {
+               runCompressionTest(SparsityType.SPARSE, 
ValueType.RAND_ROUND_OLE, false);
        }
        
        @Test
@@ -148,8 +159,10 @@ public class ParCompressionTest extends AutomatedTestBase
                        int k = InfrastructureAnalyzer.getLocalParallelism();
                        double min = (vtype==ValueType.CONST)? 10 : -10;
                        double[][] input = TestUtils.generateTestMatrix(rows, 
cols, min, 10, sparsity, 7);
-                       if( vtype==ValueType.RAND_ROUND )
+                       if( vtype==ValueType.RAND_ROUND_OLE || 
vtype==ValueType.RAND_ROUND_DDC ) {
+                               CompressedMatrixBlock.ALLOW_DDC_ENCODING = 
(vtype==ValueType.RAND_ROUND_DDC);
                                input = TestUtils.round(input);
+                       }
                        MatrixBlock mb = 
DataConverter.convertToMatrixBlock(input);
                        
                        //compress given matrix block
@@ -168,5 +181,8 @@ public class ParCompressionTest extends AutomatedTestBase
                catch(Exception ex) {
                        throw new RuntimeException(ex);
                }
+               finally {
+                       CompressedMatrixBlock.ALLOW_DDC_ENCODING = true;
+               }
        }
 }


Reply via email to