try
{
PTASequenceEngine initialTracesLocker = null, initialTracesExporter = null;
{
ErlangRuntime newRuntime = new ErlangRuntime();newRuntime.startRunner();
//testLockerLearning(cfg);
{
Configuration cfg = config.copy();cfg.setErlangMboxName(newRuntime.createNewRunner().getRunnerName());
LearnerEvaluationConfiguration learnerConfig = new LearnerEvaluationConfiguration(cfg);ErlangModule.setupErlangConfiguration(learnerConfig.config,new File(ErlangExamples,"locker/locker.erl"));
learnerConfig.config.setErlangAlphabetAnyElements(EXPANSIONOFANY.ANY_WIBBLE);learnerConfig.config.setErlWaitForWrapperDelay(wrapperDelay);
//learnerConfig.config.setScoreForAutomergeUponRestart(1);
ErlangOracleLearner learner = new ErlangOracleLearner(null,learnerConfig);
initialTracesLocker = learner.GenerateInitialTraces(5);
}
{
Configuration cfg = config.copy();cfg.setErlangMboxName(newRuntime.createNewRunner().getRunnerName());
LearnerEvaluationConfiguration learnerConfig = new LearnerEvaluationConfiguration(cfg);ErlangModule.setupErlangConfiguration(learnerConfig.config,new File(ErlangExamples,"exporter/exporter.erl"));
learnerConfig.config.setErlangAlphabetAnyElements(EXPANSIONOFANY.ANY_WIBBLE);learnerConfig.config.setErlWaitForWrapperDelay(wrapperDelay);
learnerConfig.config.setUseErlangOutputs(true);learnerConfig.config.setErlangCompileIntoBeamDirectory(true);
ErlangOracleLearner learner = new ErlangOracleLearner(null,learnerConfig);
initialTracesExporter = learner.GenerateInitialTraces(5);
}
}
final PTASequenceEngine initialTracesLockerFinal = initialTracesLocker, initialTracesExporterFinal = initialTracesExporter;
for(int i=0;i< taskNumber;++i)
{
runner.submit(new Callable<Integer>(){
@Override
public Integer call() throws Exception {
ErlangRuntime newRuntime = new ErlangRuntime();newRuntime.startRunner();
Configuration cfg = config.copy();cfg.setErlangMboxName(newRuntime.createNewRunner().getRunnerName());
LearnerEvaluationConfiguration learnerConfig = new LearnerEvaluationConfiguration(cfg);ErlangModule.setupErlangConfiguration(learnerConfig.config,new File(ErlangExamples,"locker/locker.erl"));
learnerConfig.config.setErlangAlphabetAnyElements(EXPANSIONOFANY.ANY_WIBBLE);learnerConfig.config.setErlWaitForWrapperDelay(wrapperDelay);
//learnerConfig.config.setScoreForAutomergeUponRestart(1);
ErlangOracleLearner learner = new ErlangOracleLearner(null,learnerConfig);
learner.init(initialTracesLockerFinal, 0, 0);
Assert.assertEquals(237,learner.getTentativeAutomaton().getStateNumber());
Assert.assertEquals(11,learner.getTentativeAutomaton().pathroutines.computeAlphabet().size());
Assert.assertEquals(236,learner.getTentativeAutomaton().pathroutines.countEdges());
LearnerGraph locker = learner.learnMachine();
Assert.assertEquals(6,locker.getStateNumber());
Assert.assertEquals(11,locker.pathroutines.computeAlphabet().size());
Assert.assertEquals(51,locker.pathroutines.countEdges());
return 0;
}});
runner.submit(new Callable<Integer>(){
@Override
public Integer call() throws Exception {
ErlangRuntime newRuntime = new ErlangRuntime();newRuntime.startRunner();
Configuration cfg = config.copy();cfg.setErlangMboxName(newRuntime.createNewRunner().getRunnerName());
LearnerEvaluationConfiguration learnerConfig = new LearnerEvaluationConfiguration(cfg);ErlangModule.setupErlangConfiguration(learnerConfig.config,new File(ErlangExamples,"exporter/exporter.erl"));
learnerConfig.config.setErlangAlphabetAnyElements(EXPANSIONOFANY.ANY_WIBBLE);learnerConfig.config.setErlWaitForWrapperDelay(wrapperDelay);
learnerConfig.config.setUseErlangOutputs(true);learnerConfig.config.setErlangCompileIntoBeamDirectory(true);
ErlangOracleLearner learner = new ErlangOracleLearner(null,learnerConfig);