aboutsummaryrefslogtreecommitdiffstats
path: root/Tests
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
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')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem68
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend42
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin4554 -> 4554 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin7087 -> 7364 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin6204 -> 6204 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin6456 -> 6456 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin7055 -> 7055 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java32
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4997 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6500 -> 6500 bytes
11 files changed, 102 insertions, 40 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
index dcbb21eb..fe14bb31 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/output/FAMTest/Fam.logicproblem
@@ -1,5 +1,5 @@
1<?xml version="1.0" encoding="ASCII"?> 1<?xml version="1.0" encoding="ASCII"?>
2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language"> 2<language:LogicProblem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/ecore2logicannotation" xmlns:language="http://www.bme.hu/mit/inf/dslreasoner/logic/model/problem" xmlns:language_1="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language" xmlns:viatra2logicannotations="http://www.bme.hu/mit/inf/dslreasoner/logic/model/language/viatra2logicannotation">
3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/> 3 <types xsi:type="language_1:TypeDeclaration" name="FunctionalElement class" subtypes="//@types.2" isAbstract="true"/>
4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/> 4 <types xsi:type="language_1:TypeDeclaration" name="FunctionalArchitectureModel class" subtypes="//@types.10 //@types.11" isAbstract="true"/>
5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/> 5 <types xsi:type="language_1:TypeDeclaration" name="Function class" supertypes="//@types.0"/>
@@ -496,6 +496,22 @@
496 </expression> 496 </expression>
497 </value> 497 </value>
498 </assertions> 498 </assertions>
499 <assertions name="errorpattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.20">
500 <value xsi:type="language_1:Forall">
501 <quantifiedVariables name="p0">
502 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
503 </quantifiedVariables>
504 <quantifiedVariables name="p1">
505 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
506 </quantifiedVariables>
507 <expression xsi:type="language_1:Not">
508 <operand xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15">
509 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.0"/>
510 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@assertions.19/@value/@quantifiedVariables.1"/>
511 </operand>
512 </expression>
513 </value>
514 </assertions>
499 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement"> 515 <relations xsi:type="language_1:RelationDeclaration" name="interface reference FunctionalElement">
500 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/> 516 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.0"/>
501 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/> 517 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.5"/>
@@ -556,11 +572,57 @@
556 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/> 572 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.2"/>
557 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/> 573 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.9"/>
558 </relations> 574 </relations>
575 <relations xsi:type="language_1:RelationDefinition" name="pattern hu bme mit inf dslreasoner domains transima fam terminatorAndInformation" annotations="//@annotations.19">
576 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
577 <parameters xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
578 <variables name="parameter T">
579 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.3"/>
580 </variables>
581 <variables name="parameter I">
582 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.4"/>
583 </variables>
584 <value xsi:type="language_1:Or">
585 <operands xsi:type="language_1:Exists">
586 <quantifiedVariables name="variable Out">
587 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.7"/>
588 </quantifiedVariables>
589 <expression xsi:type="language_1:And">
590 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.11">
591 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
592 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
593 </operands>
594 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
595 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.0/@quantifiedVariables.0"/>
596 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
597 </operands>
598 </expression>
599 </operands>
600 <operands xsi:type="language_1:Exists">
601 <quantifiedVariables name="variable In">
602 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
603 </quantifiedVariables>
604 <expression xsi:type="language_1:And">
605 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.7">
606 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.1"/>
607 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/>
608 </operands>
609 <operands xsi:type="language_1:InstanceOf">
610 <value xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/>
611 <range xsi:type="language_1:ComplexTypeReference" referred="//@types.6"/>
612 </operands>
613 <operands xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.12">
614 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@value/@operands.1/@quantifiedVariables.0"/>
615 <parameterSubstitutions xsi:type="language_1:SymbolicValue" symbolicReference="//@relations.15/@variables.0"/>
616 </operands>
617 </expression>
618 </operands>
619 </value>
620 </relations>
559 <elements name="Root literal FunctionType" definedInType="//@types.9"/> 621 <elements name="Root literal FunctionType" definedInType="//@types.9"/>
560 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/> 622 <elements name="Intermediate literal FunctionType" definedInType="//@types.9"/>
561 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/> 623 <elements name="Leaf literal FunctionType" definedInType="//@types.9"/>
562 <elements name="o 1" definedInType="//@types.10"/> 624 <elements name="o 1" definedInType="//@types.10"/>
563 <containmentHierarchies typesOrderedInHierarchy="//@types.5 //@types.4 //@types.3 //@types.6 //@types.7 //@types.8 //@types.1 //@types.0 //@types.2 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/> 625 <containmentHierarchies typesOrderedInHierarchy="//@types.4 //@types.5 //@types.2 //@types.3 //@types.7 //@types.6 //@types.8 //@types.0 //@types.1 //@types.10 //@types.11" containmentRelations="//@relations.0 //@relations.3 //@relations.4 //@relations.8 //@relations.11 //@relations.12"/>
564 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/> 626 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.0" relation="//@relations.0" upper="1"/>
565 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/> 627 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.1" relation="//@relations.1" lower="1"/>
566 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/> 628 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.2" relation="//@relations.1" upper="1"/>
@@ -580,4 +642,6 @@
580 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/> 642 <annotations xsi:type="ecore2logicannotations:InverseRelationAssertion" target="//@assertions.16" inverseA="//@relations.8" inverseB="//@relations.13"/>
581 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/> 643 <annotations xsi:type="ecore2logicannotations:LowerMultiplicityAssertion" target="//@assertions.17" relation="//@relations.14" lower="1"/>
582 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/> 644 <annotations xsi:type="ecore2logicannotations:UpperMultiplicityAssertion" target="//@assertions.18" relation="//@relations.14" upper="1"/>
645 <annotations xsi:type="viatra2logicannotations:TransfomedViatraQuery" target="//@relations.15" patternFullyQualifiedName="hu.bme.mit.inf.dslreasoner.domains.transima.fam.terminatorAndInformation"/>
646 <annotations xsi:type="viatra2logicannotations:TransformedViatraWellformednessConstraint" target="//@assertions.19" query="//@annotations.19"/>
583</language:LogicProblem> 647</language:LogicProblem>
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
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
index 771e1d1a..775c1663 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
index ad844992..4e802213 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
index 7dcb4392..f7e42672 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
index dc040005..ae8b52eb 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
index 2bb8be0d..73b1182c 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
index 8ef096d9..7f6dfcd5 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java
@@ -3,10 +3,12 @@ package ca.mcgill.ecse.dslreasoner.vampire.icse;
3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; 3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
6import functionalarchitecture.FAMTerminator;
6import functionalarchitecture.Function; 7import functionalarchitecture.Function;
7import functionalarchitecture.FunctionalArchitectureModel; 8import functionalarchitecture.FunctionalArchitectureModel;
8import functionalarchitecture.FunctionalOutput; 9import functionalarchitecture.FunctionalOutput;
9import functionalarchitecture.FunctionalarchitecturePackage; 10import functionalarchitecture.FunctionalarchitecturePackage;
11import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; 12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; 13import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 14import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
@@ -20,12 +22,10 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
20import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 22import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
21import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; 23import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
22import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; 24import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
25import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration;
26import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
23import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; 27import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
24import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation; 28import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation;
25import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
26import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml;
27import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretationVisualisation;
28import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualiser;
29import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 29import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
30import java.util.HashMap; 30import java.util.HashMap;
31import java.util.List; 31import java.util.List;
@@ -37,7 +37,6 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
37import org.eclipse.xtend2.lib.StringConcatenation; 37import org.eclipse.xtend2.lib.StringConcatenation;
38import org.eclipse.xtext.xbase.lib.Exceptions; 38import org.eclipse.xtext.xbase.lib.Exceptions;
39import org.eclipse.xtext.xbase.lib.InputOutput; 39import org.eclipse.xtext.xbase.lib.InputOutput;
40import org.eclipse.xtext.xbase.lib.IteratorExtensions;
41import org.eclipse.xtext.xbase.lib.ObjectExtensions; 40import org.eclipse.xtext.xbase.lib.ObjectExtensions;
42import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 41import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
43 42
@@ -64,12 +63,14 @@ public class FAMTest {
64 InputOutput.<String>println("Input and output workspaces are created"); 63 InputOutput.<String>println("Input and output workspaces are created");
65 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); 64 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE);
66 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi"); 65 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi");
67 final Object queries = null; 66 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance());
68 InputOutput.<String>println("DSL loaded"); 67 InputOutput.<String>println("DSL loaded");
69 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); 68 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
70 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); 69 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
71 LogicProblem problem = modelGenerationProblem.getOutput(); 70 LogicProblem problem = modelGenerationProblem.getOutput();
72 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); 71 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput();
72 Viatra2LogicConfiguration _viatra2LogicConfiguration = new Viatra2LogicConfiguration();
73 problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, _viatra2LogicConfiguration).getOutput();
73 workspace.writeModel(problem, "Fam.logicproblem"); 74 workspace.writeModel(problem, "Fam.logicproblem");
74 InputOutput.<String>println("Problem created"); 75 InputOutput.<String>println("Problem created");
75 long startTime = System.currentTimeMillis(); 76 long startTime = System.currentTimeMillis();
@@ -77,7 +78,7 @@ public class FAMTest {
77 VampireSolver _vampireSolver = new VampireSolver(); 78 VampireSolver _vampireSolver = new VampireSolver();
78 reasoner = _vampireSolver; 79 reasoner = _vampireSolver;
79 final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>(); 80 final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>();
80 classMapMin.put(FunctionalOutput.class, Integer.valueOf(3)); 81 classMapMin.put(FAMTerminator.class, Integer.valueOf(1));
81 final Map<Type, Integer> typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); 82 final Map<Type, Integer> typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace());
82 final HashMap<Class, Integer> classMapMax = new HashMap<Class, Integer>(); 83 final HashMap<Class, Integer> classMapMax = new HashMap<Class, Integer>();
83 classMapMax.put(FunctionalArchitectureModel.class, Integer.valueOf(3)); 84 classMapMax.put(FunctionalArchitectureModel.class, Integer.valueOf(3));
@@ -90,27 +91,22 @@ public class FAMTest {
90 it.documentationLevel = DocumentationLevel.FULL; 91 it.documentationLevel = DocumentationLevel.FULL;
91 it.typeScopes.minNewElements = 4; 92 it.typeScopes.minNewElements = 4;
92 it.typeScopes.maxNewElements = 5; 93 it.typeScopes.maxNewElements = 5;
94 int _size = typeMapMin.size();
95 boolean _notEquals = (_size != 0);
96 if (_notEquals) {
97 it.typeScopes.minNewElementsByType = typeMapMin;
98 }
93 it.contCycleLevel = 5; 99 it.contCycleLevel = 5;
94 it.uniquenessDuplicates = false; 100 it.uniquenessDuplicates = false;
95 }; 101 };
96 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); 102 final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function);
97 LogicResult solution = reasoner.solve(problem, vampireConfig, workspace); 103 LogicResult solution = reasoner.solve(problem, vampireConfig, workspace);
98 List<? extends LogicModelInterpretation> interpretations = reasoner.getInterpretations(((ModelResult) solution)); 104 List<? extends LogicModelInterpretation> interpretations = reasoner.getInterpretations(((ModelResult) solution));
105 InputOutput.<Class<? extends List>>print(interpretations.getClass());
99 for (final LogicModelInterpretation interpretation : interpretations) { 106 for (final LogicModelInterpretation interpretation : interpretations) {
100 { 107 {
101 final EObject model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.getTrace()); 108 final EObject model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.getTrace());
102 workspace.writeModel(model, "model.xmi"); 109 workspace.writeModel(model, "model.xmi");
103 final PartialInterpretation representation = im2pi.transform(modelGenerationProblem, IteratorExtensions.<EObject>toList(model.eAllContents()), false);
104 if ((representation instanceof PartialInterpretation)) {
105 final PartialInterpretation2Gml vis1 = new PartialInterpretation2Gml();
106 final String gml = vis1.transform(representation);
107 workspace.writeText("model.gml", gml);
108 final GraphvizVisualiser vis2 = new GraphvizVisualiser();
109 final PartialInterpretationVisualisation dot = vis2.visualiseConcretization(representation);
110 dot.writeToFile(workspace, "model.png");
111 } else {
112 InputOutput.<String>println("ERROR");
113 }
114 } 110 }
115 } 111 }
116 long _currentTimeMillis = System.currentTimeMillis(); 112 long _currentTimeMillis = System.currentTimeMillis();
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
index 7ab6b54b..91c99504 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
index f7c267ec..dec17082 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index e91e816f..3c55afad 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