aboutsummaryrefslogtreecommitdiffstats
path: root/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca
diff options
context:
space:
mode:
authorLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-08-13 18:10:02 -0400
committerLibravatar 20001LastOrder <boqi.chen@mail.mcgill.ca>2019-08-13 18:10:02 -0400
commita882ad00515e730bad5e52fa29b74f461a5b9cd6 (patch)
tree5c892f1dc5b501aa3f7355e97f24cca277a473db /Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca
parentConfigurations for generation and new domain for generation ecore model (diff)
downloadVIATRA-Generator-a882ad00515e730bad5e52fa29b74f461a5b9cd6.tar.gz
VIATRA-Generator-a882ad00515e730bad5e52fa29b74f461a5b9cd6.tar.zst
VIATRA-Generator-a882ad00515e730bad5e52fa29b74f461a5b9cd6.zip
change exploration value function
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca')
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend14
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend3
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend9
3 files changed, 11 insertions, 15 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
index ab187b3a..2add9f0e 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.xtend
@@ -16,11 +16,11 @@ import org.eclipse.emf.ecore.EReference
16//import yakindumm2.impl.Yakindumm2PackageImpl 16//import yakindumm2.impl.Yakindumm2PackageImpl
17 17
18class Main { 18class Main {
19 var static Domain d = Domain.Ecore; 19 var static Domain d = Domain.Yakindumm;
20 val static String suffix = '.ecore' 20 val static String suffix = '.xmi'
21 val static String OUTPUT_FOLDER = "Inputs/human/"; 21 val static String OUTPUT_FOLDER = "Inputs/yakindumm/human/humanInput100/";
22 val static String INPUT_FOLDER = "outputs/human/"; 22 val static String INPUT_FOLDER = "outputs/Human/";
23 val static int NUM_RUNS = 1; 23 val static int NUM_RUNS = 100;
24 24
25 static class RWInformation{ 25 static class RWInformation{
26 public var String inputFolder; 26 public var String inputFolder;
@@ -88,7 +88,9 @@ class Main {
88 } 88 }
89 89
90 var outputs = model.evaluateAllMetrics(); 90 var outputs = model.evaluateAllMetrics();
91 var violationsOutput = newArrayList('violations', ViolationCheck.calculateViolationCounts(model.root, d)+''); 91 var violations = ViolationCheck.calculateViolationCounts(model.root, d);
92 println(violations);
93 var violationsOutput = newArrayList('violations', violations+'');
92 outputs.add(violationsOutput); 94 outputs.add(violationsOutput);
93 CsvFileWriter.write(outputs, fileName); 95 CsvFileWriter.write(outputs, fileName);
94 } 96 }
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
index b2288f52..4c9246d1 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.xtend
@@ -54,7 +54,6 @@ class PartialInterpretationMetricDistance {
54 metrics.add(new NodeActivityMetric()); 54 metrics.add(new NodeActivityMetric());
55 metrics.add(new MultiplexParticipationCoefficientMetric()); 55 metrics.add(new MultiplexParticipationCoefficientMetric());
56 metrics.add(new NodeTypeMetric()); 56 metrics.add(new NodeTypeMetric());
57 metrics.add(new EdgeTypeMetric());
58 val metricCalculator = new PartialInterpretationGraph(partial, metrics, null); 57 val metricCalculator = new PartialInterpretationGraph(partial, metrics, null);
59 var metricSamples = metricCalculator.evaluateAllMetricsToSamples(); 58 var metricSamples = metricCalculator.evaluateAllMetricsToSamples();
60 59
@@ -65,7 +64,6 @@ class PartialInterpretationMetricDistance {
65 //var typedOutDegree = ks.typedOutDegreeDistance(metricSamples.typedOutDegreeSamples); 64 //var typedOutDegree = ks.typedOutDegreeDistance(metricSamples.typedOutDegreeSamples);
66 var distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType); 65 var distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType);
67 distance.nodeTypeInfo = metricSamples.nodeTypeSamples; 66 distance.nodeTypeInfo = metricSamples.nodeTypeSamples;
68 distance.edgeTypeDistance = ks.edgeTypeDistance(metricSamples.edgeTypeSamples);
69 return distance; 67 return distance;
70 } 68 }
71 69
@@ -180,7 +178,6 @@ class MetricDistanceGroup{
180 var double outDegreeDistance; 178 var double outDegreeDistance;
181 var double nodeTypeDistance; 179 var double nodeTypeDistance;
182 protected var HashMap<String, Double> nodeTypeInfo; 180 protected var HashMap<String, Double> nodeTypeInfo;
183 public var double edgeTypeDistance;
184 181
185 new(double mpcDistance, double naDistance, double outDegreeDistance, double nodeTypeDistance){ 182 new(double mpcDistance, double naDistance, double outDegreeDistance, double nodeTypeDistance){
186 this.mpcDistance = mpcDistance; 183 this.mpcDistance = mpcDistance;
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
index 72239e22..3c98bb1c 100644
--- a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
+++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.xtend
@@ -2,6 +2,7 @@ package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation
2 2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain 3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain
4import com.google.common.reflect.ClassPath 4import com.google.common.reflect.ClassPath
5import ecore.Ecore_pattern
5import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns 6import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns
6import java.util.ArrayList 7import java.util.ArrayList
7import org.eclipse.emf.ecore.EObject 8import org.eclipse.emf.ecore.EObject
@@ -16,15 +17,13 @@ class ViolationCheck {
16 if(d == Domain.Yakindumm){ 17 if(d == Domain.Yakindumm){
17 packageName = 'constraints.yakindumm'; 18 packageName = 'constraints.yakindumm';
18 }else if (d == Domain.Ecore){ 19 }else if (d == Domain.Ecore){
19 //TODO: put constraints package names for ecore and github models 20 packageName = 'constraints.ecore';
20 return -1;
21 }else if (d == Domain.Github){ 21 }else if (d == Domain.Github){
22 return -1; 22 return -1;
23 } 23 }
24 24
25
26 var constriants = loadConstraints(packageName); 25 var constriants = loadConstraints(packageName);
27 var collections = new ConstraintCollection(constriants, Patterns.instance); 26 var collections = new ConstraintCollection(constriants, Ecore_pattern.instance);
28 collections.addModel(root); 27 collections.addModel(root);
29 var results = collections.calculateViolations(); 28 var results = collections.calculateViolations();
30 if(results.size > 0){ 29 if(results.size > 0){
@@ -54,7 +53,6 @@ class ViolationCheck {
54 53
55 val classPath = ClassPath.from(ClassLoader.systemClassLoader); 54 val classPath = ClassPath.from(ClassLoader.systemClassLoader);
56 val classInfos = classPath.getTopLevelClasses(packageName); 55 val classInfos = classPath.getTopLevelClasses(packageName);
57
58 for(info : classInfos){ 56 for(info : classInfos){
59 if(info.load.interfaces.contains(IConstraintSpecification)){ 57 if(info.load.interfaces.contains(IConstraintSpecification)){
60 //IConstraintSpecification only has one constructor with empty argument list 58 //IConstraintSpecification only has one constructor with empty argument list
@@ -63,7 +61,6 @@ class ViolationCheck {
63 constraints.add(instance as IConstraintSpecification); 61 constraints.add(instance as IConstraintSpecification);
64 } 62 }
65 } 63 }
66
67 return constraints 64 return constraints
68 } 65 }
69} 66}