You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@systemml.apache.org by mb...@apache.org on 2020/04/25 21:08:18 UTC

[systemml] branch master updated: [MINOR] Cleanup codegen algorithm tests (config setup redundancy)

This is an automated email from the ASF dual-hosted git repository.

mboehm7 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/systemml.git


The following commit(s) were added to refs/heads/master by this push:
     new 592c44b  [MINOR] Cleanup codegen algorithm tests (config setup redundancy)
592c44b is described below

commit 592c44b7325e36b45e51f8510d352c05a0156b42
Author: Matthias Boehm <mb...@gmail.com>
AuthorDate: Sat Apr 25 23:07:46 2020 +0200

    [MINOR] Cleanup codegen algorithm tests (config setup redundancy)
---
 .../org/apache/sysds/test/AutomatedTestBase.java   |  24 ++++
 .../codegenalg/partone/AlgorithmAutoEncoder.java   |  68 ++++-----
 .../codegenalg/partone/AlgorithmKMeans.java        | 124 +++++++---------
 .../codegenalg/partone/AlgorithmL2SVM.java         |  60 +++-----
 .../codegenalg/partone/AlgorithmLinregCG.java      | 123 +++++++---------
 .../codegenalg/partone/AlgorithmMDABivar.java      |  33 +----
 .../codegenalg/partone/AlgorithmMLogreg.java       | 156 +++++++++------------
 .../codegenalg/partone/AlgorithmMSVM.java          |  72 ++++------
 .../functions/codegenalg/partone/AlgorithmPCA.java |  58 +++-----
 .../codegenalg/parttwo/AlgorithmARIMA.java         |  32 +----
 .../codegenalg/parttwo/AlgorithmDatagen.java       |  92 +++++-------
 .../functions/codegenalg/parttwo/AlgorithmGLM.java | 112 ++++++---------
 .../codegenalg/parttwo/AlgorithmPNMF.java          |  40 ++----
 .../codegenalg/parttwo/AlgorithmPageRank.java      |  51 +++----
 .../parttwo/AlgorithmStepwiseRegression.java       |  60 +++-----
 15 files changed, 427 insertions(+), 678 deletions(-)

