diff options
author | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2019-09-08 16:12:55 -0400 |
---|---|---|
committer | ArenBabikian <aren.babikian@mail.mcgill.ca> | 2020-06-07 19:42:29 -0400 |
commit | 4aee5bcc86b9e6b515fbbdac030df42147be7dc1 (patch) | |
tree | ce9f8aa1cf0ab33d4304b9ce3a0abf4beb7b757a /Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src | |
parent | VAMPIRE: complete first version of VampireModelInterpretation (diff) | |
download | VIATRA-Generator-4aee5bcc86b9e6b515fbbdac030df42147be7dc1.tar.gz VIATRA-Generator-4aee5bcc86b9e6b515fbbdac030df42147be7dc1.tar.zst VIATRA-Generator-4aee5bcc86b9e6b515fbbdac030df42147be7dc1.zip |
VAMPIRE: Implement wf constraint handling
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src')
-rw-r--r-- | Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend | 42 |
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 | |||
7 | import functionalarchitecture.FunctionalInterface | 7 | import functionalarchitecture.FunctionalInterface |
8 | import functionalarchitecture.FunctionalOutput | 8 | import functionalarchitecture.FunctionalOutput |
9 | import functionalarchitecture.FunctionalarchitecturePackage | 9 | import functionalarchitecture.FunctionalarchitecturePackage |
10 | import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
@@ -14,15 +15,14 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | |||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult |
15 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore | 16 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore |
16 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | 17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic |
18 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration | ||
17 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic |
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation | 20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation |
19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation | ||
20 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml | ||
21 | import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser | ||
22 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | 21 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace |
23 | import java.util.HashMap | 22 | import java.util.HashMap |
24 | import org.eclipse.emf.ecore.resource.Resource | 23 | import org.eclipse.emf.ecore.resource.Resource |
25 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 24 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
25 | import functionalarchitecture.FAMTerminator | ||
26 | 26 | ||
27 | class FAMTest { | 27 | class 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 | ||