From bafe7aef99b0a087a9b65d2d02ab687b2e08ae4c Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Fri, 27 Oct 2017 17:54:20 +0200 Subject: Test and measurement runners --- .../mit/inf/dslreasoner/run/MeasureDiversity.xtend | 191 +++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MeasureDiversity.xtend (limited to 'Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MeasureDiversity.xtend') diff --git a/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MeasureDiversity.xtend b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MeasureDiversity.xtend new file mode 100644 index 00000000..70f7b033 --- /dev/null +++ b/Tests/hu.bme.mit.inf.dslreasoner.run/src/hu/bme/mit/inf/dslreasoner/run/MeasureDiversity.xtend @@ -0,0 +1,191 @@ +package hu.bme.mit.inf.dslreasoner.run + +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic +import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration +import hu.bme.mit.inf.dslreasoner.ecore2logic.ecore2logicannotations.Ecore2logicannotationsPackage +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.LogiclanguagePackage +import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicproblemPackage +import hu.bme.mit.inf.dslreasoner.viatra2logic.viatra2logicannotations.Viatra2LogicAnnotationsPackage +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2PartialInterpretation +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.neighbourhood.PartialInterpretation2ImmutableTypeLattice +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialinterpretationPackage +import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace +import java.io.File +import java.util.HashMap +import java.util.LinkedList +import java.util.List +import org.eclipse.emf.ecore.EObject +import org.eclipse.emf.ecore.resource.Resource +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl +import java.util.HashSet +import java.util.ArrayList +import java.util.Comparator + +class MeasureDiversity { + static val partialInterpretation2Logic = new InstanceModel2PartialInterpretation + static val neiguboirhoodComputer = new PartialInterpretation2ImmutableTypeLattice + + static val Ecore2Logic ecore2Logic = new Ecore2Logic + + static private def init() { + LogiclanguagePackage.eINSTANCE.class + LogicproblemPackage.eINSTANCE.class + PartialinterpretationPackage.eINSTANCE.class + Ecore2logicannotationsPackage.eINSTANCE.class + Viatra2LogicAnnotationsPackage.eINSTANCE.class + Resource.Factory.Registry.INSTANCE.extensionToFactoryMap.put("*",new XMIResourceFactoryImpl) + } + + + def static void main(String[] args) { + init() + val range = 20 + val path = '''D:/FASE18Meas/''' + val scenarios = #[ + "MetamodelOnly_Alloy_Symmetry0", + "MetamodelOnly_Alloy_Symmetry10", + //"MetamodelOnly_Alloy_Symmetry30", + "MetamodelOnly_Alloy_SymmetryDefault", + //"MetamodelOnly_VS_Fix_No", + "MetamodelOnly_VS_Fix_R1", + "MetamodelOnly_VS_Fix_R2", + "MetamodelOnly_VS_Fix_R3" + //,"RemoHF" + ] + + println('''Scenario;Run;Model1;Model2;«FOR i: 0.. files, String path, int depth) { + val workspace = new FileSystemWorkspace(path, "") + //val file2Neighbourhood = new HashMap + + files.sort(new FileComparator) + + val neighbours = new ArrayList + for(i:0.. [ + it.useSynchronization = false + it.useComplexStates = true + ] + val metamodelTransformationOutput = ecore2Logic.transformMetamodel(loader.loadMetamodel, + new Ecore2LogicConfiguration) + + val model = workspace.readModel(EObject, file.name) + val partialModel = partialInterpretation2Logic.transform(metamodelTransformationOutput, model.eResource, + false) + val list = representationList(partialModel, depth) + + //file2Neighbourhood.put(file, list) + + print('''«scenario»;«file.name.runIndex»;«file.name.modelIndex»''') + for (i : 0 ..< list.size) { + val s1 = list.get(i) + neighbours.get(i).addAll(s1) + print(";" + neighbours.get(i).size) + } + println() + } + } + + +// def static void measureDiversity(String scenario, File parent, List files, String path, int depth) { +// val workspace = new FileSystemWorkspace(path,"") +// val file2Neighbourhood = new HashMap +// for(file : files) { +// val MetamodelLoader loader = new YakinduLoader(workspace) => [it.useSynchronization = false it.useComplexStates = true] +// val metamodelTransformationOutput = ecore2Logic.transformMetamodel(loader.loadMetamodel,new Ecore2LogicConfiguration) +// +// val model = workspace.readModel(EObject,file.name) +// val partialModel = partialInterpretation2Logic.transform(metamodelTransformationOutput,model.eResource,false) +// val list = representationList(partialModel,depth) +// +// file2Neighbourhood.put(file,list) +// } +// for(file1Index : 0.. { + + override compare(File arg0, File arg1) { + val a = Integer.parseInt(MeasureDiversity::modelIndex(arg0.name)) + val b = Integer.parseInt(MeasureDiversity::modelIndex(arg1.name)) + Integer.compare(a,b) + } + +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf