package vroom.optimization.online.jmsa; import static org.junit.Assert.*; import java.io.File; import java.io.IOException; import org.junit.Test; import vroom.common.utilities.params.ParameterKey; import vroom.optimization.online.jmsa.benchmarking.NovoaRun; import vroom.optimization.online.jmsa.components.ScenarioOptimizerBase; public class MSAGlobalParametersTest { @Test public void testLoadParameters() { System.out.println("Testing MSAGlobalParameters.loadParameters"); // Save and load all default parameters MSAGlobalParameters dafaults = new MSAGlobalParameters(); NovoaRun.loadDefaultParameters(dafaults); String file = "data/test/MSAGlobalParametersTest.loadParams"; try { dafaults.saveParameters(new File(file), true); MSAGlobalParameters loadedDefaults = new MSAGlobalParameters(); loadedDefaults.loadParameters(new File(file)); for (ParameterKey<?> key : loadedDefaults.getRegisteredKeys()) { assertEquals(String.format("Different values for key %s: original: %s, loaded: %s\n", key, dafaults.get(key), loadedDefaults.get(key)), dafaults.get(key), loadedDefaults.get(key)); } for (ParameterKey<?> key : dafaults.getRegisteredKeys()) { assertEquals(String.format("Different values for key %s: original: %s, loaded: %s\n", key, dafaults.get(key), loadedDefaults.get(key)), dafaults.get(key), loadedDefaults.get(key)); } } catch (Exception e) { fail(String.format("%s (%s)", e.getClass().getSimpleName(), e.getMessage())); } file = "data/test/MSAGlobalParametersTest.loadParamsSingle"; // Save only one parameter MSAGlobalParameters subset = new MSAGlobalParameters(); subset.set(MSAGlobalParameters.SCENARIO_OPTIMIZER_CLASS, ScenarioOptimizerBase.class); try { subset.saveParameters(new File(file), true); MSAGlobalParameters loadedSubset = new MSAGlobalParameters(); NovoaRun.loadDefaultParameters(loadedSubset); loadedSubset.loadParameters(new File(file)); for (ParameterKey<?> key : loadedSubset.getRegisteredKeys()) { if (key != MSAGlobalParameters.SCENARIO_OPTIMIZER_CLASS) { assertEquals( String.format("Different values for key %s: original: %s, loaded: %s\n", key, dafaults.get(key), loadedSubset.get(key)), dafaults.get(key), loadedSubset.get(key)); } else { assertEquals("Value of key SCENARIO_OPTIMIZER_CLASS should be ScenarioOptimizerBase", ScenarioOptimizerBase.class, loadedSubset.get(key)); } } } catch (Exception e) { fail(String.format("%s (%s)", e.getClass().getSimpleName(), e.getMessage())); System.exit(1); } } @Test public void testSaveParameters() { System.out.println("Testing MSAGlobalParameters.saveParameters"); MSAGlobalParameters params = new MSAGlobalParameters(); NovoaRun.loadDefaultParameters(params); String file = "data/test/MSAGlobalParametersTest..saveParams"; try { System.out.println("Savings params to file: " + file); params.saveParameters(new File(file), true); } catch (IOException e) { fail(String.format("%s (%s)", e.getClass().getSimpleName(), e.getMessage())); } } }