diff --git a/src/test/java/org/apache/sysds/test/AutomatedTestBase.java b/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
index 5217d0c..6d1b396 100644
--- a/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
+++ b/src/test/java/org/apache/sysds/test/AutomatedTestBase.java
@@ -116,6 +116,23 @@ public abstract class AutomatedTestBase {
 	 */
 	private static final File CONFIG_TEMPLATE_FILE = new File(CONFIG_DIR, "SystemDS-config.xml");
 
+	protected enum CodegenTestType {
+		DEFAULT, FUSE_ALL, FUSE_NO_REDUNDANCY;
+		
+		public String getCodgenConfig() {
+			switch(this) {
+				case DEFAULT:
+					return "SystemDS-config-codegen.xml";
+				case FUSE_ALL:
+					return "SystemDS-config-codegen-fuse-all.xml";
+				case FUSE_NO_REDUNDANCY:
+					return "SystemDS-config-codegen-fuse-no-redundancy.xml";
+				default: 
+					throw new RuntimeException("Unsupported codegen test config: "+this.name());
+			}
+		}
+	}
+	
 	/**
 	 * Location under which we create local temporary directories for test cases. To adjust where testTemp is located,
 	 * use -Dsystemds.testTemp.root.dir=<new location>. This is necessary if any parent directories are
@@ -289,6 +306,13 @@ public abstract class AutomatedTestBase {
 		return CONFIG_TEMPLATE_FILE;
 	}
 
+	protected File getCodegenConfigFile(String parent, CodegenTestType type) {
+		// Instrumentation in this test's output log to show custom configuration file used for template.
+		File tmp = new File(parent, type.getCodgenConfig());
+		System.out.println("This test case overrides default configuration with " + tmp.getPath());
+		return tmp;
+	}
+	
 	protected ExecMode setExecMode(ExecType instType) {
 		switch(instType) {
 			case SPARK: return setExecMode(ExecMode.SPARK);
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmAutoEncoder.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmAutoEncoder.java
index 6fef59a..90d7ff8 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmAutoEncoder.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmAutoEncoder.java
@@ -36,15 +36,6 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_AutoEncoder";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmAutoEncoder.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 	
 	private final static int rows = 2468;
 	private final static int cols = 784;
@@ -56,7 +47,7 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase
 	private final static int H2 = 2;
 	private final static double epochs = 2; 
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -69,105 +60,105 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase
 
 	@Test
 	public void testAutoEncoder256DenseCP() {
-		runAutoEncoderTest(256, false, false, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(256, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder256DenseRewritesCP() {
-		runAutoEncoderTest(256, false, true, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(256, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder256SparseCP() {
-		runAutoEncoderTest(256, true, false, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(256, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder256SparseRewritesCP() {
-		runAutoEncoderTest(256, true, true, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(256, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512DenseCP() {
-		runAutoEncoderTest(512, false, false, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(512, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512DenseRewritesCP() {
-		runAutoEncoderTest(512, false, true, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(512, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512SparseCP() {
-		runAutoEncoderTest(512, true, false, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(512, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512SparseRewritesCP() {
-		runAutoEncoderTest(512, true, true, ExecType.CP, TestType.DEFAULT);
+		runAutoEncoderTest(512, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder256DenseRewritesSpark() {
-		runAutoEncoderTest(256, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runAutoEncoderTest(256, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder256SparseRewritesSpark() {
-		runAutoEncoderTest(256, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runAutoEncoderTest(256, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512DenseRewritesSpark() {
-		runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runAutoEncoderTest(512, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testAutoEncoder512SparseRewritesSpark() {
-		runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runAutoEncoderTest(512, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testAutoEncoder512DenseRewritesCPFuseAll() {
-		runAutoEncoderTest(512, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runAutoEncoderTest(512, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testAutoEncoder512SparseRewritesCPFuseAll() {
-		runAutoEncoderTest(512, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runAutoEncoderTest(512, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testAutoEncoder512DenseRewritesSparkFuseAll() {
-		runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runAutoEncoderTest(512, false, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testAutoEncoder512SparseRewritesSparkFuseAll() {
-		runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runAutoEncoderTest(512, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testAutoEncoder512DenseRewritesCPFuseNoRedundancy() {
-		runAutoEncoderTest(512, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runAutoEncoderTest(512, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testAutoEncoder512SparseRewritesCPFuseNoRedundancy() {
-		runAutoEncoderTest(512, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runAutoEncoderTest(512, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testAutoEncoder512DenseRewritesSparkFuseNoRedundancy() {
-		runAutoEncoderTest(512, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runAutoEncoderTest(512, false, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testAutoEncoder512SparseRewritesSparkFuseNoRedundancy() {
-		runAutoEncoderTest(512, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runAutoEncoderTest(512, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runAutoEncoderTest(int batchsize, boolean sparse, boolean rewrites, ExecType instType, TestType testType)
+	private void runAutoEncoderTest(int batchsize, boolean sparse, boolean rewrites, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -176,7 +167,7 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
 
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
@@ -223,17 +214,6 @@ public class AlgorithmAutoEncoder extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmKMeans.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmKMeans.java
index f8e435d..6c8b7b8 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmKMeans.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmKMeans.java
@@ -36,15 +36,6 @@ public class AlgorithmKMeans extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_KMeans";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmKMeans.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	//private final static double eps = 1e-5;
 	
@@ -57,7 +48,7 @@ public class AlgorithmKMeans extends AutomatedTestBase
 	private final static double epsilon = 0.000000001;
 	private final static double maxiter = 10;
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -67,245 +58,245 @@ public class AlgorithmKMeans extends AutomatedTestBase
 
 	@Test
 	public void testKMeansDenseBinSingleRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseBinSingleRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseBinSingleCP() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseBinSingleCP() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseBinMultiRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseBinMultiRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseBinMultiCP() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseBinMultiCP() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseMulSingleRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseMulSingleRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseMulSingleCP() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseMulSingleCP() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseMulMultiRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseMulMultiRewritesCP() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansDenseMulMultiCP() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testKMeansSparseMulMultiCP() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.DEFAULT);
+		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testKMeansDenseBinSingleRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseBinSingleRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseBinSingleCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseBinSingleCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseBinMultiRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseBinMultiRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseBinMultiCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseBinMultiCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseMulSingleRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseMulSingleRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseMulSingleCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseMulSingleCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseMulMultiRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseMulMultiRewritesCPFuseAll() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseMulMultiCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansSparseMulMultiCPFuseAll() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.FUSE_ALL);
+		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testKMeansDenseBinSingleRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, false, 2, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseBinSingleRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, true, 2, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseBinSingleCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, false, 2, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseBinSingleCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, true, 2, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseBinMultiRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, false, 2, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseBinMultiRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, true, 2, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseBinMultiCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, false, 2, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseBinMultiCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, true, 2, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseMulSingleRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, false, 20, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseMulSingleRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, true, 20, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseMulSingleCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, false, 20, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseMulSingleCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, true, 20, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseMulMultiRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, false, 20, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseMulMultiRewritesCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, true, true, 20, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansDenseMulMultiCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, false, 20, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testKMeansSparseMulMultiCPFuseNoRedundancy() {
-		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runKMeansTest(TEST_NAME1, false, true, 20, 10, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
-	private void runKMeansTest( String testname, boolean rewrites, boolean sparse, int centroids, int runs, ExecType instType, TestType testType)
+	private void runKMeansTest( String testname, boolean rewrites, boolean sparse, int centroids, int runs, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -313,7 +304,7 @@ public class AlgorithmKMeans extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -358,17 +349,6 @@ public class AlgorithmKMeans extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmL2SVM.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmL2SVM.java
index 59416b9..053741b 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmL2SVM.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmL2SVM.java
@@ -38,15 +38,6 @@ public class AlgorithmL2SVM extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_L2SVM";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmL2SVM.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 	
 	private final static double eps = 1e-5;
 	
@@ -61,7 +52,7 @@ public class AlgorithmL2SVM extends AutomatedTestBase
 	private final static double epsilon = 0.000000001;
 	private final static double maxiter = 10;
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -71,85 +62,85 @@ public class AlgorithmL2SVM extends AutomatedTestBase
 
 	@Test
 	public void testL2SVMDenseRewritesCP() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMSparseRewritesCP() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMDenseCP() {
-		runL2SVMTest(TEST_NAME1, false, false, ExecType.CP, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMSparseCP() {
-		runL2SVMTest(TEST_NAME1, false, true, ExecType.CP, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testL2SVMDenseRewritesSP() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMSparseRewritesSP() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMDenseSP() {
-		runL2SVMTest(TEST_NAME1, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testL2SVMSparseSP() {
-		runL2SVMTest(TEST_NAME1, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runL2SVMTest(TEST_NAME1, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testL2SVMDenseRewritesCPFuseAll() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testL2SVMSparseRewritesCPFuseAll() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testL2SVMDenseRewritesSPFuseAll() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testL2SVMSparseRewritesSPFuseAll() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testL2SVMDenseRewritesCPFuseNoRedundancy() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testL2SVMSparseRewritesCPFuseNoRedundancy() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testL2SVMDenseRewritesSPFuseNoRedundancy() {
-		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runL2SVMTest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testL2SVMSparseRewritesSPFuseNoRedundancy() {
-		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runL2SVMTest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
-	private void runL2SVMTest( String testname, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runL2SVMTest( String testname, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -157,7 +148,7 @@ public class AlgorithmL2SVM extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 	
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
@@ -210,17 +201,6 @@ public class AlgorithmL2SVM extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmLinregCG.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmLinregCG.java
index 60687bf..effa7ab 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmLinregCG.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmLinregCG.java
@@ -38,16 +38,8 @@ public class AlgorithmLinregCG extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_LinregCG";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmLinregCG.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
 
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
-	private static TestType currentTestType = TestType.DEFAULT;
+	private static CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 
 	private final static double eps = 1e-1;
 	
@@ -68,245 +60,245 @@ public class AlgorithmLinregCG extends AutomatedTestBase
 
 	@Test
 	public void testLinregCG0DenseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0SparseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0DenseCP() {
-		runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0SparseCP() {
-		runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testLinregCG0DenseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0SparseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0DenseSP() {
-		runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 0, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG0SparseSP() {
-		runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 0, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1DenseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1SparseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1DenseCP() {
-		runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1SparseCP() {
-		runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testLinregCG1DenseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1SparseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1DenseSP() {
-		runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 1, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG1SparseSP() {
-		runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 1, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2DenseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2SparseRewritesCP() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2DenseCP() {
-		runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2SparseCP() {
-		runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.CP, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testLinregCG2DenseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2SparseRewritesSP() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2DenseSP() {
-		runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, false, 2, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testLinregCG2SparseSP() {
-		runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.SPARK, TestType.DEFAULT);
+		runLinregCGTest(TEST_NAME1, false, true, 2, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testLinregCG0DenseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG0SparseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG0DenseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG0SparseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG1DenseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG1SparseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG1DenseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG1SparseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG2DenseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG2SparseRewritesCPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG2DenseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG2SparseRewritesSPFuseAll() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.FUSE_ALL);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testLinregCG0DenseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG0SparseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG0DenseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 0, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG0SparseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 0, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG1DenseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG1SparseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG1DenseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 1, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG1SparseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 1, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG2DenseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG2SparseRewritesCPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG2DenseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, false, 2, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testLinregCG2SparseRewritesSPFuseNoRedundancy() {
-		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runLinregCGTest(TEST_NAME1, true, true, 2, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runLinregCGTest( String testname, boolean rewrites, boolean sparse, int intercept, ExecType instType, TestType testType)
+	private void runLinregCGTest( String testname, boolean rewrites, boolean sparse, int intercept, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -314,7 +306,7 @@ public class AlgorithmLinregCG extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -366,17 +358,6 @@ public class AlgorithmLinregCG extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMDABivar.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMDABivar.java
index 55c84df..3ec2c22 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMDABivar.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMDABivar.java
@@ -31,17 +31,8 @@ import java.io.File;
 public class AlgorithmMDABivar extends MDABivariateStatsTest 
 {
 	private final static String LOCAL_TEST_DIR = "functions/codegenalg/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + LOCAL_TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
 
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
-
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	public AlgorithmMDABivar(int n, int m, int li, int lml) {
 		super(n, m, li, lml);
@@ -50,36 +41,26 @@ public class AlgorithmMDABivar extends MDABivariateStatsTest
 	
 	@Test
 	public void testMDABivariateStatsDml() {
-		testMDABivariateStats(TestType.DEFAULT);
+		testMDABivariateStats(CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testMDABivariateStatsDmlFuseAll() {
-		testMDABivariateStats(TestType.FUSE_ALL);
+		testMDABivariateStats(CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMDABivariateStatsDmlFuseNoRedundancy() {
-		testMDABivariateStats(TestType.FUSE_NO_REDUNDANCY);
+		testMDABivariateStats(CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void testMDABivariateStats(TestType testType) {
-		currentTestType = testType;
+	private void testMDABivariateStats(CodegenTestType CodegenTestType) {
+		currentTestType = CodegenTestType;
 		testMDABivariateStats();
 	}
 	
 	@Override
 	protected File getConfigTemplateFile() {
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + LOCAL_TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMLogreg.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMLogreg.java
index ed635ad..7a348d9 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMLogreg.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMLogreg.java
@@ -38,15 +38,6 @@ public class AlgorithmMLogreg extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_MLogreg";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmMLogreg.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	private final static double eps = 1e-5;
 	
@@ -59,7 +50,7 @@ public class AlgorithmMLogreg extends AutomatedTestBase
 	private final static double epsilon = 0.000000001;
 	private final static double maxiter = 10;
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	
 	@Override
@@ -70,325 +61,325 @@ public class AlgorithmMLogreg extends AutomatedTestBase
 
 	@Test
 	public void testMlogregBin0DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0DenseCP() {
-		runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0SparseCP() {
-		runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0DenseCP() {
-		runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0SparseCP() {
-		runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testMlogregBin0DenseRewritesSP() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0SparseRewritesSP() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0DenseSP() {
-		runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin0SparseSP() {
-		runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 0, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0DenseRewritesSP() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0SparseRewritesSP() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0DenseSP() {
-		runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul0SparseSP() {
-		runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 0, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin1DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin1SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin1DenseCP() {
-		runMlogregTest(TEST_NAME1, 2, 1, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin1SparseCP() {
-		runMlogregTest(TEST_NAME1, 2, 1, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul1DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul1SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul1DenseCP() {
-		runMlogregTest(TEST_NAME1, 5, 1, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul1SparseCP() {
-		runMlogregTest(TEST_NAME1, 5, 1, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testMlogregBin2DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin2SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin2DenseCP() {
-		runMlogregTest(TEST_NAME1, 2, 2, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 2, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregBin2SparseCP() {
-		runMlogregTest(TEST_NAME1, 2, 2, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 2, 2, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul2DenseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul2SparseRewritesCP() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul2DenseCP() {
-		runMlogregTest(TEST_NAME1, 5, 2, false, false, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 2, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMlogregMul2SparseCP() {
-		runMlogregTest(TEST_NAME1, 5, 2, false, true, ExecType.CP, TestType.DEFAULT);
+		runMlogregTest(TEST_NAME1, 5, 2, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testMlogregBin0DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin0SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul0DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul0SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin0DenseRewritesSPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin0SparseRewritesSPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul0DenseRewritesSPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul0SparseRewritesSPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin1DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin1SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul1DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul1SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin2DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin2SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul2DenseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregMul2SparseRewritesCPFuseAll() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMlogregBin0DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin0SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul0DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul0SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin0DenseRewritesSPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 0, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin0SparseRewritesSPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 0, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul0DenseRewritesSPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 0, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul0SparseRewritesSPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 0, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin1DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 1, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin1SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 1, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul1DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 1, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul1SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 1, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin2DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 2, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregBin2SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 2, 2, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul2DenseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 2, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMlogregMul2SparseRewritesCPFuseNoRedundancy() {
-		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMlogregTest(TEST_NAME1, 5, 2, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
-	private void runMlogregTest( String testname, int classes, int intercept, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runMlogregTest( String testname, int classes, int intercept, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -396,7 +387,7 @@ public class AlgorithmMLogreg extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -448,17 +439,6 @@ public class AlgorithmMLogreg extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMSVM.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMSVM.java
index b5ad949..2085f2d 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMSVM.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmMSVM.java
@@ -39,15 +39,6 @@ public class AlgorithmMSVM extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_MSVM";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmMSVM.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	private final static double eps = 1e-5;
 	
@@ -61,7 +52,7 @@ public class AlgorithmMSVM extends AutomatedTestBase
 	private final static double epsilon = 0.000000001;
 	private final static double maxiter = 10;
 
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -71,109 +62,109 @@ public class AlgorithmMSVM extends AutomatedTestBase
 
 	@Test
 	public void testMSVMDenseBinRewritesCP() {
-		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseBinRewritesCP() {
-		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMDenseBinCP() {
-		runMSVMTest(TEST_NAME1, false, false, 2, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, false, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseBinCP() {
-		runMSVMTest(TEST_NAME1, false, true, 2, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, true, 2, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMDenseMulRewritesCP() {
-		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseMulRewritesCP() {
-		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMDenseMulCP() {
-		runMSVMTest(TEST_NAME1, false, false, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, false, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseMulCP() {
-		runMSVMTest(TEST_NAME1, false, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testMSVMDenseBinRewritesCPFuseAll() {
-		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_ALL);
+		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMSVMSparseBinRewritesCPFuseAll() {
-		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_ALL);
+		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMSVMDenseMulRewritesCPFuseAll() {
-		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, TestType.FUSE_ALL);
+		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMSVMSparseMulRewritesCPFuseAll() {
-		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, TestType.FUSE_ALL);
+		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testMSVMDenseBinRewritesCPFuseNoRedundancy() {
-		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMSVMTest(TEST_NAME1, true, false, 2, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMSVMSparseBinRewritesCPFuseNoRedundancy() {
-		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMSVMTest(TEST_NAME1, true, true, 2, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMSVMDenseMulRewritesCPFuseNoRedundancy() {
-		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMSVMTest(TEST_NAME1, true, false, 4, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testMSVMSparseMulRewritesCPFuseNoRedundancy() {
-		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runMSVMTest(TEST_NAME1, true, true, 4, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runMSVMTest( String testname, boolean rewrites, boolean sparse, int numClasses, ExecType instType, TestType testType) {
-		runMSVMTest(testname, rewrites, sparse, false, numClasses, instType, testType);
+	private void runMSVMTest( String testname, boolean rewrites, boolean sparse, int numClasses, ExecType instType, CodegenTestType CodegenTestType) {
+		runMSVMTest(testname, rewrites, sparse, false, numClasses, instType, CodegenTestType);
 	}
 	
 	@Test
 	public void testMSVMDenseMulRewritesCPLineage() {
-		runMSVMTest(TEST_NAME1, true, false, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, false, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseMulRewritesCPLineage() {
-		runMSVMTest(TEST_NAME1, true, true, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, true, true, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMDenseMulCPLineage() {
-		runMSVMTest(TEST_NAME1, false, false, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, false, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testMSVMSparseMulCPLineage() {
-		runMSVMTest(TEST_NAME1, false, true, true, 4, ExecType.CP, TestType.DEFAULT);
+		runMSVMTest(TEST_NAME1, false, true, true, 4, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
-	private void runMSVMTest( String testname, boolean rewrites, boolean sparse, boolean lineage, int numClasses, ExecType instType, TestType testType)
+	private void runMSVMTest( String testname, boolean rewrites, boolean sparse, boolean lineage, int numClasses, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -181,7 +172,7 @@ public class AlgorithmMSVM extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -234,17 +225,6 @@ public class AlgorithmMSVM extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmPCA.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmPCA.java
index e0a1906..e769705 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmPCA.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/partone/AlgorithmPCA.java
@@ -37,15 +37,6 @@ public class AlgorithmPCA extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_PCA";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmPCA.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT, FUSE_ALL, FUSE_NO_REDUNDANCY }
 
 	private final static double eps = 1e-5;
 
@@ -56,7 +47,7 @@ public class AlgorithmPCA extends AutomatedTestBase
 	private final static double sparsity1 = 0.7; //dense
 	private final static double sparsity2 = 0.1; //sparse
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 
 	@Override
 	public void setUp() {
@@ -66,85 +57,85 @@ public class AlgorithmPCA extends AutomatedTestBase
 
 	@Test
 	public void testPCADenseRewritesCP() {
-		runPCATest(TEST_NAME1, true, false, ExecType.CP, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCASparseRewritesCP() {
-		runPCATest(TEST_NAME1, true, true, ExecType.CP, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCADenseCP() {
-		runPCATest(TEST_NAME1, false, false, ExecType.CP, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCASparseCP() {
-		runPCATest(TEST_NAME1, false, true, ExecType.CP, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCADenseRewritesSP() {
-		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCASparseRewritesSP() {
-		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCADenseSP() {
-		runPCATest(TEST_NAME1, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCASparseSP() {
-		runPCATest(TEST_NAME1, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runPCATest(TEST_NAME1, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPCADenseRewritesCPFuseAll() {
-		runPCATest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runPCATest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPCASparseRewritesCPFuseAll() {
-		runPCATest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runPCATest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPCADenseRewritesSPFuseAll() {
-		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPCASparseRewritesSPFuseAll() {
-		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPCADenseRewritesCPFuseNoRedundancy() {
-		runPCATest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPCATest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPCASparseRewritesCPFuseNoRedundancy() {
-		runPCATest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPCATest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPCADenseRewritesSPFuseNoRedundancy() {
-		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runPCATest(TEST_NAME1, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPCASparseRewritesSPFuseNoRedundancy() {
-		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runPCATest(TEST_NAME1, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runPCATest(String testname, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runPCATest(String testname, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = setExecMode(instType);
@@ -197,17 +188,6 @@ public class AlgorithmPCA extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == AlgorithmPCA.TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmARIMA.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmARIMA.java
index 95c3420..7cfb918 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmARIMA.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmARIMA.java
@@ -31,16 +31,8 @@ import java.io.File;
 public class AlgorithmARIMA extends ArimaTest 
 {
 	private final static String LOCAL_TEST_DIR = "functions/codegenalg/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + LOCAL_TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + LOCAL_TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
 
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 
 	public AlgorithmARIMA(int m, int p, int d, int q, int P, int D, int Q, int s, int include_mean, int useJacobi) {
 		super(m, p, d, q, P, D, Q, s, include_mean, useJacobi);
@@ -49,36 +41,26 @@ public class AlgorithmARIMA extends ArimaTest
 
 	@Test
 	public void testArimaDml() {
-		testArima(TestType.DEFAULT);
+		testArima(CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testArimaDmlFuseAll() {
-		testArima(TestType.FUSE_ALL);
+		testArima(CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testArimaDmlFuseNoRedundancy() {
-		testArima(TestType.FUSE_NO_REDUNDANCY);
+		testArima(CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void testArima(TestType testType){
-		currentTestType = testType;
+	private void testArima(CodegenTestType CodegenTestType){
+		currentTestType = CodegenTestType;
 		testArima();
 	}
 	
 	@Override
 	protected File getConfigTemplateFile() {
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + LOCAL_TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmDatagen.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmDatagen.java
index 8d171d8..3a7fc09 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmDatagen.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmDatagen.java
@@ -36,15 +36,6 @@ public class AlgorithmDatagen extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_Datagen";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmDatagen.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	private final static int rows = 2468;
 	private final static int cols = 200;
@@ -57,7 +48,7 @@ public class AlgorithmDatagen extends AutomatedTestBase
 		LOGREG,
 	}
 
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -67,165 +58,165 @@ public class AlgorithmDatagen extends AutomatedTestBase
 
 	@Test
 	public void testDatagenLinregDenseRewritesCP() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregSparseRewritesCP() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregDenseNoRewritesCP() {
-		runStepwiseTest(DatagenType.LINREG, false, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregSparseNoRewritesCP() {
-		runStepwiseTest(DatagenType.LINREG, true, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregDenseRewritesCP() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregSparseRewritesCP() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregDenseNoRewritesCP() {
-		runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregSparseNoRewritesCP() {
-		runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testDatagenLinregDenseRewritesSP() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregSparseRewritesSP() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregDenseNoRewritesSP() {
-		runStepwiseTest(DatagenType.LINREG, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLinregSparseNoRewritesSP() {
-		runStepwiseTest(DatagenType.LINREG, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LINREG, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregDenseRewritesSP() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregSparseRewritesSP() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregDenseNoRewritesSP() {
-		runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, false, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testDatagenLogregSparseNoRewritesSP() {
-		runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runStepwiseTest(DatagenType.LOGREG, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testDatagenLinregDenseRewritesCPFuseAll() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLinregSparseRewritesCPFuseAll() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLogregDenseRewritesCPFuseAll() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLogregSparseRewritesCPFuseAll() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLinregDenseRewritesSPFuseAll() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLinregSparseRewritesSPFuseAll() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLogregDenseRewritesSPFuseAll() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLogregSparseRewritesSPFuseAll() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testDatagenLinregDenseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLinregSparseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLogregDenseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLogregSparseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLinregDenseRewritesSPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LINREG, false, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLinregSparseRewritesSPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LINREG, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLogregDenseRewritesSPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LOGREG, false, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testDatagenLogregSparseRewritesSPFuseNoRedundancy() {
-		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(DatagenType.LOGREG, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
-	private void runStepwiseTest( DatagenType type, boolean sparse, boolean rewrites, ExecType instType, TestType testType)
+	private void runStepwiseTest( DatagenType type, boolean sparse, boolean rewrites, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -233,7 +224,7 @@ public class AlgorithmDatagen extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -281,17 +272,6 @@ public class AlgorithmDatagen extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmGLM.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmGLM.java
index 0e7df0b..bdaa74c 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmGLM.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmGLM.java
@@ -36,15 +36,6 @@ public class AlgorithmGLM extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_GLM";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmGLM.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	//private final static double eps = 1e-5;
 	
@@ -64,7 +55,7 @@ public class AlgorithmGLM extends AutomatedTestBase
 		BINOMIAL_PROBIT,
 	}
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -74,215 +65,215 @@ public class AlgorithmGLM extends AutomatedTestBase
 
 	@Test
 	public void testGLMPoissonDenseRewritesCP() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMPoissonSparseRewritesCP() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMPoissonDenseCP() {
-		runGLMTest(GLMType.POISSON_LOG, false, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMPoissonSparseCP() {
-		runGLMTest(GLMType.POISSON_LOG, false, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaDenseRewritesCP() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaSparseRewritesCP() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaDenseCP() {
-		runGLMTest(GLMType.GAMMA_LOG, false, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaSparseCP() {
-		runGLMTest(GLMType.GAMMA_LOG, false, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialDenseRewritesCP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialSparseRewritesCP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialDenseCP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, false, false, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialSparseCP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, false, true, ExecType.CP, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMPoissonDenseRewritesSP() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMPoissonSparseRewritesSP() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaDenseRewritesSP() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMGammaSparseRewritesSP() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialDenseRewritesSP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testGLMBinomialSparseRewritesSP() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.DEFAULT);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testGLMPoissonDenseRewritesCPFuseAll() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMPoissonSparseRewritesCPFuseAll() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMGammaDenseRewritesCPFuseAll() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMGammaSparseRewritesCPFuseAll() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMBinomialDenseRewritesCPFuseAll() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMBinomialSparseRewritesCPFuseAll() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMPoissonDenseRewritesSPFuseAll() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMPoissonSparseRewritesSPFuseAll() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMGammaDenseRewritesSPFuseAll() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMGammaSparseRewritesSPFuseAll() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMBinomialDenseRewritesSPFuseAll() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMBinomialSparseRewritesSPFuseAll() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.FUSE_ALL);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testGLMPoissonDenseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMPoissonSparseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMGammaDenseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMGammaSparseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMBinomialDenseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMBinomialSparseRewritesCPFuseNoRedundancy() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMPoissonDenseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.POISSON_LOG, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMPoissonSparseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.POISSON_LOG, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMGammaDenseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.GAMMA_LOG, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMGammaSparseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.GAMMA_LOG, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMBinomialDenseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, false, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testGLMBinomialSparseRewritesSPFuseNoRedundancy() {
-		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, TestType.FUSE_NO_REDUNDANCY);
+		runGLMTest(GLMType.BINOMIAL_PROBIT, true, true, ExecType.SPARK, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runGLMTest( GLMType type, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runGLMTest( GLMType type, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -290,7 +281,7 @@ public class AlgorithmGLM extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -357,17 +348,6 @@ public class AlgorithmGLM extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPNMF.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPNMF.java
index cae0736..9226ff1 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPNMF.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPNMF.java
@@ -38,15 +38,6 @@ public class AlgorithmPNMF extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_PNMF";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmPNMF.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	private final static double eps = 1e-5;
 	
@@ -60,7 +51,7 @@ public class AlgorithmPNMF extends AutomatedTestBase
 	private final static double epsilon = 0.000000001;
 	private final static double maxiter = 10;
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -70,32 +61,32 @@ public class AlgorithmPNMF extends AutomatedTestBase
 
 	@Test
 	public void testPNMFDenseCP() {
-		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, TestType.DEFAULT);
+		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testPNMFSparseCP() {
-		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, TestType.DEFAULT);
+		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPNMFDenseCPFuseAll() {
-		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, TestType.FUSE_ALL);
+		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPNMFSparseCPFuseAll() {
-		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPNMFDenseCPFuseNoRedundancy() {
-		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPNMFTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPNMFSparseCPFuseNoRedundancy() {
-		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPNMFTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
 	//TODO requires proper handling of blocksize constraints
@@ -109,7 +100,7 @@ public class AlgorithmPNMF extends AutomatedTestBase
 	//	runPNMFTest(TEST_NAME1, false, true, ExecType.SPARK);
 	//}
 
-	private void runPNMFTest( String testname, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runPNMFTest( String testname, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -117,7 +108,7 @@ public class AlgorithmPNMF extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -173,17 +164,6 @@ public class AlgorithmPNMF extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPageRank.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPageRank.java
index d196a4b..89addba 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPageRank.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmPageRank.java
@@ -38,14 +38,6 @@ public class AlgorithmPageRank extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_PageRank";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmPageRank.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	//absolute diff for large output scale in the +E12
 	private final static double eps = 0.1;
@@ -59,7 +51,7 @@ public class AlgorithmPageRank extends AutomatedTestBase
 	private final static double alpha = 0.85;
 	private final static double maxiter = 10;
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -69,65 +61,65 @@ public class AlgorithmPageRank extends AutomatedTestBase
 
 	@Test
 	public void testPageRankDenseCP() {
-		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, TestType.DEFAULT);
+		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testPageRankSparseCP() {
-		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, TestType.DEFAULT);
+		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPageRankDenseCPFuseAll() {
-		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_ALL);
+		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPageRankSparseCPFuseAll() {
-		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPageRankDenseCPFuseNoRedundancy() {
-		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPageRankTest(TEST_NAME1, true, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPageRankSparseCPFuseNoRedundancy() {
-		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPageRankTest(TEST_NAME1, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 	
 	@Test
 	public void testPageRankDenseCPNoR() {
-		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, TestType.DEFAULT);
+		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testPageRankSparseCPNoR() {
-		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, TestType.DEFAULT);
+		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testPageRankDenseCPFuseAllNoR() {
-		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, TestType.FUSE_ALL);
+		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPageRankSparseCPFuseAllNoR() {
-		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testPageRankDenseCPFuseNoRedundancyNoR() {
-		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPageRankTest(TEST_NAME1, false, false, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testPageRankSparseCPFuseNoRedundancyNoR() {
-		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runPageRankTest(TEST_NAME1, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
-	private void runPageRankTest( String testname, boolean rewrites, boolean sparse, ExecType instType, TestType testType)
+	private void runPageRankTest( String testname, boolean rewrites, boolean sparse, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -135,7 +127,7 @@ public class AlgorithmPageRank extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -188,17 +180,6 @@ public class AlgorithmPageRank extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }
diff --git a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmStepwiseRegression.java b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmStepwiseRegression.java
index 38d76fd..1d96edc 100644
--- a/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmStepwiseRegression.java
+++ b/src/test/java/org/apache/sysds/test/functions/codegenalg/parttwo/AlgorithmStepwiseRegression.java
@@ -36,15 +36,6 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 	private final static String TEST_NAME1 = "Algorithm_Stepwise";
 	private final static String TEST_DIR = "functions/codegenalg/";
 	private final static String TEST_CLASS_DIR = TEST_DIR + AlgorithmStepwiseRegression.class.getSimpleName() + "/";
-	private final static String TEST_CONF_DEFAULT = "SystemDS-config-codegen.xml";
-	private final static File TEST_CONF_FILE_DEFAULT = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_DEFAULT);
-	private final static String TEST_CONF_FUSE_ALL = "SystemDS-config-codegen-fuse-all.xml";
-	private final static File TEST_CONF_FILE_FUSE_ALL = new File(SCRIPT_DIR + TEST_DIR, TEST_CONF_FUSE_ALL);
-	private final static String TEST_CONF_FUSE_NO_REDUNDANCY = "SystemDS-config-codegen-fuse-no-redundancy.xml";
-	private final static File TEST_CONF_FILE_FUSE_NO_REDUNDANCY = new File(SCRIPT_DIR + TEST_DIR,
-			TEST_CONF_FUSE_NO_REDUNDANCY);
-
-	private enum TestType { DEFAULT,FUSE_ALL,FUSE_NO_REDUNDANCY }
 
 	private final static int rows = 2468;
 	private final static int cols = 200;
@@ -60,7 +51,7 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 		LINREG_DS,
 	}
 	
-	private TestType currentTestType = TestType.DEFAULT;
+	private CodegenTestType currentTestType = CodegenTestType.DEFAULT;
 	
 	@Override
 	public void setUp() {
@@ -70,22 +61,22 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 
 	@Test
 	public void testStepwiseGLMDenseRewritesCP() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseGLMSparseRewritesCP() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseGLMDenseNoRewritesCP() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, false, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseGLMSparseNoRewritesCP() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, true, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 //	@Test
@@ -110,66 +101,66 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 	
 	@Test
 	public void testStepwiseLinregDSDenseRewritesCP() {
-		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseLinregDSSparseRewritesCP() {
-		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseLinregDSDenseNoRewritesCP() {
-		runStepwiseTest(StepwiseType.LINREG_DS, false, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.LINREG_DS, false, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 	
 	@Test
 	public void testStepwiseLinregDSSparseNoRewritesCP() {
-		runStepwiseTest(StepwiseType.LINREG_DS, true, false, ExecType.CP, TestType.DEFAULT);
+		runStepwiseTest(StepwiseType.LINREG_DS, true, false, ExecType.CP, CodegenTestType.DEFAULT);
 	}
 
 	@Test
 	public void testStepwiseGLMDenseRewritesCPFuseAll() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testStepwiseGLMSparseRewritesCPFuseAll() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testStepwiseLinregDSDenseRewritesCPFuseAll() {
-		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testStepwiseLinregDSSparseRewritesCPFuseAll() {
-		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, TestType.FUSE_ALL);
+		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, CodegenTestType.FUSE_ALL);
 	}
 
 	@Test
 	public void testStepwiseGLMDenseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testStepwiseGLMSparseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(StepwiseType.GLM_PROBIT, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testStepwiseLinregDSDenseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(StepwiseType.LINREG_DS, false, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	@Test
 	public void testStepwiseLinregDSSparseRewritesCPFuseNoRedundancy() {
-		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, TestType.FUSE_NO_REDUNDANCY);
+		runStepwiseTest(StepwiseType.LINREG_DS, true, true, ExecType.CP, CodegenTestType.FUSE_NO_REDUNDANCY);
 	}
 
 	
-	private void runStepwiseTest( StepwiseType type, boolean sparse, boolean rewrites, ExecType instType, TestType testType)
+	private void runStepwiseTest( StepwiseType type, boolean sparse, boolean rewrites, ExecType instType, CodegenTestType CodegenTestType)
 	{
 		boolean oldFlag = OptimizerUtils.ALLOW_ALGEBRAIC_SIMPLIFICATION;
 		ExecMode platformOld = rtplatform;
@@ -177,7 +168,7 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 			case SPARK: rtplatform = ExecMode.SPARK; break;
 			default: rtplatform = ExecMode.HYBRID; break;
 		}
-		currentTestType = testType;
+		currentTestType = CodegenTestType;
 		boolean sparkConfigOld = DMLScript.USE_LOCAL_SPARK_CONFIG;
 		if( rtplatform == ExecMode.SPARK || rtplatform == ExecMode.HYBRID )
 			DMLScript.USE_LOCAL_SPARK_CONFIG = true;
@@ -230,17 +221,6 @@ public class AlgorithmStepwiseRegression extends AutomatedTestBase
 	 */
 	@Override
 	protected File getConfigTemplateFile() {
-		// Instrumentation in this test's output log to show custom configuration file used for template.
-		String message = "This test case overrides default configuration with ";
-		if(currentTestType == TestType.FUSE_ALL){
-			System.out.println(message + TEST_CONF_FILE_FUSE_ALL.getPath());
-			return TEST_CONF_FILE_FUSE_ALL;
-		} else if(currentTestType == TestType.FUSE_NO_REDUNDANCY){
-			System.out.println(message + TEST_CONF_FILE_FUSE_NO_REDUNDANCY.getPath());
-			return TEST_CONF_FILE_FUSE_NO_REDUNDANCY;
-		} else {
-			System.out.println(message + TEST_CONF_FILE_DEFAULT.getPath());
-			return TEST_CONF_FILE_DEFAULT;
-		}
+		return getCodegenConfigFile(SCRIPT_DIR + TEST_DIR, currentTestType);
 	}
 }