aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-20 20:39:28 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-03-20 20:39:28 -0400
commitb42fb7517302ff158a61920a63d8682c31565619 (patch)
treed0649992bf0ee4f01fac40ec5404a6c92da0448a /Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire
parentMerge remote-tracking branch 'origin/master' into Vampire-New (diff)
downloadVIATRA-Generator-b42fb7517302ff158a61920a63d8682c31565619.tar.gz
VIATRA-Generator-b42fb7517302ff158a61920a63d8682c31565619.tar.zst
VIATRA-Generator-b42fb7517302ff158a61920a63d8682c31565619.zip
Add gitignore, commit everything
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend13
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend103
2 files changed, 6 insertions, 110 deletions
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
index 86c9092a..1559ee3f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend
@@ -4,11 +4,11 @@ import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory 5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireLanguageFactory
6import functionalarchitecture.Function 6import functionalarchitecture.Function
7import functionalarchitecture.FunctionalInterface
8import functionalarchitecture.FunctionalOutput
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor 11import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner 12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type 13import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type
14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 14import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
@@ -30,8 +30,7 @@ import org.eclipse.emf.ecore.EReference
30import org.eclipse.emf.ecore.resource.Resource 30import org.eclipse.emf.ecore.resource.Resource
31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 31import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
32import org.eclipse.viatra.query.runtime.api.IQueryGroup 32import org.eclipse.viatra.query.runtime.api.IQueryGroup
33import org.eclipse.emf.ecore.EClassifier 33import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
34import functionalarchitecture.FunctionalOutput
35 34
36class GeneralTest { 35class GeneralTest {
37 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel, 36 def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List<EObject> partialModel,
@@ -67,7 +66,7 @@ class GeneralTest {
67 list2MapMin.get(Function.simpleName) 66 list2MapMin.get(Function.simpleName)
68 ), 1) 67 ), 1)
69 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace, 68 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace,
70 list2MapMin.get(functionalarchitecture.FunctionalInterface.simpleName) 69 list2MapMin.get(FunctionalInterface.simpleName)
71 ), 2) 70 ), 2)
72 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace, 71 typeMapMin.put(ecore2Logic.TypeofEClass(modelGenerationProblem.trace,
73 list2MapMin.get(FunctionalOutput.simpleName) 72 list2MapMin.get(FunctionalOutput.simpleName)
@@ -80,7 +79,7 @@ class GeneralTest {
80 ), 5) 79 ), 5)
81 typeMapMax.put(ecore2Logic.TypeofEClass( 80 typeMapMax.put(ecore2Logic.TypeofEClass(
82 modelGenerationProblem.trace, 81 modelGenerationProblem.trace,
83 list2MapMax.get(functionalarchitecture.FunctionalInterface.simpleName) 82 list2MapMax.get(FunctionalInterface.simpleName)
84 ), 2) 83 ), 2)
85 typeMapMax.put(ecore2Logic.TypeofEClass( 84 typeMapMax.put(ecore2Logic.TypeofEClass(
86 modelGenerationProblem.trace, 85 modelGenerationProblem.trace,
@@ -92,7 +91,7 @@ class GeneralTest {
92 // add configuration things, in config file first 91 // add configuration things, in config file first
93 it.documentationLevel = DocumentationLevel::FULL 92 it.documentationLevel = DocumentationLevel::FULL
94 it.typeScopes.minNewElements = 6 93 it.typeScopes.minNewElements = 6
95 it.typeScopes.maxNewElements = 8 94 it.typeScopes.maxNewElements = 40
96 it.typeScopes.minNewElementsByType = typeMapMin 95 it.typeScopes.minNewElementsByType = typeMapMin
97 it.typeScopes.maxNewElementsByType = typeMapMax 96 it.typeScopes.maxNewElementsByType = typeMapMax
98 ] 97 ]
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
deleted file mode 100644
index a8b4dcfb..00000000
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend
+++ /dev/null
@@ -1,103 +0,0 @@
1package ca.mcgill.ecse.dslreasoner.vampire.test
2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import functionalarchitecture.FunctionalarchitecturePackage
6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
8import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
10import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
11import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
14import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
16import java.util.List
17import org.eclipse.emf.ecore.EAttribute
18import org.eclipse.emf.ecore.EClass
19import org.eclipse.emf.ecore.EEnum
20import org.eclipse.emf.ecore.EEnumLiteral
21import org.eclipse.emf.ecore.EObject
22import org.eclipse.emf.ecore.EReference
23import org.eclipse.emf.ecore.resource.Resource
24import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
25
26class DslTest {
27 def static void main(String[] args) {
28 val inputs = new FileSystemWorkspace('''initialModels/''', "")
29 val workspace = new FileSystemWorkspace('''outputDslModels/''', "")
30 workspace.initAndClear
31
32 println("Input and output workspaces are created")
33
34 val metamodel = loadMetamodel()
35 val partialModel = loadPartialModel(inputs)
36// val queries = loadQueries(metamodel)
37
38 println("DSL loaded")
39
40 val Ecore2Logic ecore2Logic = new Ecore2Logic
41 val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic)
42 val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic)
43 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
44
45 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration())
46// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel)
47// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration)
48
49 val logicProblem = modelGenerationProblem.output
50// val logicProblem = modelExtensionProblem.output
51// val logicProblem = validModelExtensionProblem.output
52
53
54 println("Problem created")
55
56 var LogicResult solution
57 var LogicReasoner reasoner
58 //*
59 reasoner = new VampireSolver
60 val vampireConfig = new VampireSolverConfiguration => [
61 //add configuration things, in config file first
62 it.writeToFile = false
63 ]
64
65 solution = reasoner.solve(logicProblem, vampireConfig, workspace)
66
67 println("Problem solved")
68
69
70 }
71
72 def private static loadMetamodel() {
73 //FAM
74 val pckg = FunctionalarchitecturePackage.eINSTANCE
75 val List<EClass> classes = pckg.EClassifiers.filter(EClass).toList
76 val List<EEnum> enums = pckg.EClassifiers.filter(EEnum).toList
77 val List<EEnumLiteral> literals = enums.map[getELiterals].flatten.toList
78 val List<EReference> references = classes.map[getEReferences].flatten.toList
79 val List<EAttribute> attributes = classes.map[getEAttributes].flatten.toList
80 return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes)
81 }
82
83 def private static loadPartialModel(ReasonerWorkspace inputs) {
84 Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl());
85 inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList
86// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList
87 }
88
89// def private static loadQueries(EcoreMetamodelDescriptor metamodel) {
90// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance
91// val patterns = i.specifications.toList
92// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet
93// val derivedFeatures = new LinkedHashMap
94// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head)
95// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head)
96// val res = new ViatraQuerySetDescriptor(
97// patterns,
98// wfPatterns,
99// derivedFeatures
100// )
101// return res
102// }
103}