diff options
161 files changed, 2503 insertions, 420 deletions
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace new file mode 100644 index 00000000..8ab43fde --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.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/app/.Domain.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin new file mode 100644 index 00000000..f502d04e --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.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/app/.Main.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace new file mode 100644 index 00000000..7096f9db --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.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/app/.Main.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin new file mode 100644 index 00000000..2362ebad --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.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/app/.MetricDistanceGroup.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace new file mode 100644 index 00000000..f6505088 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.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/app/.PartialInterpretationMetric.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace new file mode 100644 index 00000000..8708c793 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.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/app/.PartialInterpretationMetric.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin new file mode 100644 index 00000000..d9e88699 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.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/app/.PartialInterpretationMetricDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace new file mode 100644 index 00000000..3e381b10 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.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/app/.PartialInterpretationMetricDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin new file mode 100644 index 00000000..5071eb03 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.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/app/Domain.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java new file mode 100644 index 00000000..9b626001 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java | |||
@@ -0,0 +1,10 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | @SuppressWarnings("all") | ||
4 | public enum Domain { | ||
5 | Yakindumm, | ||
6 | |||
7 | Ecore, | ||
8 | |||
9 | Github; | ||
10 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java new file mode 100644 index 00000000..dbb3bdd1 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java | |||
@@ -0,0 +1,99 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck; | ||
8 | import com.google.common.base.Objects; | ||
9 | import com.google.common.collect.Iterators; | ||
10 | import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl; | ||
11 | import java.io.File; | ||
12 | import java.util.ArrayList; | ||
13 | import java.util.Iterator; | ||
14 | import org.eclipse.emf.ecore.EReference; | ||
15 | import org.eclipse.emf.ecore.impl.EcorePackageImpl; | ||
16 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
17 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
18 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
19 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
20 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
21 | |||
22 | @SuppressWarnings("all") | ||
23 | public class Main { | ||
24 | public static class RWInformation { | ||
25 | public String inputFolder; | ||
26 | |||
27 | public String outputFolder; | ||
28 | |||
29 | public int numRuns; | ||
30 | |||
31 | public RWInformation(final String inputFolder, final String outputFolder, final int numRuns) { | ||
32 | this.inputFolder = inputFolder; | ||
33 | this.outputFolder = outputFolder; | ||
34 | this.numRuns = numRuns; | ||
35 | } | ||
36 | } | ||
37 | |||
38 | private static Domain d = Domain.Yakindumm; | ||
39 | |||
40 | private final static String suffix = ".xmi"; | ||
41 | |||
42 | private final static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/"; | ||
43 | |||
44 | private final static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/"; | ||
45 | |||
46 | private final static int NUM_RUNS = 1; | ||
47 | |||
48 | public static void main(final String[] args) { | ||
49 | throw new Error("Unresolved compilation problems:" | ||
50 | + "\nThe method or field ReteEngine is undefined" | ||
51 | + "\ngetClass cannot be resolved"); | ||
52 | } | ||
53 | |||
54 | public static String calculateAllModels(final String inputFolder, final String outputFolder, final int numRuns, final GraphReader reader) { | ||
55 | String _xblockexpression = null; | ||
56 | { | ||
57 | new File(outputFolder).mkdir(); | ||
58 | for (int i = 1; (i <= numRuns); i++) { | ||
59 | { | ||
60 | final ArrayList<EMFGraph> models = new ArrayList<EMFGraph>(); | ||
61 | models.addAll(reader.readModels(((inputFolder + "run") + Integer.valueOf(i)))); | ||
62 | for (final EMFGraph model : models) { | ||
63 | String _name = model.getName(); | ||
64 | String _plus = (outputFolder + _name); | ||
65 | String _plus_1 = (_plus + "_run_"); | ||
66 | String _plus_2 = (_plus_1 + Integer.valueOf(i)); | ||
67 | String _plus_3 = (_plus_2 + ".csv"); | ||
68 | Main.calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, _plus_3); | ||
69 | } | ||
70 | } | ||
71 | } | ||
72 | _xblockexpression = InputOutput.<String>println(("output results Ended for: " + outputFolder)); | ||
73 | } | ||
74 | return _xblockexpression; | ||
75 | } | ||
76 | |||
77 | public static void calculateAndOutputMetrics(final EMFGraph model, final String metaModel, final String fileName) { | ||
78 | model.setMetaModel(metaModel); | ||
79 | boolean _equals = Objects.equal(Main.d, Domain.Ecore); | ||
80 | if (_equals) { | ||
81 | final Function1<EReference, Boolean> _function = (EReference it) -> { | ||
82 | return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) || | ||
83 | it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents"))); | ||
84 | }; | ||
85 | Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function); | ||
86 | final Procedure1<EReference> _function_1 = (EReference it) -> { | ||
87 | model.removeReference(it); | ||
88 | }; | ||
89 | IteratorExtensions.<EReference>forEach(refsToRemove, _function_1); | ||
90 | } | ||
91 | ArrayList<ArrayList<String>> outputs = model.evaluateAllMetrics(); | ||
92 | int violations = ViolationCheck.calculateViolationCounts(model.getRoot(), Main.d); | ||
93 | InputOutput.<Integer>println(Integer.valueOf(violations)); | ||
94 | String _plus = (Integer.valueOf(violations) + ""); | ||
95 | ArrayList<String> violationsOutput = CollectionLiterals.<String>newArrayList("violations", _plus); | ||
96 | outputs.add(violationsOutput); | ||
97 | CsvFileWriter.write(outputs, fileName); | ||
98 | } | ||
99 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java new file mode 100644 index 00000000..bb0e3ffb --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java | |||
@@ -0,0 +1,49 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import java.util.HashMap; | ||
4 | |||
5 | @SuppressWarnings("all") | ||
6 | public class MetricDistanceGroup { | ||
7 | private double mpcDistance; | ||
8 | |||
9 | private double naDistance; | ||
10 | |||
11 | private double outDegreeDistance; | ||
12 | |||
13 | private double nodeTypeDistance; | ||
14 | |||
15 | protected HashMap<String, Double> nodeTypeInfo; | ||
16 | |||
17 | public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance, final double nodeTypeDistance) { | ||
18 | this.mpcDistance = mpcDistance; | ||
19 | this.naDistance = naDistance; | ||
20 | this.outDegreeDistance = outDegreeDistance; | ||
21 | this.nodeTypeDistance = nodeTypeDistance; | ||
22 | } | ||
23 | |||
24 | public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance) { | ||
25 | this.mpcDistance = mpcDistance; | ||
26 | this.naDistance = naDistance; | ||
27 | this.outDegreeDistance = outDegreeDistance; | ||
28 | } | ||
29 | |||
30 | public double getNodeTypeDistance() { | ||
31 | return this.nodeTypeDistance; | ||
32 | } | ||
33 | |||
34 | public double getMPCDistance() { | ||
35 | return this.mpcDistance; | ||
36 | } | ||
37 | |||
38 | public double getNADistance() { | ||
39 | return this.naDistance; | ||
40 | } | ||
41 | |||
42 | public double getOutDegreeDistance() { | ||
43 | return this.outDegreeDistance; | ||
44 | } | ||
45 | |||
46 | public double getNodeTypePercentage(final String typeName) { | ||
47 | return (this.nodeTypeInfo.getOrDefault(typeName, Double.valueOf(0.0))).doubleValue(); | ||
48 | } | ||
49 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java new file mode 100644 index 00000000..d1d75d0d --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java | |||
@@ -0,0 +1,54 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
12 | import java.io.File; | ||
13 | import java.util.ArrayList; | ||
14 | import java.util.List; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public class PartialInterpretationMetric { | ||
18 | private static KSDistance ks; | ||
19 | |||
20 | private static JSDistance js; | ||
21 | |||
22 | public static void initPaths() { | ||
23 | new File("debug/metric/").mkdir(); | ||
24 | new File("debug/metric/trajectories/").mkdir(); | ||
25 | } | ||
26 | |||
27 | public static void calculateMetric(final PartialInterpretation partial, final String path, final String currentStateId, final Integer counter) { | ||
28 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
29 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
30 | metrics.add(_outDegreeMetric); | ||
31 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
32 | metrics.add(_nodeActivityMetric); | ||
33 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
34 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
35 | new File(path).mkdir(); | ||
36 | final String filename = (((((path + "/state_") + currentStateId) + "-") + counter) + ".csv"); | ||
37 | final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId); | ||
38 | CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename); | ||
39 | } | ||
40 | |||
41 | public static void outputTrajectories(final PartialInterpretation empty, final /* List<Solution> */Object solutions) { | ||
42 | throw new Error("Unresolved compilation problems:" | ||
43 | + "\nshortestTrajectory cannot be resolved" | ||
44 | + "\nmodel cannot be resolved" | ||
45 | + "\ndoNextTransformation cannot be resolved" | ||
46 | + "\nstateCoder cannot be resolved" | ||
47 | + "\ncreateStateCode cannot be resolved" | ||
48 | + "\ntoString cannot be resolved" | ||
49 | + "\ngetModel cannot be resolved" | ||
50 | + "\nstateCoder cannot be resolved" | ||
51 | + "\ncreateStateCode cannot be resolved" | ||
52 | + "\ntoString cannot be resolved"); | ||
53 | } | ||
54 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java new file mode 100644 index 00000000..c98cbeea --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java | |||
@@ -0,0 +1,180 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
12 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
13 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
14 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; | ||
15 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
16 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel; | ||
17 | import com.google.common.base.Objects; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
19 | import java.util.ArrayList; | ||
20 | import java.util.List; | ||
21 | import java.util.Map; | ||
22 | import org.eclipse.xtend.lib.annotations.AccessorType; | ||
23 | import org.eclipse.xtend.lib.annotations.Accessors; | ||
24 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
25 | import org.eclipse.xtext.xbase.lib.Pure; | ||
26 | |||
27 | @SuppressWarnings("all") | ||
28 | public class PartialInterpretationMetricDistance { | ||
29 | private KSDistance ks; | ||
30 | |||
31 | private JSDistance js; | ||
32 | |||
33 | private EuclideanDistance ed; | ||
34 | |||
35 | private Map<Object, StateData> stateAndHistory; | ||
36 | |||
37 | private /* OLSMultipleLinearRegression */Object regression; | ||
38 | |||
39 | private List<StateData> samples; | ||
40 | |||
41 | private MetricSampleGroup g; | ||
42 | |||
43 | @Accessors(AccessorType.PUBLIC_GETTER) | ||
44 | private LinearModel linearModel; | ||
45 | |||
46 | public PartialInterpretationMetricDistance(final Domain d) { | ||
47 | throw new Error("Unresolved compilation problems:" | ||
48 | + "\nOLSMultipleLinearRegression cannot be resolved." | ||
49 | + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" | ||
50 | + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" | ||
51 | + "\nnoIntercept cannot be resolved"); | ||
52 | } | ||
53 | |||
54 | public MetricDistanceGroup calculateMetricDistanceKS(final PartialInterpretation partial) { | ||
55 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
56 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
57 | metrics.add(_outDegreeMetric); | ||
58 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
59 | metrics.add(_nodeActivityMetric); | ||
60 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
61 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
62 | NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); | ||
63 | metrics.add(_nodeTypeMetric); | ||
64 | final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | ||
65 | MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | ||
66 | double mpc = this.ks.mpcDistance(metricSamples.mpcSamples); | ||
67 | double na = this.ks.naDistance(metricSamples.naSamples); | ||
68 | double outDegree = this.ks.outDegreeDistance(metricSamples.outDegreeSamples); | ||
69 | double nodeType = this.ks.nodeTypeDistance(metricSamples.nodeTypeSamples); | ||
70 | MetricDistanceGroup distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType); | ||
71 | distance.nodeTypeInfo = metricSamples.nodeTypeSamples; | ||
72 | return distance; | ||
73 | } | ||
74 | |||
75 | public MetricDistanceGroup calculateMetricEuclidean(final PartialInterpretation partial) { | ||
76 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
77 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
78 | metrics.add(_outDegreeMetric); | ||
79 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
80 | metrics.add(_nodeActivityMetric); | ||
81 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
82 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
83 | final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | ||
84 | MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | ||
85 | double mpc = this.ed.mpcDistance(metricSamples.mpcSamples); | ||
86 | double na = this.ed.naDistance(metricSamples.naSamples); | ||
87 | double outDegree = this.ed.outDegreeDistance(metricSamples.outDegreeSamples); | ||
88 | return new MetricDistanceGroup(mpc, na, outDegree); | ||
89 | } | ||
90 | |||
91 | public MetricDistanceGroup calculateMetricDistance(final PartialInterpretation partial) { | ||
92 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
93 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
94 | metrics.add(_outDegreeMetric); | ||
95 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
96 | metrics.add(_nodeActivityMetric); | ||
97 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
98 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
99 | final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); | ||
100 | MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); | ||
101 | double mpc = this.js.mpcDistance(metricSamples.mpcSamples); | ||
102 | double na = this.js.naDistance(metricSamples.naSamples); | ||
103 | double outDegree = this.js.outDegreeDistance(metricSamples.outDegreeSamples); | ||
104 | return new MetricDistanceGroup(mpc, na, outDegree); | ||
105 | } | ||
106 | |||
107 | public String resetRegression(final Object state) { | ||
108 | String _xblockexpression = null; | ||
109 | { | ||
110 | this.samples.clear(); | ||
111 | boolean _containsKey = this.stateAndHistory.containsKey(state); | ||
112 | if (_containsKey) { | ||
113 | StateData data = this.stateAndHistory.get(state); | ||
114 | Object curState = state; | ||
115 | this.samples.add(data); | ||
116 | while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) { | ||
117 | { | ||
118 | curState = data.getLastState(); | ||
119 | data = this.stateAndHistory.get(data.getLastState()); | ||
120 | this.samples.add(data); | ||
121 | } | ||
122 | } | ||
123 | int _size = this.samples.size(); | ||
124 | boolean _equals = (_size == 0); | ||
125 | if (_equals) { | ||
126 | InputOutput.<String>println(("state: " + state)); | ||
127 | Object _lastState = data.getLastState(); | ||
128 | String _plus = ("last state: " + _lastState); | ||
129 | InputOutput.<String>println(_plus); | ||
130 | } | ||
131 | } | ||
132 | int _size_1 = this.samples.size(); | ||
133 | String _plus_1 = ("trajectory sample size:" + Integer.valueOf(_size_1)); | ||
134 | _xblockexpression = InputOutput.<String>println(_plus_1); | ||
135 | } | ||
136 | return _xblockexpression; | ||
137 | } | ||
138 | |||
139 | public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) { | ||
140 | boolean _xblockexpression = false; | ||
141 | { | ||
142 | StateData data = new StateData(features, value, lastState); | ||
143 | this.stateAndHistory.put(state, data); | ||
144 | _xblockexpression = this.samples.add(data); | ||
145 | } | ||
146 | return _xblockexpression; | ||
147 | } | ||
148 | |||
149 | public Object getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) { | ||
150 | throw new Error("Unresolved compilation problems:" | ||
151 | + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" | ||
152 | + "\nThe method predict(double[]) from the type PartialInterpretationMetricDistance refers to the missing type Object" | ||
153 | + "\nnewSampleData cannot be resolved"); | ||
154 | } | ||
155 | |||
156 | private Object predict(final double[] featuresToPredict) { | ||
157 | throw new Error("Unresolved compilation problems:" | ||
158 | + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" | ||
159 | + "\nestimateRegressionParameters cannot be resolved" | ||
160 | + "\nget cannot be resolved" | ||
161 | + "\n+= cannot be resolved" | ||
162 | + "\nget cannot be resolved" | ||
163 | + "\n* cannot be resolved"); | ||
164 | } | ||
165 | |||
166 | public double[] calculateFeature(final int step, final int violations) { | ||
167 | double[] features = new double[2]; | ||
168 | features[0] = 1; | ||
169 | double _sqrt = Math.sqrt(step); | ||
170 | double _plus = (_sqrt + 30); | ||
171 | features[0] = _plus; | ||
172 | features[1] = (1.0 / (step + 30)); | ||
173 | return features; | ||
174 | } | ||
175 | |||
176 | @Pure | ||
177 | public LinearModel getLinearModel() { | ||
178 | return this.linearModel; | ||
179 | } | ||
180 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace new file mode 100644 index 00000000..b7325732 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.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/distance/.CostDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin new file mode 100644 index 00000000..1b30d47a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.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/distance/.EuclideanDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace new file mode 100644 index 00000000..fa849d42 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.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/distance/.EuclideanDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin new file mode 100644 index 00000000..e7be4117 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.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/distance/.JSDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace new file mode 100644 index 00000000..66b1b229 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.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/distance/.JSDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin new file mode 100644 index 00000000..7a08f8e5 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.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/distance/.KSDistance.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace new file mode 100644 index 00000000..c7256d9a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.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/distance/.KSDistance.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin new file mode 100644 index 00000000..309066cc --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.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/distance/.StateData.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace new file mode 100644 index 00000000..d4cde029 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.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/distance/CostDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java new file mode 100644 index 00000000..cb366f64 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java | |||
@@ -0,0 +1,26 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; | ||
2 | |||
3 | import java.text.DecimalFormat; | ||
4 | import java.util.HashMap; | ||
5 | import java.util.List; | ||
6 | |||
7 | @SuppressWarnings("all") | ||
8 | public abstract class CostDistance { | ||
9 | public abstract double naDistance(final List<Double> samples); | ||
10 | |||
11 | public abstract double mpcDistance(final List<Double> samples); | ||
12 | |||
13 | public abstract double outDegreeDistance(final List<Double> samples); | ||
14 | |||
15 | protected HashMap<String, Double> pmfFromSamples(final double[] samples, final DecimalFormat formatter) { | ||
16 | int length = samples.length; | ||
17 | HashMap<String, Double> pmfMap = new HashMap<String, Double>(); | ||
18 | for (final double sample : samples) { | ||
19 | String _format = formatter.format(sample); | ||
20 | Double _orDefault = pmfMap.getOrDefault(formatter.format(sample), Double.valueOf(0.0)); | ||
21 | double _plus = ((_orDefault).doubleValue() + (1.0 / length)); | ||
22 | pmfMap.put(_format, Double.valueOf(_plus)); | ||
23 | } | ||
24 | return pmfMap; | ||
25 | } | ||
26 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java new file mode 100644 index 00000000..6a80d750 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java | |||
@@ -0,0 +1,91 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
5 | import com.google.common.collect.Sets; | ||
6 | import java.text.DecimalFormat; | ||
7 | import java.util.ArrayList; | ||
8 | import java.util.HashMap; | ||
9 | import java.util.List; | ||
10 | import java.util.Map; | ||
11 | import java.util.Set; | ||
12 | import java.util.function.ToDoubleFunction; | ||
13 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
14 | import org.eclipse.xtext.xbase.lib.DoubleExtensions; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public class EuclideanDistance extends CostDistance { | ||
18 | private MetricSampleGroup g; | ||
19 | |||
20 | private HashMap<String, Double> mpcPMF; | ||
21 | |||
22 | private HashMap<String, Double> naPMF; | ||
23 | |||
24 | private HashMap<String, Double> outDegreePMF; | ||
25 | |||
26 | private DecimalFormat formatter; | ||
27 | |||
28 | public EuclideanDistance(final MetricSampleGroup g) { | ||
29 | this.g = g; | ||
30 | List<Double> mpcSamples = g.mpcSamples; | ||
31 | final ToDoubleFunction<Double> _function = (Double it) -> { | ||
32 | return (it).doubleValue(); | ||
33 | }; | ||
34 | double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray(); | ||
35 | final ToDoubleFunction<Double> _function_1 = (Double it) -> { | ||
36 | return (it).doubleValue(); | ||
37 | }; | ||
38 | double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray(); | ||
39 | DecimalFormat _decimalFormat = new DecimalFormat("#0.00000"); | ||
40 | this.formatter = _decimalFormat; | ||
41 | final List<Double> _converted_mpcSamples = (List<Double>)mpcSamples; | ||
42 | this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter); | ||
43 | this.naPMF = this.pmfFromSamples(naSamples, this.formatter); | ||
44 | this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter); | ||
45 | } | ||
46 | |||
47 | @Override | ||
48 | public double naDistance(final List<Double> samples) { | ||
49 | HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); | ||
50 | return this.euclideanDistance(pmfMap, this.naPMF); | ||
51 | } | ||
52 | |||
53 | @Override | ||
54 | public double mpcDistance(final List<Double> samples) { | ||
55 | HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); | ||
56 | return this.euclideanDistance(pmfMap, this.mpcPMF); | ||
57 | } | ||
58 | |||
59 | @Override | ||
60 | public double outDegreeDistance(final List<Double> samples) { | ||
61 | HashMap<String, Double> pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); | ||
62 | return this.euclideanDistance(pmfMap, this.outDegreePMF); | ||
63 | } | ||
64 | |||
65 | private double euclideanDistance(final HashMap<String, Double> pmf1, final HashMap<String, Double> pmf2) { | ||
66 | Sets.SetView<String> keys = Sets.<String>union(pmf1.keySet(), pmf2.keySet()); | ||
67 | ArrayList<Double> pmfList1 = this.pmfMapToList(pmf1, keys); | ||
68 | ArrayList<Double> pmfList2 = this.pmfMapToList(pmf2, keys); | ||
69 | double distance = 0.0; | ||
70 | for (int i = 0; (i < pmfList1.size()); i++) { | ||
71 | double _distance = distance; | ||
72 | Double _get = pmfList1.get(i); | ||
73 | Double _get_1 = pmfList2.get(i); | ||
74 | double _plus = DoubleExtensions.operator_plus(_get, _get_1); | ||
75 | double _pow = Math.pow(_plus, 2); | ||
76 | distance = (_distance + _pow); | ||
77 | } | ||
78 | return Math.sqrt(distance); | ||
79 | } | ||
80 | |||
81 | private ArrayList<Double> pmfMapToList(final Map<String, Double> map, final Set<String> keys) { | ||
82 | ArrayList<Double> list = new ArrayList<Double>(); | ||
83 | for (final String key : keys) { | ||
84 | { | ||
85 | Double value = map.getOrDefault(key, Double.valueOf(0.0)); | ||
86 | list.add(value); | ||
87 | } | ||
88 | } | ||
89 | return list; | ||
90 | } | ||
91 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java new file mode 100644 index 00000000..d3e7e3ad --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java | |||
@@ -0,0 +1,136 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
5 | import com.google.common.collect.Sets; | ||
6 | import java.text.DecimalFormat; | ||
7 | import java.util.HashMap; | ||
8 | import java.util.List; | ||
9 | import java.util.Set; | ||
10 | import java.util.function.ToDoubleFunction; | ||
11 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
12 | import org.eclipse.xtext.xbase.lib.DoubleExtensions; | ||
13 | |||
14 | @SuppressWarnings("all") | ||
15 | public class JSDistance extends CostDistance { | ||
16 | private HashMap<String, Double> mpcPMF; | ||
17 | |||
18 | private HashMap<String, Double> naPMF; | ||
19 | |||
20 | private HashMap<String, Double> outDegreePMF; | ||
21 | |||
22 | private HashMap<String, Double> nodeTypesPMF; | ||
23 | |||
24 | private DecimalFormat formatter; | ||
25 | |||
26 | public JSDistance(final MetricSampleGroup g) { | ||
27 | List<Double> mpcSamples = g.mpcSamples; | ||
28 | final ToDoubleFunction<Double> _function = (Double it) -> { | ||
29 | return (it).doubleValue(); | ||
30 | }; | ||
31 | double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray(); | ||
32 | final ToDoubleFunction<Double> _function_1 = (Double it) -> { | ||
33 | return (it).doubleValue(); | ||
34 | }; | ||
35 | double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray(); | ||
36 | DecimalFormat _decimalFormat = new DecimalFormat("#0.00000"); | ||
37 | this.formatter = _decimalFormat; | ||
38 | final List<Double> _converted_mpcSamples = (List<Double>)mpcSamples; | ||
39 | this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter); | ||
40 | this.naPMF = this.pmfFromSamples(naSamples, this.formatter); | ||
41 | this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter); | ||
42 | this.nodeTypesPMF = g.nodeTypeSamples; | ||
43 | } | ||
44 | |||
45 | private HashMap<String, Double> combinePMF(final HashMap<String, Double> pmf1, final HashMap<String, Double> pmf2) { | ||
46 | HashMap<String, Double> pmfMap = new HashMap<String, Double>(); | ||
47 | Sets.SetView<String> union = Sets.<String>union(pmf1.keySet(), pmf2.keySet()); | ||
48 | for (final String key : union) { | ||
49 | { | ||
50 | Double _orDefault = pmf1.getOrDefault(key, Double.valueOf(0.0)); | ||
51 | Double _orDefault_1 = pmf2.getOrDefault(key, Double.valueOf(0.0)); | ||
52 | double _plus = DoubleExtensions.operator_plus(_orDefault, _orDefault_1); | ||
53 | double value = ((1.0 / 2) * _plus); | ||
54 | pmfMap.put(key, Double.valueOf(value)); | ||
55 | } | ||
56 | } | ||
57 | return pmfMap; | ||
58 | } | ||
59 | |||
60 | private double jsDivergence(final HashMap<String, Double> p, final HashMap<String, Double> q) { | ||
61 | final HashMap<String, Double> m = this.combinePMF(q, p); | ||
62 | double _klDivergence = this.klDivergence(p, m); | ||
63 | double _multiply = ((1.0 / 2) * _klDivergence); | ||
64 | double _klDivergence_1 = this.klDivergence(q, m); | ||
65 | double _multiply_1 = ((1.0 / 2) * _klDivergence_1); | ||
66 | double distance = (_multiply + _multiply_1); | ||
67 | return distance; | ||
68 | } | ||
69 | |||
70 | public double klDivergence(final HashMap<String, Double> p, final HashMap<String, Double> q) { | ||
71 | double distance = 0.0; | ||
72 | Set<String> _keySet = q.keySet(); | ||
73 | for (final String key : _keySet) { | ||
74 | boolean _containsKey = p.containsKey(key); | ||
75 | if (_containsKey) { | ||
76 | double _distance = distance; | ||
77 | Double _get = p.get(key); | ||
78 | Double _get_1 = q.get(key); | ||
79 | Double _get_2 = p.get(key); | ||
80 | double _divide = DoubleExtensions.operator_divide(_get_1, _get_2); | ||
81 | double _log = Math.log(_divide); | ||
82 | double _multiply = ((_get).doubleValue() * _log); | ||
83 | double _log_1 = Math.log(2); | ||
84 | double _divide_1 = (_multiply / _log_1); | ||
85 | distance = (_distance - _divide_1); | ||
86 | } | ||
87 | } | ||
88 | return distance; | ||
89 | } | ||
90 | |||
91 | @Override | ||
92 | public double mpcDistance(final List<Double> samples) { | ||
93 | final ToDoubleFunction<Double> _function = (Double it) -> { | ||
94 | return (it).doubleValue(); | ||
95 | }; | ||
96 | HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); | ||
97 | int _size = map.size(); | ||
98 | boolean _lessThan = (_size < 2); | ||
99 | if (_lessThan) { | ||
100 | return 1; | ||
101 | } | ||
102 | return this.jsDivergence(map, this.mpcPMF); | ||
103 | } | ||
104 | |||
105 | @Override | ||
106 | public double naDistance(final List<Double> samples) { | ||
107 | final ToDoubleFunction<Double> _function = (Double it) -> { | ||
108 | return (it).doubleValue(); | ||
109 | }; | ||
110 | HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); | ||
111 | int _size = map.size(); | ||
112 | boolean _lessThan = (_size < 2); | ||
113 | if (_lessThan) { | ||
114 | return 1; | ||
115 | } | ||
116 | return this.jsDivergence(map, this.naPMF); | ||
117 | } | ||
118 | |||
119 | @Override | ||
120 | public double outDegreeDistance(final List<Double> samples) { | ||
121 | final ToDoubleFunction<Double> _function = (Double it) -> { | ||
122 | return (it).doubleValue(); | ||
123 | }; | ||
124 | HashMap<String, Double> map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); | ||
125 | int _size = map.size(); | ||
126 | boolean _lessThan = (_size < 2); | ||
127 | if (_lessThan) { | ||
128 | return 1; | ||
129 | } | ||
130 | return this.jsDivergence(map, this.outDegreePMF); | ||
131 | } | ||
132 | |||
133 | public double nodeTypeDistance(final HashMap<String, Double> samples) { | ||
134 | return this.klDivergence(samples, this.nodeTypesPMF); | ||
135 | } | ||
136 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java new file mode 100644 index 00000000..638ff332 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java | |||
@@ -0,0 +1,93 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.HashMap; | ||
7 | import java.util.List; | ||
8 | import java.util.Set; | ||
9 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
10 | |||
11 | @SuppressWarnings("all") | ||
12 | public class KSDistance extends CostDistance { | ||
13 | private static Object ksTester /* Skipped initializer because of errors */; | ||
14 | |||
15 | private MetricSampleGroup g; | ||
16 | |||
17 | public KSDistance(final MetricSampleGroup g) { | ||
18 | this.g = g; | ||
19 | } | ||
20 | |||
21 | @Override | ||
22 | public double mpcDistance(final List<Double> samples) { | ||
23 | throw new Error("Unresolved compilation problems:" | ||
24 | + "\nThe field KSDistance.ksTester refers to the missing type Object" | ||
25 | + "\nkolmogorovSmirnovStatistic cannot be resolved"); | ||
26 | } | ||
27 | |||
28 | @Override | ||
29 | public double naDistance(final List<Double> samples) { | ||
30 | throw new Error("Unresolved compilation problems:" | ||
31 | + "\nThe field KSDistance.ksTester refers to the missing type Object" | ||
32 | + "\nkolmogorovSmirnovStatistic cannot be resolved"); | ||
33 | } | ||
34 | |||
35 | @Override | ||
36 | public double outDegreeDistance(final List<Double> samples) { | ||
37 | throw new Error("Unresolved compilation problems:" | ||
38 | + "\nThe field KSDistance.ksTester refers to the missing type Object" | ||
39 | + "\nkolmogorovSmirnovStatistic cannot be resolved"); | ||
40 | } | ||
41 | |||
42 | public double typedOutDegreeDistance(final HashMap<String, List<Integer>> map) { | ||
43 | throw new Error("Unresolved compilation problems:" | ||
44 | + "\nThe field KSDistance.ksTester refers to the missing type Object" | ||
45 | + "\nkolmogorovSmirnovStatistic cannot be resolved"); | ||
46 | } | ||
47 | |||
48 | public double nodeTypeDistance(final HashMap<String, Double> samples) { | ||
49 | HashMap<String, Double> typesDistMap = this.g.nodeTypeSamples; | ||
50 | ArrayList<Double> sourceDist = CollectionLiterals.<Double>newArrayList(); | ||
51 | ArrayList<Double> instanceDist = CollectionLiterals.<Double>newArrayList(); | ||
52 | Set<String> _keySet = typesDistMap.keySet(); | ||
53 | for (final String key : _keySet) { | ||
54 | { | ||
55 | sourceDist.add(typesDistMap.get(key)); | ||
56 | instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0))); | ||
57 | } | ||
58 | } | ||
59 | return this.ks_distance_two_dist(sourceDist, instanceDist); | ||
60 | } | ||
61 | |||
62 | public double edgeTypeDistance(final HashMap<String, Double> samples) { | ||
63 | HashMap<String, Double> typesDistMap = this.g.edgeTypeSamples; | ||
64 | ArrayList<Double> sourceDist = CollectionLiterals.<Double>newArrayList(); | ||
65 | ArrayList<Double> instanceDist = CollectionLiterals.<Double>newArrayList(); | ||
66 | Set<String> _keySet = typesDistMap.keySet(); | ||
67 | for (final String key : _keySet) { | ||
68 | { | ||
69 | sourceDist.add(typesDistMap.get(key)); | ||
70 | instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0))); | ||
71 | } | ||
72 | } | ||
73 | return this.ks_distance_two_dist(sourceDist, instanceDist); | ||
74 | } | ||
75 | |||
76 | public double ks_distance_two_dist(final List<Double> dist1, final List<Double> dist2) { | ||
77 | double ksStatistics = 0.0; | ||
78 | double sum1 = 0.0; | ||
79 | double sum2 = 0.0; | ||
80 | for (int i = 0; (i < dist1.size()); i++) { | ||
81 | { | ||
82 | double _sum1 = sum1; | ||
83 | Double _get = dist1.get(i); | ||
84 | sum1 = (_sum1 + (_get).doubleValue()); | ||
85 | double _sum2 = sum2; | ||
86 | Double _get_1 = dist2.get(i); | ||
87 | sum2 = (_sum2 + (_get_1).doubleValue()); | ||
88 | ksStatistics = Math.max(ksStatistics, Math.abs((sum1 - sum2))); | ||
89 | } | ||
90 | } | ||
91 | return ksStatistics; | ||
92 | } | ||
93 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java new file mode 100644 index 00000000..29a310f4 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java | |||
@@ -0,0 +1,38 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; | ||
2 | |||
3 | import org.eclipse.xtend.lib.annotations.AccessorType; | ||
4 | import org.eclipse.xtend.lib.annotations.Accessors; | ||
5 | import org.eclipse.xtext.xbase.lib.Pure; | ||
6 | |||
7 | @SuppressWarnings("all") | ||
8 | public class StateData { | ||
9 | @Accessors(AccessorType.PUBLIC_GETTER) | ||
10 | private double[] features; | ||
11 | |||
12 | @Accessors(AccessorType.PUBLIC_GETTER) | ||
13 | private double value; | ||
14 | |||
15 | @Accessors(AccessorType.PUBLIC_GETTER) | ||
16 | private Object lastState; | ||
17 | |||
18 | public StateData(final double[] features, final double value, final Object lastState) { | ||
19 | this.features = features; | ||
20 | this.value = value; | ||
21 | this.lastState = lastState; | ||
22 | } | ||
23 | |||
24 | @Pure | ||
25 | public double[] getFeatures() { | ||
26 | return this.features; | ||
27 | } | ||
28 | |||
29 | @Pure | ||
30 | public double getValue() { | ||
31 | return this.value; | ||
32 | } | ||
33 | |||
34 | @Pure | ||
35 | public Object getLastState() { | ||
36 | return this.lastState; | ||
37 | } | ||
38 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace new file mode 100644 index 00000000..6e2ea420 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.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/graph/.EMFGraph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin new file mode 100644 index 00000000..e949bb11 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.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/graph/.Graph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace new file mode 100644 index 00000000..e1d021fd --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.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/graph/.Graph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin new file mode 100644 index 00000000..547fdc38 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.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/graph/.GraphStatistic.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace new file mode 100644 index 00000000..5928ed9d --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.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/graph/.GraphStatistic.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin new file mode 100644 index 00000000..e9269f16 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.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/graph/.PartialInterpretationGraph.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace new file mode 100644 index 00000000..f19eb46c --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.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/graph/.PartialInterpretationGraph.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin new file mode 100644 index 00000000..c634ef10 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.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/graph/EMFGraph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java new file mode 100644 index 00000000..8a9aa8d3 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java | |||
@@ -0,0 +1,140 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
6 | import java.util.ArrayList; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.function.Consumer; | ||
10 | import org.eclipse.emf.common.util.EList; | ||
11 | import org.eclipse.emf.ecore.EObject; | ||
12 | import org.eclipse.emf.ecore.EReference; | ||
13 | import org.eclipse.xtend.lib.annotations.AccessorType; | ||
14 | import org.eclipse.xtend.lib.annotations.Accessors; | ||
15 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
16 | import org.eclipse.xtext.xbase.lib.Pure; | ||
17 | |||
18 | @SuppressWarnings("all") | ||
19 | public class EMFGraph extends Graph { | ||
20 | @Accessors(AccessorType.PUBLIC_GETTER) | ||
21 | private EObject root; | ||
22 | |||
23 | public void init(final EObject root, final List<Metric> metrics, final String name, final List<EReference> referenceTypes) { | ||
24 | final List<EObject> otherContents = IteratorExtensions.<EObject>toList(root.eAllContents()); | ||
25 | this.root = root; | ||
26 | otherContents.add(root); | ||
27 | this.init(otherContents, metrics, name, referenceTypes); | ||
28 | } | ||
29 | |||
30 | /** | ||
31 | * init the graph with all nodes and reference types in the meta model | ||
32 | * @param objects: objects in the instance model (exclude root) | ||
33 | * @param metrics: metrics to be evaluated | ||
34 | * @param name: name of the instance model | ||
35 | * @param ReferenceTypes: reference types defined in the meta model | ||
36 | */ | ||
37 | public void init(final List<EObject> objects, final List<Metric> metrics, final String name, final List<EReference> referenceTypes) { | ||
38 | final Consumer<EObject> _function = (EObject it) -> { | ||
39 | HashSet<String> types = new HashSet<String>(); | ||
40 | types.add(it.eClass().getName()); | ||
41 | this.statistic.addNodeWithAllTypes(it, types); | ||
42 | }; | ||
43 | objects.forEach(_function); | ||
44 | final Consumer<EReference> _function_1 = (EReference it) -> { | ||
45 | boolean _isDerived = it.isDerived(); | ||
46 | boolean _not = (!_isDerived); | ||
47 | if (_not) { | ||
48 | this.statistic.addEdgeType(it.getName()); | ||
49 | } | ||
50 | }; | ||
51 | referenceTypes.forEach(_function_1); | ||
52 | final Consumer<EObject> _function_2 = (EObject source) -> { | ||
53 | final Consumer<EReference> _function_3 = (EReference r) -> { | ||
54 | boolean _isMany = r.isMany(); | ||
55 | if (_isMany) { | ||
56 | final Consumer<EObject> _function_4 = (EObject target) -> { | ||
57 | this.addEdge(source, target, r); | ||
58 | }; | ||
59 | this.getNeighbours(source, r).forEach(_function_4); | ||
60 | } else { | ||
61 | Object _eGet = source.eGet(r); | ||
62 | final EObject target = ((EObject) _eGet); | ||
63 | this.addEdge(source, target, r); | ||
64 | } | ||
65 | }; | ||
66 | source.eClass().getEAllReferences().forEach(_function_3); | ||
67 | }; | ||
68 | objects.forEach(_function_2); | ||
69 | this.metrics = metrics; | ||
70 | this.name = name; | ||
71 | } | ||
72 | |||
73 | public void removeReference(final EReference r) { | ||
74 | boolean _containsEdgeType = this.statistic.containsEdgeType(r.getName()); | ||
75 | if (_containsEdgeType) { | ||
76 | this.statistic.removeReference(r.getName(), r.isContainment()); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | /** | ||
81 | * Set basic information for the output | ||
82 | */ | ||
83 | @Override | ||
84 | public void setBasicInformation(final ArrayList<ArrayList<String>> output) { | ||
85 | final ArrayList<String> metaInfo = new ArrayList<String>(); | ||
86 | metaInfo.add(Graph.META_MODEL_HEADER); | ||
87 | metaInfo.add(this.metaModel); | ||
88 | final ArrayList<String> edgeInfo = new ArrayList<String>(); | ||
89 | edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER); | ||
90 | int _size = this.statistic.getAllTypes().size(); | ||
91 | String _plus = (Integer.valueOf(_size) + ""); | ||
92 | edgeInfo.add(_plus); | ||
93 | final ArrayList<String> nodeInfo = new ArrayList<String>(); | ||
94 | nodeInfo.add(Graph.NUM_NODE_HEADER); | ||
95 | int _size_1 = this.statistic.getAllNodes().size(); | ||
96 | String _plus_1 = (Integer.valueOf(_size_1) + ""); | ||
97 | nodeInfo.add(_plus_1); | ||
98 | final ArrayList<String> stateInfo = new ArrayList<String>(); | ||
99 | stateInfo.add(Graph.STATE_ID_HEADER); | ||
100 | stateInfo.add(this.name); | ||
101 | output.add(metaInfo); | ||
102 | output.add(edgeInfo); | ||
103 | output.add(nodeInfo); | ||
104 | output.add(stateInfo); | ||
105 | } | ||
106 | |||
107 | public EList<EObject> getNeighbours(final EObject o, final EReference r) { | ||
108 | Object _eGet = o.eGet(r, true); | ||
109 | return ((EList<EObject>) _eGet); | ||
110 | } | ||
111 | |||
112 | public void addEdge(final EObject source, final EObject target, final EReference r) { | ||
113 | if ((((target != null) && (r != null)) && (!r.isDerived()))) { | ||
114 | this.statistic.addEdge(source, target, r.getName()); | ||
115 | } | ||
116 | } | ||
117 | |||
118 | @Override | ||
119 | public GraphStatistic getStatistic() { | ||
120 | return this.statistic; | ||
121 | } | ||
122 | |||
123 | @Override | ||
124 | public String getName() { | ||
125 | return this.name; | ||
126 | } | ||
127 | |||
128 | public void setMetaModel(final String model) { | ||
129 | this.metaModel = model; | ||
130 | } | ||
131 | |||
132 | public String getMetaModel() { | ||
133 | return this.metaModel; | ||
134 | } | ||
135 | |||
136 | @Pure | ||
137 | public EObject getRoot() { | ||
138 | return this.root; | ||
139 | } | ||
140 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java new file mode 100644 index 00000000..f9923a63 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java | |||
@@ -0,0 +1,96 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
11 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree; | ||
12 | import java.util.ArrayList; | ||
13 | import java.util.Collection; | ||
14 | import java.util.HashMap; | ||
15 | import java.util.List; | ||
16 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
17 | |||
18 | @SuppressWarnings("all") | ||
19 | public abstract class Graph { | ||
20 | protected final static String META_MODEL_HEADER = "Meta Mode"; | ||
21 | |||
22 | protected final static String NUM_NODE_HEADER = "Number Of Nodes"; | ||
23 | |||
24 | protected final static String NUM_EDGE_TYPE_HEADER = "Number of Edge types"; | ||
25 | |||
26 | protected final static String STATE_ID_HEADER = "State Id"; | ||
27 | |||
28 | protected final GraphStatistic statistic = new GraphStatistic(); | ||
29 | |||
30 | protected List<Metric> metrics; | ||
31 | |||
32 | protected String name = ""; | ||
33 | |||
34 | protected String metaModel = ""; | ||
35 | |||
36 | /** | ||
37 | * evaluate all metrics for this model | ||
38 | * return the result as a two dimentional list | ||
39 | */ | ||
40 | public ArrayList<ArrayList<String>> evaluateAllMetrics() { | ||
41 | final ArrayList<ArrayList<String>> result = new ArrayList<ArrayList<String>>(); | ||
42 | this.setBasicInformation(result); | ||
43 | for (final Metric metric : this.metrics) { | ||
44 | { | ||
45 | final String[][] datas = metric.evaluate(this.statistic); | ||
46 | for (final String[] row : datas) { | ||
47 | ArrayList<String> _arrayList = new ArrayList<String>((Collection<? extends String>)Conversions.doWrapArray(row)); | ||
48 | result.add(_arrayList); | ||
49 | } | ||
50 | } | ||
51 | } | ||
52 | return result; | ||
53 | } | ||
54 | |||
55 | public MetricSampleGroup evaluateAllMetricsToSamples() { | ||
56 | MetricSampleGroup sample = new MetricSampleGroup(); | ||
57 | for (final Metric metric : this.metrics) { | ||
58 | if ((metric instanceof MultiplexParticipationCoefficientMetric)) { | ||
59 | Object _evaluateSamples = ((MultiplexParticipationCoefficientMetric)metric).evaluateSamples(this.statistic); | ||
60 | sample.mpcSamples = ((ArrayList<Double>) _evaluateSamples); | ||
61 | } else { | ||
62 | if ((metric instanceof NodeActivityMetric)) { | ||
63 | Object _evaluateSamples_1 = ((NodeActivityMetric)metric).evaluateSamples(this.statistic); | ||
64 | sample.naSamples = ((ArrayList<Double>) _evaluateSamples_1); | ||
65 | } else { | ||
66 | if ((metric instanceof OutDegreeMetric)) { | ||
67 | Object _evaluateSamples_2 = ((OutDegreeMetric)metric).evaluateSamples(this.statistic); | ||
68 | sample.outDegreeSamples = ((ArrayList<Double>) _evaluateSamples_2); | ||
69 | } else { | ||
70 | if ((metric instanceof TypedOutDegree)) { | ||
71 | Object _evaluateSamples_3 = ((TypedOutDegree)metric).evaluateSamples(this.statistic); | ||
72 | sample.typedOutDegreeSamples = ((HashMap<String, List<Integer>>) _evaluateSamples_3); | ||
73 | } else { | ||
74 | if ((metric instanceof NodeTypeMetric)) { | ||
75 | Object _evaluateSamples_4 = ((NodeTypeMetric)metric).evaluateSamples(this.statistic); | ||
76 | sample.nodeTypeSamples = ((HashMap<String, Double>) _evaluateSamples_4); | ||
77 | } else { | ||
78 | if ((metric instanceof EdgeTypeMetric)) { | ||
79 | Object _evaluateSamples_5 = ((EdgeTypeMetric)metric).evaluateSamples(this.statistic); | ||
80 | sample.edgeTypeSamples = ((HashMap<String, Double>) _evaluateSamples_5); | ||
81 | } | ||
82 | } | ||
83 | } | ||
84 | } | ||
85 | } | ||
86 | } | ||
87 | } | ||
88 | return sample; | ||
89 | } | ||
90 | |||
91 | public abstract void setBasicInformation(final ArrayList<ArrayList<String>> result); | ||
92 | |||
93 | public abstract GraphStatistic getStatistic(); | ||
94 | |||
95 | public abstract String getName(); | ||
96 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java new file mode 100644 index 00000000..7bd1d899 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java | |||
@@ -0,0 +1,201 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; | ||
2 | |||
3 | import com.google.common.collect.ArrayListMultimap; | ||
4 | import com.google.common.collect.Multimap; | ||
5 | import java.util.Collection; | ||
6 | import java.util.HashMap; | ||
7 | import java.util.HashSet; | ||
8 | import java.util.List; | ||
9 | import java.util.Map; | ||
10 | import java.util.Set; | ||
11 | import java.util.function.Consumer; | ||
12 | import org.eclipse.emf.ecore.EObject; | ||
13 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
14 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
15 | |||
16 | @SuppressWarnings("all") | ||
17 | public class GraphStatistic { | ||
18 | private final HashMap<String, Multimap<EObject, EObject>> incomingEdges = new HashMap<String, Multimap<EObject, EObject>>(); | ||
19 | |||
20 | private final HashMap<String, Multimap<EObject, EObject>> outgoingEdges = new HashMap<String, Multimap<EObject, EObject>>(); | ||
21 | |||
22 | private final HashSet<String> edgeTypes = new HashSet<String>(); | ||
23 | |||
24 | private final HashMap<EObject, Set<String>> nodeToType = new HashMap<EObject, Set<String>>(); | ||
25 | |||
26 | /** | ||
27 | * Add an edge type to to the graph | ||
28 | * @param type: type to add | ||
29 | */ | ||
30 | public void addEdgeType(final String type) { | ||
31 | boolean _contains = this.edgeTypes.contains(type); | ||
32 | if (_contains) { | ||
33 | return; | ||
34 | } | ||
35 | this.edgeTypes.add(type); | ||
36 | this.incomingEdges.put(type, ArrayListMultimap.<EObject, EObject>create()); | ||
37 | this.outgoingEdges.put(type, ArrayListMultimap.<EObject, EObject>create()); | ||
38 | } | ||
39 | |||
40 | /** | ||
41 | * Add a node to the graph with one type in its type hierarchy | ||
42 | * @param node: node to add | ||
43 | */ | ||
44 | public void addNodeWithType(final EObject n, final String Type) { | ||
45 | HashSet<String> _hashSet = new HashSet<String>(); | ||
46 | Set<String> types = this.nodeToType.getOrDefault(n, _hashSet); | ||
47 | types.add(Type); | ||
48 | this.nodeToType.put(n, types); | ||
49 | } | ||
50 | |||
51 | public boolean containsNode(final EObject o) { | ||
52 | return this.nodeToType.containsKey(o); | ||
53 | } | ||
54 | |||
55 | public Set<String> getTypesForNode(final EObject o) { | ||
56 | HashSet<String> _hashSet = new HashSet<String>(); | ||
57 | return this.nodeToType.getOrDefault(o, _hashSet); | ||
58 | } | ||
59 | |||
60 | public void overwriteCurrentType(final EObject o, final String type) { | ||
61 | HashSet<String> _hashSet = new HashSet<String>(); | ||
62 | Set<String> typeSet = this.nodeToType.getOrDefault(o, _hashSet); | ||
63 | typeSet.clear(); | ||
64 | typeSet.add(type); | ||
65 | this.nodeToType.put(o, typeSet); | ||
66 | } | ||
67 | |||
68 | /** | ||
69 | * Add a node to the graph with all types in its type hierarchy | ||
70 | */ | ||
71 | public void addNodeWithAllTypes(final EObject n, final Set<String> types) { | ||
72 | this.nodeToType.put(n, types); | ||
73 | } | ||
74 | |||
75 | /** | ||
76 | * Add an edge to the graph | ||
77 | * @param source: source node | ||
78 | * @param target: target node | ||
79 | * @param type: type of the reference | ||
80 | */ | ||
81 | public void addEdge(final EObject source, final EObject target, final String type) { | ||
82 | this.outgoingEdges.get(type).put(source, target); | ||
83 | this.incomingEdges.get(type).put(target, source); | ||
84 | } | ||
85 | |||
86 | /** | ||
87 | * check if this graph contains a specific edge type | ||
88 | */ | ||
89 | public boolean containsEdgeType(final String typeName) { | ||
90 | if ((this.outgoingEdges.containsKey(typeName) && this.incomingEdges.containsKey(typeName))) { | ||
91 | return true; | ||
92 | } | ||
93 | return false; | ||
94 | } | ||
95 | |||
96 | /** | ||
97 | * remove references from the statistics, potentially remove the nodes associated with it | ||
98 | * @Param name: name of the reference | ||
99 | * @Param isContainment: if true then the corresponding nodes on the incoming side will also be removed | ||
100 | */ | ||
101 | public void removeReference(final String name, final boolean isContainment) { | ||
102 | boolean _contains = this.edgeTypes.contains(name); | ||
103 | boolean _not = (!_contains); | ||
104 | if (_not) { | ||
105 | return; | ||
106 | } | ||
107 | this.edgeTypes.remove(name); | ||
108 | Multimap<EObject, EObject> incomingSet = this.incomingEdges.remove(name); | ||
109 | this.outgoingEdges.remove(name); | ||
110 | if ((!isContainment)) { | ||
111 | return; | ||
112 | } | ||
113 | final Set<EObject> nodesToRemove = incomingSet.keySet(); | ||
114 | final Consumer<EObject> _function = (EObject it) -> { | ||
115 | this.nodeToType.remove(it); | ||
116 | }; | ||
117 | nodesToRemove.forEach(_function); | ||
118 | final Procedure1<Multimap<EObject, EObject>> _function_1 = (Multimap<EObject, EObject> refMap) -> { | ||
119 | final Consumer<EObject> _function_2 = (EObject it) -> { | ||
120 | refMap.removeAll(it); | ||
121 | }; | ||
122 | nodesToRemove.forEach(_function_2); | ||
123 | Collection<EObject> values = refMap.values(); | ||
124 | values.removeAll(nodesToRemove); | ||
125 | return; | ||
126 | }; | ||
127 | final Procedure1<Multimap<EObject, EObject>> removeForMultimap = _function_1; | ||
128 | IterableExtensions.<Multimap<EObject, EObject>>forEach(this.incomingEdges.values(), removeForMultimap); | ||
129 | IterableExtensions.<Multimap<EObject, EObject>>forEach(this.outgoingEdges.values(), removeForMultimap); | ||
130 | } | ||
131 | |||
132 | /** | ||
133 | * calculate the out degree for an object | ||
134 | */ | ||
135 | public int outDegree(final EObject o) { | ||
136 | int count = 0; | ||
137 | for (final String type : this.edgeTypes) { | ||
138 | int _count = count; | ||
139 | int _size = this.outgoingEdges.get(type).get(o).size(); | ||
140 | count = (_count + _size); | ||
141 | } | ||
142 | return count; | ||
143 | } | ||
144 | |||
145 | /** | ||
146 | * calculate the in degree of an object | ||
147 | */ | ||
148 | public int inDegree(final EObject o) { | ||
149 | int count = 0; | ||
150 | for (final String type : this.edgeTypes) { | ||
151 | int _count = count; | ||
152 | int _size = this.incomingEdges.get(type).get(o).size(); | ||
153 | count = (_count + _size); | ||
154 | } | ||
155 | return count; | ||
156 | } | ||
157 | |||
158 | /** | ||
159 | * calculate the dimentional degree of a node | ||
160 | */ | ||
161 | public int dimentionalDegree(final EObject o, final String type) { | ||
162 | int _size = this.incomingEdges.get(type).get(o).size(); | ||
163 | int _size_1 = this.outgoingEdges.get(type).get(o).size(); | ||
164 | return (_size + _size_1); | ||
165 | } | ||
166 | |||
167 | /** | ||
168 | * calculate the number of edge types for a given node. | ||
169 | */ | ||
170 | public int numOfEdgeTypes(final EObject o) { | ||
171 | int count = 0; | ||
172 | for (final String type : this.edgeTypes) { | ||
173 | int _dimentionalDegree = this.dimentionalDegree(o, type); | ||
174 | boolean _greaterThan = (_dimentionalDegree > 0); | ||
175 | if (_greaterThan) { | ||
176 | count++; | ||
177 | } | ||
178 | } | ||
179 | return count; | ||
180 | } | ||
181 | |||
182 | public List<String> getAllTypes() { | ||
183 | return IterableExtensions.<String>toList(this.edgeTypes); | ||
184 | } | ||
185 | |||
186 | public Map<EObject, Set<String>> getNodeToTypesMap() { | ||
187 | return this.nodeToType; | ||
188 | } | ||
189 | |||
190 | public List<EObject> getAllNodes() { | ||
191 | return IterableExtensions.<EObject>toList(this.nodeToType.keySet()); | ||
192 | } | ||
193 | |||
194 | public HashMap<String, Multimap<EObject, EObject>> getOutgoingEdges() { | ||
195 | return this.outgoingEdges; | ||
196 | } | ||
197 | |||
198 | public HashMap<String, Multimap<EObject, EObject>> incomingEdges() { | ||
199 | return this.incomingEdges; | ||
200 | } | ||
201 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java new file mode 100644 index 00000000..83bb92ca --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java | |||
@@ -0,0 +1,162 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
6 | import com.google.common.collect.Iterables; | ||
7 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; | ||
9 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | ||
10 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition; | ||
11 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink; | ||
12 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; | ||
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation; | ||
14 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.PartialComplexTypeInterpretationImpl; | ||
15 | import java.util.ArrayList; | ||
16 | import java.util.List; | ||
17 | import java.util.function.Consumer; | ||
18 | import org.eclipse.emf.common.util.EList; | ||
19 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
20 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
21 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
22 | import org.eclipse.xtext.xbase.lib.ListExtensions; | ||
23 | |||
24 | @SuppressWarnings("all") | ||
25 | public class PartialInterpretationGraph extends Graph { | ||
26 | private final String typeToExclude = "undefinedpart"; | ||
27 | |||
28 | private final String classSuffix = " class"; | ||
29 | |||
30 | /** | ||
31 | * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation | ||
32 | */ | ||
33 | public PartialInterpretationGraph(final PartialInterpretation partial, final List<Metric> metrics, final String name) { | ||
34 | final Consumer<RelationDeclaration> _function = (RelationDeclaration it) -> { | ||
35 | String n = it.getName().split(" ")[0]; | ||
36 | this.statistic.addEdgeType(n); | ||
37 | }; | ||
38 | Iterables.<RelationDeclaration>filter(partial.getProblem().getRelations(), RelationDeclaration.class).forEach(_function); | ||
39 | final Iterable<PartialComplexTypeInterpretationImpl> typeInterpretations = this.getTypes(partial); | ||
40 | for (final PartialComplexTypeInterpretationImpl type : typeInterpretations) { | ||
41 | boolean _isConcreteType = this.isConcreteType(type.getInterpretationOf()); | ||
42 | if (_isConcreteType) { | ||
43 | String typeName = type.getInterpretationOf().getName().replace(this.classSuffix, ""); | ||
44 | EList<DefinedElement> _elements = type.getElements(); | ||
45 | for (final DefinedElement node : _elements) { | ||
46 | boolean _containsNode = this.statistic.containsNode(node); | ||
47 | boolean _not = (!_containsNode); | ||
48 | if (_not) { | ||
49 | this.statistic.addNodeWithType(node, typeName); | ||
50 | } else { | ||
51 | String currentType = ((String[])Conversions.unwrapArray(this.statistic.getTypesForNode(node), String.class))[0]; | ||
52 | boolean _isSuperType = this.isSuperType(currentType, type.getInterpretationOf()); | ||
53 | if (_isSuperType) { | ||
54 | this.statistic.overwriteCurrentType(node, typeName); | ||
55 | } | ||
56 | } | ||
57 | } | ||
58 | } | ||
59 | } | ||
60 | EList<PartialRelationInterpretation> _partialrelationinterpretation = partial.getPartialrelationinterpretation(); | ||
61 | for (final PartialRelationInterpretation relationInterpretation : _partialrelationinterpretation) { | ||
62 | { | ||
63 | final String type_1 = relationInterpretation.getInterpretationOf().getName().split(" ")[0]; | ||
64 | Iterable<BinaryElementRelationLink> _filter = Iterables.<BinaryElementRelationLink>filter(relationInterpretation.getRelationlinks(), BinaryElementRelationLink.class); | ||
65 | for (final BinaryElementRelationLink edge : _filter) { | ||
66 | this.statistic.addEdge(edge.getParam1(), edge.getParam2(), type_1); | ||
67 | } | ||
68 | } | ||
69 | } | ||
70 | this.name = name; | ||
71 | this.metrics = metrics; | ||
72 | } | ||
73 | |||
74 | /** | ||
75 | * recursively check if a type is the super type of another | ||
76 | */ | ||
77 | public boolean isSuperType(final String typeName, final Type subtypeToCheck) { | ||
78 | EList<Type> superTypes = subtypeToCheck.getSupertypes(); | ||
79 | int _size = superTypes.size(); | ||
80 | boolean _equals = (_size == 0); | ||
81 | if (_equals) { | ||
82 | return false; | ||
83 | } else { | ||
84 | final Function1<Type, String> _function = (Type it) -> { | ||
85 | return it.getName().replace(this.classSuffix, ""); | ||
86 | }; | ||
87 | boolean _contains = ListExtensions.<Type, String>map(subtypeToCheck.getSupertypes(), _function).contains(typeName); | ||
88 | if (_contains) { | ||
89 | return true; | ||
90 | } else { | ||
91 | for (final Type superType : superTypes) { | ||
92 | boolean _isSuperType = this.isSuperType(typeName, superType); | ||
93 | if (_isSuperType) { | ||
94 | return true; | ||
95 | } | ||
96 | } | ||
97 | return false; | ||
98 | } | ||
99 | } | ||
100 | } | ||
101 | |||
102 | /** | ||
103 | * Check if a Type object is the class that we want to consider | ||
104 | * A type object is to be considered if it satisfy one of the following: | ||
105 | * 1. if it is not abstract | ||
106 | * 2. if it is abstract but has a subclass of type TypeDefinition (This means the generation is | ||
107 | * started with nodes in this type) | ||
108 | */ | ||
109 | public boolean isConcreteType(final Type t) { | ||
110 | if (((!t.isIsAbstract()) || (IterableExtensions.<Type>findFirst(t.getSubtypes(), ((Function1<Type, Boolean>) (Type it) -> { | ||
111 | return Boolean.valueOf((it instanceof TypeDefinition)); | ||
112 | })) != null))) { | ||
113 | return true; | ||
114 | } | ||
115 | return false; | ||
116 | } | ||
117 | |||
118 | /** | ||
119 | * Set basic information for the output | ||
120 | */ | ||
121 | @Override | ||
122 | public void setBasicInformation(final ArrayList<ArrayList<String>> output) { | ||
123 | final ArrayList<String> metaInfo = new ArrayList<String>(); | ||
124 | metaInfo.add(Graph.META_MODEL_HEADER); | ||
125 | metaInfo.add(this.metaModel); | ||
126 | final ArrayList<String> edgeInfo = new ArrayList<String>(); | ||
127 | edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER); | ||
128 | int _size = this.statistic.getAllTypes().size(); | ||
129 | String _plus = (Integer.valueOf(_size) + ""); | ||
130 | edgeInfo.add(_plus); | ||
131 | final ArrayList<String> nodeInfo = new ArrayList<String>(); | ||
132 | nodeInfo.add(Graph.NUM_NODE_HEADER); | ||
133 | int _size_1 = this.statistic.getAllNodes().size(); | ||
134 | String _plus_1 = (Integer.valueOf(_size_1) + ""); | ||
135 | nodeInfo.add(_plus_1); | ||
136 | final ArrayList<String> stateInfo = new ArrayList<String>(); | ||
137 | stateInfo.add(Graph.STATE_ID_HEADER); | ||
138 | stateInfo.add(this.name); | ||
139 | output.add(metaInfo); | ||
140 | output.add(edgeInfo); | ||
141 | output.add(nodeInfo); | ||
142 | output.add(stateInfo); | ||
143 | } | ||
144 | |||
145 | private Iterable<PartialComplexTypeInterpretationImpl> getTypes(final PartialInterpretation partial) { | ||
146 | final Function1<PartialComplexTypeInterpretationImpl, Boolean> _function = (PartialComplexTypeInterpretationImpl it) -> { | ||
147 | boolean _contains = it.getInterpretationOf().getName().toLowerCase().contains(this.typeToExclude); | ||
148 | return Boolean.valueOf((!_contains)); | ||
149 | }; | ||
150 | return IterableExtensions.<PartialComplexTypeInterpretationImpl>filter(Iterables.<PartialComplexTypeInterpretationImpl>filter(partial.getPartialtypeinterpratation(), PartialComplexTypeInterpretationImpl.class), _function); | ||
151 | } | ||
152 | |||
153 | @Override | ||
154 | public GraphStatistic getStatistic() { | ||
155 | throw new UnsupportedOperationException("TODO: auto-generated method stub"); | ||
156 | } | ||
157 | |||
158 | @Override | ||
159 | public String getName() { | ||
160 | return this.name; | ||
161 | } | ||
162 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace new file mode 100644 index 00000000..983bd97e --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.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/io/.CsvFileWriter.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin new file mode 100644 index 00000000..daf9b285 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.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/io/.DataName.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace new file mode 100644 index 00000000..7a93f65a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.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/io/.GraphReader.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace new file mode 100644 index 00000000..2ee37cec --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.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/io/.GraphReader.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin new file mode 100644 index 00000000..8dda7d21 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.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/io/.RepMetricsReader.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace new file mode 100644 index 00000000..e7945d8c --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.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/io/.RepMetricsReader.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin new file mode 100644 index 00000000..74675aec --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.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/io/CsvFileWriter.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java new file mode 100644 index 00000000..d166e31b --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java | |||
@@ -0,0 +1,75 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; | ||
2 | |||
3 | import java.io.File; | ||
4 | import java.io.FileNotFoundException; | ||
5 | import java.io.FileOutputStream; | ||
6 | import java.io.PrintWriter; | ||
7 | import java.util.ArrayList; | ||
8 | import java.util.List; | ||
9 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
10 | |||
11 | @SuppressWarnings("all") | ||
12 | public class CsvFileWriter { | ||
13 | public static void write(final ArrayList<ArrayList<String>> datas, final String uri) { | ||
14 | try { | ||
15 | int _size = datas.size(); | ||
16 | boolean _lessEqualsThan = (_size <= 0); | ||
17 | if (_lessEqualsThan) { | ||
18 | return; | ||
19 | } | ||
20 | File _file = new File(uri); | ||
21 | final PrintWriter writer = new PrintWriter(_file); | ||
22 | CsvFileWriter.output(writer, datas, uri); | ||
23 | } catch (Throwable _e) { | ||
24 | throw Exceptions.sneakyThrow(_e); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | public static void append(final ArrayList<ArrayList<String>> datas, final String uri) { | ||
29 | try { | ||
30 | int _size = datas.size(); | ||
31 | boolean _lessEqualsThan = (_size <= 0); | ||
32 | if (_lessEqualsThan) { | ||
33 | return; | ||
34 | } | ||
35 | File _file = new File(uri); | ||
36 | FileOutputStream _fileOutputStream = new FileOutputStream(_file, true); | ||
37 | final PrintWriter writer = new PrintWriter(_fileOutputStream); | ||
38 | CsvFileWriter.output(writer, datas, uri); | ||
39 | } catch (Throwable _e) { | ||
40 | throw Exceptions.sneakyThrow(_e); | ||
41 | } | ||
42 | } | ||
43 | |||
44 | private static void output(final PrintWriter writer, final ArrayList<ArrayList<String>> datas, final String uri) { | ||
45 | try { | ||
46 | final StringBuilder output = new StringBuilder(); | ||
47 | for (final List<String> datarow : datas) { | ||
48 | { | ||
49 | for (int i = 0; (i < (datarow.size() - 1)); i++) { | ||
50 | String _get = datarow.get(i); | ||
51 | String _plus = (_get + ","); | ||
52 | output.append(_plus); | ||
53 | } | ||
54 | int _size = datarow.size(); | ||
55 | boolean _greaterEqualsThan = (_size >= 1); | ||
56 | if (_greaterEqualsThan) { | ||
57 | int _size_1 = datarow.size(); | ||
58 | int _minus = (_size_1 - 1); | ||
59 | output.append(datarow.get(_minus)); | ||
60 | output.append("\n"); | ||
61 | } | ||
62 | } | ||
63 | } | ||
64 | writer.write(output.toString()); | ||
65 | writer.close(); | ||
66 | } catch (final Throwable _t) { | ||
67 | if (_t instanceof FileNotFoundException) { | ||
68 | final FileNotFoundException e = (FileNotFoundException)_t; | ||
69 | e.printStackTrace(); | ||
70 | } else { | ||
71 | throw Exceptions.sneakyThrow(_t); | ||
72 | } | ||
73 | } | ||
74 | } | ||
75 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java new file mode 100644 index 00000000..9e2c9c86 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java | |||
@@ -0,0 +1,12 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; | ||
2 | |||
3 | @SuppressWarnings("all") | ||
4 | public class DataName { | ||
5 | public final static String REP_PATH = "data/"; | ||
6 | |||
7 | public final static String MPC_REP = "mpc_rep"; | ||
8 | |||
9 | public final static String NA_REP = "na_rep"; | ||
10 | |||
11 | public final static String OUT_D_REP = "out_d_rep"; | ||
12 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java new file mode 100644 index 00000000..0299fc0c --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java | |||
@@ -0,0 +1,138 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; | ||
7 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; | ||
8 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; | ||
9 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; | ||
10 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree; | ||
11 | import java.io.File; | ||
12 | import java.io.FileNotFoundException; | ||
13 | import java.util.ArrayList; | ||
14 | import java.util.List; | ||
15 | import org.eclipse.emf.common.util.EList; | ||
16 | import org.eclipse.emf.common.util.URI; | ||
17 | import org.eclipse.emf.ecore.EObject; | ||
18 | import org.eclipse.emf.ecore.EPackage; | ||
19 | import org.eclipse.emf.ecore.EReference; | ||
20 | import org.eclipse.emf.ecore.resource.Resource; | ||
21 | import org.eclipse.emf.ecore.resource.ResourceSet; | ||
22 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | ||
23 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
24 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
25 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
26 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
27 | |||
28 | @SuppressWarnings("all") | ||
29 | public class GraphReader { | ||
30 | private final ResourceSet resSet = new ResourceSetImpl(); | ||
31 | |||
32 | private final ArrayList<EReference> referenceTypes = new ArrayList<EReference>(); | ||
33 | |||
34 | private String suffix; | ||
35 | |||
36 | public GraphReader(final EPackage metaModel, final String suffix) { | ||
37 | throw new Error("Unresolved compilation problems:" | ||
38 | + "\nXMIResourceFactoryImpl cannot be resolved."); | ||
39 | } | ||
40 | |||
41 | public List<EMFGraph> readModels(final String path) { | ||
42 | try { | ||
43 | final File dir = new File(path); | ||
44 | boolean _isDirectory = dir.isDirectory(); | ||
45 | boolean _not = (!_isDirectory); | ||
46 | if (_not) { | ||
47 | throw new Exception("expecting a directory"); | ||
48 | } | ||
49 | final ArrayList<EMFGraph> graphs = new ArrayList<EMFGraph>(); | ||
50 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
51 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
52 | metrics.add(_outDegreeMetric); | ||
53 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
54 | metrics.add(_nodeActivityMetric); | ||
55 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
56 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
57 | TypedOutDegree _typedOutDegree = new TypedOutDegree(); | ||
58 | metrics.add(_typedOutDegree); | ||
59 | NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); | ||
60 | metrics.add(_nodeTypeMetric); | ||
61 | EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric(); | ||
62 | metrics.add(_edgeTypeMetric); | ||
63 | int count = 1; | ||
64 | final Function1<String, Boolean> _function = (String it) -> { | ||
65 | return Boolean.valueOf(it.endsWith(this.suffix)); | ||
66 | }; | ||
67 | Iterable<String> _filter = IterableExtensions.<String>filter(((Iterable<String>)Conversions.doWrapArray(dir.list())), _function); | ||
68 | for (final String name : _filter) { | ||
69 | { | ||
70 | final File file = new File(name); | ||
71 | final List<EObject> roots = this.<EObject>readModel(EObject.class, path, file.getName()); | ||
72 | final EMFGraph g = new EMFGraph(); | ||
73 | for (final EObject root : roots) { | ||
74 | g.init(root, metrics, name.replaceFirst(this.suffix, ""), this.referenceTypes); | ||
75 | } | ||
76 | count++; | ||
77 | graphs.add(g); | ||
78 | } | ||
79 | } | ||
80 | return graphs; | ||
81 | } catch (Throwable _e) { | ||
82 | throw Exceptions.sneakyThrow(_e); | ||
83 | } | ||
84 | } | ||
85 | |||
86 | public EMFGraph readModel(final String path, final String filename) { | ||
87 | final ArrayList<Metric> metrics = new ArrayList<Metric>(); | ||
88 | OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); | ||
89 | metrics.add(_outDegreeMetric); | ||
90 | NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); | ||
91 | metrics.add(_nodeActivityMetric); | ||
92 | MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); | ||
93 | metrics.add(_multiplexParticipationCoefficientMetric); | ||
94 | TypedOutDegree _typedOutDegree = new TypedOutDegree(); | ||
95 | metrics.add(_typedOutDegree); | ||
96 | NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); | ||
97 | metrics.add(_nodeTypeMetric); | ||
98 | EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric(); | ||
99 | metrics.add(_edgeTypeMetric); | ||
100 | final File file = new File(filename); | ||
101 | final List<EObject> roots = this.<EObject>readModel(EObject.class, path, file.getName()); | ||
102 | final EMFGraph g = new EMFGraph(); | ||
103 | for (final EObject root : roots) { | ||
104 | g.init(root, metrics, filename.replaceFirst(this.suffix, ""), this.referenceTypes); | ||
105 | } | ||
106 | return g; | ||
107 | } | ||
108 | |||
109 | public <RootType extends EObject> List<RootType> readModel(final Class<RootType> type, final String path, final String name) { | ||
110 | try { | ||
111 | try { | ||
112 | final Resource resource = this.resSet.getResource(GraphReader.getURI(path, name), true); | ||
113 | if ((resource == null)) { | ||
114 | String _string = GraphReader.getURI(path, name).toString(); | ||
115 | throw new FileNotFoundException(_string); | ||
116 | } else { | ||
117 | EList<EObject> _contents = resource.getContents(); | ||
118 | return ((List<RootType>) _contents); | ||
119 | } | ||
120 | } catch (final Throwable _t) { | ||
121 | if (_t instanceof Exception) { | ||
122 | final Exception e = (Exception)_t; | ||
123 | e.printStackTrace(); | ||
124 | String _string_1 = GraphReader.getURI(path, name).toString(); | ||
125 | throw new Exception(_string_1); | ||
126 | } else { | ||
127 | throw Exceptions.sneakyThrow(_t); | ||
128 | } | ||
129 | } | ||
130 | } catch (Throwable _e) { | ||
131 | throw Exceptions.sneakyThrow(_e); | ||
132 | } | ||
133 | } | ||
134 | |||
135 | public static URI getURI(final String path, final String name) { | ||
136 | return URI.createFileURI(((path + "/") + name)); | ||
137 | } | ||
138 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java new file mode 100644 index 00000000..2486cf83 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java | |||
@@ -0,0 +1,49 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; | ||
5 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; | ||
6 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; | ||
7 | import com.google.common.base.Objects; | ||
8 | import com.google.common.collect.Iterators; | ||
9 | import java.util.Iterator; | ||
10 | import org.eclipse.emf.ecore.EReference; | ||
11 | import org.eclipse.emf.ecore.impl.EcorePackageImpl; | ||
12 | import org.eclipse.xtext.xbase.lib.Functions.Function1; | ||
13 | import org.eclipse.xtext.xbase.lib.IterableExtensions; | ||
14 | import org.eclipse.xtext.xbase.lib.IteratorExtensions; | ||
15 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
16 | |||
17 | /** | ||
18 | * Read the sample of the distribution of a metric provided the csv file of the metric | ||
19 | */ | ||
20 | @SuppressWarnings("all") | ||
21 | public class RepMetricsReader { | ||
22 | private static Domain domain; | ||
23 | |||
24 | public static MetricSampleGroup read(final Domain d) { | ||
25 | throw new Error("Unresolved compilation problems:" | ||
26 | + "\nThe method or field GithubPackageImpl is undefined" | ||
27 | + "\neINSTANCE cannot be resolved"); | ||
28 | } | ||
29 | |||
30 | /** | ||
31 | * Read representative model | ||
32 | */ | ||
33 | private static MetricSampleGroup readMetrics(final GraphReader r, final String path) { | ||
34 | final EMFGraph model = IterableExtensions.<EMFGraph>head(r.readModels(path)); | ||
35 | boolean _equals = Objects.equal(RepMetricsReader.domain, Domain.Ecore); | ||
36 | if (_equals) { | ||
37 | final Function1<EReference, Boolean> _function = (EReference it) -> { | ||
38 | return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) || | ||
39 | it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents"))); | ||
40 | }; | ||
41 | Iterator<EReference> refsToRemove = IteratorExtensions.<EReference>filter(Iterators.<EReference>filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function); | ||
42 | final Procedure1<EReference> _function_1 = (EReference it) -> { | ||
43 | model.removeReference(it); | ||
44 | }; | ||
45 | IteratorExtensions.<EReference>forEach(refsToRemove, _function_1); | ||
46 | } | ||
47 | return model.evaluateAllMetricsToSamples(); | ||
48 | } | ||
49 | } | ||
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 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace new file mode 100644 index 00000000..906a396a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.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/predictor/.LinearModel.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin new file mode 100644 index 00000000..06925afd --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.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/predictor/LinearModel.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java new file mode 100644 index 00000000..6a7f8497 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java | |||
@@ -0,0 +1,90 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData; | ||
4 | import com.google.common.base.Objects; | ||
5 | import java.util.ArrayList; | ||
6 | import java.util.HashMap; | ||
7 | import java.util.List; | ||
8 | import java.util.Map; | ||
9 | |||
10 | @SuppressWarnings("all") | ||
11 | public class LinearModel { | ||
12 | private double ridge; | ||
13 | |||
14 | private Map<Object, StateData> stateAndHistory; | ||
15 | |||
16 | private List<StateData> samples; | ||
17 | |||
18 | public LinearModel(final double ridge) { | ||
19 | this.ridge = ridge; | ||
20 | HashMap<Object, StateData> _hashMap = new HashMap<Object, StateData>(); | ||
21 | this.stateAndHistory = _hashMap; | ||
22 | ArrayList<StateData> _arrayList = new ArrayList<StateData>(); | ||
23 | this.samples = _arrayList; | ||
24 | } | ||
25 | |||
26 | /** | ||
27 | * reset the current train data for regression to a new trajectory | ||
28 | * @param state: the last state of the trajectory | ||
29 | */ | ||
30 | public void resetRegression(final Object state) { | ||
31 | this.samples.clear(); | ||
32 | boolean _containsKey = this.stateAndHistory.containsKey(state); | ||
33 | if (_containsKey) { | ||
34 | StateData data = this.stateAndHistory.get(state); | ||
35 | Object curState = state; | ||
36 | this.samples.add(data); | ||
37 | while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) { | ||
38 | { | ||
39 | curState = data.getLastState(); | ||
40 | data = this.stateAndHistory.get(data.getLastState()); | ||
41 | this.samples.add(data); | ||
42 | } | ||
43 | } | ||
44 | } | ||
45 | } | ||
46 | |||
47 | /** | ||
48 | * Add a new data point to the current training set | ||
49 | * @param state: the state on which the new data point is calculated | ||
50 | * @param features: the set of feature value(x) | ||
51 | * @param value: the value of the state (y) | ||
52 | * @param lastState: the state which transformed to current state, used to record the trajectory | ||
53 | */ | ||
54 | public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) { | ||
55 | boolean _xblockexpression = false; | ||
56 | { | ||
57 | StateData data = new StateData(features, value, lastState); | ||
58 | this.stateAndHistory.put(state, data); | ||
59 | _xblockexpression = this.samples.add(data); | ||
60 | } | ||
61 | return _xblockexpression; | ||
62 | } | ||
63 | |||
64 | /** | ||
65 | * get prediction for next state, without storing the data point into the training set | ||
66 | * @param features: the feature values of current state | ||
67 | * @param value: the value of the current state | ||
68 | * @param: featuresToPredict: the features of the state wanted to be predected | ||
69 | * @return the value of the state to be predicted | ||
70 | */ | ||
71 | public double getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) { | ||
72 | throw new Error("Unresolved compilation problems:" | ||
73 | + "\nMatrix cannot be resolved." | ||
74 | + "\nMatrix cannot be resolved." | ||
75 | + "\nLinearRegression cannot be resolved." | ||
76 | + "\ncoefficients cannot be resolved"); | ||
77 | } | ||
78 | |||
79 | private double predict(final double[] parameters, final double[] featuresToPredict) { | ||
80 | double result = parameters[0]; | ||
81 | for (int i = 0; (i < featuresToPredict.length); i++) { | ||
82 | double _result = result; | ||
83 | double _get = parameters[i]; | ||
84 | double _get_1 = featuresToPredict[i]; | ||
85 | double _multiply = (_get * _get_1); | ||
86 | result = (_result + _multiply); | ||
87 | } | ||
88 | return result; | ||
89 | } | ||
90 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace new file mode 100644 index 00000000..1756f86a --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.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/validation/.ConstraintCollection.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin new file mode 100644 index 00000000..708955a4 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.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/validation/.ViolationCheck.java._trace b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace new file mode 100644 index 00000000..0cb68ca8 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.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/validation/.ViolationCheck.xtendbin b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin new file mode 100644 index 00000000..63721784 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.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/validation/ConstraintCollection.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java new file mode 100644 index 00000000..92c69bea --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java | |||
@@ -0,0 +1,79 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation; | ||
2 | |||
3 | import java.util.ArrayList; | ||
4 | import java.util.List; | ||
5 | import java.util.Map; | ||
6 | import org.eclipse.emf.common.notify.Notifier; | ||
7 | import org.eclipse.emf.common.util.URI; | ||
8 | import org.eclipse.emf.ecore.resource.Resource; | ||
9 | import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; | ||
10 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
11 | |||
12 | @SuppressWarnings("all") | ||
13 | public class ConstraintCollection { | ||
14 | private final /* ArrayList<IConstraintSpecification> */Object constraints /* Skipped initializer because of errors */; | ||
15 | |||
16 | private /* BaseGeneratedPatternGroup */Object patterns; | ||
17 | |||
18 | private List<Notifier> resources = new ArrayList<Notifier>(); | ||
19 | |||
20 | public ConstraintCollection(final /* List<IConstraintSpecification> */Object constraints, final List<String> uris, final /* BaseGeneratedPatternGroup */Object patterns) { | ||
21 | throw new Error("Unresolved compilation problems:" | ||
22 | + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" | ||
23 | + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup"); | ||
24 | } | ||
25 | |||
26 | public ConstraintCollection(final /* List<IConstraintSpecification> */Object constraints, final /* BaseGeneratedPatternGroup */Object patterns) { | ||
27 | throw new Error("Unresolved compilation problems:" | ||
28 | + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" | ||
29 | + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup"); | ||
30 | } | ||
31 | |||
32 | public boolean addModel(final Notifier n) { | ||
33 | return this.resources.add(n); | ||
34 | } | ||
35 | |||
36 | public String setURIs(final List<String> uris) { | ||
37 | String _xblockexpression = null; | ||
38 | { | ||
39 | final ResourceSetImpl resSet = new ResourceSetImpl(); | ||
40 | for (final String uri : uris) { | ||
41 | { | ||
42 | Resource resource = resSet.getResource(URI.createURI(uri), true); | ||
43 | this.resources.add(resource); | ||
44 | } | ||
45 | } | ||
46 | _xblockexpression = InputOutput.<String>println("reading model finished"); | ||
47 | } | ||
48 | return _xblockexpression; | ||
49 | } | ||
50 | |||
51 | public List<Integer> calculateViolations() { | ||
52 | throw new Error("Unresolved compilation problems:" | ||
53 | + "\nThe method or field querySpecification is undefined for the type Object" | ||
54 | + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object" | ||
55 | + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" | ||
56 | + "\ngetMatcher cannot be resolved" | ||
57 | + "\ncountMatches cannot be resolved"); | ||
58 | } | ||
59 | |||
60 | public ArrayList<Map<String, Integer>> calculateViolationMaps() { | ||
61 | throw new Error("Unresolved compilation problems:" | ||
62 | + "\nThe method or field querySpecification is undefined for the type Object" | ||
63 | + "\nThe method or field querySpecification is undefined for the type Object" | ||
64 | + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object" | ||
65 | + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" | ||
66 | + "\ngetMatcher cannot be resolved" | ||
67 | + "\ncountMatches cannot be resolved" | ||
68 | + "\nsimpleName cannot be resolved"); | ||
69 | } | ||
70 | |||
71 | private Object initEngine(final Notifier r) { | ||
72 | throw new Error("Unresolved compilation problems:" | ||
73 | + "\nThe method or field ViatraQueryEngine is undefined" | ||
74 | + "\nEMFScope cannot be resolved." | ||
75 | + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup" | ||
76 | + "\non cannot be resolved" | ||
77 | + "\nprepare cannot be resolved"); | ||
78 | } | ||
79 | } | ||
diff --git a/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java new file mode 100644 index 00000000..7eb3ec77 --- /dev/null +++ b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java | |||
@@ -0,0 +1,34 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation; | ||
2 | |||
3 | import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; | ||
4 | import java.util.ArrayList; | ||
5 | import java.util.Map; | ||
6 | import org.eclipse.emf.ecore.EObject; | ||
7 | |||
8 | @SuppressWarnings("all") | ||
9 | public class ViolationCheck { | ||
10 | /** | ||
11 | * Return the total number of violations | ||
12 | */ | ||
13 | public static int calculateViolationCounts(final EObject root, final Domain d) { | ||
14 | throw new Error("Unresolved compilation problems:" | ||
15 | + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification" | ||
16 | + "\nThe constructor ConstraintCollection(List<IConstraintSpecification>, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification"); | ||
17 | } | ||
18 | |||
19 | /** | ||
20 | * return a map contain the count for each type of violation | ||
21 | */ | ||
22 | public static Map<String, Integer> violationMaps(final EObject root) { | ||
23 | throw new Error("Unresolved compilation problems:" | ||
24 | + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification" | ||
25 | + "\nThe constructor ConstraintCollection(List<IConstraintSpecification>, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification"); | ||
26 | } | ||
27 | |||
28 | public static /* ArrayList<IConstraintSpecification> */Object loadConstraints(final String packageName) { | ||
29 | throw new Error("Unresolved compilation problems:" | ||
30 | + "\nIConstraintSpecification cannot be resolved to a type." | ||
31 | + "\nIConstraintSpecification cannot be resolved to a type." | ||
32 | + "\nThe method or field IConstraintSpecification is undefined"); | ||
33 | } | ||
34 | } | ||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace new file mode 100644 index 00000000..5ab4c0fb --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace new file mode 100644 index 00000000..605b2480 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace new file mode 100644 index 00000000..16ded94b --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace new file mode 100644 index 00000000..bd23cb35 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace new file mode 100644 index 00000000..71d80e38 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace new file mode 100644 index 00000000..b423786d --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace new file mode 100644 index 00000000..cce23aec --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace new file mode 100644 index 00000000..e46f9600 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace new file mode 100644 index 00000000..9ce2edb2 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace new file mode 100644 index 00000000..cdfcef6e --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace new file mode 100644 index 00000000..787e63c7 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace new file mode 100644 index 00000000..0c8cc5d0 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin new file mode 100644 index 00000000..e826d04b --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace new file mode 100644 index 00000000..76aa59b0 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace new file mode 100644 index 00000000..edd88562 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace new file mode 100644 index 00000000..fc92b1d3 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace new file mode 100644 index 00000000..306c1361 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace | |||
Binary files differ | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore new file mode 100644 index 00000000..b5da4aad --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore | |||
@@ -0,0 +1 @@ | |||
/.CSERposterSample.java._trace | |||
diff --git a/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace new file mode 100644 index 00000000..08d35ce0 --- /dev/null +++ b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin index ec6f2b5e..d5047e35 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin index 142268cc..0fd042a4 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin index 83816584..ac318322 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin index ef0e981f..7710f730 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin index 7ec5c9c6..310033e1 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin index 0efc1f64..ede1ce7d 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin index 35e9ce12..78fbafbe 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin index 90005e11..df5e592d 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin index 8e4e1612..4a78ac13 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin index cc1180a8..9d31c774 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin index 8a562c45..e925e4e1 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin index fb30c8b3..42ffb9cd 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin index bc26963e..3f95e60a 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin index d83995ca..9bb44e75 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/putVampireHere b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/putVampireHere new file mode 100644 index 00000000..cc0bca68 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/putVampireHere | |||
@@ -0,0 +1,2 @@ | |||
1 | put the Vampire executeable in this folder. | ||
2 | rename it to "vampire.exe" | ||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe new file mode 100644 index 00000000..51b44f82 --- /dev/null +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend index 1d56892e..6bb49080 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend | |||
@@ -27,7 +27,12 @@ class VampireSolver extends LogicReasoner { | |||
27 | val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper | 27 | val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper |
28 | val VampireHandler handler = new VampireHandler | 28 | val VampireHandler handler = new VampireHandler |
29 | 29 | ||
30 | val fileName = "vampireProblem.tptp" | 30 | var fileName = "problem.tptp" |
31 | |||
32 | def solve(LogicProblem problem, LogicSolverConfiguration config, ReasonerWorkspace workspace, String location) { | ||
33 | fileName = location + fileName | ||
34 | solve(problem, config, workspace) | ||
35 | } | ||
31 | 36 | ||
32 | override solve(LogicProblem problem, LogicSolverConfiguration config, | 37 | override solve(LogicProblem problem, LogicSolverConfiguration config, |
33 | ReasonerWorkspace workspace) throws LogicReasonerException { | 38 | ReasonerWorkspace workspace) throws LogicReasonerException { |
@@ -54,26 +59,21 @@ class VampireSolver extends LogicReasoner { | |||
54 | // Result as String | 59 | // Result as String |
55 | val transformationTime = System.currentTimeMillis - transformationStart | 60 | val transformationTime = System.currentTimeMillis - transformationStart |
56 | // Finish: Logic -> Vampire mapping | 61 | // Finish: Logic -> Vampire mapping |
57 | /* | 62 | // Start: Solving .tptp problem |
58 | * // Start: Solving Alloy problem | 63 | val solverStart = System.currentTimeMillis |
59 | * val solverStart = System.currentTimeMillis | 64 | // Calling Solver (Currently Manually) |
60 | * //Calling Solver (Currently Manually) | 65 | val result2 = handler.callSolver(vampireProblem, workspace, vampireConfig) |
61 | * val result2 = handler.callSolver(vampireProblem,workspace,vampireConfig,vampireCode) | 66 | // val result2 = null |
62 | * // val result2 = null | 67 | val solvingTime = System.currentTimeMillis - solverStart |
63 | * //TODO | 68 | // TODO |
64 | * //Backwards Mapper | 69 | // val backTransformationStart = System.currentTimeMillis |
65 | * val logicResult = backwardMapper.transformOutput(problem,config.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime) | 70 | // // Backwards Mapper |
66 | * | 71 | // val logicResult = backwardMapper.transformOutput(problem, config.solutionScope.numberOfRequiredSolution, |
67 | * val solverFinish = System.currentTimeMillis-solverStart | 72 | // result2, forwardTrace, transformationTime) |
68 | * // Finish: Solving Alloy problem | 73 | // |
69 | * | 74 | // val backTransformationTime = System.currentTimeMillis - backTransformationStart |
70 | * if(vampireConfig.writeToFile) workspace.deactivateModel(fileName) | 75 | // Finish: Solving Alloy problem |
71 | * | 76 | return null |
72 | * return logicResult | ||
73 | * | ||
74 | /*/ | ||
75 | return null // for now | ||
76 | // */ | ||
77 | } | 77 | } |
78 | 78 | ||
79 | def asConfig(LogicSolverConfiguration configuration) { | 79 | def asConfig(LogicSolverConfiguration configuration) { |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend index aefa1a7e..274396ee 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend | |||
@@ -1,21 +1,14 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder | 1 | package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireBackendSolver | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel | 4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel |
6 | import com.google.common.util.concurrent.SimpleTimeLimiter | ||
7 | import com.google.common.util.concurrent.UncheckedTimeoutException | ||
8 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration | ||
9 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace | 5 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace |
10 | import java.util.ArrayList | 6 | import java.io.BufferedReader |
11 | import java.util.HashMap | 7 | import java.io.InputStreamReader |
12 | import java.util.LinkedList | ||
13 | import java.util.List | 8 | import java.util.List |
14 | import java.util.Map | 9 | import org.eclipse.emf.ecore.resource.Resource |
15 | import java.util.concurrent.Callable | ||
16 | import java.util.concurrent.TimeUnit | ||
17 | import org.eclipse.emf.common.command.Command | ||
18 | import org.eclipse.xtend.lib.annotations.Data | 10 | import org.eclipse.xtend.lib.annotations.Data |
11 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl | ||
19 | 12 | ||
20 | class VampireSolverException extends Exception{ | 13 | class VampireSolverException extends Exception{ |
21 | new(String s) { super(s) } | 14 | new(String s) { super(s) } |
@@ -39,7 +32,62 @@ class VampireHandler { | |||
39 | 32 | ||
40 | //val fileName = "problem.als" | 33 | //val fileName = "problem.als" |
41 | 34 | ||
42 | public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration,String vampireCode) { | 35 | public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration) { |
36 | |||
37 | val CMD = "cmd /c " | ||
38 | val VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\" | ||
39 | val VAMPNAME = "vampire.exe" | ||
40 | val TEMPNAME = "TEMP.tptp" | ||
41 | val OPTION = " --mode casc_sat " | ||
42 | val SOLNNAME = "solution.tptp" | ||
43 | val PATH = "C:/cygwin64/bin" | ||
44 | |||
45 | val wsURI = workspace.workspaceURI | ||
46 | val tempLoc = wsURI + TEMPNAME | ||
47 | val solnLoc = wsURI + SOLNNAME + " " | ||
48 | val vampLoc = VAMPDIR + VAMPNAME | ||
49 | |||
50 | |||
51 | //1. create temp file for vampire problem | ||
52 | var tempURI = workspace.writeModel(problem, TEMPNAME).toFileString | ||
53 | |||
54 | //2. run command and save to | ||
55 | //need to have cygwin downloaded | ||
56 | |||
57 | |||
58 | |||
59 | |||
60 | val p = Runtime.runtime.exec(CMD + vampLoc + OPTION + tempLoc + " > " + solnLoc, newArrayList("Path=" + PATH)) | ||
61 | //2.1 determine time left | ||
62 | p.waitFor | ||
63 | |||
64 | //2.2 store output into local variable | ||
65 | val BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); | ||
66 | val List<String> output = newArrayList | ||
67 | |||
68 | var line = ""; | ||
69 | while ((line = reader.readLine())!= null) { | ||
70 | output.add(line + "\n"); | ||
71 | } | ||
72 | |||
73 | // println(output.toString()) | ||
74 | |||
75 | //4. delete temp file | ||
76 | workspace.getFile(TEMPNAME).delete | ||
77 | |||
78 | //5. determine and return whether or not finite model was found | ||
79 | |||
80 | //6. save solution as a .tptp model | ||
81 | Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new VampireLanguageFactoryImpl) | ||
82 | workspace.readModel(VampireModel, SOLNNAME).eResource.contents | ||
83 | |||
84 | |||
85 | |||
86 | |||
87 | |||
88 | |||
89 | |||
90 | |||
43 | /* | 91 | /* |
44 | //Prepare | 92 | //Prepare |
45 | val warnings = new LinkedList<String> | 93 | val warnings = new LinkedList<String> |
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin index 43712734..b9600616 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin index b395b0c5..a7942958 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java index d9d75887..410b47ed 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java | |||
@@ -20,7 +20,10 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | |||
20 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; | 20 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; |
21 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | 21 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; |
22 | import java.util.List; | 22 | import java.util.List; |
23 | import org.eclipse.emf.common.util.EList; | ||
24 | import org.eclipse.emf.ecore.EObject; | ||
23 | import org.eclipse.xtend2.lib.StringConcatenation; | 25 | import org.eclipse.xtend2.lib.StringConcatenation; |
26 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
24 | 27 | ||
25 | @SuppressWarnings("all") | 28 | @SuppressWarnings("all") |
26 | public class VampireSolver extends LogicReasoner { | 29 | public class VampireSolver extends LogicReasoner { |
@@ -36,7 +39,20 @@ public class VampireSolver extends LogicReasoner { | |||
36 | 39 | ||
37 | private final VampireHandler handler = new VampireHandler(); | 40 | private final VampireHandler handler = new VampireHandler(); |
38 | 41 | ||
39 | private final String fileName = "vampireProblem.tptp"; | 42 | private String fileName = "problem.tptp"; |
43 | |||
44 | public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace, final String location) { | ||
45 | try { | ||
46 | LogicResult _xblockexpression = null; | ||
47 | { | ||
48 | this.fileName = (location + this.fileName); | ||
49 | _xblockexpression = this.solve(problem, config, workspace); | ||
50 | } | ||
51 | return _xblockexpression; | ||
52 | } catch (Throwable _e) { | ||
53 | throw Exceptions.sneakyThrow(_e); | ||
54 | } | ||
55 | } | ||
40 | 56 | ||
41 | @Override | 57 | @Override |
42 | public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace) throws LogicReasonerException { | 58 | public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace) throws LogicReasonerException { |
@@ -55,6 +71,10 @@ public class VampireSolver extends LogicReasoner { | |||
55 | } | 71 | } |
56 | long _currentTimeMillis = System.currentTimeMillis(); | 72 | long _currentTimeMillis = System.currentTimeMillis(); |
57 | final long transformationTime = (_currentTimeMillis - transformationStart); | 73 | final long transformationTime = (_currentTimeMillis - transformationStart); |
74 | final long solverStart = System.currentTimeMillis(); | ||
75 | final EList<EObject> result2 = this.handler.callSolver(vampireProblem, workspace, vampireConfig); | ||
76 | long _currentTimeMillis_1 = System.currentTimeMillis(); | ||
77 | final long solvingTime = (_currentTimeMillis_1 - solverStart); | ||
58 | return null; | 78 | return null; |
59 | } | 79 | } |
60 | 80 | ||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin index 3e571f5b..487f9569 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin index 6c116851..bd61b874 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin index 7ba8f303..2e58cecd 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin index ad62b1f9..1b894303 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin index 150ac835..4b7fd4bf 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin index c181e53c..6626adf4 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin index 68d8cfb3..339baea9 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin index 1bef8bd1..868f30e7 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin index 9c4555e0..f8b35528 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin index 7bd6797c..08ffcb3b 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin index 6a10d85a..ffd37ea3 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin index 26460f68..9ddc7bd0 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin | |||
Binary files differ | |||
diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java index 1cac2633..1479e6b7 100644 --- a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java +++ b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java | |||
@@ -2,11 +2,60 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder; | |||
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 3 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; | 4 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; |
5 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl; | ||
6 | import com.google.common.base.Objects; | ||
5 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; | 7 | import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; |
8 | import java.io.BufferedReader; | ||
9 | import java.io.InputStream; | ||
10 | import java.io.InputStreamReader; | ||
11 | import java.util.List; | ||
12 | import java.util.Map; | ||
13 | import org.eclipse.emf.common.util.EList; | ||
14 | import org.eclipse.emf.common.util.URI; | ||
15 | import org.eclipse.emf.ecore.EObject; | ||
16 | import org.eclipse.emf.ecore.resource.Resource; | ||
17 | import org.eclipse.xtext.xbase.lib.CollectionLiterals; | ||
18 | import org.eclipse.xtext.xbase.lib.Conversions; | ||
19 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
6 | 20 | ||
7 | @SuppressWarnings("all") | 21 | @SuppressWarnings("all") |
8 | public class VampireHandler { | 22 | public class VampireHandler { |
9 | public Object callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration, final String vampireCode) { | 23 | public EList<EObject> callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration) { |
10 | return null; | 24 | try { |
25 | EList<EObject> _xblockexpression = null; | ||
26 | { | ||
27 | final String CMD = "cmd /c "; | ||
28 | final String VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\"; | ||
29 | final String VAMPNAME = "vampire.exe"; | ||
30 | final String TEMPNAME = "TEMP.tptp"; | ||
31 | final String OPTION = " --mode casc_sat "; | ||
32 | final String SOLNNAME = "solution.tptp"; | ||
33 | final String PATH = "C:/cygwin64/bin"; | ||
34 | final URI wsURI = workspace.getWorkspaceURI(); | ||
35 | final String tempLoc = (wsURI + TEMPNAME); | ||
36 | String _plus = (wsURI + SOLNNAME); | ||
37 | final String solnLoc = (_plus + " "); | ||
38 | final String vampLoc = (VAMPDIR + VAMPNAME); | ||
39 | String tempURI = workspace.writeModel(problem, TEMPNAME).toFileString(); | ||
40 | final Process p = Runtime.getRuntime().exec((((((CMD + vampLoc) + OPTION) + tempLoc) + " > ") + solnLoc), ((String[])Conversions.unwrapArray(CollectionLiterals.<String>newArrayList(("Path=" + PATH)), String.class))); | ||
41 | p.waitFor(); | ||
42 | InputStream _inputStream = p.getInputStream(); | ||
43 | InputStreamReader _inputStreamReader = new InputStreamReader(_inputStream); | ||
44 | final BufferedReader reader = new BufferedReader(_inputStreamReader); | ||
45 | final List<String> output = CollectionLiterals.<String>newArrayList(); | ||
46 | String line = ""; | ||
47 | while ((!Objects.equal((line = reader.readLine()), null))) { | ||
48 | output.add((line + "\n")); | ||
49 | } | ||
50 | workspace.getFile(TEMPNAME).delete(); | ||
51 | Map<String, Object> _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); | ||
52 | VampireLanguageFactoryImpl _vampireLanguageFactoryImpl = new VampireLanguageFactoryImpl(); | ||
53 | _extensionToFactoryMap.put("*", _vampireLanguageFactoryImpl); | ||
54 | _xblockexpression = workspace.<VampireModel>readModel(VampireModel.class, SOLNNAME).eResource().getContents(); | ||
55 | } | ||
56 | return _xblockexpression; | ||
57 | } catch (Throwable _e) { | ||
58 | throw Exceptions.sneakyThrow(_e); | ||
59 | } | ||
11 | } | 60 | } |
12 | } | 61 | } |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.ecore b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.ecore index bbd4af35..8952cfb5 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.ecore +++ b/Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.ecore | |||
@@ -10,7 +10,7 @@ | |||
10 | <eStructuralFeatures xsi:type="ecore:EReference" name="live" upperBound="-1" eType="#//FSObject" | 10 | <eStructuralFeatures xsi:type="ecore:EReference" name="live" upperBound="-1" eType="#//FSObject" |
11 | changeable="false" volatile="true" transient="true" derived="true"> | 11 | changeable="false" volatile="true" transient="true" derived="true"> |
12 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> | 12 | <eAnnotations source="org.eclipse.viatra.query.querybasedfeature"> |
13 | <details key="patternFQN" value="ca.mcgill.ecse.dslreasoner.vampire.queries.live"/> | 13 | <details key="patternFQN" value="ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.queries.live"/> |
14 | </eAnnotations> | 14 | </eAnnotations> |
15 | </eStructuralFeatures> | 15 | </eStructuralFeatures> |
16 | </eClassifiers> | 16 | </eClassifiers> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath index f03a6d83..3f0838b6 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath | |||
@@ -5,6 +5,5 @@ | |||
5 | <classpathentry kind="src" path="src"/> | 5 | <classpathentry kind="src" path="src"/> |
6 | <classpathentry kind="src" path="src-gen"/> | 6 | <classpathentry kind="src" path="src-gen"/> |
7 | <classpathentry kind="src" path="xtend-gen"/> | 7 | <classpathentry kind="src" path="xtend-gen"/> |
8 | <classpathentry kind="src" path="queries"/> | ||
9 | <classpathentry kind="output" path="bin"/> | 8 | <classpathentry kind="output" path="bin"/> |
10 | </classpath> | 9 | </classpath> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF index 8b69d9a8..2ea274a4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF | |||
@@ -3,11 +3,7 @@ Bundle-ManifestVersion: 2 | |||
3 | Bundle-Name: Test | 3 | Bundle-Name: Test |
4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true | 4 | Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true |
5 | Bundle-Version: 1.0.0.qualifier | 5 | Bundle-Version: 1.0.0.qualifier |
6 | Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, | 6 | Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries |
7 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore, | ||
8 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam, | ||
9 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem, | ||
10 | ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu | ||
11 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, | 7 | Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, |
12 | org.eclipse.emf.ecore, | 8 | org.eclipse.emf.ecore, |
13 | org.eclipse.viatra.query.runtime.rete, | 9 | org.eclipse.viatra.query.runtime.rete, |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties index efae4b07..aed85a48 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties | |||
@@ -1,6 +1,5 @@ | |||
1 | bin.includes = META-INF/,\ | 1 | bin.includes = META-INF/,\ |
2 | . | 2 | . |
3 | source.. = src/,\ | 3 | source.. = src/,\ |
4 | src-gen/,\ | ||
5 | src-gen/ | 4 | src-gen/ |
6 | output.. = bin/ | 5 | output.. = bin/ |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml index 33dc7485..b0735f37 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml | |||
@@ -1,238 +1,9 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?><plugin> | 1 | <?xml version="1.0" encoding="UTF-8"?><plugin> |
2 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
3 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.EcorePatterns"> | ||
4 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.directSupertype"/> | ||
5 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.loopInInheritence"/> | ||
6 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.opposite"/> | ||
7 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.nonSymmetricOpposite"/> | ||
8 | </group> | ||
9 | </extension> | ||
10 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | 2 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> |
11 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns"> | 3 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns"> |
12 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/> | 4 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/> |
13 | </group> | 5 | </group> |
14 | </extension> | 6 | </extension> |
15 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
16 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns"> | ||
17 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.patternContent"/> | ||
18 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.live"/> | ||
19 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.contentInNotLive"/> | ||
20 | </group> | ||
21 | </extension> | ||
22 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduMutatedPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
23 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduMutatedPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduMutatedPatterns"> | ||
24 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.entryInRegion_M0"/> | ||
25 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.entryInRegion_M1"/> | ||
26 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.entryInRegion_M2"/> | ||
27 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M0"/> | ||
28 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M1"/> | ||
29 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M2"/> | ||
30 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M3"/> | ||
31 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M4"/> | ||
32 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion_M5"/> | ||
33 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M0"/> | ||
34 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M1"/> | ||
35 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M2"/> | ||
36 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M3"/> | ||
37 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M4"/> | ||
38 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion_M5"/> | ||
39 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition_M0"/> | ||
40 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition_M1"/> | ||
41 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition_M2"/> | ||
42 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition_M3"/> | ||
43 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition_M4"/> | ||
44 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_M0"/> | ||
45 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_1"/> | ||
46 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_2"/> | ||
47 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_3"/> | ||
48 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_4"/> | ||
49 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry_5"/> | ||
50 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M0"/> | ||
51 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M1"/> | ||
52 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M2"/> | ||
53 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M3"/> | ||
54 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M4"/> | ||
55 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry_M5"/> | ||
56 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry_M0"/> | ||
57 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry_M1"/> | ||
58 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry_M2"/> | ||
59 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry_M3"/> | ||
60 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry_M4"/> | ||
61 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromExit_M0"/> | ||
62 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromExit_M1"/> | ||
63 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromExit_M2"/> | ||
64 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromFinal_M0"/> | ||
65 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromFinal_M1"/> | ||
66 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromFinal_M2"/> | ||
67 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noStateInRegion_M0"/> | ||
68 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noStateInRegion_M1"/> | ||
69 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noStateInRegion_M2"/> | ||
70 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noStateInRegion_M3"/> | ||
71 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.StateInRegion_M0"/> | ||
72 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.StateInRegion_M1"/> | ||
73 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.StateInRegion_M2"/> | ||
74 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M0"/> | ||
75 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M1"/> | ||
76 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M2"/> | ||
77 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M3"/> | ||
78 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M4"/> | ||
79 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M5"/> | ||
80 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing_M6"/> | ||
81 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M0"/> | ||
82 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M1"/> | ||
83 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M2"/> | ||
84 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M3"/> | ||
85 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M4"/> | ||
86 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M5"/> | ||
87 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming_M6"/> | ||
88 | </group> | ||
89 | </extension> | ||
90 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
91 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.YakinduPatterns"> | ||
92 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.entryInRegion"/> | ||
93 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noEntryInRegion"/> | ||
94 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleEntryInRegion"/> | ||
95 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.transition"/> | ||
96 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.incomingToEntry"/> | ||
97 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noOutgoingTransitionFromEntry"/> | ||
98 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.multipleTransitionFromEntry"/> | ||
99 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromExit"/> | ||
100 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.outgoingFromFinal"/> | ||
101 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.noStateInRegion"/> | ||
102 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.StateInRegion"/> | ||
103 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoOutgoing"/> | ||
104 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.choiceHasNoIncoming"/> | ||
105 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.synchHasNoOutgoing"/> | ||
106 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.synchHasNoIncoming"/> | ||
107 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.SynchronizedIncomingInSameRegion"/> | ||
108 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.notSynchronizingStates"/> | ||
109 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.hasMultipleOutgoingTrainsition"/> | ||
110 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.hasMultipleIncomingTrainsition"/> | ||
111 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.SynchronizedRegionsAreNotSiblings"/> | ||
112 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.child"/> | ||
113 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.SynchronizedRegionDoesNotHaveMultipleRegions"/> | ||
114 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.hasMultipleRegions"/> | ||
115 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.synchThree"/> | ||
116 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.twoSynch"/> | ||
117 | </group> | ||
118 | </extension> | ||
119 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
120 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.EcorePatterns"> | ||
121 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.directSupertype"/> | ||
122 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.loopInInheritence"/> | ||
123 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.opposite"/> | ||
124 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore.nonSymmetricOpposite"/> | ||
125 | </group> | ||
126 | </extension> | ||
127 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
128 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam.FamPatterns"> | ||
129 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam.terminatorAndInformation"/> | ||
130 | </group> | ||
131 | </extension> | ||
132 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.FileSystemPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
133 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.FileSystemPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.FileSystemPatterns"> | ||
134 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.patternContent"/> | ||
135 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.live"/> | ||
136 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem.contentInNotLive"/> | ||
137 | </group> | ||
138 | </extension> | ||
139 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduMutatedPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
140 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduMutatedPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduMutatedPatterns"> | ||
141 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.entryInRegion_M0"/> | ||
142 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.entryInRegion_M1"/> | ||
143 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.entryInRegion_M2"/> | ||
144 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M0"/> | ||
145 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M1"/> | ||
146 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M2"/> | ||
147 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M3"/> | ||
148 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M4"/> | ||
149 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion_M5"/> | ||
150 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M0"/> | ||
151 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M1"/> | ||
152 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M2"/> | ||
153 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M3"/> | ||
154 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M4"/> | ||
155 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion_M5"/> | ||
156 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition_M0"/> | ||
157 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition_M1"/> | ||
158 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition_M2"/> | ||
159 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition_M3"/> | ||
160 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition_M4"/> | ||
161 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_M0"/> | ||
162 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_1"/> | ||
163 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_2"/> | ||
164 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_3"/> | ||
165 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_4"/> | ||
166 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry_5"/> | ||
167 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M0"/> | ||
168 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M1"/> | ||
169 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M2"/> | ||
170 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M3"/> | ||
171 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M4"/> | ||
172 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry_M5"/> | ||
173 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry_M0"/> | ||
174 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry_M1"/> | ||
175 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry_M2"/> | ||
176 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry_M3"/> | ||
177 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry_M4"/> | ||
178 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromExit_M0"/> | ||
179 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromExit_M1"/> | ||
180 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromExit_M2"/> | ||
181 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromFinal_M0"/> | ||
182 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromFinal_M1"/> | ||
183 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromFinal_M2"/> | ||
184 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noStateInRegion_M0"/> | ||
185 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noStateInRegion_M1"/> | ||
186 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noStateInRegion_M2"/> | ||
187 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noStateInRegion_M3"/> | ||
188 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.StateInRegion_M0"/> | ||
189 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.StateInRegion_M1"/> | ||
190 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.StateInRegion_M2"/> | ||
191 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M0"/> | ||
192 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M1"/> | ||
193 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M2"/> | ||
194 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M3"/> | ||
195 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M4"/> | ||
196 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M5"/> | ||
197 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing_M6"/> | ||
198 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M0"/> | ||
199 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M1"/> | ||
200 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M2"/> | ||
201 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M3"/> | ||
202 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M4"/> | ||
203 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M5"/> | ||
204 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming_M6"/> | ||
205 | </group> | ||
206 | </extension> | ||
207 | <extension id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> | ||
208 | <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.YakinduPatterns"> | ||
209 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.entryInRegion"/> | ||
210 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noEntryInRegion"/> | ||
211 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleEntryInRegion"/> | ||
212 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.transition"/> | ||
213 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.incomingToEntry"/> | ||
214 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noOutgoingTransitionFromEntry"/> | ||
215 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.multipleTransitionFromEntry"/> | ||
216 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromExit"/> | ||
217 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.outgoingFromFinal"/> | ||
218 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.noStateInRegion"/> | ||
219 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.StateInRegion"/> | ||
220 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoOutgoing"/> | ||
221 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.choiceHasNoIncoming"/> | ||
222 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.synchHasNoOutgoing"/> | ||
223 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.synchHasNoIncoming"/> | ||
224 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.SynchronizedIncomingInSameRegion"/> | ||
225 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.notSynchronizingStates"/> | ||
226 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.hasMultipleOutgoingTrainsition"/> | ||
227 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.hasMultipleIncomingTrainsition"/> | ||
228 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.SynchronizedRegionsAreNotSiblings"/> | ||
229 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.child"/> | ||
230 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.SynchronizedRegionDoesNotHaveMultipleRegions"/> | ||
231 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.hasMultipleRegions"/> | ||
232 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.synchThree"/> | ||
233 | <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu.twoSynch"/> | ||
234 | </group> | ||
235 | </extension> | ||
236 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.vampire.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> | 7 | <extension id="extension.derived.ca.mcgill.ecse.dslreasoner.vampire.queries.live" point="org.eclipse.viatra.query.runtime.base.wellbehaving.derived.features"> |
237 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> | 8 | <wellbehaving-derived-feature classifier-name="FileSystem" feature-name="live" package-nsUri="FileSystemMetamodel"/> |
238 | </extension> | 9 | </extension> |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend index 35b76350..70ded02d 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend | |||
@@ -50,7 +50,7 @@ class EcoreTest { | |||
50 | it.documentationLevel = DocumentationLevel::FULL | 50 | it.documentationLevel = DocumentationLevel::FULL |
51 | ] | 51 | ] |
52 | 52 | ||
53 | solution = reasoner.solve(logicProblem, vampireConfig, workspace) | 53 | solution = reasoner.solve(logicProblem, vampireConfig, workspace, "ECO") |
54 | 54 | ||
55 | println("Problem solved") | 55 | println("Problem solved") |
56 | 56 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend index 3c24abf9..4625bfbf 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend | |||
@@ -56,7 +56,7 @@ class FAMTest { | |||
56 | //Start Time | 56 | //Start Time |
57 | var startTime = System.currentTimeMillis | 57 | var startTime = System.currentTimeMillis |
58 | 58 | ||
59 | var LogicReasoner reasoner | 59 | var VampireSolver reasoner |
60 | // * | 60 | // * |
61 | reasoner = new VampireSolver | 61 | reasoner = new VampireSolver |
62 | 62 | ||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend index ba7ff028..2495ab77 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend | |||
@@ -1,13 +1,13 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.Dir | ||
4 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage | 5 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage |
4 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver | 6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver |
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration | 7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration |
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic | 8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic |
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration |
9 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel | 10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel |
10 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult | 11 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult |
12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic | 12 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic |
13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic | 13 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic |
@@ -15,7 +15,6 @@ import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace | |||
15 | import java.util.HashMap | 15 | import java.util.HashMap |
16 | import org.eclipse.emf.ecore.resource.Resource | 16 | import org.eclipse.emf.ecore.resource.Resource |
17 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl | 17 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl |
18 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.* | ||
19 | 18 | ||
20 | class FileSystemTest { | 19 | class FileSystemTest { |
21 | def static void main(String[] args) { | 20 | def static void main(String[] args) { |
@@ -38,7 +37,7 @@ class FileSystemTest { | |||
38 | 37 | ||
39 | val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) | 38 | val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) |
40 | val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") | 39 | val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") |
41 | val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) | 40 | // val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) |
42 | 41 | ||
43 | println("DSL loaded") | 42 | println("DSL loaded") |
44 | 43 | ||
@@ -53,7 +52,7 @@ class FileSystemTest { | |||
53 | // Start Time | 52 | // Start Time |
54 | var startTime = System.currentTimeMillis | 53 | var startTime = System.currentTimeMillis |
55 | 54 | ||
56 | var LogicReasoner reasoner | 55 | var VampireSolver reasoner |
57 | // * | 56 | // * |
58 | reasoner = new VampireSolver | 57 | reasoner = new VampireSolver |
59 | 58 | ||
@@ -87,7 +86,7 @@ class FileSystemTest { | |||
87 | it.uniquenessDuplicates = false | 86 | it.uniquenessDuplicates = false |
88 | ] | 87 | ] |
89 | 88 | ||
90 | var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace) | 89 | var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "FS") |
91 | 90 | ||
92 | /*/ | 91 | /*/ |
93 | * | 92 | * |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend index 76ac727a..fb1bdb59 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend | |||
@@ -53,7 +53,7 @@ class YakinduTest { | |||
53 | // Start Time | 53 | // Start Time |
54 | var startTime = System.currentTimeMillis | 54 | var startTime = System.currentTimeMillis |
55 | 55 | ||
56 | var LogicReasoner reasoner | 56 | var VampireSolver reasoner |
57 | // * | 57 | // * |
58 | reasoner = new VampireSolver | 58 | reasoner = new VampireSolver |
59 | 59 | ||
@@ -85,7 +85,7 @@ class YakinduTest { | |||
85 | it.uniquenessDuplicates = false | 85 | it.uniquenessDuplicates = false |
86 | ] | 86 | ] |
87 | 87 | ||
88 | var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace) | 88 | var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "YAK") |
89 | 89 | ||
90 | /*/ | 90 | /*/ |
91 | * | 91 | * |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exe b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exe new file mode 100644 index 00000000..51b44f82 --- /dev/null +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exe | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin index 890872ea..1bf1d5cb 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin index 8d7947e1..43e916e8 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin index 91741fb2..8da3064a 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin index e1fba1c4..241e8efd 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin index 22b54964..e6e6bbf4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java index 7019f162..01503783 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java | |||
@@ -1,68 +1,9 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
7 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
8 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
11 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | ||
12 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
16 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
17 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
18 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
19 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
20 | import org.eclipse.emf.common.util.EList; | ||
21 | import org.eclipse.emf.ecore.EObject; | ||
22 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
23 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
24 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
25 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
26 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
27 | |||
28 | @SuppressWarnings("all") | 3 | @SuppressWarnings("all") |
29 | public class EcoreTest { | 4 | public class EcoreTest { |
30 | public static void main(final String[] args) { | 5 | public static void main(final String[] args) { |
31 | try { | 6 | throw new Error("Unresolved compilation problems:" |
32 | StringConcatenation _builder = new StringConcatenation(); | 7 | + "\nInvalid number of arguments. The method solve(LogicProblem, LogicSolverConfiguration, ReasonerWorkspace) is not applicable for the arguments (LogicProblem,VampireSolverConfiguration,FileSystemWorkspace,String)"); |
33 | _builder.append("initialModels/"); | ||
34 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
35 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
36 | _builder_1.append("output/FEcoreTest/"); | ||
37 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
38 | workspace.initAndClear(); | ||
39 | InputOutput.<String>println("Input and output workspaces are created"); | ||
40 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); | ||
41 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); | ||
42 | final Object queries = null; | ||
43 | InputOutput.<String>println("DSL loaded"); | ||
44 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | ||
45 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); | ||
46 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | ||
47 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | ||
48 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
49 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
50 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel); | ||
51 | final LogicProblem logicProblem = modelGenerationProblem.getOutput(); | ||
52 | InputOutput.<String>println("Problem created"); | ||
53 | LogicResult solution = null; | ||
54 | LogicReasoner reasoner = null; | ||
55 | VampireSolver _vampireSolver = new VampireSolver(); | ||
56 | reasoner = _vampireSolver; | ||
57 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
58 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
59 | it.documentationLevel = DocumentationLevel.FULL; | ||
60 | }; | ||
61 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
62 | solution = reasoner.solve(logicProblem, vampireConfig, workspace); | ||
63 | InputOutput.<String>println("Problem solved"); | ||
64 | } catch (Throwable _e) { | ||
65 | throw Exceptions.sneakyThrow(_e); | ||
66 | } | ||
67 | } | 8 | } |
68 | } | 9 | } |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java index ddbe05d7..ac49a9aa 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java | |||
@@ -12,7 +12,6 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | |||
12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | 12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; |
13 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | 13 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | 14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; |
15 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
16 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; |
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; |
18 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
@@ -62,7 +61,7 @@ public class FAMTest { | |||
62 | workspace.writeModel(problem, "Fam.logicproblem"); | 61 | workspace.writeModel(problem, "Fam.logicproblem"); |
63 | InputOutput.<String>println("Problem created"); | 62 | InputOutput.<String>println("Problem created"); |
64 | long startTime = System.currentTimeMillis(); | 63 | long startTime = System.currentTimeMillis(); |
65 | LogicReasoner reasoner = null; | 64 | VampireSolver reasoner = null; |
66 | VampireSolver _vampireSolver = new VampireSolver(); | 65 | VampireSolver _vampireSolver = new VampireSolver(); |
67 | reasoner = _vampireSolver; | 66 | reasoner = _vampireSolver; |
68 | final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>(); | 67 | final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>(); |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java index 4a971fd6..7579bd98 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java | |||
@@ -4,7 +4,6 @@ import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.Dir; | |||
4 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File; | 4 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File; |
5 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; | 5 | import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; |
6 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | 6 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; |
7 | import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns; | ||
8 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | 7 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; |
9 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | 8 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; |
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | 9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; |
@@ -12,13 +11,11 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | |||
12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | 11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; |
13 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | 12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; |
14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | 13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; |
15 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; | ||
16 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | 14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; |
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; | 15 | import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; |
18 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | 16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; |
19 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | 17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; |
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | 18 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; |
21 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
22 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | 19 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; |
23 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | 20 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; |
24 | import java.util.HashMap; | 21 | import java.util.HashMap; |
@@ -28,7 +25,6 @@ import org.eclipse.emf.ecore.EObject; | |||
28 | import org.eclipse.emf.ecore.resource.Resource; | 25 | import org.eclipse.emf.ecore.resource.Resource; |
29 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | 26 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; |
30 | import org.eclipse.xtend2.lib.StringConcatenation; | 27 | import org.eclipse.xtend2.lib.StringConcatenation; |
31 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
32 | import org.eclipse.xtext.xbase.lib.InputOutput; | 28 | import org.eclipse.xtext.xbase.lib.InputOutput; |
33 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | 29 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; |
34 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | 30 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; |
@@ -36,75 +32,70 @@ import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | |||
36 | @SuppressWarnings("all") | 32 | @SuppressWarnings("all") |
37 | public class FileSystemTest { | 33 | public class FileSystemTest { |
38 | public static void main(final String[] args) { | 34 | public static void main(final String[] args) { |
39 | try { | 35 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); |
40 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); | 36 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); |
41 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | 37 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); |
42 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | 38 | StringConcatenation _builder = new StringConcatenation(); |
43 | StringConcatenation _builder = new StringConcatenation(); | 39 | _builder.append("initialModels/"); |
44 | _builder.append("initialModels/"); | 40 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); |
45 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | 41 | StringConcatenation _builder_1 = new StringConcatenation(); |
46 | StringConcatenation _builder_1 = new StringConcatenation(); | 42 | _builder_1.append("output/FileSystemTest/"); |
47 | _builder_1.append("output/FileSystemTest/"); | 43 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); |
48 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | 44 | workspace.initAndClear(); |
49 | workspace.initAndClear(); | 45 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; |
50 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | 46 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); |
51 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); | 47 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); |
52 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | 48 | map.put("logicproblem", _xMIResourceFactoryImpl); |
53 | map.put("logicproblem", _xMIResourceFactoryImpl); | 49 | InputOutput.<String>println("Input and output workspaces are created"); |
54 | InputOutput.<String>println("Input and output workspaces are created"); | 50 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); |
55 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); | 51 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); |
56 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); | 52 | InputOutput.<String>println("DSL loaded"); |
57 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance()); | 53 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); |
58 | InputOutput.<String>println("DSL loaded"); | 54 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); |
59 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | 55 | LogicProblem problem = modelGenerationProblem.getOutput(); |
60 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | 56 | problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); |
61 | LogicProblem problem = modelGenerationProblem.getOutput(); | 57 | workspace.writeModel(problem, "FileSystem.logicproblem"); |
62 | problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); | 58 | InputOutput.<String>println("Problem created"); |
63 | workspace.writeModel(problem, "FileSystem.logicproblem"); | 59 | long startTime = System.currentTimeMillis(); |
64 | InputOutput.<String>println("Problem created"); | 60 | VampireSolver reasoner = null; |
65 | long startTime = System.currentTimeMillis(); | 61 | VampireSolver _vampireSolver = new VampireSolver(); |
66 | LogicReasoner reasoner = null; | 62 | reasoner = _vampireSolver; |
67 | VampireSolver _vampireSolver = new VampireSolver(); | 63 | final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>(); |
68 | reasoner = _vampireSolver; | 64 | classMapMin.put(Dir.class, Integer.valueOf(10)); |
69 | final HashMap<Class, Integer> classMapMin = new HashMap<Class, Integer>(); | 65 | classMapMin.put(File.class, Integer.valueOf(5)); |
70 | classMapMin.put(Dir.class, Integer.valueOf(10)); | 66 | final Map<Type, Integer> typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); |
71 | classMapMin.put(File.class, Integer.valueOf(5)); | 67 | final HashMap<Class, Integer> classMapMax = new HashMap<Class, Integer>(); |
72 | final Map<Type, Integer> typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); | 68 | classMapMax.put(File.class, Integer.valueOf(15)); |
73 | final HashMap<Class, Integer> classMapMax = new HashMap<Class, Integer>(); | 69 | classMapMax.put(Dir.class, Integer.valueOf(15)); |
74 | classMapMax.put(File.class, Integer.valueOf(15)); | 70 | final Map<Type, Integer> typeMapMax = GeneralTest.getTypeMap(classMapMax, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); |
75 | classMapMax.put(Dir.class, Integer.valueOf(15)); | 71 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); |
76 | final Map<Type, Integer> typeMapMax = GeneralTest.getTypeMap(classMapMax, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); | 72 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { |
77 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | 73 | it.documentationLevel = DocumentationLevel.FULL; |
78 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | 74 | it.typeScopes.minNewElements = 10; |
79 | it.documentationLevel = DocumentationLevel.FULL; | 75 | it.typeScopes.maxNewElements = 25; |
80 | it.typeScopes.minNewElements = 10; | 76 | int _size = typeMapMin.size(); |
81 | it.typeScopes.maxNewElements = 25; | 77 | boolean _notEquals = (_size != 0); |
82 | int _size = typeMapMin.size(); | 78 | if (_notEquals) { |
83 | boolean _notEquals = (_size != 0); | 79 | it.typeScopes.minNewElementsByType = typeMapMin; |
84 | if (_notEquals) { | 80 | } |
85 | it.typeScopes.minNewElementsByType = typeMapMin; | 81 | int _size_1 = typeMapMin.size(); |
86 | } | 82 | boolean _notEquals_1 = (_size_1 != 0); |
87 | int _size_1 = typeMapMin.size(); | 83 | if (_notEquals_1) { |
88 | boolean _notEquals_1 = (_size_1 != 0); | 84 | it.typeScopes.maxNewElementsByType = typeMapMax; |
89 | if (_notEquals_1) { | 85 | } |
90 | it.typeScopes.maxNewElementsByType = typeMapMax; | 86 | it.contCycleLevel = 5; |
91 | } | 87 | it.uniquenessDuplicates = false; |
92 | it.contCycleLevel = 5; | 88 | }; |
93 | it.uniquenessDuplicates = false; | 89 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); |
94 | }; | 90 | LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "FS"); |
95 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | 91 | long _currentTimeMillis = System.currentTimeMillis(); |
96 | LogicResult solution = reasoner.solve(problem, vampireConfig, workspace); | 92 | long _minus = (_currentTimeMillis - startTime); |
97 | long _currentTimeMillis = System.currentTimeMillis(); | 93 | long totalTimeMin = (_minus / 60000); |
98 | long _minus = (_currentTimeMillis - startTime); | 94 | long _currentTimeMillis_1 = System.currentTimeMillis(); |
99 | long totalTimeMin = (_minus / 60000); | 95 | long _minus_1 = (_currentTimeMillis_1 - startTime); |
100 | long _currentTimeMillis_1 = System.currentTimeMillis(); | 96 | long _divide = (_minus_1 / 1000); |
101 | long _minus_1 = (_currentTimeMillis_1 - startTime); | 97 | long totalTimeSec = (_divide % 60); |
102 | long _divide = (_minus_1 / 1000); | 98 | InputOutput.<String>println("Problem solved"); |
103 | long totalTimeSec = (_divide % 60); | 99 | InputOutput.<String>println(((("Time was: " + Long.valueOf(totalTimeMin)) + ":") + Long.valueOf(totalTimeSec))); |
104 | InputOutput.<String>println("Problem solved"); | ||
105 | InputOutput.<String>println(((("Time was: " + Long.valueOf(totalTimeMin)) + ":") + Long.valueOf(totalTimeSec))); | ||
106 | } catch (Throwable _e) { | ||
107 | throw Exceptions.sneakyThrow(_e); | ||
108 | } | ||
109 | } | 100 | } |
110 | } | 101 | } |
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin index c33ed958..36edabcd 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin index 9fecf93f..0d4e05e0 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin | |||
Binary files differ | |||
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin index 7b5be981..f93484b4 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin | |||
Binary files differ | |||