diff options
Diffstat (limited to 'Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics')
27 files changed, 416 insertions, 0 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace new file mode 100644 index 00000000..6f941f84 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin new file mode 100644 index 00000000..97674c9e --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace new file mode 100644 index 00000000..4feb0150 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin new file mode 100644 index 00000000..ffe985d4 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace new file mode 100644 index 00000000..e206794e --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin new file mode 100644 index 00000000..478004db --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace new file mode 100644 index 00000000..7e322646 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin new file mode 100644 index 00000000..14cb7ae5 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace new file mode 100644 index 00000000..b6cf817f --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin new file mode 100644 index 00000000..074a8167 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace new file mode 100644 index 00000000..fbf9468d --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin new file mode 100644 index 00000000..38aa72c1 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace new file mode 100644 index 00000000..bfec1ccd --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin new file mode 100644 index 00000000..eeed0bd4 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace new file mode 100644 index 00000000..5cc35d7c --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin new file mode 100644 index 00000000..3d9fe56e --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace new file mode 100644 index 00000000..0b3e6e4f --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin new file mode 100644 index 00000000..5f61f506 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java new file mode 100644 index 00000000..58dea567 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java | |||
@@ -0,0 +1,65 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import com.google.common.collect.Multimap; | ||
6 | import java.util.ArrayList; | ||
7 | import java.util.Collection; | ||
8 | import java.util.HashMap; | ||
9 | import java.util.Set; | ||
10 | import java.util.function.BiConsumer; | ||
11 | import org.eclipse.emf.ecore.EObject; | ||
12 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
13 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
14 | import org.eclipse.xtext.xbase.lib.Functions.Function2; | ||
15 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
16 | |||
17 | @SuppressWarnings("all") | ||
18 | public class EdgeTypeMetric extends Metric { | ||
19 | @Override | ||
20 | public String[][] evaluate(final GraphStatistic g) { | ||
21 | Object _evaluateSamples = this.evaluateSamples(g); | ||
22 | HashMap<String, Double> map = ((HashMap<String, Double>) _evaluateSamples); | ||
23 | ArrayList<String[]> output = new ArrayList<String[]>(); | ||
24 | output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Edge Type"), String.class))); | ||
25 | Set<String> keys = map.keySet(); | ||
26 | ArrayList<String> values = CollectionLiterals.<String>newArrayList(); | ||
27 | for (final String key : keys) { | ||
28 | Double _get = map.get(key); | ||
29 | String _plus = (_get + ""); | ||
30 | values.add(_plus); | ||
31 | } | ||
32 | final Set<String> _converted_keys = (Set<String>)keys; | ||
33 | output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class))); | ||
34 | final ArrayList<String> _converted_values = (ArrayList<String>)values; | ||
35 | output.add(((String[])Conversions.unwrapArray(_converted_values, String.class))); | ||
36 | return ((String[][])Conversions.unwrapArray(output, String[].class)); | ||
37 | } | ||
38 | |||
39 | @Override | ||
40 | public Object evaluateSamples(final GraphStatistic g) { | ||
41 | final HashMap<String, Double> map = new HashMap<String, Double>(); | ||
42 | HashMap<String, Multimap<EObject, EObject>> outgoingEdges = g.getOutgoingEdges(); | ||
43 | final Function2<Integer, Multimap<EObject, EObject>, Integer> _function = (Integer r, Multimap<EObject, EObject> t) -> { | ||
44 | final Function2<Integer, Collection<EObject>, Integer> _function_1 = (Integer r1, Collection<EObject> t1) -> { | ||
45 | int _size = t1.size(); | ||
46 | return Integer.valueOf(((r1).intValue() + _size)); | ||
47 | }; | ||
48 | Integer _fold = IterableExtensions.<Collection<EObject>, Integer>fold(t.asMap().values(), Integer.valueOf(0), _function_1); | ||
49 | return Integer.valueOf(((r).intValue() + (_fold).intValue())); | ||
50 | }; | ||
51 | Integer _fold = IterableExtensions.<Multimap<EObject, EObject>, Integer>fold(outgoingEdges.values(), Integer.valueOf(0), _function); | ||
52 | final double edgeCount = ((double) (int) _fold); | ||
53 | final BiConsumer<String, Multimap<EObject, EObject>> _function_1 = (String k, Multimap<EObject, EObject> v) -> { | ||
54 | final Function2<Integer, Collection<EObject>, Integer> _function_2 = (Integer r, Collection<EObject> t) -> { | ||
55 | int _size = t.size(); | ||
56 | return Integer.valueOf(((r).intValue() + _size)); | ||
57 | }; | ||
58 | Integer _fold_1 = IterableExtensions.<Collection<EObject>, Integer>fold(v.asMap().values(), Integer.valueOf(0), _function_2); | ||
59 | double value = ((_fold_1).intValue() / edgeCount); | ||
60 | map.put(k, Double.valueOf(value)); | ||
61 | }; | ||
62 | outgoingEdges.forEach(_function_1); | ||
63 | return map; | ||
64 | } | ||
65 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java new file mode 100644 index 00000000..be6353a2 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java | |||
@@ -0,0 +1,10 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | |||
5 | @SuppressWarnings("all") | ||
6 | public abstract class Metric { | ||
7 | public abstract String[][] evaluate(final GraphStatistic g); | ||
8 | |||
9 | public abstract Object evaluateSamples(final GraphStatistic g); | ||
10 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java new file mode 100644 index 00000000..6db61944 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java | |||
@@ -0,0 +1,19 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import java.util.HashMap; | ||
4 | import java.util.List; | ||
5 | |||
6 | @SuppressWarnings("all") | ||
7 | public class MetricSampleGroup { | ||
8 | public List<Double> mpcSamples; | ||
9 | |||
10 | public List<Double> naSamples; | ||
11 | |||
12 | public List<Double> outDegreeSamples; | ||
13 | |||
14 | public HashMap<String, List<Integer>> typedOutDegreeSamples; | ||
15 | |||
16 | public HashMap<String, Double> nodeTypeSamples; | ||
17 | |||
18 | public HashMap<String, Double> edgeTypeSamples; | ||
19 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java new file mode 100644 index 00000000..660a5978 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java | |||
@@ -0,0 +1,59 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import java.text.DecimalFormat; | ||
6 | import java.util.ArrayList; | ||
7 | import java.util.List; | ||
8 | import java.util.function.Consumer; | ||
9 | import org.eclipse.emf.ecore.EObject; | ||
10 | |||
11 | @SuppressWarnings("all") | ||
12 | public class MultiplexParticipationCoefficientMetric extends Metric { | ||
13 | public final static String countName = "MPCCount"; | ||
14 | |||
15 | public final static String valueName = "MPCValue"; | ||
16 | |||
17 | private final DecimalFormat formatter = new DecimalFormat("#0.00000"); | ||
18 | |||
19 | @Override | ||
20 | public String[][] evaluate(final GraphStatistic g) { | ||
21 | throw new Error("Unresolved compilation problems:" | ||
22 | + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); | ||
23 | } | ||
24 | |||
25 | @Override | ||
26 | public Object evaluateSamples(final GraphStatistic g) { | ||
27 | final ArrayList<Double> samples = new ArrayList<Double>(); | ||
28 | final int typeCounts = g.getAllTypes().size(); | ||
29 | final Consumer<EObject> _function = (EObject it) -> { | ||
30 | samples.add(Double.valueOf(this.calculateMPC(it, g, typeCounts))); | ||
31 | }; | ||
32 | g.getAllNodes().forEach(_function); | ||
33 | return samples; | ||
34 | } | ||
35 | |||
36 | public double calculateMPC(final EObject n, final GraphStatistic g, final int typeCounts) { | ||
37 | int _outDegree = g.outDegree(n); | ||
38 | int _inDegree = g.inDegree(n); | ||
39 | final int edgeCounts = (_outDegree + _inDegree); | ||
40 | double coef = 0.0; | ||
41 | List<String> _allTypes = g.getAllTypes(); | ||
42 | for (final String type : _allTypes) { | ||
43 | { | ||
44 | int _dimentionalDegree = g.dimentionalDegree(n, type); | ||
45 | final double degree = ((double) _dimentionalDegree); | ||
46 | double _coef = coef; | ||
47 | double _pow = Math.pow((degree / edgeCounts), 2); | ||
48 | coef = (_coef + _pow); | ||
49 | } | ||
50 | } | ||
51 | coef = (1 - coef); | ||
52 | coef = ((coef * typeCounts) / (typeCounts - 1)); | ||
53 | boolean _isNaN = Double.isNaN(coef); | ||
54 | if (_isNaN) { | ||
55 | coef = 0; | ||
56 | } | ||
57 | return Double.parseDouble(this.formatter.format(coef)); | ||
58 | } | ||
59 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java new file mode 100644 index 00000000..12bec460 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java | |||
@@ -0,0 +1,31 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.function.Consumer; | ||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | |||
9 | @SuppressWarnings("all") | ||
10 | public class NodeActivityMetric extends Metric { | ||
11 | public final static String countName = "NACount"; | ||
12 | |||
13 | public final static String valueName = "NAValue"; | ||
14 | |||
15 | @Override | ||
16 | public String[][] evaluate(final GraphStatistic g) { | ||
17 | throw new Error("Unresolved compilation problems:" | ||
18 | + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); | ||
19 | } | ||
20 | |||
21 | @Override | ||
22 | public Object evaluateSamples(final GraphStatistic g) { | ||
23 | final ArrayList<Double> samples = new ArrayList<Double>(); | ||
24 | final Consumer<EObject> _function = (EObject it) -> { | ||
25 | int _numOfEdgeTypes = g.numOfEdgeTypes(it); | ||
26 | samples.add(Double.valueOf(((double) _numOfEdgeTypes))); | ||
27 | }; | ||
28 | g.getAllNodes().forEach(_function); | ||
29 | return samples; | ||
30 | } | ||
31 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java new file mode 100644 index 00000000..75c2cfef --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java | |||
@@ -0,0 +1,54 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.HashMap; | ||
7 | import java.util.List; | ||
8 | import java.util.Map; | ||
9 | import java.util.Set; | ||
10 | import org.eclipse.emf.ecore.EObject; | ||
11 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
12 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
13 | |||
14 | @SuppressWarnings("all") | ||
15 | public class NodeTypeMetric extends Metric { | ||
16 | @Override | ||
17 | public String[][] evaluate(final GraphStatistic g) { | ||
18 | Object _evaluateSamples = this.evaluateSamples(g); | ||
19 | HashMap<String, Double> map = ((HashMap<String, Double>) _evaluateSamples); | ||
20 | ArrayList<String[]> output = new ArrayList<String[]>(); | ||
21 | output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Node Type"), String.class))); | ||
22 | Set<String> keys = map.keySet(); | ||
23 | ArrayList<String> values = CollectionLiterals.<String>newArrayList(); | ||
24 | for (final String key : keys) { | ||
25 | Double _get = map.get(key); | ||
26 | String _plus = (_get + ""); | ||
27 | values.add(_plus); | ||
28 | } | ||
29 | final Set<String> _converted_keys = (Set<String>)keys; | ||
30 | output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class))); | ||
31 | final ArrayList<String> _converted_values = (ArrayList<String>)values; | ||
32 | output.add(((String[])Conversions.unwrapArray(_converted_values, String.class))); | ||
33 | return ((String[][])Conversions.unwrapArray(output, String[].class)); | ||
34 | } | ||
35 | |||
36 | @Override | ||
37 | public Object evaluateSamples(final GraphStatistic g) { | ||
38 | HashMap<String, Double> map = new HashMap<String, Double>(); | ||
39 | List<EObject> nodes = g.getAllNodes(); | ||
40 | int _size = nodes.size(); | ||
41 | double single = (1.0 / _size); | ||
42 | Map<EObject, Set<String>> nodeToType = g.getNodeToTypesMap(); | ||
43 | for (final EObject node : nodes) { | ||
44 | Set<String> _get = nodeToType.get(node); | ||
45 | for (final String cl : _get) { | ||
46 | { | ||
47 | Double value = map.getOrDefault(cl, Double.valueOf(0.0)); | ||
48 | map.put(cl, Double.valueOf(((value).doubleValue() + single))); | ||
49 | } | ||
50 | } | ||
51 | } | ||
52 | return map; | ||
53 | } | ||
54 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java new file mode 100644 index 00000000..67e4be0d --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java | |||
@@ -0,0 +1,31 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.function.Consumer; | ||
7 | import org.eclipse.emf.ecore.EObject; | ||
8 | |||
9 | @SuppressWarnings("all") | ||
10 | public class OutDegreeMetric extends Metric { | ||
11 | public final static String countName = "OutDegreeCount"; | ||
12 | |||
13 | public final static String valueName = "OutDegreeValue"; | ||
14 | |||
15 | @Override | ||
16 | public String[][] evaluate(final GraphStatistic g) { | ||
17 | throw new Error("Unresolved compilation problems:" | ||
18 | + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); | ||
19 | } | ||
20 | |||
21 | @Override | ||
22 | public Object evaluateSamples(final GraphStatistic g) { | ||
23 | final ArrayList<Double> samples = new ArrayList<Double>(); | ||
24 | final Consumer<EObject> _function = (EObject it) -> { | ||
25 | int _outDegree = g.outDegree(it); | ||
26 | samples.add(Double.valueOf(((double) _outDegree))); | ||
27 | }; | ||
28 | g.getAllNodes().forEach(_function); | ||
29 | return samples; | ||
30 | } | ||
31 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java new file mode 100644 index 00000000..042af5c3 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java | |||
@@ -0,0 +1,74 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import com.google.common.base.Objects; | ||
6 | import java.text.DecimalFormat; | ||
7 | import java.util.ArrayList; | ||
8 | import java.util.Collection; | ||
9 | import java.util.HashSet; | ||
10 | import java.util.List; | ||
11 | import java.util.function.Consumer; | ||
12 | import org.eclipse.emf.ecore.EObject; | ||
13 | |||
14 | @SuppressWarnings("all") | ||
15 | public class TypedClusteringCoefficientMetric extends Metric { | ||
16 | public final static String countName = "TCCCount"; | ||
17 | |||
18 | public final static String valueName = "TCCValue"; | ||
19 | |||
20 | private final DecimalFormat formatter = new DecimalFormat("#0.00000"); | ||
21 | |||
22 | @Override | ||
23 | public String[][] evaluate(final GraphStatistic g) { | ||
24 | throw new Error("Unresolved compilation problems:" | ||
25 | + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); | ||
26 | } | ||
27 | |||
28 | @Override | ||
29 | public Object evaluateSamples(final GraphStatistic g) { | ||
30 | final ArrayList<Double> samples = new ArrayList<Double>(); | ||
31 | final Consumer<EObject> _function = (EObject it) -> { | ||
32 | samples.add(Double.valueOf(this.calculateTCC1(it, g))); | ||
33 | }; | ||
34 | g.getAllNodes().forEach(_function); | ||
35 | return samples; | ||
36 | } | ||
37 | |||
38 | /** | ||
39 | * Compute TCC1 metric for node n | ||
40 | */ | ||
41 | public double calculateTCC1(final EObject n, final GraphStatistic g) { | ||
42 | int wedges = 0; | ||
43 | int triangles = 0; | ||
44 | List<String> _allTypes = g.getAllTypes(); | ||
45 | for (final String type1 : _allTypes) { | ||
46 | { | ||
47 | Collection<EObject> _get = g.getOutgoingEdges().get(type1).get(n); | ||
48 | final HashSet<EObject> typed1RelatedOfN = new HashSet<EObject>(_get); | ||
49 | Collection<EObject> _get_1 = g.incomingEdges().get(type1).get(n); | ||
50 | final HashSet<EObject> type1EdgeSourceNodesOfN = new HashSet<EObject>(_get_1); | ||
51 | typed1RelatedOfN.addAll(type1EdgeSourceNodesOfN); | ||
52 | final int d = typed1RelatedOfN.size(); | ||
53 | int _wedges = wedges; | ||
54 | wedges = (_wedges + (d * (d - 1))); | ||
55 | for (final EObject n1 : typed1RelatedOfN) { | ||
56 | for (final EObject n2 : typed1RelatedOfN) { | ||
57 | List<String> _allTypes_1 = g.getAllTypes(); | ||
58 | for (final String type2 : _allTypes_1) { | ||
59 | if (((!Objects.equal(type1, type2)) && (g.getOutgoingEdges().get(type2).containsEntry(n1, n2) || | ||
60 | g.getOutgoingEdges().get(type2).containsEntry(n2, n1)))) { | ||
61 | triangles++; | ||
62 | } | ||
63 | } | ||
64 | } | ||
65 | } | ||
66 | } | ||
67 | } | ||
68 | if ((wedges == 0.0)) { | ||
69 | return 0.0; | ||
70 | } else { | ||
71 | return (((double) triangles) / wedges); | ||
72 | } | ||
73 | } | ||
74 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java new file mode 100644 index 00000000..dce80389 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java | |||
@@ -0,0 +1,73 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
5 | import com.google.common.collect.Multimap; | ||
6 | import java.util.ArrayList; | ||
7 | import java.util.HashMap; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import org.eclipse.emf.ecore.EObject; | ||
12 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
13 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
14 | |||
15 | @SuppressWarnings("all") | ||
16 | public class TypedOutDegree extends Metric { | ||
17 | private HashMap<String, List<Integer>> calculateMetric(final GraphStatistic g) { | ||
18 | HashMap<String, Multimap<EObject, EObject>> outgoingEdges = g.getOutgoingEdges(); | ||
19 | HashMap<String, List<Integer>> metric = new HashMap<String, List<Integer>>(); | ||
20 | Map<EObject, Set<String>> nodeToTypes = g.getNodeToTypesMap(); | ||
21 | Set<String> _keySet = outgoingEdges.keySet(); | ||
22 | for (final String edgeType : _keySet) { | ||
23 | Set<EObject> _keySet_1 = outgoingEdges.get(edgeType).keySet(); | ||
24 | for (final EObject node : _keySet_1) { | ||
25 | { | ||
26 | Set<String> classes = nodeToTypes.get(node); | ||
27 | for (final String cl : classes) { | ||
28 | { | ||
29 | String key = ((cl + " ") + edgeType); | ||
30 | List<Integer> typeCount = metric.get(key); | ||
31 | if ((typeCount == null)) { | ||
32 | ArrayList<Integer> _arrayList = new ArrayList<Integer>(); | ||
33 | typeCount = _arrayList; | ||
34 | metric.put(key, typeCount); | ||
35 | } | ||
36 | typeCount.add(Integer.valueOf(outgoingEdges.get(edgeType).get(node).size())); | ||
37 | } | ||
38 | } | ||
39 | } | ||
40 | } | ||
41 | } | ||
42 | return metric; | ||
43 | } | ||
44 | |||
45 | @Override | ||
46 | public String[][] evaluate(final GraphStatistic g) { | ||
47 | HashMap<String, List<Integer>> metric = this.calculateMetric(g); | ||
48 | ArrayList<String[]> output = new ArrayList<String[]>(); | ||
49 | output.add(((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList("Typed Out Degree"), String.class))); | ||
50 | Set<String> _keySet = metric.keySet(); | ||
51 | for (final String key : _keySet) { | ||
52 | { | ||
53 | List<Integer> samples = metric.get(key); | ||
54 | int _size = samples.size(); | ||
55 | int _plus = (_size + 1); | ||
56 | String[] outputForOnePair = new String[_plus]; | ||
57 | outputForOnePair[0] = key; | ||
58 | for (int i = 0; (i < samples.size()); i++) { | ||
59 | Integer _get = samples.get(i); | ||
60 | String _plus_1 = (_get + ""); | ||
61 | outputForOnePair[(i + 1)] = _plus_1; | ||
62 | } | ||
63 | output.add(outputForOnePair); | ||
64 | } | ||
65 | } | ||
66 | return ((String[][])Conversions.unwrapArray(output, String[].class)); | ||
67 | } | ||
68 | |||
69 | @Override | ||
70 | public Object evaluateSamples(final GraphStatistic g) { | ||
71 | return this.calculateMetric(g); | ||
72 | } | ||
73 | } | ||