package at.ac.tuwien.iter.matlab; import java.util.List; import matlabcontrol.MatlabConnectionException; import matlabcontrol.MatlabInvocationException; import org.apache.tapestry5.ioc.Registry; import org.apache.tapestry5.ioc.RegistryBuilder; import org.apache.tapestry5.ioc.services.RegistryShutdownHub; import org.apache.tapestry5.ioc.services.SymbolSource; import org.apache.tapestry5.ioc.services.TypeCoercer; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.slf4j.LoggerFactory; import at.ac.tuwien.iter.data.TestResult; import at.ac.tuwien.iter.executors.ConfigurationManager; import at.ac.tuwien.iter.modules.IterModule; import at.ac.tuwien.iter.services.impl.matlab.MatlabControlImpl; import at.ac.tuwien.iter.utils.IterSymbolsNames; public class AddTestExecutionTest { private MatlabControlImpl dao; private static Registry registry; @BeforeClass public static void setupOctaveEngine() { RegistryBuilder builder = new RegistryBuilder(); // IOCUtilities.addDefaultModules(builder); builder.add(IterModule.class); registry = builder.build(); } @Before public void setup() throws MatlabConnectionException, MatlabInvocationException { // I suspect that this will open a new matlab ! dao = new MatlabControlImpl( LoggerFactory.getLogger(MatlabControlImpl.class), registry.getService(RegistryShutdownHub.class), registry .getService(SymbolSource.class).valueForSymbol( IterSymbolsNames.GPML_DIR), registry .getService(SymbolSource.class).valueForSymbol( IterSymbolsNames.ITER_DIR), 10, 0.00001, 0.0001, new double[] { 0.0, 0.0, 0.0, 0.0 }, new double[] { 10.0, 10.0, 10.0, 10.0 }, 10, "src/test/resources/iter-matlab.log"); } // @Test // public void addTestExecutions() throws MatlabInvocationException { // double[] stateSequence = new double[] { 1.0, 1.0, 1.0, 2.0, 3.0, 2.0, // 3.0, 4.0, 4.0, 4.0, 5.0, 6.0, 5.0, 5.0, 5.0, 5.0, 6.0, 5.0, // 6.0, 5.0, 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, // 1.0, 1.0 }; // double[] parameters = new double[] { 10.0, 0.0, 5.0, 10.0 }; // // dao.addTestExecution(stateSequence, parameters); // // dao.addTestExecution(stateSequence, parameters); // // } @Test public void getBestInputs() throws MatlabInvocationException { ConfigurationManager configurationManager = new ConfigurationManager( null, "bla", "bla", null); double[] stateSequence = new double[] { 1.0, 1.0, 1.0, 2.0, 3.0, 2.0, 3.0, 4.0, 4.0, 4.0, 5.0, 6.0, 5.0, 5.0, 5.0, 5.0, 6.0, 5.0, 6.0, 5.0, 4.0, 4.0, 3.0, 3.0, 2.0, 2.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0 }; double[] parameters = new double[] { 10.0, 0.0, 5.0, 0.1 }; TypeCoercer typeCoercer = registry.getService(TypeCoercer.class); TestResult testResult = null; testResult = TestResult.newTestResult( at.ac.tuwien.iter.data.Test.newInstance("", "", "", "", typeCoercer.coerce(parameters, Number[].class)), configurationManager.getCustomerName(), configurationManager .getServiceName()); testResult.setStates(stateSequence); dao.addTestExecution(testResult); stateSequence = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 9.0, 8.0, 7.0, 6.0, 5.0, 4.0, 3.0, 2.0, 1.0 }; parameters = new double[] { 1.0, 1.0, 2.0, 0.2 }; testResult = TestResult.newTestResult( at.ac.tuwien.iter.data.Test.newInstance("", "", "", "", typeCoercer.coerce(parameters, Number[].class)), configurationManager.getCustomerName(), configurationManager .getServiceName()); testResult.setStates(stateSequence); dao.addTestExecution(testResult); stateSequence = new double[] { 1.0, 2.0, 3.0, 4.0, 5.0, 5.0, 4.0, 3.0, 2.0, 1.0 }; parameters = new double[] { 1.0, 0.0, 0.0, 0.9 }; testResult = TestResult.newTestResult( at.ac.tuwien.iter.data.Test.newInstance("", "", "", "", typeCoercer.coerce(parameters, Number[].class)), configurationManager.getCustomerName(), configurationManager .getServiceName()); testResult.setStates(stateSequence); dao.addTestExecution(testResult); List<double[]> results = dao.getBestPlasticityTests(4); for (double[] row : results) { for (int col = 0; col < row.length; col++) { System.out.print(row[col] + " "); } System.out.print("\n"); } } @After public void closeMatlab() throws MatlabInvocationException { dao.exit(); } @AfterClass public static void shutdown() { registry.shutdown(); } }