aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-09-08 16:12:55 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-09-08 16:12:55 -0400
commit71108d462c2695d917e87acea6f49d3f2954c6f4 (patch)
tree755962edeb635f46f1c860e2ff4dcc0235099597 /Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend
parentVAMPIRE: complete first version of VampireModelInterpretation (diff)
downloadVIATRA-Generator-71108d462c2695d917e87acea6f49d3f2954c6f4.tar.gz
VIATRA-Generator-71108d462c2695d917e87acea6f49d3f2954c6f4.tar.zst
VIATRA-Generator-71108d462c2695d917e87acea6f49d3f2954c6f4.zip
VAMPIRE: Implement wf constraint handling
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend42
1 files changed, 22 insertions, 20 deletions
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
7import functionalarchitecture.FunctionalInterface 7import functionalarchitecture.FunctionalInterface
8import functionalarchitecture.FunctionalOutput 8import functionalarchitecture.FunctionalOutput
9import functionalarchitecture.FunctionalarchitecturePackage 9import functionalarchitecture.FunctionalarchitecturePackage
10import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns
10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel 13import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
@@ -14,15 +15,14 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult 15import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
15import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore 16import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
16import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic 17import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
18import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
17import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation 20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
21import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser
22import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 21import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
23import java.util.HashMap 22import java.util.HashMap
24import org.eclipse.emf.ecore.resource.Resource 23import org.eclipse.emf.ecore.resource.Resource
25import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 24import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
25import functionalarchitecture.FAMTerminator
26 26
27class FAMTest { 27class FAMTest {
28 def static void main(String[] args) { 28 def static void main(String[] args) {
@@ -47,15 +47,15 @@ class FAMTest {
47 // Load DSL 47 // Load DSL
48 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) 48 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
49 val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi") 49 val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi")
50// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) 50 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
51 val queries = null 51// val queries = null
52 52
53 println("DSL loaded") 53 println("DSL loaded")
54 54
55 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) 55 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
56 var problem = modelGenerationProblem.output 56 var problem = modelGenerationProblem.output
57 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output 57 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output
58// problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output 58 problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output
59 workspace.writeModel(problem, "Fam.logicproblem") 59 workspace.writeModel(problem, "Fam.logicproblem")
60 60
61 println("Problem created") 61 println("Problem created")
@@ -73,7 +73,8 @@ class FAMTest {
73// classMapMin.put(FunctionalArchitectureModel, 1) 73// classMapMin.put(FunctionalArchitectureModel, 1)
74// classMapMin.put(Function, 1) 74// classMapMin.put(Function, 1)
75// classMapMin.put(FunctionalInterface, 2) 75// classMapMin.put(FunctionalInterface, 2)
76 classMapMin.put(FunctionalOutput, 3) 76// classMapMin.put(FunctionalOutput, 3)
77 classMapMin.put(FAMTerminator, 1)
77 78
78 val typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.trace) 79 val typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.trace)
79 80
@@ -93,7 +94,7 @@ class FAMTest {
93 94
94 it.typeScopes.minNewElements = 4//24 95 it.typeScopes.minNewElements = 4//24
95 it.typeScopes.maxNewElements = 5//25 96 it.typeScopes.maxNewElements = 5//25
96// if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin 97 if(typeMapMin.size != 0) it.typeScopes.minNewElementsByType = typeMapMin
97// if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax 98// if(typeMapMin.size != 0) it.typeScopes.maxNewElementsByType = typeMapMax
98 it.contCycleLevel = 5 99 it.contCycleLevel = 5
99 it.uniquenessDuplicates = false 100 it.uniquenessDuplicates = false
@@ -108,22 +109,23 @@ class FAMTest {
108// Literal(modelGenerationProblem.trace, ecore2Logic.allLiteralsInScope(modelGenerationProblem.trace).get(0) ) 109// Literal(modelGenerationProblem.trace, ecore2Logic.allLiteralsInScope(modelGenerationProblem.trace).get(0) )
109// ) 110// )
110// println((ecore2Logic.allAttributesInScope(modelGenerationProblem.trace)).get(0).EAttributeType) 111// println((ecore2Logic.allAttributesInScope(modelGenerationProblem.trace)).get(0).EAttributeType)
112 print(interpretations.class)
111 for (interpretation : interpretations) { 113 for (interpretation : interpretations) {
112 val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace) 114 val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
113 workspace.writeModel(model, "model.xmi") 115 workspace.writeModel(model, "model.xmi")
114 116
115 val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations 117// val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations
116 if (representation instanceof PartialInterpretation) { 118// if (representation instanceof PartialInterpretation) {
117 val vis1 = new PartialInterpretation2Gml 119// val vis1 = new PartialInterpretation2Gml
118 val gml = vis1.transform(representation) 120// val gml = vis1.transform(representation)
119 workspace.writeText("model.gml", gml) 121// workspace.writeText("model.gml", gml)
120 122//
121 val vis2 = new GraphvizVisualiser 123// val vis2 = new GraphvizVisualiser
122 val dot = vis2.visualiseConcretization(representation) 124// val dot = vis2.visualiseConcretization(representation)
123 dot.writeToFile(workspace, "model.png") 125// dot.writeToFile(workspace, "model.png")
124 } else { 126// } else {
125 println("ERROR") 127// println("ERROR")
126 } 128// }
127// look here: hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor 129// look here: hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor
128 } 130 }
129 131