From 57e614aabedc176ba9965d0ca5e6daa23c5f4758 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Fri, 1 Feb 2019 16:03:30 -0500 Subject: Fix FAM Test. Begin Grammar Fix. --- .../ecse/dslreasoner/vampire/icse/EcoreTest.xtend | 105 +++++++++++++++++++++ .../ecse/dslreasoner/vampire/icse/FAMTest.xtend | 33 +++++++ .../dslreasoner/vampire/icse/FileSystemTest.xtend | 33 +++++++ .../dslreasoner/vampire/icse/GeneralTest.xtend | 89 +++++++++++++++++ .../dslreasoner/vampire/icse/YakinduTest.xtend | 34 +++++++ .../dslreasoner/vampire/icseTests/FAMTest.xtend | 103 ++++++++++++++++++++ .../ecse/dslreasoner/vampire/test/DslTest.xtend | 103 -------------------- .../dslreasoner/vampire/test/MedicalSystem.xtend | 5 +- .../ecse/dslreasoner/vampire/test/SimpleRun.xtend | 2 +- .../dslreasoner/vampire/test/VampireTest.xtend | 25 ++--- 10 files changed, 415 insertions(+), 117 deletions(-) create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend delete mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca') diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend new file mode 100644 index 00000000..54114189 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend @@ -0,0 +1,105 @@ +package ca.mcgill.ecse.dslreasoner.vampire.icse + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration +import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration +import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult +import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore +import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import java.util.List +import org.eclipse.emf.ecore.EAttribute +import org.eclipse.emf.ecore.EClass +import org.eclipse.emf.ecore.EEnum +import org.eclipse.emf.ecore.EEnumLiteral +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EReference +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns +import java.util.LinkedHashMap +import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor + +class EcoreTest { + def static void main(String[] args) { + val inputs = new FileSystemWorkspace('''initialModels/''', "") + val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") + workspace.initAndClear + + println("Input and output workspaces are created") + + val metamodel = loadMetamodel() + val partialModel = loadPartialModel(inputs) +// val queries = loadQueries(metamodel) + + println("DSL loaded") + + val Ecore2Logic ecore2Logic = new Ecore2Logic + val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) + val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) + val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic + + val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) + val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) +// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) + + val logicProblem = modelGenerationProblem.output +// val logicProblem = modelExtensionProblem.output +// val logicProblem = validModelExtensionProblem.output + + + println("Problem created") + + var LogicResult solution + var LogicReasoner reasoner + //* + reasoner = new VampireSolver + val vampireConfig = new VampireSolverConfiguration => [ + //add configuration things, in config file first + it.writeToFile = true + ] + + solution = reasoner.solve(logicProblem, vampireConfig, workspace) + + println("Problem solved") + + + } + + def private static loadMetamodel() { + val pckg = FunctionalarchitecturePackage.eINSTANCE + val List classes = pckg.getEClassifiers.filter(EClass).toList + val List enums = pckg.getEClassifiers.filter(EEnum).toList + val List literals = enums.map[getELiterals].flatten.toList + val List references = classes.map[getEReferences].flatten.toList + val List attributes = classes.map[getEAttributes].flatten.toList + return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) + } + + def private static loadPartialModel(ReasonerWorkspace inputs) { + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); +// inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList + inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList + } + + def private static loadQueries(EcoreMetamodelDescriptor metamodel) { +// val i = Patterns.instance +// val patterns = i.specifications.toList +// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet +// val derivedFeatures = new LinkedHashMap +// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) +// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) +// val res = new ViatraQuerySetDescriptor( +// patterns, +// wfPatterns, +// derivedFeatures +// ) +// return res + } +} 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 new file mode 100644 index 00000000..9ae00f8d --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend @@ -0,0 +1,33 @@ +package ca.mcgill.ecse.dslreasoner.vampire.icse + +import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl + +class FAMTest { + def static void main(String[] args) { + //Workspace setup + val inputs = new FileSystemWorkspace('''initialModels/''', "") + val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") + workspace.initAndClear + + //Logicproblem writing setup + val reg = Resource.Factory.Registry.INSTANCE + val map = reg.extensionToFactoryMap + map.put("logicproblem", new XMIResourceFactoryImpl) + + println("Input and output workspaces are created") + + val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) + val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi") + val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) + + println("DSL loaded") + + GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) + } + + +} diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend new file mode 100644 index 00000000..363b9356 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend @@ -0,0 +1,33 @@ +package ca.mcgill.ecse.dslreasoner.vampire.icse + +import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.domains.transima.fam.FamPatterns +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl + +class FileSystemTest { + def static void main(String[] args) { + //Workspace setup + val inputs = new FileSystemWorkspace('''initialModels/''', "") + val workspace = new FileSystemWorkspace('''output/FAMTest/''', "") + workspace.initAndClear + + //Logicproblem writing setup + val reg = Resource.Factory.Registry.INSTANCE + val map = reg.extensionToFactoryMap + map.put("logicproblem", new XMIResourceFactoryImpl) + + println("Input and output workspaces are created") + + val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) + val partialModel = GeneralTest.loadPartialModel(inputs, "FunctionalArchitectureModel.xmi") + val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) + + println("DSL loaded") + + GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) + } + + +} 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 new file mode 100644 index 00000000..2c53d181 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/GeneralTest.xtend @@ -0,0 +1,89 @@ +package ca.mcgill.ecse.dslreasoner.vampire.icse + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration +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.ecore2logic.EcoreMetamodelDescriptor +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult +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.viatra2logic.ViatraQuerySetDescriptor +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import java.util.List +import org.eclipse.emf.ecore.EAttribute +import org.eclipse.emf.ecore.EClass +import org.eclipse.emf.ecore.EEnum +import org.eclipse.emf.ecore.EEnumLiteral +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EPackage +import org.eclipse.emf.ecore.EReference +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import org.eclipse.viatra.query.runtime.api.IQueryGroup + +class GeneralTest { + def static String createAndSolveProblem(EcoreMetamodelDescriptor metamodel, List partialModel, ViatraQuerySetDescriptor queries, FileSystemWorkspace workspace) { + val Ecore2Logic ecore2Logic = new Ecore2Logic + val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) + val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) + val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic + + val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) + var problem = instanceModel2Logic.transform(modelGenerationProblem,partialModel).output + problem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration).output + + workspace.writeModel(problem, "Fam.logicproblem") + + println("Problem created") + + var LogicResult solution + var LogicReasoner reasoner + //* + reasoner = new VampireSolver + val vampireConfig = new VampireSolverConfiguration => [ + //add configuration things, in config file first + it.writeToFile = true + ] + + solution = reasoner.solve(problem, vampireConfig, workspace) + + println("Problem solved") + } + + def static loadMetamodel(EPackage pckg) { + val List classes = pckg.getEClassifiers.filter(EClass).toList + val List enums = pckg.getEClassifiers.filter(EEnum).toList + val List literals = enums.map[getELiterals].flatten.toList + val List references = classes.map[getEReferences].flatten.toList + val List attributes = classes.map[getEAttributes].flatten.toList + return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) + } + + def static loadPartialModel(ReasonerWorkspace inputs, String path) { + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); + inputs.readModel(EObject,path).eResource.contents +// inputs.readModel(EObject,"FamInstance.xmi").eResource.allContents.toList + } + + def static loadQueries(EcoreMetamodelDescriptor metamodel, IQueryGroup i) { + val patterns = i.specifications.toList + val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet + val derivedFeatures = emptyMap + //NO DERIVED FEATURES +// val derivedFeatures = new LinkedHashMap +// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) +// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) + val res = new ViatraQuerySetDescriptor( + patterns, + wfPatterns, + derivedFeatures + ) + return res + } +} \ No newline at end of file diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend new file mode 100644 index 00000000..e4f6f87a --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend @@ -0,0 +1,34 @@ +package ca.mcgill.ecse.dslreasoner.vampire.icse + +import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.domains.y +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.YakindummPackage + +class YakinduTest { + def static void main(String[] args) { + //Workspace setup + val inputs = new FileSystemWorkspace('''initialModels/''', "") + val workspace = new FileSystemWorkspace('''output/YakinduTest/''', "") + workspace.initAndClear + + //Logicproblem writing setup + val reg = Resource.Factory.Registry.INSTANCE + val map = reg.extensionToFactoryMap + map.put("logicproblem", new XMIResourceFactoryImpl) + + println("Input and output workspaces are created") + + val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE) + val partialModel = GeneralTest.loadPartialModel(inputs, "Yakindu.xmi") + val queries = GeneralTest.loadQueries(metamodel, + + println("DSL loaded") + + GeneralTest.createAndSolveProblem(metamodel, partialModel, queries, workspace) + } + + +} 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 new file mode 100644 index 00000000..a8b4dcfb --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icseTests/FAMTest.xtend @@ -0,0 +1,103 @@ +package ca.mcgill.ecse.dslreasoner.vampire.test + +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver +import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration +import functionalarchitecture.FunctionalarchitecturePackage +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration +import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor +import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult +import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore +import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace +import java.util.List +import org.eclipse.emf.ecore.EAttribute +import org.eclipse.emf.ecore.EClass +import org.eclipse.emf.ecore.EEnum +import org.eclipse.emf.ecore.EEnumLiteral +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.EReference +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl + +class DslTest { + def static void main(String[] args) { + val inputs = new FileSystemWorkspace('''initialModels/''', "") + val workspace = new FileSystemWorkspace('''outputDslModels/''', "") + workspace.initAndClear + + println("Input and output workspaces are created") + + val metamodel = loadMetamodel() + val partialModel = loadPartialModel(inputs) +// val queries = loadQueries(metamodel) + + println("DSL loaded") + + val Ecore2Logic ecore2Logic = new Ecore2Logic + val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) + val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) + val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic + + val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) +// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) +// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) + + val logicProblem = modelGenerationProblem.output +// val logicProblem = modelExtensionProblem.output +// val logicProblem = validModelExtensionProblem.output + + + println("Problem created") + + var LogicResult solution + var LogicReasoner reasoner + //* + reasoner = new VampireSolver + val vampireConfig = new VampireSolverConfiguration => [ + //add configuration things, in config file first + it.writeToFile = false + ] + + solution = reasoner.solve(logicProblem, vampireConfig, workspace) + + println("Problem solved") + + + } + + def private static loadMetamodel() { + //FAM + val pckg = FunctionalarchitecturePackage.eINSTANCE + val List classes = pckg.EClassifiers.filter(EClass).toList + val List enums = pckg.EClassifiers.filter(EEnum).toList + val List literals = enums.map[getELiterals].flatten.toList + val List references = classes.map[getEReferences].flatten.toList + val List attributes = classes.map[getEAttributes].flatten.toList + return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) + } + + def private static loadPartialModel(ReasonerWorkspace inputs) { + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); + inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList +// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList + } + +// def private static loadQueries(EcoreMetamodelDescriptor metamodel) { +// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance +// val patterns = i.specifications.toList +// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet +// val derivedFeatures = new LinkedHashMap +// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) +// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) +// val res = new ViatraQuerySetDescriptor( +// patterns, +// wfPatterns, +// derivedFeatures +// ) +// return res +// } +} diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend deleted file mode 100644 index a8b4dcfb..00000000 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/DslTest.xtend +++ /dev/null @@ -1,103 +0,0 @@ -package ca.mcgill.ecse.dslreasoner.vampire.test - -import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver -import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration -import functionalarchitecture.FunctionalarchitecturePackage -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration -import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner -import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult -import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore -import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic -import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic -import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace -import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace -import java.util.List -import org.eclipse.emf.ecore.EAttribute -import org.eclipse.emf.ecore.EClass -import org.eclipse.emf.ecore.EEnum -import org.eclipse.emf.ecore.EEnumLiteral -import org.eclipse.emf.ecore.EObject -import org.eclipse.emf.ecore.EReference -import org.eclipse.emf.ecore.resource.Resource -import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl - -class DslTest { - def static void main(String[] args) { - val inputs = new FileSystemWorkspace('''initialModels/''', "") - val workspace = new FileSystemWorkspace('''outputDslModels/''', "") - workspace.initAndClear - - println("Input and output workspaces are created") - - val metamodel = loadMetamodel() - val partialModel = loadPartialModel(inputs) -// val queries = loadQueries(metamodel) - - println("DSL loaded") - - val Ecore2Logic ecore2Logic = new Ecore2Logic - val Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic) - val Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic) - val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic - - val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel,new Ecore2LogicConfiguration()) -// val modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem,partialModel) -// val validModelExtensionProblem = viatra2Logic.transformQueries(queries,modelGenerationProblem,new Viatra2LogicConfiguration) - - val logicProblem = modelGenerationProblem.output -// val logicProblem = modelExtensionProblem.output -// val logicProblem = validModelExtensionProblem.output - - - println("Problem created") - - var LogicResult solution - var LogicReasoner reasoner - //* - reasoner = new VampireSolver - val vampireConfig = new VampireSolverConfiguration => [ - //add configuration things, in config file first - it.writeToFile = false - ] - - solution = reasoner.solve(logicProblem, vampireConfig, workspace) - - println("Problem solved") - - - } - - def private static loadMetamodel() { - //FAM - val pckg = FunctionalarchitecturePackage.eINSTANCE - val List classes = pckg.EClassifiers.filter(EClass).toList - val List enums = pckg.EClassifiers.filter(EEnum).toList - val List literals = enums.map[getELiterals].flatten.toList - val List references = classes.map[getEReferences].flatten.toList - val List attributes = classes.map[getEAttributes].flatten.toList - return new EcoreMetamodelDescriptor(classes,#{},false,enums,literals,references,attributes) - } - - def private static loadPartialModel(ReasonerWorkspace inputs) { - Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new XMIResourceFactoryImpl()); - inputs.readModel(EObject,"FunctionalArchitectureModel.xmi").eResource.allContents.toList -// inputs.readModel(EObject,"FAM.xmi").eResource.allContents.toList - } - -// def private static loadQueries(EcoreMetamodelDescriptor metamodel) { -// val i = hu.bme.mit.inf.dslreasoner.domains.transima.fam.patterns.Pattern.instance -// val patterns = i.specifications.toList -// val wfPatterns = patterns.filter[it.allAnnotations.exists[it.name== "Constraint"]].toSet -// val derivedFeatures = new LinkedHashMap -// derivedFeatures.put(i.type,metamodel.attributes.filter[it.name == "type"].head) -// derivedFeatures.put(i.model,metamodel.references.filter[it.name == "model"].head) -// val res = new ViatraQuerySetDescriptor( -// patterns, -// wfPatterns, -// derivedFeatures -// ) -// return res -// } -} diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend index ccc17617..15f9e1fe 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/MedicalSystem.xtend @@ -22,11 +22,12 @@ import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl class MedicalSystem { def static void main(String[] args) { init() - val workspace = new FileSystemWorkspace('''outputModels/''',"") + val workspace = new FileSystemWorkspace('''output/MedicalSystem/''',"") workspace.initAndClear val root = load() println("Problem Loaded") + // val rs = new ResourceSetImpl // val logRes = rs.createResource(URI.createFileURI("vampireMidel.tptp")) // @@ -40,7 +41,7 @@ class MedicalSystem { reasoner = new VampireSolver val vampireConfig = new VampireSolverConfiguration => [ //add configuration things, in config file first - it.writeToFile = false + it.writeToFile = true ] solution = reasoner.solve(root, vampireConfig, workspace) diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend index 9d2235f0..f99f0a40 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/SimpleRun.xtend @@ -66,7 +66,7 @@ // println("Problem created") // var LogicResult solution // var LogicReasoner reasoner -// //* +// /* // reasoner = new ViatraReasoner // val viatraConfig = new ViatraReasonerConfiguration => [ // it.typeScopes.maxNewElements = 40 diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend index 3d36bbf7..4fc81ad8 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/test/VampireTest.xtend @@ -17,6 +17,7 @@ import org.eclipse.emf.common.util.URI import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import java.io.File class VampireTest { @@ -39,15 +40,11 @@ class VampireTest { map.put("logicproblem", new XMIResourceFactoryImpl) VampireLanguageStandaloneSetup.doSetup - val workspace = new FileSystemWorkspace('''output/models/''',"") + val workspace = new FileSystemWorkspace('''output/VampireTest''',"") workspace.initAndClear - // Load and create top level elements - // Load source model - val rs = new ResourceSetImpl - val logicURI = URI.createFileURI("output/files/logProb.logicproblem") - val logRes = rs.createResource(logicURI) - + //Storing the logicProblem + val filename = "problem.logicproblem" var LogicProblem problem = builder.createProblem /* @@ -56,8 +53,7 @@ class VampireTest { rockPaperScisors(problem) //*/ - logRes.contents.add(problem) - logRes.save(Collections.EMPTY_MAP) + workspace.writeModel(problem, filename) //problem.add(Assertion( Y && X <=> X) ) @@ -69,7 +65,7 @@ class VampireTest { reasoner = new VampireSolver val vampireConfig = new VampireSolverConfiguration => [ //add configuration things, in config file first - it.writeToFile = false + it.writeToFile = true ] solution = reasoner.solve(problem, vampireConfig, workspace) @@ -88,6 +84,10 @@ class VampireTest { } + def name() { + return this.class.simpleName + } + static def deMorgan(LogicProblem problem) { @@ -144,7 +144,10 @@ class VampireTest { //x.range Exists[ val y = addVar("y",oldRPS) - beats2.call(x,y) + And(beats2.call(x,y), + x != y, + Not(beats2.call(y, x)) + ) ] ])) //*/ -- cgit v1.2.3-54-g00ecf