From 71108d462c2695d917e87acea6f49d3f2954c6f4 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Sun, 8 Sep 2019 16:12:55 -0400 Subject: VAMPIRE: Implement wf constraint handling --- .../ecse/dslreasoner/vampire/icse/FAMTest.xtend | 42 +++++++++++----------- 1 file changed, 22 insertions(+), 20 deletions(-) (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend') diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend index 1045189c..3c6a65ca 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend @@ -7,6 +7,7 @@ import functionalarchitecture.FunctionalArchitectureModel import functionalarchitecture.FunctionalInterface import functionalarchitecture.FunctionalOutput import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel @@ -14,15 +15,14 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic +import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation -import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation -import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml -import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace import java.util.HashMap import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import functionalarchitecture.FAMTerminator class FAMTest { def static void main(String[] args) { @@ -47,15 +47,15 @@ class FAMTest { // Load DSL val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi") -// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) - val queries = null + val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) +// val queries = null println("DSL loaded") val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) var problem = modelGenerationProblem.output problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output -// problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output + problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output workspace.writeModel(problem, "Fam.logicproblem") println("Problem created") @@ -73,7 +73,8 @@ class FAMTest { // classMapMin.put(FunctionalArchitectureModel, 1) // classMapMin.put(Function, 1) // classMapMin.put(FunctionalInterface, 2) - classMapMin.put(FunctionalOutput, 3) +// classMapMin.put(FunctionalOutput, 3) + classMapMin.put(FAMTerminator, 1) val typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.trace) @@ -93,7 +94,7 @@ class FAMTest { it.typeScopes.minNewElements = 4//24 it.typeScopes.maxNewElements = 5//25 -// if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin + if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin // if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax it.contCycleLevel = 5 it.uniquenessDuplicates = false @@ -108,22 +109,23 @@ class FAMTest { // Literal(modelGenerationProblem.trace, ecore2Logic.allLiteralsInScope(modelGenerationProblem.trace).get(0) ) // ) // println((ecore2Logic.allAttributesInScope(modelGenerationProblem.trace)).get(0).EAttributeType) + print(interpretations.class) for (interpretation : interpretations) { val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace) workspace.writeModel(model, "model.xmi") - val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations - if (representation instanceof PartialInterpretation) { - val vis1 = new PartialInterpretation2Gml - val gml = vis1.transform(representation) - workspace.writeText("model.gml", gml) - - val vis2 = new GraphvizVisualiser - val dot = vis2.visualiseConcretization(representation) - dot.writeToFile(workspace, "model.png") - } else { - println("ERROR") - } +// val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations +// if (representation instanceof PartialInterpretation) { +// val vis1 = new PartialInterpretation2Gml +// val gml = vis1.transform(representation) +// workspace.writeText("model.gml", gml) +// +// val vis2 = new GraphvizVisualiser +// val dot = vis2.visualiseConcretization(representation) +// dot.writeToFile(workspace, "model.png") +// } else { +// println("ERROR") +// } // look here: hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor } -- cgit v1.2.3-54-g00ecf