aboutsummaryrefslogtreecommitdiffstats
path: root/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-10-16 14:43:41 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-10-16 14:43:41 +0200
commite7b208c529bfaa22550575ef8ea083bdb920b4b1 (patch)
tree53eb81b634a9ef64b66e1a5f33dce560d95244cf /Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend
parentBy default, Alloy uses filtered type ORM mapping (diff)
downloadVIATRA-Generator-e7b208c529bfaa22550575ef8ea083bdb920b4b1.tar.gz
VIATRA-Generator-e7b208c529bfaa22550575ef8ea083bdb920b4b1.tar.zst
VIATRA-Generator-e7b208c529bfaa22550575ef8ea083bdb920b4b1.zip
measurement and mutant coverage
Diffstat (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend')
-rw-r--r--Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend60
1 files changed, 32 insertions, 28 deletions
diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend
index 40edbd02..12fe775a 100644
--- a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend
+++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/DiverseMeasurementRunner.xtend
@@ -1,5 +1,7 @@
1package hu.bme.mit.inf.dslreasoner.run 1package hu.bme.mit.inf.dslreasoner.run
2 2
3import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver
4import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration
3import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 5import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
4import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 6import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
5import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor 7import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor
@@ -18,25 +20,21 @@ import hu.bme.mit.inf.dslreasoner.viatrasolver.logic2viatra.TypeInferenceMethod
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation 21import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation
20import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage 22import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage
21import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.visualisation.PartialInterpretation2Gml
22import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.DiversityDescriptor 23import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.DiversityDescriptor
23import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy 24import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.StateCoderStrategy
24import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner 25import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasoner
25import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration 26import hu.bme.mit.inf.dslreasoner.viatrasolver.reasoner.ViatraReasonerConfiguration
27import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation
26import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 28import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
29import java.util.LinkedList
27import java.util.List 30import java.util.List
28import org.eclipse.emf.ecore.EObject 31import org.eclipse.emf.ecore.EObject
29import org.eclipse.emf.ecore.resource.Resource 32import org.eclipse.emf.ecore.resource.Resource
30import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 33import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
31import org.eclipse.viatra.query.runtime.api.IPatternMatch
32import org.eclipse.viatra.query.runtime.api.IQuerySpecification
33import org.eclipse.viatra.query.runtime.api.ViatraQueryMatcher
34import org.eclipse.xtend.lib.annotations.Data 34import org.eclipse.xtend.lib.annotations.Data
35import java.util.LinkedList 35import org.eclipse.viatra.query.runtime.api.IQuerySpecification
36import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolver 36import java.util.Set
37import hu.bme.mit.inf.dlsreasoner.alloy.reasoner.AlloySolverConfiguration 37import java.util.Comparator
38import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvisVisualisation
39import hu.bme.mit.inf.dslreasoner.visualisation.pi2graphviz.GraphvizVisualisation
40 38
41enum Metamodel { 39enum Metamodel {
42 FAM, YakinduWOSynch, Yakindu 40 FAM, YakinduWOSynch, Yakindu
@@ -111,17 +109,18 @@ class ScenarioRunner {
111 109
112 } else if(scenario.constraints == Constraints.MinusOne) { 110 } else if(scenario.constraints == Constraints.MinusOne) {
113 var first = true 111 var first = true
114 //for(remove : vq.validationPatterns) { 112
113 for(remove : vq.validationPatterns) {
115 for(run : 1..scenario.runs) { 114 for(run : 1..scenario.runs) {
116 115
117 //val removeName = remove.fullyQualifiedName 116 val removeName = remove.fullyQualifiedName
118 //val desc = new ViatraQuerySetDescriptor(vq.patterns,vq.validationPatterns.filter[it != remove].toSet,emptyMap) 117 val vq_m = new ViatraQuerySetDescriptor(vq.patterns.filter[it != remove].toList,vq.validationPatterns.filter[it != remove].toSet,emptyMap)
119 runCase(first,"minusOne"+run,run,scenario,mm,vq,ps) 118 runCase(first,"minusOne_"+removeName+"_"+run,run,scenario,mm,vq_m,ps)
120 first = false 119 first = false
121 System.gc System.gc System.gc 120 System.gc System.gc System.gc
122 //Thread.sleep(3000) 121 Thread.sleep(3000)
123 } 122 }
124 //} 123 }
125 } 124 }
126 } 125 }
127 126
@@ -170,7 +169,7 @@ class ScenarioRunner {
170 loader = if(metamodel == Metamodel::FAM) { 169 loader = if(metamodel == Metamodel::FAM) {
171 new FAMLoader(inputs) 170 new FAMLoader(inputs)
172 } else if(metamodel == Metamodel::Yakindu || metamodel == Metamodel::YakinduWOSynch) { 171 } else if(metamodel == Metamodel::Yakindu || metamodel == Metamodel::YakinduWOSynch) {
173 new YakinduLoader(inputs) => [it.useSynchronization = false] 172 new YakinduLoader(inputs) => [it.useSynchronization = false it.useComplexStates = true]
174 } else throw new IllegalArgumentException('''Unknown domain: «metamodel»''') 173 } else throw new IllegalArgumentException('''Unknown domain: «metamodel»''')
175 } 174 }
176 175
@@ -193,28 +192,28 @@ class ScenarioRunner {
193 it.nameNewElements = false 192 it.nameNewElements = false
194 it.typeInferenceMethod = TypeInferenceMethod.PreliminaryAnalysis 193 it.typeInferenceMethod = TypeInferenceMethod.PreliminaryAnalysis
195 it.searchSpaceConstraints.additionalGlobalConstraints += loader.additionalConstraints 194 it.searchSpaceConstraints.additionalGlobalConstraints += loader.additionalConstraints
196 it.debugCongiguration.partalInterpretationVisualisationFrequency = 1 195 //it.debugCongiguration.partalInterpretationVisualisationFrequency = 1
197 it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation 196 //it.debugCongiguration.partialInterpretatioVisualiser = new GraphvizVisualisation
198 it.stateCoderStrategy = if(scenario.statecoder == StateCoder::ID) { 197 it.stateCoderStrategy = if(scenario.statecoder == StateCoder::ID) {
199 StateCoderStrategy::IDBased 198 StateCoderStrategy::IDBased
200 } else { 199 } else {
201 StateCoderStrategy::Neighbourhood 200 StateCoderStrategy::Neighbourhood
202 } 201 }
203 if(scenario.statecoder != StateCoder::ID || scenario.statecoder != StateCoder::Normal) { 202 if(scenario.statecoder != StateCoder::ID || scenario.statecoder != StateCoder::Normal) {
204 val range = if(scenario.statecoder != StateCoder::R1) { 203 val range = if(scenario.statecoder === StateCoder::R1) {
205 1 204 1
206 } else if(scenario.statecoder != StateCoder::R2) { 205 } else if(scenario.statecoder === StateCoder::R2) {
207 2 206 2
208 } else if(scenario.statecoder != StateCoder::R3) { 207 } else if(scenario.statecoder === StateCoder::R3) {
209 3 208 3
210 } 209 }
211 210
212 it.diversityRequirement = new DiversityDescriptor => [ 211 it.diversityRequirement = new DiversityDescriptor => [
213 it.relevantTypes = null 212 it.relevantTypes = null
214 it.relevantRelations = null 213 it.relevantRelations = null
215 it.maxNumber = 1 214 it.maxNumber = 0
216 it.range = range 215 it.range = range
217 it.parallels = 1 216 it.parallels = 0
218 ] 217 ]
219 } 218 }
220 ] 219 ]
@@ -254,10 +253,15 @@ class ScenarioRunner {
254 val representationNumber = representationIndex + 1 253 val representationNumber = representationIndex + 1
255 if(representation instanceof PartialInterpretation) { 254 if(representation instanceof PartialInterpretation) {
256 workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''') 255 workspace.writeModel(representation, '''solution«representationNumber».partialinterpretation''')
257 val partialInterpretation2GML = new PartialInterpretation2Gml 256// val partialInterpretation2GML = new PartialInterpretation2Gml
258 val gml = partialInterpretation2GML.transform(representation) 257// val gml = partialInterpretation2GML.transform(representation)
259 //ecore2GML.transform(root) 258// ecore2GML.transform(root)
260 workspace.writeText('''solutionVisualisation«representationNumber».gml''',gml) 259// workspace.writeText('''solutionVisualisation«representationNumber».gml''',gml)
260
261// val visualiser = new GraphvizVisualisation
262// val visualisation = visualiser.visualiseConcretization(representation)
263// visualisation.writeToFile(workspace,'''solutionVisualisation«representationNumber»''')
264
261 } else { 265 } else {
262 workspace.writeText('''solution«representationNumber».txt''',representation.toString) 266 workspace.writeText('''solution«representationNumber».txt''',representation.toString)
263 } 267 }
@@ -313,7 +317,7 @@ class ScenarioRunner {
313 317
314class DiverseMeasurementRunner { 318class DiverseMeasurementRunner {
315 def static void main(String[] args) { 319 def static void main(String[] args) {
316 val scenario = new Scenario(30,49,Metamodel::Yakindu,Constraints.All,StateCoder.Normal,1,Solver::ViatraSolver) 320 val scenario = new Scenario(30,29,Metamodel::YakinduWOSynch,Constraints.Metamodel,StateCoder.R1,20,Solver::Alloy)
317 val scenarioRunner = new ScenarioRunner 321 val scenarioRunner = new ScenarioRunner
318 scenarioRunner.runScenario(scenario) 322 scenarioRunner.runScenario(scenario)
319 } 323 }