| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| package org.apache.sysds.test; |
| |
| import java.util.HashMap; |
| |
| |
| |
| /** |
| * <p> |
| * A configuration class which can be used to organize different tests in a test class. A test configuration can hold |
| * information about all the output files which can be used for comparisons and have to be removed after the test run. |
| * It can also handle variables for a DML script. |
| * </p> |
| * |
| * |
| */ |
| public class TestConfiguration |
| { |
| /** directory where the test can be found */ |
| private String testDirectory = null; |
| |
| /** name of the test script */ |
| private String testScript = null; |
| |
| /** list of output files which are produced by the test */ |
| private String[] outputFiles = null; |
| |
| /** list of variables which can be replaced in the script */ |
| private HashMap<String, String> variables = new HashMap<>(); |
| |
| /** |
| * <p> |
| * Creates a new test configuration with the name of the test script and the output files which are produced by |
| * the test. |
| * </p> |
| * |
| * @param testScript test script |
| * @param outputFiles output files |
| * @deprecated use TestConfiguration(String, String, String[]) instead |
| */ |
| @Deprecated |
| public TestConfiguration(String testScript, String[] outputFiles) { |
| this.testScript = testScript; |
| this.outputFiles = outputFiles; |
| } |
| |
| /** |
| * <p> |
| * Creates a new test configuration with the directory where the test data can be found, the name of the test |
| * script and the output files which are produced by the test. |
| * </p> |
| * |
| * @param testDirectory test directory |
| * @param testScript test script |
| * @param outputFiles output files |
| */ |
| public TestConfiguration(String testDirectory, String testScript, String[] outputFiles) { |
| this.testDirectory = testDirectory; |
| this.testScript = testScript; |
| this.outputFiles = outputFiles; |
| } |
| |
| /** |
| * <p> |
| * Creates a new test configuration with the directory where the test data can be found and the name of the test |
| * script. |
| * </p> |
| * |
| * @param testDirectory test directory |
| * @param testScript test script |
| */ |
| public TestConfiguration(String testDirectory, String testScript) { |
| this.testDirectory = testDirectory; |
| this.testScript = testScript; |
| } |
| |
| /** |
| * <p>Adds a variable to the test configuration.</p> |
| * |
| * @param variableName variable name |
| * @param variableValue variable value |
| */ |
| public void addVariable(String variableName, String variableValue) { |
| variables.put(variableName, variableValue); |
| } |
| |
| /** |
| * <p>Adds a variable to the test configuration.</p> |
| * |
| * @param variableName variable name |
| * @param variableValue variable value |
| */ |
| public void addVariable(String variableName, Boolean variableValue) { |
| variables.put(variableName, variableValue.toString()); |
| } |
| |
| /** |
| * <p>Adds a variable to the test configuration.</p> |
| * |
| * @param variableName variable name |
| * @param variableValue variable value |
| */ |
| public void addVariable(String variableName, double variableValue) { |
| variables.put(variableName, TestUtils.getStringRepresentationForDouble(variableValue)); |
| } |
| |
| /** |
| * <p>Adds a variable to the test configuration.</p> |
| * |
| * @param variableName variable name |
| * @param variableValue variable value |
| */ |
| public void addVariable(String variableName, long variableValue) { |
| variables.put(variableName, Long.toString(variableValue)); |
| } |
| |
| /** |
| * <p>Provides the directory which contains the test data.</p> |
| * |
| * @return test directory |
| */ |
| public String getTestDirectory() { |
| return testDirectory; |
| } |
| |
| /** |
| * <p>Provides the name of the test script.</p> |
| * |
| * @return test script name |
| */ |
| public String getTestScript() { |
| return testScript; |
| } |
| |
| /** |
| * <p>Provides the list of specified output files for the test.</p> |
| * |
| * @return output files |
| */ |
| public String[] getOutputFiles() { |
| return outputFiles; |
| } |
| |
| /** |
| * <p>Provides the list of the specified variables with their replacements.</p> |
| * |
| * @return variables |
| */ |
| public HashMap<String, String> getVariables() { |
| return variables; |
| } |
| |
| } |