diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/src/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator')
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 | ||
18 | class Main { | 18 | class 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 | ||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain | 3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain |
4 | import com.google.common.reflect.ClassPath | 4 | import com.google.common.reflect.ClassPath |
5 | import ecore.Ecore_pattern | ||
5 | import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns | 6 | import hu.bme.mit.inf.dslreasoner.partialsnapshot_mavo.yakindu.Patterns |
6 | import java.util.ArrayList | 7 | import java.util.ArrayList |
7 | import org.eclipse.emf.ecore.EObject | 8 | import 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 | } |