aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
committerLibravatar ArenBabikian <aren.babikian@mail.mcgill.ca>2019-08-28 05:56:34 -0400
commit6b70878a56052e1c254ba8c66485f217d22db3f8 (patch)
tree66088b97e5b6c0194f1a45f70f5f05315aba9e43
parentPre-realisticBranchCreation Commit (diff)
downloadVIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.gz
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.tar.zst
VIATRA-Generator-6b70878a56052e1c254ba8c66485f217d22db3f8.zip
VAMPIRE: integrate local Vampire executeable #32
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._tracebin0 -> 164 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbinbin0 -> 1885 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._tracebin0 -> 6539 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbinbin0 -> 8247 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._tracebin0 -> 2918 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._tracebin0 -> 2152 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbinbin0 -> 6658 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._tracebin0 -> 12333 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbinbin0 -> 12384 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java99
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java49
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java54
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java180
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._tracebin0 -> 1591 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbinbin0 -> 4755 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._tracebin0 -> 6400 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbinbin0 -> 6373 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._tracebin0 -> 10274 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbinbin0 -> 7080 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._tracebin0 -> 5179 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbinbin0 -> 7053 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._tracebin0 -> 1071 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java26
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java91
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java136
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java93
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java38
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._tracebin0 -> 10303 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbinbin0 -> 7659 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._tracebin0 -> 5380 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbinbin0 -> 5215 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._tracebin0 -> 14346 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbinbin0 -> 8393 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._tracebin0 -> 10923 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbinbin0 -> 8678 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java140
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java96
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java201
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java162
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._tracebin0 -> 4046 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbinbin0 -> 4364 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._tracebin0 -> 395 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._tracebin0 -> 8762 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbinbin0 -> 7536 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._tracebin0 -> 2611 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbinbin0 -> 7213 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java75
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java12
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java138
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java49
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._tracebin0 -> 3341 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbinbin0 -> 3968 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._tracebin0 -> 381 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbinbin0 -> 2472 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._tracebin0 -> 756 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbinbin0 -> 2822 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._tracebin0 -> 3277 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbinbin0 -> 6315 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._tracebin0 -> 1066 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbinbin0 -> 4941 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._tracebin0 -> 2658 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbinbin0 -> 3676 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._tracebin0 -> 1063 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbinbin0 -> 4940 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._tracebin0 -> 4325 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbinbin0 -> 6380 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._tracebin0 -> 4081 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbinbin0 -> 4458 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java65
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java10
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java19
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java59
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java31
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java54
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java31
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java74
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java73
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._tracebin0 -> 4597 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbinbin0 -> 6307 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java90
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._tracebin0 -> 1968 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbinbin0 -> 6940 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._tracebin0 -> 607 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbinbin0 -> 5275 bytes
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java79
-rw-r--r--Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java34
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._tracebin0 -> 5637 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._tracebin0 -> 13288 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._tracebin0 -> 24403 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._tracebin0 -> 522 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._tracebin0 -> 608 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._tracebin0 -> 13672 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._tracebin0 -> 10147 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._tracebin0 -> 7235 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._tracebin0 -> 7671 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._tracebin0 -> 15830 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._tracebin0 -> 3437 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._tracebin0 -> 13017 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbinbin0 -> 7750 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._tracebin0 -> 12572 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._tracebin0 -> 3743 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._tracebin0 -> 19842 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._tracebin0 -> 32376 bytes
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore1
-rw-r--r--Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._tracebin0 -> 6221 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbinbin1685 -> 1685 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbinbin2500 -> 2500 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbinbin2342 -> 2342 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbinbin1792 -> 1792 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbinbin1965 -> 1965 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbinbin2405 -> 2405 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbinbin1819 -> 1819 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbinbin1786 -> 1786 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbinbin1706 -> 1706 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbinbin1980 -> 1980 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbinbin4130 -> 4130 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbinbin2338 -> 2338 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbinbin1751 -> 1751 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbinbin1736 -> 1736 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/putVampireHere2
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exebin0 -> 11727673 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.xtend42
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/src/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.xtend72
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbinbin2691 -> 2691 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbinbin5892 -> 6386 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/VampireSolver.java22
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbinbin18149 -> 18150 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbinbin4656 -> 4656 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbinbin3164 -> 3164 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbinbin11904 -> 11904 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbinbin6454 -> 6454 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbinbin10667 -> 10667 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbinbin13046 -> 13048 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbinbin11136 -> 11136 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbinbin1720 -> 1720 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbinbin4908 -> 6553 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbinbin1491 -> 1491 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbinbin1688 -> 1688 bytes
-rw-r--r--Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/VampireHandler.java53
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.standalone.test/metamodels/filesystem.ecore2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/.classpath1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF6
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/build.properties1
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml229
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.xtend2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.xtend2
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.xtend11
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend4
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exebin0 -> 11727673 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin4545 -> 4554 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin6314 -> 6316 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin7116 -> 6204 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin6456 -> 6456 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin7025 -> 7055 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/EcoreTest.java63
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FAMTest.java3
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/FileSystemTest.java139
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4997 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6500 -> 6500 bytes
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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3@SuppressWarnings("all")
4public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck;
8import com.google.common.base.Objects;
9import com.google.common.collect.Iterators;
10import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl;
11import java.io.File;
12import java.util.ArrayList;
13import java.util.Iterator;
14import org.eclipse.emf.ecore.EReference;
15import org.eclipse.emf.ecore.impl.EcorePackageImpl;
16import org.eclipse.xtext.xbase.lib.CollectionLiterals;
17import org.eclipse.xtext.xbase.lib.Functions.Function1;
18import org.eclipse.xtext.xbase.lib.InputOutput;
19import org.eclipse.xtext.xbase.lib.IteratorExtensions;
20import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
21
22@SuppressWarnings("all")
23public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import java.util.HashMap;
4
5@SuppressWarnings("all")
6public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
12import java.io.File;
13import java.util.ArrayList;
14import java.util.List;
15
16@SuppressWarnings("all")
17public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
12import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
13import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
14import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
15import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
16import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel;
17import com.google.common.base.Objects;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
19import java.util.ArrayList;
20import java.util.List;
21import java.util.Map;
22import org.eclipse.xtend.lib.annotations.AccessorType;
23import org.eclipse.xtend.lib.annotations.Accessors;
24import org.eclipse.xtext.xbase.lib.InputOutput;
25import org.eclipse.xtext.xbase.lib.Pure;
26
27@SuppressWarnings("all")
28public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import java.text.DecimalFormat;
4import java.util.HashMap;
5import java.util.List;
6
7@SuppressWarnings("all")
8public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import com.google.common.collect.Sets;
6import java.text.DecimalFormat;
7import java.util.ArrayList;
8import java.util.HashMap;
9import java.util.List;
10import java.util.Map;
11import java.util.Set;
12import java.util.function.ToDoubleFunction;
13import org.eclipse.xtext.xbase.lib.Conversions;
14import org.eclipse.xtext.xbase.lib.DoubleExtensions;
15
16@SuppressWarnings("all")
17public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import com.google.common.collect.Sets;
6import java.text.DecimalFormat;
7import java.util.HashMap;
8import java.util.List;
9import java.util.Set;
10import java.util.function.ToDoubleFunction;
11import org.eclipse.xtext.xbase.lib.Conversions;
12import org.eclipse.xtext.xbase.lib.DoubleExtensions;
13
14@SuppressWarnings("all")
15public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Set;
9import org.eclipse.xtext.xbase.lib.CollectionLiterals;
10
11@SuppressWarnings("all")
12public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance;
2
3import org.eclipse.xtend.lib.annotations.AccessorType;
4import org.eclipse.xtend.lib.annotations.Accessors;
5import org.eclipse.xtext.xbase.lib.Pure;
6
7@SuppressWarnings("all")
8public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import java.util.ArrayList;
7import java.util.HashSet;
8import java.util.List;
9import java.util.function.Consumer;
10import org.eclipse.emf.common.util.EList;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.emf.ecore.EReference;
13import org.eclipse.xtend.lib.annotations.AccessorType;
14import org.eclipse.xtend.lib.annotations.Accessors;
15import org.eclipse.xtext.xbase.lib.IteratorExtensions;
16import org.eclipse.xtext.xbase.lib.Pure;
17
18@SuppressWarnings("all")
19public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
11import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree;
12import java.util.ArrayList;
13import java.util.Collection;
14import java.util.HashMap;
15import java.util.List;
16import org.eclipse.xtext.xbase.lib.Conversions;
17
18@SuppressWarnings("all")
19public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import com.google.common.collect.ArrayListMultimap;
4import com.google.common.collect.Multimap;
5import java.util.Collection;
6import java.util.HashMap;
7import java.util.HashSet;
8import java.util.List;
9import java.util.Map;
10import java.util.Set;
11import java.util.function.Consumer;
12import org.eclipse.emf.ecore.EObject;
13import org.eclipse.xtext.xbase.lib.IterableExtensions;
14import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
15
16@SuppressWarnings("all")
17public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import com.google.common.collect.Iterables;
7import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement;
8import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration;
9import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
10import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition;
11import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink;
12import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation;
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation;
14import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.PartialComplexTypeInterpretationImpl;
15import java.util.ArrayList;
16import java.util.List;
17import java.util.function.Consumer;
18import org.eclipse.emf.common.util.EList;
19import org.eclipse.xtext.xbase.lib.Conversions;
20import org.eclipse.xtext.xbase.lib.Functions.Function1;
21import org.eclipse.xtext.xbase.lib.IterableExtensions;
22import org.eclipse.xtext.xbase.lib.ListExtensions;
23
24@SuppressWarnings("all")
25public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import java.io.File;
4import java.io.FileNotFoundException;
5import java.io.FileOutputStream;
6import java.io.PrintWriter;
7import java.util.ArrayList;
8import java.util.List;
9import org.eclipse.xtext.xbase.lib.Exceptions;
10
11@SuppressWarnings("all")
12public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3@SuppressWarnings("all")
4public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric;
7import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric;
8import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric;
9import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric;
10import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree;
11import java.io.File;
12import java.io.FileNotFoundException;
13import java.util.ArrayList;
14import java.util.List;
15import org.eclipse.emf.common.util.EList;
16import org.eclipse.emf.common.util.URI;
17import org.eclipse.emf.ecore.EObject;
18import org.eclipse.emf.ecore.EPackage;
19import org.eclipse.emf.ecore.EReference;
20import org.eclipse.emf.ecore.resource.Resource;
21import org.eclipse.emf.ecore.resource.ResourceSet;
22import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
23import org.eclipse.xtext.xbase.lib.Conversions;
24import org.eclipse.xtext.xbase.lib.Exceptions;
25import org.eclipse.xtext.xbase.lib.Functions.Function1;
26import org.eclipse.xtext.xbase.lib.IterableExtensions;
27
28@SuppressWarnings("all")
29public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph;
5import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader;
6import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup;
7import com.google.common.base.Objects;
8import com.google.common.collect.Iterators;
9import java.util.Iterator;
10import org.eclipse.emf.ecore.EReference;
11import org.eclipse.emf.ecore.impl.EcorePackageImpl;
12import org.eclipse.xtext.xbase.lib.Functions.Function1;
13import org.eclipse.xtext.xbase.lib.IterableExtensions;
14import org.eclipse.xtext.xbase.lib.IteratorExtensions;
15import 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")
21public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.collect.Multimap;
6import java.util.ArrayList;
7import java.util.Collection;
8import java.util.HashMap;
9import java.util.Set;
10import java.util.function.BiConsumer;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.xtext.xbase.lib.CollectionLiterals;
13import org.eclipse.xtext.xbase.lib.Conversions;
14import org.eclipse.xtext.xbase.lib.Functions.Function2;
15import org.eclipse.xtext.xbase.lib.IterableExtensions;
16
17@SuppressWarnings("all")
18public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4
5@SuppressWarnings("all")
6public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import java.util.HashMap;
4import java.util.List;
5
6@SuppressWarnings("all")
7public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.text.DecimalFormat;
6import java.util.ArrayList;
7import java.util.List;
8import java.util.function.Consumer;
9import org.eclipse.emf.ecore.EObject;
10
11@SuppressWarnings("all")
12public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.function.Consumer;
7import org.eclipse.emf.ecore.EObject;
8
9@SuppressWarnings("all")
10public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9import java.util.Set;
10import org.eclipse.emf.ecore.EObject;
11import org.eclipse.xtext.xbase.lib.CollectionLiterals;
12import org.eclipse.xtext.xbase.lib.Conversions;
13
14@SuppressWarnings("all")
15public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import java.util.ArrayList;
6import java.util.function.Consumer;
7import org.eclipse.emf.ecore.EObject;
8
9@SuppressWarnings("all")
10public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.base.Objects;
6import java.text.DecimalFormat;
7import java.util.ArrayList;
8import java.util.Collection;
9import java.util.HashSet;
10import java.util.List;
11import java.util.function.Consumer;
12import org.eclipse.emf.ecore.EObject;
13
14@SuppressWarnings("all")
15public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic;
4import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric;
5import com.google.common.collect.Multimap;
6import java.util.ArrayList;
7import java.util.HashMap;
8import java.util.List;
9import java.util.Map;
10import java.util.Set;
11import org.eclipse.emf.ecore.EObject;
12import org.eclipse.xtext.xbase.lib.CollectionLiterals;
13import org.eclipse.xtext.xbase.lib.Conversions;
14
15@SuppressWarnings("all")
16public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData;
4import com.google.common.base.Objects;
5import java.util.ArrayList;
6import java.util.HashMap;
7import java.util.List;
8import java.util.Map;
9
10@SuppressWarnings("all")
11public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation;
2
3import java.util.ArrayList;
4import java.util.List;
5import java.util.Map;
6import org.eclipse.emf.common.notify.Notifier;
7import org.eclipse.emf.common.util.URI;
8import org.eclipse.emf.ecore.resource.Resource;
9import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
10import org.eclipse.xtext.xbase.lib.InputOutput;
11
12@SuppressWarnings("all")
13public 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 @@
1package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation;
2
3import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain;
4import java.util.ArrayList;
5import java.util.Map;
6import org.eclipse.emf.ecore.EObject;
7
8@SuppressWarnings("all")
9public 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 @@
1put the Vampire executeable in this folder.
2rename 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 @@
1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder 1package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder
2 2
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireBackendSolver
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel 4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
6import com.google.common.util.concurrent.SimpleTimeLimiter
7import com.google.common.util.concurrent.UncheckedTimeoutException
8import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration
9import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace 5import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace
10import java.util.ArrayList 6import java.io.BufferedReader
11import java.util.HashMap 7import java.io.InputStreamReader
12import java.util.LinkedList
13import java.util.List 8import java.util.List
14import java.util.Map 9import org.eclipse.emf.ecore.resource.Resource
15import java.util.concurrent.Callable
16import java.util.concurrent.TimeUnit
17import org.eclipse.emf.common.command.Command
18import org.eclipse.xtend.lib.annotations.Data 10import org.eclipse.xtend.lib.annotations.Data
11import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl
19 12
20class VampireSolverException extends Exception{ 13class 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;
20import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 20import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
21import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; 21import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
22import java.util.List; 22import java.util.List;
23import org.eclipse.emf.common.util.EList;
24import org.eclipse.emf.ecore.EObject;
23import org.eclipse.xtend2.lib.StringConcatenation; 25import org.eclipse.xtend2.lib.StringConcatenation;
26import org.eclipse.xtext.xbase.lib.Exceptions;
24 27
25@SuppressWarnings("all") 28@SuppressWarnings("all")
26public class VampireSolver extends LogicReasoner { 29public 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
3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 3import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; 4import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel;
5import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl;
6import com.google.common.base.Objects;
5import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; 7import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace;
8import java.io.BufferedReader;
9import java.io.InputStream;
10import java.io.InputStreamReader;
11import java.util.List;
12import java.util.Map;
13import org.eclipse.emf.common.util.EList;
14import org.eclipse.emf.common.util.URI;
15import org.eclipse.emf.ecore.EObject;
16import org.eclipse.emf.ecore.resource.Resource;
17import org.eclipse.xtext.xbase.lib.CollectionLiterals;
18import org.eclipse.xtext.xbase.lib.Conversions;
19import org.eclipse.xtext.xbase.lib.Exceptions;
6 20
7@SuppressWarnings("all") 21@SuppressWarnings("all")
8public class VampireHandler { 22public 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
3Bundle-Name: Test 3Bundle-Name: Test
4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true 4Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true
5Bundle-Version: 1.0.0.qualifier 5Bundle-Version: 1.0.0.qualifier
6Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, 6Export-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
11Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, 7Require-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 @@
1bin.includes = META-INF/,\ 1bin.includes = META-INF/,\
2 . 2 .
3source.. = src/,\ 3source.. = src/,\
4 src-gen/,\
5 src-gen/ 4 src-gen/
6output.. = bin/ 5output.. = 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 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse 1package ca.mcgill.ecse.dslreasoner.vampire.icse
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.Dir
4import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File
3import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage 5import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage
4import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver 6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
9import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel 10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner
11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult 11import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic 12import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 13import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
@@ -15,7 +15,6 @@ import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
15import java.util.HashMap 15import java.util.HashMap
16import org.eclipse.emf.ecore.resource.Resource 16import org.eclipse.emf.ecore.resource.Resource
17import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 17import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
18import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.*
19 18
20class FileSystemTest { 19class 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 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse; 1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage;
4import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
7import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
11import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
12import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
13import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
14import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
15import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
16import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
17import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
18import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
19import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
20import org.eclipse.emf.common.util.EList;
21import org.eclipse.emf.ecore.EObject;
22import org.eclipse.xtend2.lib.StringConcatenation;
23import org.eclipse.xtext.xbase.lib.Exceptions;
24import org.eclipse.xtext.xbase.lib.InputOutput;
25import org.eclipse.xtext.xbase.lib.ObjectExtensions;
26import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
27
28@SuppressWarnings("all") 3@SuppressWarnings("all")
29public class EcoreTest { 4public 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;
12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
13import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; 13import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
14import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; 14import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
15import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
16import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; 15import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
17import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; 16import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
18import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 17import 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;
4import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File; 4import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File;
5import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; 5import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage;
6import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; 6import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
7import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns;
8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 7import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
9import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 8import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
@@ -12,13 +11,11 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
12import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
13import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; 12import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor;
14import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; 13import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel;
15import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner;
16import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; 14import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput;
17import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; 15import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type;
18import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; 16import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem;
19import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; 17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
20import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; 18import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
21import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
22import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; 19import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
23import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 20import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
24import java.util.HashMap; 21import java.util.HashMap;
@@ -28,7 +25,6 @@ import org.eclipse.emf.ecore.EObject;
28import org.eclipse.emf.ecore.resource.Resource; 25import org.eclipse.emf.ecore.resource.Resource;
29import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 26import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
30import org.eclipse.xtend2.lib.StringConcatenation; 27import org.eclipse.xtend2.lib.StringConcatenation;
31import org.eclipse.xtext.xbase.lib.Exceptions;
32import org.eclipse.xtext.xbase.lib.InputOutput; 28import org.eclipse.xtext.xbase.lib.InputOutput;
33import org.eclipse.xtext.xbase.lib.ObjectExtensions; 29import org.eclipse.xtext.xbase.lib.ObjectExtensions;
34import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 30import 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")
37public class FileSystemTest { 33public 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