From 6b70878a56052e1c254ba8c66485f217d22db3f8 Mon Sep 17 00:00:00 2001 From: ArenBabikian Date: Wed, 28 Aug 2019 05:56:34 -0400 Subject: VAMPIRE: integrate local Vampire executeable #32 --- .../metrics/calculator/app/.Domain.java._trace | Bin 0 -> 164 bytes .../metrics/calculator/app/.Domain.xtendbin | Bin 0 -> 1885 bytes .../metrics/calculator/app/.Main.java._trace | Bin 0 -> 6539 bytes .../metrics/calculator/app/.Main.xtendbin | Bin 0 -> 8247 bytes .../app/.MetricDistanceGroup.java._trace | Bin 0 -> 2918 bytes .../app/.PartialInterpretationMetric.java._trace | Bin 0 -> 2152 bytes .../app/.PartialInterpretationMetric.xtendbin | Bin 0 -> 6658 bytes ...PartialInterpretationMetricDistance.java._trace | Bin 0 -> 12333 bytes .../.PartialInterpretationMetricDistance.xtendbin | Bin 0 -> 12384 bytes .../realistic/metrics/calculator/app/Domain.java | 10 + .../realistic/metrics/calculator/app/Main.java | 99 +++++++++ .../calculator/app/MetricDistanceGroup.java | 49 +++++ .../app/PartialInterpretationMetric.java | 54 +++++ .../app/PartialInterpretationMetricDistance.java | 180 ++++++++++++++++ .../calculator/distance/.CostDistance.java._trace | Bin 0 -> 1591 bytes .../calculator/distance/.CostDistance.xtendbin | Bin 0 -> 4755 bytes .../distance/.EuclideanDistance.java._trace | Bin 0 -> 6400 bytes .../distance/.EuclideanDistance.xtendbin | Bin 0 -> 6373 bytes .../calculator/distance/.JSDistance.java._trace | Bin 0 -> 10274 bytes .../calculator/distance/.JSDistance.xtendbin | Bin 0 -> 7080 bytes .../calculator/distance/.KSDistance.java._trace | Bin 0 -> 5179 bytes .../calculator/distance/.KSDistance.xtendbin | Bin 0 -> 7053 bytes .../calculator/distance/.StateData.java._trace | Bin 0 -> 1071 bytes .../metrics/calculator/distance/CostDistance.java | 26 +++ .../calculator/distance/EuclideanDistance.java | 91 ++++++++ .../metrics/calculator/distance/JSDistance.java | 136 ++++++++++++ .../metrics/calculator/distance/KSDistance.java | 93 +++++++++ .../metrics/calculator/distance/StateData.java | 38 ++++ .../metrics/calculator/graph/.EMFGraph.java._trace | Bin 0 -> 10303 bytes .../metrics/calculator/graph/.EMFGraph.xtendbin | Bin 0 -> 7659 bytes .../metrics/calculator/graph/.Graph.java._trace | Bin 0 -> 5380 bytes .../metrics/calculator/graph/.Graph.xtendbin | Bin 0 -> 5215 bytes .../calculator/graph/.GraphStatistic.java._trace | Bin 0 -> 14346 bytes .../calculator/graph/.GraphStatistic.xtendbin | Bin 0 -> 8393 bytes .../graph/.PartialInterpretationGraph.java._trace | Bin 0 -> 10923 bytes .../graph/.PartialInterpretationGraph.xtendbin | Bin 0 -> 8678 bytes .../metrics/calculator/graph/EMFGraph.java | 140 +++++++++++++ .../realistic/metrics/calculator/graph/Graph.java | 96 +++++++++ .../metrics/calculator/graph/GraphStatistic.java | 201 ++++++++++++++++++ .../graph/PartialInterpretationGraph.java | 162 +++++++++++++++ .../calculator/io/.CsvFileWriter.java._trace | Bin 0 -> 4046 bytes .../metrics/calculator/io/.CsvFileWriter.xtendbin | Bin 0 -> 4364 bytes .../metrics/calculator/io/.DataName.java._trace | Bin 0 -> 395 bytes .../metrics/calculator/io/.GraphReader.java._trace | Bin 0 -> 8762 bytes .../metrics/calculator/io/.GraphReader.xtendbin | Bin 0 -> 7536 bytes .../calculator/io/.RepMetricsReader.java._trace | Bin 0 -> 2611 bytes .../calculator/io/.RepMetricsReader.xtendbin | Bin 0 -> 7213 bytes .../metrics/calculator/io/CsvFileWriter.java | 75 +++++++ .../realistic/metrics/calculator/io/DataName.java | 12 ++ .../metrics/calculator/io/GraphReader.java | 138 +++++++++++++ .../metrics/calculator/io/RepMetricsReader.java | 49 +++++ .../calculator/metrics/.EdgeTypeMetric.java._trace | Bin 0 -> 3341 bytes .../calculator/metrics/.EdgeTypeMetric.xtendbin | Bin 0 -> 3968 bytes .../metrics/calculator/metrics/.Metric.java._trace | Bin 0 -> 381 bytes .../metrics/calculator/metrics/.Metric.xtendbin | Bin 0 -> 2472 bytes .../metrics/.MetricSampleGroup.java._trace | Bin 0 -> 756 bytes .../calculator/metrics/.MetricSampleGroup.xtendbin | Bin 0 -> 2822 bytes ...iplexParticipationCoefficientMetric.java._trace | Bin 0 -> 3277 bytes ...ultiplexParticipationCoefficientMetric.xtendbin | Bin 0 -> 6315 bytes .../metrics/.NodeActivityMetric.java._trace | Bin 0 -> 1066 bytes .../metrics/.NodeActivityMetric.xtendbin | Bin 0 -> 4941 bytes .../calculator/metrics/.NodeTypeMetric.java._trace | Bin 0 -> 2658 bytes .../calculator/metrics/.NodeTypeMetric.xtendbin | Bin 0 -> 3676 bytes .../metrics/.OutDegreeMetric.java._trace | Bin 0 -> 1063 bytes .../calculator/metrics/.OutDegreeMetric.xtendbin | Bin 0 -> 4940 bytes .../.TypedClusteringCoefficientMetric.java._trace | Bin 0 -> 4325 bytes .../.TypedClusteringCoefficientMetric.xtendbin | Bin 0 -> 6380 bytes .../calculator/metrics/.TypedOutDegree.java._trace | Bin 0 -> 4081 bytes .../calculator/metrics/.TypedOutDegree.xtendbin | Bin 0 -> 4458 bytes .../metrics/calculator/metrics/EdgeTypeMetric.java | 65 ++++++ .../metrics/calculator/metrics/Metric.java | 10 + .../calculator/metrics/MetricSampleGroup.java | 19 ++ .../MultiplexParticipationCoefficientMetric.java | 59 ++++++ .../calculator/metrics/NodeActivityMetric.java | 31 +++ .../metrics/calculator/metrics/NodeTypeMetric.java | 54 +++++ .../calculator/metrics/OutDegreeMetric.java | 31 +++ .../metrics/TypedClusteringCoefficientMetric.java | 74 +++++++ .../metrics/calculator/metrics/TypedOutDegree.java | 73 +++++++ .../calculator/predictor/.LinearModel.java._trace | Bin 0 -> 4597 bytes .../calculator/predictor/.LinearModel.xtendbin | Bin 0 -> 6307 bytes .../metrics/calculator/predictor/LinearModel.java | 90 ++++++++ .../validation/.ConstraintCollection.java._trace | Bin 0 -> 1968 bytes .../validation/.ConstraintCollection.xtendbin | Bin 0 -> 6940 bytes .../validation/.ViolationCheck.java._trace | Bin 0 -> 607 bytes .../calculator/validation/.ViolationCheck.xtendbin | Bin 0 -> 5275 bytes .../validation/ConstraintCollection.java | 79 +++++++ .../calculator/validation/ViolationCheck.java | 34 +++ .../metrics/calculations/.CalcC.java._trace | Bin 0 -> 5637 bytes .../metrics/calculations/.CalcEDA.java._trace | Bin 0 -> 13288 bytes .../metrics/calculations/.CalcMPC.java._trace | Bin 0 -> 24403 bytes .../metrics/calculations/.CalcMetric.java._trace | Bin 0 -> 522 bytes .../metrics/calculations/.CalcMetric2.java._trace | Bin 0 -> 608 bytes .../metrics/calculations/.CalcNA.java._trace | Bin 0 -> 13672 bytes .../metrics/calculations/.CalcNDA.java._trace | Bin 0 -> 10147 bytes .../metrics/calculations/.CalcNDC.java._trace | Bin 0 -> 7235 bytes .../metrics/calculations/.CalcSQRCNT.java._trace | Bin 0 -> 7671 bytes .../metrics/calculations/.CalcSQRNUM.java._trace | Bin 0 -> 15830 bytes .../metrics/calculations/.CalcSQROSZ.java._trace | Bin 0 -> 3437 bytes .../metrics/calculations/.CalcSQRTOT.java._trace | Bin 0 -> 13017 bytes .../metrics/examples/.CSERposterSample.xtendbin | Bin 0 -> 7750 bytes .../metrics/examples/.CalculationsNA.java._trace | Bin 0 -> 12572 bytes .../metrics/examples/.FixModelURIs.java._trace | Bin 0 -> 3743 bytes .../.MetricsCalculationUsingShapes.java._trace | Bin 0 -> 19842 bytes .../realistic/metrics/examples/.Util.java._trace | Bin 0 -> 32376 bytes .../realistic/metrics/examples/.gitignore | 1 + .../metrics/examples/.CSERposterSample.java._trace | Bin 0 -> 6221 bytes .../ide/.VampireLanguageIdeModule.xtendbin | Bin 1685 -> 1685 bytes .../ide/.VampireLanguageIdeSetup.xtendbin | Bin 2500 -> 2500 bytes .../ui/.VampireLanguageUiModule.xtendbin | Bin 2342 -> 2342 bytes .../.VampireLanguageProposalProvider.xtendbin | Bin 1792 -> 1792 bytes ...ampireLanguageDescriptionLabelProvider.xtendbin | Bin 1965 -> 1965 bytes .../.VampireLanguageLabelProvider.xtendbin | Bin 2405 -> 2405 bytes .../.VampireLanguageOutlineTreeProvider.xtendbin | Bin 1819 -> 1819 bytes .../.VampireLanguageQuickfixProvider.xtendbin | Bin 1786 -> 1786 bytes .../.VampireLanguageRuntimeModule.xtendbin | Bin 1706 -> 1706 bytes .../.VampireLanguageStandaloneSetup.xtendbin | Bin 1980 -> 1980 bytes .../formatting2/.VampireLanguageFormatter.xtendbin | Bin 4130 -> 4130 bytes .../generator/.VampireLanguageGenerator.xtendbin | Bin 2338 -> 2338 bytes .../scoping/.VampireLanguageScopeProvider.xtendbin | Bin 1751 -> 1751 bytes .../validation/.VampireLanguageValidator.xtendbin | Bin 1736 -> 1736 bytes .../lib/putVampireHere | 2 + .../lib/vampire.exe | Bin 0 -> 11727673 bytes .../vampire/reasoner/VampireSolver.xtend | 42 ++-- .../vampire/reasoner/builder/VampireHandler.xtend | 72 +++++-- .../.VampireAnalyzerConfiguration.xtendbin | Bin 2691 -> 2691 bytes .../vampire/reasoner/.VampireSolver.xtendbin | Bin 5892 -> 6386 bytes .../vampire/reasoner/VampireSolver.java | 22 +- .../builder/.Logic2VampireLanguageMapper.xtendbin | Bin 18149 -> 18150 bytes .../.Logic2VampireLanguageMapperTrace.xtendbin | Bin 4656 -> 4656 bytes ...c2VampireLanguageMapper_ConstantMapper.xtendbin | Bin 3164 -> 3164 bytes ...ampireLanguageMapper_ContainmentMapper.xtendbin | Bin 11904 -> 11904 bytes ...c2VampireLanguageMapper_RelationMapper.xtendbin | Bin 6454 -> 6454 bytes ...ogic2VampireLanguageMapper_ScopeMapper.xtendbin | Bin 10667 -> 10667 bytes .../.Logic2VampireLanguageMapper_Support.xtendbin | Bin 13046 -> 13048 bytes ...Logic2VampireLanguageMapper_TypeMapper.xtendbin | Bin 11136 -> 11136 bytes .../reasoner/builder/.Vampire2LogicMapper.xtendbin | Bin 1720 -> 1720 bytes .../reasoner/builder/.VampireHandler.xtendbin | Bin 4908 -> 6553 bytes ...ModelInterpretation_TypeInterpretation.xtendbin | Bin 1491 -> 1491 bytes ...ation_TypeInterpretation_FilteredTypes.xtendbin | Bin 1688 -> 1688 bytes .../vampire/reasoner/builder/VampireHandler.java | 53 ++++- .../metamodels/filesystem.ecore | 2 +- .../.classpath | 1 - .../META-INF/MANIFEST.MF | 6 +- .../build.properties | 1 - .../plugin.xml | 229 --------------------- .../ecse/dslreasoner/vampire/icse/EcoreTest.xtend | 2 +- .../ecse/dslreasoner/vampire/icse/FAMTest.xtend | 2 +- .../dslreasoner/vampire/icse/FileSystemTest.xtend | 11 +- .../dslreasoner/vampire/icse/YakinduTest.xtend | 4 +- .../vampire.exe | Bin 0 -> 11727673 bytes .../dslreasoner/vampire/icse/.EcoreTest.xtendbin | Bin 4545 -> 4554 bytes .../dslreasoner/vampire/icse/.FAMTest.xtendbin | Bin 6314 -> 6316 bytes .../vampire/icse/.FileSystemTest.xtendbin | Bin 7116 -> 6204 bytes .../dslreasoner/vampire/icse/.GeneralTest.xtendbin | Bin 6456 -> 6456 bytes .../dslreasoner/vampire/icse/.YakinduTest.xtendbin | Bin 7025 -> 7055 bytes .../ecse/dslreasoner/vampire/icse/EcoreTest.java | 63 +----- .../ecse/dslreasoner/vampire/icse/FAMTest.java | 3 +- .../dslreasoner/vampire/icse/FileSystemTest.java | 139 ++++++------- .../vampire/test/.MedicalSystem.xtendbin | Bin 4997 -> 4997 bytes .../dslreasoner/vampire/test/.SimpleRun.xtendbin | Bin 687 -> 687 bytes .../dslreasoner/vampire/test/.VampireTest.xtendbin | Bin 6500 -> 6500 bytes 161 files changed, 2503 insertions(+), 420 deletions(-) create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Domain.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/Main.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/MetricDistanceGroup.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/PartialInterpretationMetricDistance.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/CostDistance.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/EuclideanDistance.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/JSDistance.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/KSDistance.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/StateData.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/EMFGraph.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/Graph.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/GraphStatistic.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/PartialInterpretationGraph.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/CsvFileWriter.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/DataName.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/GraphReader.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/RepMetricsReader.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/EdgeTypeMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/Metric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MetricSampleGroup.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/MultiplexParticipationCoefficientMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeActivityMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/NodeTypeMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/OutDegreeMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedClusteringCoefficientMetric.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/TypedOutDegree.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/LinearModel.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ConstraintCollection.java create mode 100644 Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/ViolationCheck.java create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.gitignore create mode 100644 Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/putVampireHere create mode 100644 Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe create mode 100644 Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exe 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Domain.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.Main.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.MetricDistanceGroup.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/app/.PartialInterpretationMetricDistance.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; + +@SuppressWarnings("all") +public enum Domain { + Yakindumm, + + Ecore, + + Github; +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation.ViolationCheck; +import com.google.common.base.Objects; +import com.google.common.collect.Iterators; +import hu.bme.mit.inf.dslreasoner.domains.yakindu.sgraph.yakindumm.impl.YakindummPackageImpl; +import java.io.File; +import java.util.ArrayList; +import java.util.Iterator; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EcorePackageImpl; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.InputOutput; +import org.eclipse.xtext.xbase.lib.IteratorExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class Main { + public static class RWInformation { + public String inputFolder; + + public String outputFolder; + + public int numRuns; + + public RWInformation(final String inputFolder, final String outputFolder, final int numRuns) { + this.inputFolder = inputFolder; + this.outputFolder = outputFolder; + this.numRuns = numRuns; + } + } + + private static Domain d = Domain.Yakindumm; + + private final static String suffix = ".xmi"; + + private final static String OUTPUT_FOLDER = "Inputs/measurement2/yakindu/Alloy/"; + + private final static String INPUT_FOLDER = "outputs/measurement2/yakindu/Alloy/"; + + private final static int NUM_RUNS = 1; + + public static void main(final String[] args) { + throw new Error("Unresolved compilation problems:" + + "\nThe method or field ReteEngine is undefined" + + "\ngetClass cannot be resolved"); + } + + public static String calculateAllModels(final String inputFolder, final String outputFolder, final int numRuns, final GraphReader reader) { + String _xblockexpression = null; + { + new File(outputFolder).mkdir(); + for (int i = 1; (i <= numRuns); i++) { + { + final ArrayList models = new ArrayList(); + models.addAll(reader.readModels(((inputFolder + "run") + Integer.valueOf(i)))); + for (final EMFGraph model : models) { + String _name = model.getName(); + String _plus = (outputFolder + _name); + String _plus_1 = (_plus + "_run_"); + String _plus_2 = (_plus_1 + Integer.valueOf(i)); + String _plus_3 = (_plus_2 + ".csv"); + Main.calculateAndOutputMetrics(model, YakindummPackageImpl.eNAME, _plus_3); + } + } + } + _xblockexpression = InputOutput.println(("output results Ended for: " + outputFolder)); + } + return _xblockexpression; + } + + public static void calculateAndOutputMetrics(final EMFGraph model, final String metaModel, final String fileName) { + model.setMetaModel(metaModel); + boolean _equals = Objects.equal(Main.d, Domain.Ecore); + if (_equals) { + final Function1 _function = (EReference it) -> { + return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) || + it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents"))); + }; + Iterator refsToRemove = IteratorExtensions.filter(Iterators.filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function); + final Procedure1 _function_1 = (EReference it) -> { + model.removeReference(it); + }; + IteratorExtensions.forEach(refsToRemove, _function_1); + } + ArrayList> outputs = model.evaluateAllMetrics(); + int violations = ViolationCheck.calculateViolationCounts(model.getRoot(), Main.d); + InputOutput.println(Integer.valueOf(violations)); + String _plus = (Integer.valueOf(violations) + ""); + ArrayList violationsOutput = CollectionLiterals.newArrayList("violations", _plus); + outputs.add(violationsOutput); + CsvFileWriter.write(outputs, fileName); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; + +import java.util.HashMap; + +@SuppressWarnings("all") +public class MetricDistanceGroup { + private double mpcDistance; + + private double naDistance; + + private double outDegreeDistance; + + private double nodeTypeDistance; + + protected HashMap nodeTypeInfo; + + public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance, final double nodeTypeDistance) { + this.mpcDistance = mpcDistance; + this.naDistance = naDistance; + this.outDegreeDistance = outDegreeDistance; + this.nodeTypeDistance = nodeTypeDistance; + } + + public MetricDistanceGroup(final double mpcDistance, final double naDistance, final double outDegreeDistance) { + this.mpcDistance = mpcDistance; + this.naDistance = naDistance; + this.outDegreeDistance = outDegreeDistance; + } + + public double getNodeTypeDistance() { + return this.nodeTypeDistance; + } + + public double getMPCDistance() { + return this.mpcDistance; + } + + public double getNADistance() { + return this.naDistance; + } + + public double getOutDegreeDistance() { + return this.outDegreeDistance; + } + + public double getNodeTypePercentage(final String typeName) { + return (this.nodeTypeInfo.getOrDefault(typeName, Double.valueOf(0.0))).doubleValue(); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.CsvFileWriter; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; +import java.io.File; +import java.util.ArrayList; +import java.util.List; + +@SuppressWarnings("all") +public class PartialInterpretationMetric { + private static KSDistance ks; + + private static JSDistance js; + + public static void initPaths() { + new File("debug/metric/").mkdir(); + new File("debug/metric/trajectories/").mkdir(); + } + + public static void calculateMetric(final PartialInterpretation partial, final String path, final String currentStateId, final Integer counter) { + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + new File(path).mkdir(); + final String filename = (((((path + "/state_") + currentStateId) + "-") + counter) + ".csv"); + final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, currentStateId); + CsvFileWriter.write(metricCalculator.evaluateAllMetrics(), filename); + } + + public static void outputTrajectories(final PartialInterpretation empty, final /* List */Object solutions) { + throw new Error("Unresolved compilation problems:" + + "\nshortestTrajectory cannot be resolved" + + "\nmodel cannot be resolved" + + "\ndoNextTransformation cannot be resolved" + + "\nstateCoder cannot be resolved" + + "\ncreateStateCode cannot be resolved" + + "\ntoString cannot be resolved" + + "\ngetModel cannot be resolved" + + "\nstateCoder cannot be resolved" + + "\ncreateStateCode cannot be resolved" + + "\ntoString cannot be resolved"); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.MetricDistanceGroup; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.EuclideanDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.JSDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.KSDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.PartialInterpretationGraph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor.LinearModel; +import com.google.common.base.Objects; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.eclipse.xtend.lib.annotations.AccessorType; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.InputOutput; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class PartialInterpretationMetricDistance { + private KSDistance ks; + + private JSDistance js; + + private EuclideanDistance ed; + + private Map stateAndHistory; + + private /* OLSMultipleLinearRegression */Object regression; + + private List samples; + + private MetricSampleGroup g; + + @Accessors(AccessorType.PUBLIC_GETTER) + private LinearModel linearModel; + + public PartialInterpretationMetricDistance(final Domain d) { + throw new Error("Unresolved compilation problems:" + + "\nOLSMultipleLinearRegression cannot be resolved." + + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" + + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" + + "\nnoIntercept cannot be resolved"); + } + + public MetricDistanceGroup calculateMetricDistanceKS(final PartialInterpretation partial) { + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); + metrics.add(_nodeTypeMetric); + final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); + MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); + double mpc = this.ks.mpcDistance(metricSamples.mpcSamples); + double na = this.ks.naDistance(metricSamples.naSamples); + double outDegree = this.ks.outDegreeDistance(metricSamples.outDegreeSamples); + double nodeType = this.ks.nodeTypeDistance(metricSamples.nodeTypeSamples); + MetricDistanceGroup distance = new MetricDistanceGroup(mpc, na, outDegree, nodeType); + distance.nodeTypeInfo = metricSamples.nodeTypeSamples; + return distance; + } + + public MetricDistanceGroup calculateMetricEuclidean(final PartialInterpretation partial) { + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); + MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); + double mpc = this.ed.mpcDistance(metricSamples.mpcSamples); + double na = this.ed.naDistance(metricSamples.naSamples); + double outDegree = this.ed.outDegreeDistance(metricSamples.outDegreeSamples); + return new MetricDistanceGroup(mpc, na, outDegree); + } + + public MetricDistanceGroup calculateMetricDistance(final PartialInterpretation partial) { + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + final PartialInterpretationGraph metricCalculator = new PartialInterpretationGraph(partial, metrics, null); + MetricSampleGroup metricSamples = metricCalculator.evaluateAllMetricsToSamples(); + double mpc = this.js.mpcDistance(metricSamples.mpcSamples); + double na = this.js.naDistance(metricSamples.naSamples); + double outDegree = this.js.outDegreeDistance(metricSamples.outDegreeSamples); + return new MetricDistanceGroup(mpc, na, outDegree); + } + + public String resetRegression(final Object state) { + String _xblockexpression = null; + { + this.samples.clear(); + boolean _containsKey = this.stateAndHistory.containsKey(state); + if (_containsKey) { + StateData data = this.stateAndHistory.get(state); + Object curState = state; + this.samples.add(data); + while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) { + { + curState = data.getLastState(); + data = this.stateAndHistory.get(data.getLastState()); + this.samples.add(data); + } + } + int _size = this.samples.size(); + boolean _equals = (_size == 0); + if (_equals) { + InputOutput.println(("state: " + state)); + Object _lastState = data.getLastState(); + String _plus = ("last state: " + _lastState); + InputOutput.println(_plus); + } + } + int _size_1 = this.samples.size(); + String _plus_1 = ("trajectory sample size:" + Integer.valueOf(_size_1)); + _xblockexpression = InputOutput.println(_plus_1); + } + return _xblockexpression; + } + + public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) { + boolean _xblockexpression = false; + { + StateData data = new StateData(features, value, lastState); + this.stateAndHistory.put(state, data); + _xblockexpression = this.samples.add(data); + } + return _xblockexpression; + } + + public Object getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) { + throw new Error("Unresolved compilation problems:" + + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" + + "\nThe method predict(double[]) from the type PartialInterpretationMetricDistance refers to the missing type Object" + + "\nnewSampleData cannot be resolved"); + } + + private Object predict(final double[] featuresToPredict) { + throw new Error("Unresolved compilation problems:" + + "\nThe field PartialInterpretationMetricDistance.regression refers to the missing type OLSMultipleLinearRegression" + + "\nestimateRegressionParameters cannot be resolved" + + "\nget cannot be resolved" + + "\n+= cannot be resolved" + + "\nget cannot be resolved" + + "\n* cannot be resolved"); + } + + public double[] calculateFeature(final int step, final int violations) { + double[] features = new double[2]; + features[0] = 1; + double _sqrt = Math.sqrt(step); + double _plus = (_sqrt + 30); + features[0] = _plus; + features[1] = (1.0 / (step + 30)); + return features; + } + + @Pure + public LinearModel getLinearModel() { + return this.linearModel; + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.CostDistance.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.EuclideanDistance.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.JSDistance.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.KSDistance.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/distance/.StateData.java._trace 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; + +import java.text.DecimalFormat; +import java.util.HashMap; +import java.util.List; + +@SuppressWarnings("all") +public abstract class CostDistance { + public abstract double naDistance(final List samples); + + public abstract double mpcDistance(final List samples); + + public abstract double outDegreeDistance(final List samples); + + protected HashMap pmfFromSamples(final double[] samples, final DecimalFormat formatter) { + int length = samples.length; + HashMap pmfMap = new HashMap(); + for (final double sample : samples) { + String _format = formatter.format(sample); + Double _orDefault = pmfMap.getOrDefault(formatter.format(sample), Double.valueOf(0.0)); + double _plus = ((_orDefault).doubleValue() + (1.0 / length)); + pmfMap.put(_format, Double.valueOf(_plus)); + } + return pmfMap; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import com.google.common.collect.Sets; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.ToDoubleFunction; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.DoubleExtensions; + +@SuppressWarnings("all") +public class EuclideanDistance extends CostDistance { + private MetricSampleGroup g; + + private HashMap mpcPMF; + + private HashMap naPMF; + + private HashMap outDegreePMF; + + private DecimalFormat formatter; + + public EuclideanDistance(final MetricSampleGroup g) { + this.g = g; + List mpcSamples = g.mpcSamples; + final ToDoubleFunction _function = (Double it) -> { + return (it).doubleValue(); + }; + double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray(); + final ToDoubleFunction _function_1 = (Double it) -> { + return (it).doubleValue(); + }; + double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray(); + DecimalFormat _decimalFormat = new DecimalFormat("#0.00000"); + this.formatter = _decimalFormat; + final List _converted_mpcSamples = (List)mpcSamples; + this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter); + this.naPMF = this.pmfFromSamples(naSamples, this.formatter); + this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter); + } + + @Override + public double naDistance(final List samples) { + HashMap pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); + return this.euclideanDistance(pmfMap, this.naPMF); + } + + @Override + public double mpcDistance(final List samples) { + HashMap pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); + return this.euclideanDistance(pmfMap, this.mpcPMF); + } + + @Override + public double outDegreeDistance(final List samples) { + HashMap pmfMap = this.pmfFromSamples(((double[])Conversions.unwrapArray(samples, double.class)), this.formatter); + return this.euclideanDistance(pmfMap, this.outDegreePMF); + } + + private double euclideanDistance(final HashMap pmf1, final HashMap pmf2) { + Sets.SetView keys = Sets.union(pmf1.keySet(), pmf2.keySet()); + ArrayList pmfList1 = this.pmfMapToList(pmf1, keys); + ArrayList pmfList2 = this.pmfMapToList(pmf2, keys); + double distance = 0.0; + for (int i = 0; (i < pmfList1.size()); i++) { + double _distance = distance; + Double _get = pmfList1.get(i); + Double _get_1 = pmfList2.get(i); + double _plus = DoubleExtensions.operator_plus(_get, _get_1); + double _pow = Math.pow(_plus, 2); + distance = (_distance + _pow); + } + return Math.sqrt(distance); + } + + private ArrayList pmfMapToList(final Map map, final Set keys) { + ArrayList list = new ArrayList(); + for (final String key : keys) { + { + Double value = map.getOrDefault(key, Double.valueOf(0.0)); + list.add(value); + } + } + return list; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import com.google.common.collect.Sets; +import java.text.DecimalFormat; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import java.util.function.ToDoubleFunction; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.DoubleExtensions; + +@SuppressWarnings("all") +public class JSDistance extends CostDistance { + private HashMap mpcPMF; + + private HashMap naPMF; + + private HashMap outDegreePMF; + + private HashMap nodeTypesPMF; + + private DecimalFormat formatter; + + public JSDistance(final MetricSampleGroup g) { + List mpcSamples = g.mpcSamples; + final ToDoubleFunction _function = (Double it) -> { + return (it).doubleValue(); + }; + double[] naSamples = g.naSamples.stream().mapToDouble(_function).toArray(); + final ToDoubleFunction _function_1 = (Double it) -> { + return (it).doubleValue(); + }; + double[] outDegreeSamples = g.outDegreeSamples.stream().mapToDouble(_function_1).toArray(); + DecimalFormat _decimalFormat = new DecimalFormat("#0.00000"); + this.formatter = _decimalFormat; + final List _converted_mpcSamples = (List)mpcSamples; + this.mpcPMF = this.pmfFromSamples(((double[])Conversions.unwrapArray(_converted_mpcSamples, double.class)), this.formatter); + this.naPMF = this.pmfFromSamples(naSamples, this.formatter); + this.outDegreePMF = this.pmfFromSamples(outDegreeSamples, this.formatter); + this.nodeTypesPMF = g.nodeTypeSamples; + } + + private HashMap combinePMF(final HashMap pmf1, final HashMap pmf2) { + HashMap pmfMap = new HashMap(); + Sets.SetView union = Sets.union(pmf1.keySet(), pmf2.keySet()); + for (final String key : union) { + { + Double _orDefault = pmf1.getOrDefault(key, Double.valueOf(0.0)); + Double _orDefault_1 = pmf2.getOrDefault(key, Double.valueOf(0.0)); + double _plus = DoubleExtensions.operator_plus(_orDefault, _orDefault_1); + double value = ((1.0 / 2) * _plus); + pmfMap.put(key, Double.valueOf(value)); + } + } + return pmfMap; + } + + private double jsDivergence(final HashMap p, final HashMap q) { + final HashMap m = this.combinePMF(q, p); + double _klDivergence = this.klDivergence(p, m); + double _multiply = ((1.0 / 2) * _klDivergence); + double _klDivergence_1 = this.klDivergence(q, m); + double _multiply_1 = ((1.0 / 2) * _klDivergence_1); + double distance = (_multiply + _multiply_1); + return distance; + } + + public double klDivergence(final HashMap p, final HashMap q) { + double distance = 0.0; + Set _keySet = q.keySet(); + for (final String key : _keySet) { + boolean _containsKey = p.containsKey(key); + if (_containsKey) { + double _distance = distance; + Double _get = p.get(key); + Double _get_1 = q.get(key); + Double _get_2 = p.get(key); + double _divide = DoubleExtensions.operator_divide(_get_1, _get_2); + double _log = Math.log(_divide); + double _multiply = ((_get).doubleValue() * _log); + double _log_1 = Math.log(2); + double _divide_1 = (_multiply / _log_1); + distance = (_distance - _divide_1); + } + } + return distance; + } + + @Override + public double mpcDistance(final List samples) { + final ToDoubleFunction _function = (Double it) -> { + return (it).doubleValue(); + }; + HashMap map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); + int _size = map.size(); + boolean _lessThan = (_size < 2); + if (_lessThan) { + return 1; + } + return this.jsDivergence(map, this.mpcPMF); + } + + @Override + public double naDistance(final List samples) { + final ToDoubleFunction _function = (Double it) -> { + return (it).doubleValue(); + }; + HashMap map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); + int _size = map.size(); + boolean _lessThan = (_size < 2); + if (_lessThan) { + return 1; + } + return this.jsDivergence(map, this.naPMF); + } + + @Override + public double outDegreeDistance(final List samples) { + final ToDoubleFunction _function = (Double it) -> { + return (it).doubleValue(); + }; + HashMap map = this.pmfFromSamples(samples.stream().mapToDouble(_function).toArray(), this.formatter); + int _size = map.size(); + boolean _lessThan = (_size < 2); + if (_lessThan) { + return 1; + } + return this.jsDivergence(map, this.outDegreePMF); + } + + public double nodeTypeDistance(final HashMap samples) { + return this.klDivergence(samples, this.nodeTypesPMF); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.CostDistance; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Set; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; + +@SuppressWarnings("all") +public class KSDistance extends CostDistance { + private static Object ksTester /* Skipped initializer because of errors */; + + private MetricSampleGroup g; + + public KSDistance(final MetricSampleGroup g) { + this.g = g; + } + + @Override + public double mpcDistance(final List samples) { + throw new Error("Unresolved compilation problems:" + + "\nThe field KSDistance.ksTester refers to the missing type Object" + + "\nkolmogorovSmirnovStatistic cannot be resolved"); + } + + @Override + public double naDistance(final List samples) { + throw new Error("Unresolved compilation problems:" + + "\nThe field KSDistance.ksTester refers to the missing type Object" + + "\nkolmogorovSmirnovStatistic cannot be resolved"); + } + + @Override + public double outDegreeDistance(final List samples) { + throw new Error("Unresolved compilation problems:" + + "\nThe field KSDistance.ksTester refers to the missing type Object" + + "\nkolmogorovSmirnovStatistic cannot be resolved"); + } + + public double typedOutDegreeDistance(final HashMap> map) { + throw new Error("Unresolved compilation problems:" + + "\nThe field KSDistance.ksTester refers to the missing type Object" + + "\nkolmogorovSmirnovStatistic cannot be resolved"); + } + + public double nodeTypeDistance(final HashMap samples) { + HashMap typesDistMap = this.g.nodeTypeSamples; + ArrayList sourceDist = CollectionLiterals.newArrayList(); + ArrayList instanceDist = CollectionLiterals.newArrayList(); + Set _keySet = typesDistMap.keySet(); + for (final String key : _keySet) { + { + sourceDist.add(typesDistMap.get(key)); + instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0))); + } + } + return this.ks_distance_two_dist(sourceDist, instanceDist); + } + + public double edgeTypeDistance(final HashMap samples) { + HashMap typesDistMap = this.g.edgeTypeSamples; + ArrayList sourceDist = CollectionLiterals.newArrayList(); + ArrayList instanceDist = CollectionLiterals.newArrayList(); + Set _keySet = typesDistMap.keySet(); + for (final String key : _keySet) { + { + sourceDist.add(typesDistMap.get(key)); + instanceDist.add(samples.getOrDefault(key, Double.valueOf(0.0))); + } + } + return this.ks_distance_two_dist(sourceDist, instanceDist); + } + + public double ks_distance_two_dist(final List dist1, final List dist2) { + double ksStatistics = 0.0; + double sum1 = 0.0; + double sum2 = 0.0; + for (int i = 0; (i < dist1.size()); i++) { + { + double _sum1 = sum1; + Double _get = dist1.get(i); + sum1 = (_sum1 + (_get).doubleValue()); + double _sum2 = sum2; + Double _get_1 = dist2.get(i); + sum2 = (_sum2 + (_get_1).doubleValue()); + ksStatistics = Math.max(ksStatistics, Math.abs((sum1 - sum2))); + } + } + return ksStatistics; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance; + +import org.eclipse.xtend.lib.annotations.AccessorType; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class StateData { + @Accessors(AccessorType.PUBLIC_GETTER) + private double[] features; + + @Accessors(AccessorType.PUBLIC_GETTER) + private double value; + + @Accessors(AccessorType.PUBLIC_GETTER) + private Object lastState; + + public StateData(final double[] features, final double value, final Object lastState) { + this.features = features; + this.value = value; + this.lastState = lastState; + } + + @Pure + public double[] getFeatures() { + return this.features; + } + + @Pure + public double getValue() { + return this.value; + } + + @Pure + public Object getLastState() { + return this.lastState; + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.EMFGraph.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.Graph.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.GraphStatistic.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/graph/.PartialInterpretationGraph.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.function.Consumer; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.xtend.lib.annotations.AccessorType; +import org.eclipse.xtend.lib.annotations.Accessors; +import org.eclipse.xtext.xbase.lib.IteratorExtensions; +import org.eclipse.xtext.xbase.lib.Pure; + +@SuppressWarnings("all") +public class EMFGraph extends Graph { + @Accessors(AccessorType.PUBLIC_GETTER) + private EObject root; + + public void init(final EObject root, final List metrics, final String name, final List referenceTypes) { + final List otherContents = IteratorExtensions.toList(root.eAllContents()); + this.root = root; + otherContents.add(root); + this.init(otherContents, metrics, name, referenceTypes); + } + + /** + * init the graph with all nodes and reference types in the meta model + * @param objects: objects in the instance model (exclude root) + * @param metrics: metrics to be evaluated + * @param name: name of the instance model + * @param ReferenceTypes: reference types defined in the meta model + */ + public void init(final List objects, final List metrics, final String name, final List referenceTypes) { + final Consumer _function = (EObject it) -> { + HashSet types = new HashSet(); + types.add(it.eClass().getName()); + this.statistic.addNodeWithAllTypes(it, types); + }; + objects.forEach(_function); + final Consumer _function_1 = (EReference it) -> { + boolean _isDerived = it.isDerived(); + boolean _not = (!_isDerived); + if (_not) { + this.statistic.addEdgeType(it.getName()); + } + }; + referenceTypes.forEach(_function_1); + final Consumer _function_2 = (EObject source) -> { + final Consumer _function_3 = (EReference r) -> { + boolean _isMany = r.isMany(); + if (_isMany) { + final Consumer _function_4 = (EObject target) -> { + this.addEdge(source, target, r); + }; + this.getNeighbours(source, r).forEach(_function_4); + } else { + Object _eGet = source.eGet(r); + final EObject target = ((EObject) _eGet); + this.addEdge(source, target, r); + } + }; + source.eClass().getEAllReferences().forEach(_function_3); + }; + objects.forEach(_function_2); + this.metrics = metrics; + this.name = name; + } + + public void removeReference(final EReference r) { + boolean _containsEdgeType = this.statistic.containsEdgeType(r.getName()); + if (_containsEdgeType) { + this.statistic.removeReference(r.getName(), r.isContainment()); + } + } + + /** + * Set basic information for the output + */ + @Override + public void setBasicInformation(final ArrayList> output) { + final ArrayList metaInfo = new ArrayList(); + metaInfo.add(Graph.META_MODEL_HEADER); + metaInfo.add(this.metaModel); + final ArrayList edgeInfo = new ArrayList(); + edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER); + int _size = this.statistic.getAllTypes().size(); + String _plus = (Integer.valueOf(_size) + ""); + edgeInfo.add(_plus); + final ArrayList nodeInfo = new ArrayList(); + nodeInfo.add(Graph.NUM_NODE_HEADER); + int _size_1 = this.statistic.getAllNodes().size(); + String _plus_1 = (Integer.valueOf(_size_1) + ""); + nodeInfo.add(_plus_1); + final ArrayList stateInfo = new ArrayList(); + stateInfo.add(Graph.STATE_ID_HEADER); + stateInfo.add(this.name); + output.add(metaInfo); + output.add(edgeInfo); + output.add(nodeInfo); + output.add(stateInfo); + } + + public EList getNeighbours(final EObject o, final EReference r) { + Object _eGet = o.eGet(r, true); + return ((EList) _eGet); + } + + public void addEdge(final EObject source, final EObject target, final EReference r) { + if ((((target != null) && (r != null)) && (!r.isDerived()))) { + this.statistic.addEdge(source, target, r.getName()); + } + } + + @Override + public GraphStatistic getStatistic() { + return this.statistic; + } + + @Override + public String getName() { + return this.name; + } + + public void setMetaModel(final String model) { + this.metaModel = model; + } + + public String getMetaModel() { + return this.metaModel; + } + + @Pure + public EObject getRoot() { + return this.root; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.List; +import org.eclipse.xtext.xbase.lib.Conversions; + +@SuppressWarnings("all") +public abstract class Graph { + protected final static String META_MODEL_HEADER = "Meta Mode"; + + protected final static String NUM_NODE_HEADER = "Number Of Nodes"; + + protected final static String NUM_EDGE_TYPE_HEADER = "Number of Edge types"; + + protected final static String STATE_ID_HEADER = "State Id"; + + protected final GraphStatistic statistic = new GraphStatistic(); + + protected List metrics; + + protected String name = ""; + + protected String metaModel = ""; + + /** + * evaluate all metrics for this model + * return the result as a two dimentional list + */ + public ArrayList> evaluateAllMetrics() { + final ArrayList> result = new ArrayList>(); + this.setBasicInformation(result); + for (final Metric metric : this.metrics) { + { + final String[][] datas = metric.evaluate(this.statistic); + for (final String[] row : datas) { + ArrayList _arrayList = new ArrayList((Collection)Conversions.doWrapArray(row)); + result.add(_arrayList); + } + } + } + return result; + } + + public MetricSampleGroup evaluateAllMetricsToSamples() { + MetricSampleGroup sample = new MetricSampleGroup(); + for (final Metric metric : this.metrics) { + if ((metric instanceof MultiplexParticipationCoefficientMetric)) { + Object _evaluateSamples = ((MultiplexParticipationCoefficientMetric)metric).evaluateSamples(this.statistic); + sample.mpcSamples = ((ArrayList) _evaluateSamples); + } else { + if ((metric instanceof NodeActivityMetric)) { + Object _evaluateSamples_1 = ((NodeActivityMetric)metric).evaluateSamples(this.statistic); + sample.naSamples = ((ArrayList) _evaluateSamples_1); + } else { + if ((metric instanceof OutDegreeMetric)) { + Object _evaluateSamples_2 = ((OutDegreeMetric)metric).evaluateSamples(this.statistic); + sample.outDegreeSamples = ((ArrayList) _evaluateSamples_2); + } else { + if ((metric instanceof TypedOutDegree)) { + Object _evaluateSamples_3 = ((TypedOutDegree)metric).evaluateSamples(this.statistic); + sample.typedOutDegreeSamples = ((HashMap>) _evaluateSamples_3); + } else { + if ((metric instanceof NodeTypeMetric)) { + Object _evaluateSamples_4 = ((NodeTypeMetric)metric).evaluateSamples(this.statistic); + sample.nodeTypeSamples = ((HashMap) _evaluateSamples_4); + } else { + if ((metric instanceof EdgeTypeMetric)) { + Object _evaluateSamples_5 = ((EdgeTypeMetric)metric).evaluateSamples(this.statistic); + sample.edgeTypeSamples = ((HashMap) _evaluateSamples_5); + } + } + } + } + } + } + } + return sample; + } + + public abstract void setBasicInformation(final ArrayList> result); + + public abstract GraphStatistic getStatistic(); + + public abstract String getName(); +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; + +import com.google.common.collect.ArrayListMultimap; +import com.google.common.collect.Multimap; +import java.util.Collection; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +@SuppressWarnings("all") +public class GraphStatistic { + private final HashMap> incomingEdges = new HashMap>(); + + private final HashMap> outgoingEdges = new HashMap>(); + + private final HashSet edgeTypes = new HashSet(); + + private final HashMap> nodeToType = new HashMap>(); + + /** + * Add an edge type to to the graph + * @param type: type to add + */ + public void addEdgeType(final String type) { + boolean _contains = this.edgeTypes.contains(type); + if (_contains) { + return; + } + this.edgeTypes.add(type); + this.incomingEdges.put(type, ArrayListMultimap.create()); + this.outgoingEdges.put(type, ArrayListMultimap.create()); + } + + /** + * Add a node to the graph with one type in its type hierarchy + * @param node: node to add + */ + public void addNodeWithType(final EObject n, final String Type) { + HashSet _hashSet = new HashSet(); + Set types = this.nodeToType.getOrDefault(n, _hashSet); + types.add(Type); + this.nodeToType.put(n, types); + } + + public boolean containsNode(final EObject o) { + return this.nodeToType.containsKey(o); + } + + public Set getTypesForNode(final EObject o) { + HashSet _hashSet = new HashSet(); + return this.nodeToType.getOrDefault(o, _hashSet); + } + + public void overwriteCurrentType(final EObject o, final String type) { + HashSet _hashSet = new HashSet(); + Set typeSet = this.nodeToType.getOrDefault(o, _hashSet); + typeSet.clear(); + typeSet.add(type); + this.nodeToType.put(o, typeSet); + } + + /** + * Add a node to the graph with all types in its type hierarchy + */ + public void addNodeWithAllTypes(final EObject n, final Set types) { + this.nodeToType.put(n, types); + } + + /** + * Add an edge to the graph + * @param source: source node + * @param target: target node + * @param type: type of the reference + */ + public void addEdge(final EObject source, final EObject target, final String type) { + this.outgoingEdges.get(type).put(source, target); + this.incomingEdges.get(type).put(target, source); + } + + /** + * check if this graph contains a specific edge type + */ + public boolean containsEdgeType(final String typeName) { + if ((this.outgoingEdges.containsKey(typeName) && this.incomingEdges.containsKey(typeName))) { + return true; + } + return false; + } + + /** + * remove references from the statistics, potentially remove the nodes associated with it + * @Param name: name of the reference + * @Param isContainment: if true then the corresponding nodes on the incoming side will also be removed + */ + public void removeReference(final String name, final boolean isContainment) { + boolean _contains = this.edgeTypes.contains(name); + boolean _not = (!_contains); + if (_not) { + return; + } + this.edgeTypes.remove(name); + Multimap incomingSet = this.incomingEdges.remove(name); + this.outgoingEdges.remove(name); + if ((!isContainment)) { + return; + } + final Set nodesToRemove = incomingSet.keySet(); + final Consumer _function = (EObject it) -> { + this.nodeToType.remove(it); + }; + nodesToRemove.forEach(_function); + final Procedure1> _function_1 = (Multimap refMap) -> { + final Consumer _function_2 = (EObject it) -> { + refMap.removeAll(it); + }; + nodesToRemove.forEach(_function_2); + Collection values = refMap.values(); + values.removeAll(nodesToRemove); + return; + }; + final Procedure1> removeForMultimap = _function_1; + IterableExtensions.>forEach(this.incomingEdges.values(), removeForMultimap); + IterableExtensions.>forEach(this.outgoingEdges.values(), removeForMultimap); + } + + /** + * calculate the out degree for an object + */ + public int outDegree(final EObject o) { + int count = 0; + for (final String type : this.edgeTypes) { + int _count = count; + int _size = this.outgoingEdges.get(type).get(o).size(); + count = (_count + _size); + } + return count; + } + + /** + * calculate the in degree of an object + */ + public int inDegree(final EObject o) { + int count = 0; + for (final String type : this.edgeTypes) { + int _count = count; + int _size = this.incomingEdges.get(type).get(o).size(); + count = (_count + _size); + } + return count; + } + + /** + * calculate the dimentional degree of a node + */ + public int dimentionalDegree(final EObject o, final String type) { + int _size = this.incomingEdges.get(type).get(o).size(); + int _size_1 = this.outgoingEdges.get(type).get(o).size(); + return (_size + _size_1); + } + + /** + * calculate the number of edge types for a given node. + */ + public int numOfEdgeTypes(final EObject o) { + int count = 0; + for (final String type : this.edgeTypes) { + int _dimentionalDegree = this.dimentionalDegree(o, type); + boolean _greaterThan = (_dimentionalDegree > 0); + if (_greaterThan) { + count++; + } + } + return count; + } + + public List getAllTypes() { + return IterableExtensions.toList(this.edgeTypes); + } + + public Map> getNodeToTypesMap() { + return this.nodeToType; + } + + public List getAllNodes() { + return IterableExtensions.toList(this.nodeToType.keySet()); + } + + public HashMap> getOutgoingEdges() { + return this.outgoingEdges; + } + + public HashMap> incomingEdges() { + return this.incomingEdges; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.Graph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import com.google.common.collect.Iterables; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.DefinedElement; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.RelationDeclaration; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; +import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.TypeDefinition; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.BinaryElementRelationLink; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialInterpretation; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.PartialRelationInterpretation; +import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretationlanguage.partialinterpretation.impl.PartialComplexTypeInterpretationImpl; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; +import org.eclipse.emf.common.util.EList; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.ListExtensions; + +@SuppressWarnings("all") +public class PartialInterpretationGraph extends Graph { + private final String typeToExclude = "undefinedpart"; + + private final String classSuffix = " class"; + + /** + * Define a new PartialInterpretationGraph by parse every element from a PartialInterpretation + */ + public PartialInterpretationGraph(final PartialInterpretation partial, final List metrics, final String name) { + final Consumer _function = (RelationDeclaration it) -> { + String n = it.getName().split(" ")[0]; + this.statistic.addEdgeType(n); + }; + Iterables.filter(partial.getProblem().getRelations(), RelationDeclaration.class).forEach(_function); + final Iterable typeInterpretations = this.getTypes(partial); + for (final PartialComplexTypeInterpretationImpl type : typeInterpretations) { + boolean _isConcreteType = this.isConcreteType(type.getInterpretationOf()); + if (_isConcreteType) { + String typeName = type.getInterpretationOf().getName().replace(this.classSuffix, ""); + EList _elements = type.getElements(); + for (final DefinedElement node : _elements) { + boolean _containsNode = this.statistic.containsNode(node); + boolean _not = (!_containsNode); + if (_not) { + this.statistic.addNodeWithType(node, typeName); + } else { + String currentType = ((String[])Conversions.unwrapArray(this.statistic.getTypesForNode(node), String.class))[0]; + boolean _isSuperType = this.isSuperType(currentType, type.getInterpretationOf()); + if (_isSuperType) { + this.statistic.overwriteCurrentType(node, typeName); + } + } + } + } + } + EList _partialrelationinterpretation = partial.getPartialrelationinterpretation(); + for (final PartialRelationInterpretation relationInterpretation : _partialrelationinterpretation) { + { + final String type_1 = relationInterpretation.getInterpretationOf().getName().split(" ")[0]; + Iterable _filter = Iterables.filter(relationInterpretation.getRelationlinks(), BinaryElementRelationLink.class); + for (final BinaryElementRelationLink edge : _filter) { + this.statistic.addEdge(edge.getParam1(), edge.getParam2(), type_1); + } + } + } + this.name = name; + this.metrics = metrics; + } + + /** + * recursively check if a type is the super type of another + */ + public boolean isSuperType(final String typeName, final Type subtypeToCheck) { + EList superTypes = subtypeToCheck.getSupertypes(); + int _size = superTypes.size(); + boolean _equals = (_size == 0); + if (_equals) { + return false; + } else { + final Function1 _function = (Type it) -> { + return it.getName().replace(this.classSuffix, ""); + }; + boolean _contains = ListExtensions.map(subtypeToCheck.getSupertypes(), _function).contains(typeName); + if (_contains) { + return true; + } else { + for (final Type superType : superTypes) { + boolean _isSuperType = this.isSuperType(typeName, superType); + if (_isSuperType) { + return true; + } + } + return false; + } + } + } + + /** + * Check if a Type object is the class that we want to consider + * A type object is to be considered if it satisfy one of the following: + * 1. if it is not abstract + * 2. if it is abstract but has a subclass of type TypeDefinition (This means the generation is + * started with nodes in this type) + */ + public boolean isConcreteType(final Type t) { + if (((!t.isIsAbstract()) || (IterableExtensions.findFirst(t.getSubtypes(), ((Function1) (Type it) -> { + return Boolean.valueOf((it instanceof TypeDefinition)); + })) != null))) { + return true; + } + return false; + } + + /** + * Set basic information for the output + */ + @Override + public void setBasicInformation(final ArrayList> output) { + final ArrayList metaInfo = new ArrayList(); + metaInfo.add(Graph.META_MODEL_HEADER); + metaInfo.add(this.metaModel); + final ArrayList edgeInfo = new ArrayList(); + edgeInfo.add(Graph.NUM_EDGE_TYPE_HEADER); + int _size = this.statistic.getAllTypes().size(); + String _plus = (Integer.valueOf(_size) + ""); + edgeInfo.add(_plus); + final ArrayList nodeInfo = new ArrayList(); + nodeInfo.add(Graph.NUM_NODE_HEADER); + int _size_1 = this.statistic.getAllNodes().size(); + String _plus_1 = (Integer.valueOf(_size_1) + ""); + nodeInfo.add(_plus_1); + final ArrayList stateInfo = new ArrayList(); + stateInfo.add(Graph.STATE_ID_HEADER); + stateInfo.add(this.name); + output.add(metaInfo); + output.add(edgeInfo); + output.add(nodeInfo); + output.add(stateInfo); + } + + private Iterable getTypes(final PartialInterpretation partial) { + final Function1 _function = (PartialComplexTypeInterpretationImpl it) -> { + boolean _contains = it.getInterpretationOf().getName().toLowerCase().contains(this.typeToExclude); + return Boolean.valueOf((!_contains)); + }; + return IterableExtensions.filter(Iterables.filter(partial.getPartialtypeinterpratation(), PartialComplexTypeInterpretationImpl.class), _function); + } + + @Override + public GraphStatistic getStatistic() { + throw new UnsupportedOperationException("TODO: auto-generated method stub"); + } + + @Override + public String getName() { + return this.name; + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.CsvFileWriter.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.DataName.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.GraphReader.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/io/.RepMetricsReader.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; + +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; +import org.eclipse.xtext.xbase.lib.Exceptions; + +@SuppressWarnings("all") +public class CsvFileWriter { + public static void write(final ArrayList> datas, final String uri) { + try { + int _size = datas.size(); + boolean _lessEqualsThan = (_size <= 0); + if (_lessEqualsThan) { + return; + } + File _file = new File(uri); + final PrintWriter writer = new PrintWriter(_file); + CsvFileWriter.output(writer, datas, uri); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + public static void append(final ArrayList> datas, final String uri) { + try { + int _size = datas.size(); + boolean _lessEqualsThan = (_size <= 0); + if (_lessEqualsThan) { + return; + } + File _file = new File(uri); + FileOutputStream _fileOutputStream = new FileOutputStream(_file, true); + final PrintWriter writer = new PrintWriter(_fileOutputStream); + CsvFileWriter.output(writer, datas, uri); + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + private static void output(final PrintWriter writer, final ArrayList> datas, final String uri) { + try { + final StringBuilder output = new StringBuilder(); + for (final List datarow : datas) { + { + for (int i = 0; (i < (datarow.size() - 1)); i++) { + String _get = datarow.get(i); + String _plus = (_get + ","); + output.append(_plus); + } + int _size = datarow.size(); + boolean _greaterEqualsThan = (_size >= 1); + if (_greaterEqualsThan) { + int _size_1 = datarow.size(); + int _minus = (_size_1 - 1); + output.append(datarow.get(_minus)); + output.append("\n"); + } + } + } + writer.write(output.toString()); + writer.close(); + } catch (final Throwable _t) { + if (_t instanceof FileNotFoundException) { + final FileNotFoundException e = (FileNotFoundException)_t; + e.printStackTrace(); + } else { + throw Exceptions.sneakyThrow(_t); + } + } + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; + +@SuppressWarnings("all") +public class DataName { + public final static String REP_PATH = "data/"; + + public final static String MPC_REP = "mpc_rep"; + + public final static String NA_REP = "na_rep"; + + public final static String OUT_D_REP = "out_d_rep"; +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.EdgeTypeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MultiplexParticipationCoefficientMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeActivityMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.NodeTypeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.OutDegreeMetric; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.TypedOutDegree; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.List; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.EPackage; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.Exceptions; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; + +@SuppressWarnings("all") +public class GraphReader { + private final ResourceSet resSet = new ResourceSetImpl(); + + private final ArrayList referenceTypes = new ArrayList(); + + private String suffix; + + public GraphReader(final EPackage metaModel, final String suffix) { + throw new Error("Unresolved compilation problems:" + + "\nXMIResourceFactoryImpl cannot be resolved."); + } + + public List readModels(final String path) { + try { + final File dir = new File(path); + boolean _isDirectory = dir.isDirectory(); + boolean _not = (!_isDirectory); + if (_not) { + throw new Exception("expecting a directory"); + } + final ArrayList graphs = new ArrayList(); + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + TypedOutDegree _typedOutDegree = new TypedOutDegree(); + metrics.add(_typedOutDegree); + NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); + metrics.add(_nodeTypeMetric); + EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric(); + metrics.add(_edgeTypeMetric); + int count = 1; + final Function1 _function = (String it) -> { + return Boolean.valueOf(it.endsWith(this.suffix)); + }; + Iterable _filter = IterableExtensions.filter(((Iterable)Conversions.doWrapArray(dir.list())), _function); + for (final String name : _filter) { + { + final File file = new File(name); + final List roots = this.readModel(EObject.class, path, file.getName()); + final EMFGraph g = new EMFGraph(); + for (final EObject root : roots) { + g.init(root, metrics, name.replaceFirst(this.suffix, ""), this.referenceTypes); + } + count++; + graphs.add(g); + } + } + return graphs; + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + public EMFGraph readModel(final String path, final String filename) { + final ArrayList metrics = new ArrayList(); + OutDegreeMetric _outDegreeMetric = new OutDegreeMetric(); + metrics.add(_outDegreeMetric); + NodeActivityMetric _nodeActivityMetric = new NodeActivityMetric(); + metrics.add(_nodeActivityMetric); + MultiplexParticipationCoefficientMetric _multiplexParticipationCoefficientMetric = new MultiplexParticipationCoefficientMetric(); + metrics.add(_multiplexParticipationCoefficientMetric); + TypedOutDegree _typedOutDegree = new TypedOutDegree(); + metrics.add(_typedOutDegree); + NodeTypeMetric _nodeTypeMetric = new NodeTypeMetric(); + metrics.add(_nodeTypeMetric); + EdgeTypeMetric _edgeTypeMetric = new EdgeTypeMetric(); + metrics.add(_edgeTypeMetric); + final File file = new File(filename); + final List roots = this.readModel(EObject.class, path, file.getName()); + final EMFGraph g = new EMFGraph(); + for (final EObject root : roots) { + g.init(root, metrics, filename.replaceFirst(this.suffix, ""), this.referenceTypes); + } + return g; + } + + public List readModel(final Class type, final String path, final String name) { + try { + try { + final Resource resource = this.resSet.getResource(GraphReader.getURI(path, name), true); + if ((resource == null)) { + String _string = GraphReader.getURI(path, name).toString(); + throw new FileNotFoundException(_string); + } else { + EList _contents = resource.getContents(); + return ((List) _contents); + } + } catch (final Throwable _t) { + if (_t instanceof Exception) { + final Exception e = (Exception)_t; + e.printStackTrace(); + String _string_1 = GraphReader.getURI(path, name).toString(); + throw new Exception(_string_1); + } else { + throw Exceptions.sneakyThrow(_t); + } + } + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } + + public static URI getURI(final String path, final String name) { + return URI.createFileURI(((path + "/") + name)); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.EMFGraph; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.io.GraphReader; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.MetricSampleGroup; +import com.google.common.base.Objects; +import com.google.common.collect.Iterators; +import java.util.Iterator; +import org.eclipse.emf.ecore.EReference; +import org.eclipse.emf.ecore.impl.EcorePackageImpl; +import org.eclipse.xtext.xbase.lib.Functions.Function1; +import org.eclipse.xtext.xbase.lib.IterableExtensions; +import org.eclipse.xtext.xbase.lib.IteratorExtensions; +import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; + +/** + * Read the sample of the distribution of a metric provided the csv file of the metric + */ +@SuppressWarnings("all") +public class RepMetricsReader { + private static Domain domain; + + public static MetricSampleGroup read(final Domain d) { + throw new Error("Unresolved compilation problems:" + + "\nThe method or field GithubPackageImpl is undefined" + + "\neINSTANCE cannot be resolved"); + } + + /** + * Read representative model + */ + private static MetricSampleGroup readMetrics(final GraphReader r, final String path) { + final EMFGraph model = IterableExtensions.head(r.readModels(path)); + boolean _equals = Objects.equal(RepMetricsReader.domain, Domain.Ecore); + if (_equals) { + final Function1 _function = (EReference it) -> { + return Boolean.valueOf((((((it.getName().equals("eGenericType") || it.getName().equals("eGenericSuperTypes")) || it.getName().equals("eFactoryInstance")) || + it.getName().equals("eGenericExceptions")) || it.getName().equals("references")) || it.getName().equals("contents"))); + }; + Iterator refsToRemove = IteratorExtensions.filter(Iterators.filter(EcorePackageImpl.eINSTANCE.eAllContents(), EReference.class), _function); + final Procedure1 _function_1 = (EReference it) -> { + model.removeReference(it); + }; + IteratorExtensions.forEach(refsToRemove, _function_1); + } + return model.evaluateAllMetricsToSamples(); + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.EdgeTypeMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.Metric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MetricSampleGroup.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.MultiplexParticipationCoefficientMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeActivityMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.NodeTypeMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.OutDegreeMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedClusteringCoefficientMetric.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/metrics/.TypedOutDegree.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import com.google.common.collect.Multimap; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Set; +import java.util.function.BiConsumer; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.Functions.Function2; +import org.eclipse.xtext.xbase.lib.IterableExtensions; + +@SuppressWarnings("all") +public class EdgeTypeMetric extends Metric { + @Override + public String[][] evaluate(final GraphStatistic g) { + Object _evaluateSamples = this.evaluateSamples(g); + HashMap map = ((HashMap) _evaluateSamples); + ArrayList output = new ArrayList(); + output.add(((String[])Conversions.unwrapArray(CollectionLiterals.newArrayList("Edge Type"), String.class))); + Set keys = map.keySet(); + ArrayList values = CollectionLiterals.newArrayList(); + for (final String key : keys) { + Double _get = map.get(key); + String _plus = (_get + ""); + values.add(_plus); + } + final Set _converted_keys = (Set)keys; + output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class))); + final ArrayList _converted_values = (ArrayList)values; + output.add(((String[])Conversions.unwrapArray(_converted_values, String.class))); + return ((String[][])Conversions.unwrapArray(output, String[].class)); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + final HashMap map = new HashMap(); + HashMap> outgoingEdges = g.getOutgoingEdges(); + final Function2, Integer> _function = (Integer r, Multimap t) -> { + final Function2, Integer> _function_1 = (Integer r1, Collection t1) -> { + int _size = t1.size(); + return Integer.valueOf(((r1).intValue() + _size)); + }; + Integer _fold = IterableExtensions., Integer>fold(t.asMap().values(), Integer.valueOf(0), _function_1); + return Integer.valueOf(((r).intValue() + (_fold).intValue())); + }; + Integer _fold = IterableExtensions., Integer>fold(outgoingEdges.values(), Integer.valueOf(0), _function); + final double edgeCount = ((double) (int) _fold); + final BiConsumer> _function_1 = (String k, Multimap v) -> { + final Function2, Integer> _function_2 = (Integer r, Collection t) -> { + int _size = t.size(); + return Integer.valueOf(((r).intValue() + _size)); + }; + Integer _fold_1 = IterableExtensions., Integer>fold(v.asMap().values(), Integer.valueOf(0), _function_2); + double value = ((_fold_1).intValue() / edgeCount); + map.put(k, Double.valueOf(value)); + }; + outgoingEdges.forEach(_function_1); + return map; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; + +@SuppressWarnings("all") +public abstract class Metric { + public abstract String[][] evaluate(final GraphStatistic g); + + public abstract Object evaluateSamples(final GraphStatistic g); +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import java.util.HashMap; +import java.util.List; + +@SuppressWarnings("all") +public class MetricSampleGroup { + public List mpcSamples; + + public List naSamples; + + public List outDegreeSamples; + + public HashMap> typedOutDegreeSamples; + + public HashMap nodeTypeSamples; + + public HashMap edgeTypeSamples; +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.function.Consumer; +import org.eclipse.emf.ecore.EObject; + +@SuppressWarnings("all") +public class MultiplexParticipationCoefficientMetric extends Metric { + public final static String countName = "MPCCount"; + + public final static String valueName = "MPCValue"; + + private final DecimalFormat formatter = new DecimalFormat("#0.00000"); + + @Override + public String[][] evaluate(final GraphStatistic g) { + throw new Error("Unresolved compilation problems:" + + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + final ArrayList samples = new ArrayList(); + final int typeCounts = g.getAllTypes().size(); + final Consumer _function = (EObject it) -> { + samples.add(Double.valueOf(this.calculateMPC(it, g, typeCounts))); + }; + g.getAllNodes().forEach(_function); + return samples; + } + + public double calculateMPC(final EObject n, final GraphStatistic g, final int typeCounts) { + int _outDegree = g.outDegree(n); + int _inDegree = g.inDegree(n); + final int edgeCounts = (_outDegree + _inDegree); + double coef = 0.0; + List _allTypes = g.getAllTypes(); + for (final String type : _allTypes) { + { + int _dimentionalDegree = g.dimentionalDegree(n, type); + final double degree = ((double) _dimentionalDegree); + double _coef = coef; + double _pow = Math.pow((degree / edgeCounts), 2); + coef = (_coef + _pow); + } + } + coef = (1 - coef); + coef = ((coef * typeCounts) / (typeCounts - 1)); + boolean _isNaN = Double.isNaN(coef); + if (_isNaN) { + coef = 0; + } + return Double.parseDouble(this.formatter.format(coef)); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import java.util.ArrayList; +import java.util.function.Consumer; +import org.eclipse.emf.ecore.EObject; + +@SuppressWarnings("all") +public class NodeActivityMetric extends Metric { + public final static String countName = "NACount"; + + public final static String valueName = "NAValue"; + + @Override + public String[][] evaluate(final GraphStatistic g) { + throw new Error("Unresolved compilation problems:" + + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + final ArrayList samples = new ArrayList(); + final Consumer _function = (EObject it) -> { + int _numOfEdgeTypes = g.numOfEdgeTypes(it); + samples.add(Double.valueOf(((double) _numOfEdgeTypes))); + }; + g.getAllNodes().forEach(_function); + return samples; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Conversions; + +@SuppressWarnings("all") +public class NodeTypeMetric extends Metric { + @Override + public String[][] evaluate(final GraphStatistic g) { + Object _evaluateSamples = this.evaluateSamples(g); + HashMap map = ((HashMap) _evaluateSamples); + ArrayList output = new ArrayList(); + output.add(((String[])Conversions.unwrapArray(CollectionLiterals.newArrayList("Node Type"), String.class))); + Set keys = map.keySet(); + ArrayList values = CollectionLiterals.newArrayList(); + for (final String key : keys) { + Double _get = map.get(key); + String _plus = (_get + ""); + values.add(_plus); + } + final Set _converted_keys = (Set)keys; + output.add(((String[])Conversions.unwrapArray(_converted_keys, String.class))); + final ArrayList _converted_values = (ArrayList)values; + output.add(((String[])Conversions.unwrapArray(_converted_values, String.class))); + return ((String[][])Conversions.unwrapArray(output, String[].class)); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + HashMap map = new HashMap(); + List nodes = g.getAllNodes(); + int _size = nodes.size(); + double single = (1.0 / _size); + Map> nodeToType = g.getNodeToTypesMap(); + for (final EObject node : nodes) { + Set _get = nodeToType.get(node); + for (final String cl : _get) { + { + Double value = map.getOrDefault(cl, Double.valueOf(0.0)); + map.put(cl, Double.valueOf(((value).doubleValue() + single))); + } + } + } + return map; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import java.util.ArrayList; +import java.util.function.Consumer; +import org.eclipse.emf.ecore.EObject; + +@SuppressWarnings("all") +public class OutDegreeMetric extends Metric { + public final static String countName = "OutDegreeCount"; + + public final static String valueName = "OutDegreeValue"; + + @Override + public String[][] evaluate(final GraphStatistic g) { + throw new Error("Unresolved compilation problems:" + + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + final ArrayList samples = new ArrayList(); + final Consumer _function = (EObject it) -> { + int _outDegree = g.outDegree(it); + samples.add(Double.valueOf(((double) _outDegree))); + }; + g.getAllNodes().forEach(_function); + return samples; + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import com.google.common.base.Objects; +import java.text.DecimalFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; +import java.util.function.Consumer; +import org.eclipse.emf.ecore.EObject; + +@SuppressWarnings("all") +public class TypedClusteringCoefficientMetric extends Metric { + public final static String countName = "TCCCount"; + + public final static String valueName = "TCCValue"; + + private final DecimalFormat formatter = new DecimalFormat("#0.00000"); + + @Override + public String[][] evaluate(final GraphStatistic g) { + throw new Error("Unresolved compilation problems:" + + "\nInvalid number of arguments. The method newArrayOfSize(int) is not applicable for the arguments (int,int)"); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + final ArrayList samples = new ArrayList(); + final Consumer _function = (EObject it) -> { + samples.add(Double.valueOf(this.calculateTCC1(it, g))); + }; + g.getAllNodes().forEach(_function); + return samples; + } + + /** + * Compute TCC1 metric for node n + */ + public double calculateTCC1(final EObject n, final GraphStatistic g) { + int wedges = 0; + int triangles = 0; + List _allTypes = g.getAllTypes(); + for (final String type1 : _allTypes) { + { + Collection _get = g.getOutgoingEdges().get(type1).get(n); + final HashSet typed1RelatedOfN = new HashSet(_get); + Collection _get_1 = g.incomingEdges().get(type1).get(n); + final HashSet type1EdgeSourceNodesOfN = new HashSet(_get_1); + typed1RelatedOfN.addAll(type1EdgeSourceNodesOfN); + final int d = typed1RelatedOfN.size(); + int _wedges = wedges; + wedges = (_wedges + (d * (d - 1))); + for (final EObject n1 : typed1RelatedOfN) { + for (final EObject n2 : typed1RelatedOfN) { + List _allTypes_1 = g.getAllTypes(); + for (final String type2 : _allTypes_1) { + if (((!Objects.equal(type1, type2)) && (g.getOutgoingEdges().get(type2).containsEntry(n1, n2) || + g.getOutgoingEdges().get(type2).containsEntry(n2, n1)))) { + triangles++; + } + } + } + } + } + } + if ((wedges == 0.0)) { + return 0.0; + } else { + return (((double) triangles) / wedges); + } + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.graph.GraphStatistic; +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.metrics.Metric; +import com.google.common.collect.Multimap; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Conversions; + +@SuppressWarnings("all") +public class TypedOutDegree extends Metric { + private HashMap> calculateMetric(final GraphStatistic g) { + HashMap> outgoingEdges = g.getOutgoingEdges(); + HashMap> metric = new HashMap>(); + Map> nodeToTypes = g.getNodeToTypesMap(); + Set _keySet = outgoingEdges.keySet(); + for (final String edgeType : _keySet) { + Set _keySet_1 = outgoingEdges.get(edgeType).keySet(); + for (final EObject node : _keySet_1) { + { + Set classes = nodeToTypes.get(node); + for (final String cl : classes) { + { + String key = ((cl + " ") + edgeType); + List typeCount = metric.get(key); + if ((typeCount == null)) { + ArrayList _arrayList = new ArrayList(); + typeCount = _arrayList; + metric.put(key, typeCount); + } + typeCount.add(Integer.valueOf(outgoingEdges.get(edgeType).get(node).size())); + } + } + } + } + } + return metric; + } + + @Override + public String[][] evaluate(final GraphStatistic g) { + HashMap> metric = this.calculateMetric(g); + ArrayList output = new ArrayList(); + output.add(((String[])Conversions.unwrapArray(CollectionLiterals.newArrayList("Typed Out Degree"), String.class))); + Set _keySet = metric.keySet(); + for (final String key : _keySet) { + { + List samples = metric.get(key); + int _size = samples.size(); + int _plus = (_size + 1); + String[] outputForOnePair = new String[_plus]; + outputForOnePair[0] = key; + for (int i = 0; (i < samples.size()); i++) { + Integer _get = samples.get(i); + String _plus_1 = (_get + ""); + outputForOnePair[(i + 1)] = _plus_1; + } + output.add(outputForOnePair); + } + } + return ((String[][])Conversions.unwrapArray(output, String[].class)); + } + + @Override + public Object evaluateSamples(final GraphStatistic g) { + return this.calculateMetric(g); + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/predictor/.LinearModel.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.predictor; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.distance.StateData; +import com.google.common.base.Objects; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@SuppressWarnings("all") +public class LinearModel { + private double ridge; + + private Map stateAndHistory; + + private List samples; + + public LinearModel(final double ridge) { + this.ridge = ridge; + HashMap _hashMap = new HashMap(); + this.stateAndHistory = _hashMap; + ArrayList _arrayList = new ArrayList(); + this.samples = _arrayList; + } + + /** + * reset the current train data for regression to a new trajectory + * @param state: the last state of the trajectory + */ + public void resetRegression(final Object state) { + this.samples.clear(); + boolean _containsKey = this.stateAndHistory.containsKey(state); + if (_containsKey) { + StateData data = this.stateAndHistory.get(state); + Object curState = state; + this.samples.add(data); + while ((this.stateAndHistory.containsKey(data.getLastState()) && (!Objects.equal(data.getLastState(), curState)))) { + { + curState = data.getLastState(); + data = this.stateAndHistory.get(data.getLastState()); + this.samples.add(data); + } + } + } + } + + /** + * Add a new data point to the current training set + * @param state: the state on which the new data point is calculated + * @param features: the set of feature value(x) + * @param value: the value of the state (y) + * @param lastState: the state which transformed to current state, used to record the trajectory + */ + public boolean feedData(final Object state, final double[] features, final double value, final Object lastState) { + boolean _xblockexpression = false; + { + StateData data = new StateData(features, value, lastState); + this.stateAndHistory.put(state, data); + _xblockexpression = this.samples.add(data); + } + return _xblockexpression; + } + + /** + * get prediction for next state, without storing the data point into the training set + * @param features: the feature values of current state + * @param value: the value of the current state + * @param: featuresToPredict: the features of the state wanted to be predected + * @return the value of the state to be predicted + */ + public double getPredictionForNextDataSample(final double[] features, final double value, final double[] featuresToPredict) { + throw new Error("Unresolved compilation problems:" + + "\nMatrix cannot be resolved." + + "\nMatrix cannot be resolved." + + "\nLinearRegression cannot be resolved." + + "\ncoefficients cannot be resolved"); + } + + private double predict(final double[] parameters, final double[] featuresToPredict) { + double result = parameters[0]; + for (int i = 0; (i < featuresToPredict.length); i++) { + double _result = result; + double _get = parameters[i]; + double _get_1 = featuresToPredict[i]; + double _multiply = (_get * _get_1); + result = (_result + _multiply); + } + return result; + } +} 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ConstraintCollection.xtendbin 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.java._trace 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 Binary files /dev/null and b/Metrics/Metrics-Calculation/ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculator/validation/.ViolationCheck.xtendbin 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.xtext.xbase.lib.InputOutput; + +@SuppressWarnings("all") +public class ConstraintCollection { + private final /* ArrayList */Object constraints /* Skipped initializer because of errors */; + + private /* BaseGeneratedPatternGroup */Object patterns; + + private List resources = new ArrayList(); + + public ConstraintCollection(final /* List */Object constraints, final List uris, final /* BaseGeneratedPatternGroup */Object patterns) { + throw new Error("Unresolved compilation problems:" + + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" + + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup"); + } + + public ConstraintCollection(final /* List */Object constraints, final /* BaseGeneratedPatternGroup */Object patterns) { + throw new Error("Unresolved compilation problems:" + + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" + + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup"); + } + + public boolean addModel(final Notifier n) { + return this.resources.add(n); + } + + public String setURIs(final List uris) { + String _xblockexpression = null; + { + final ResourceSetImpl resSet = new ResourceSetImpl(); + for (final String uri : uris) { + { + Resource resource = resSet.getResource(URI.createURI(uri), true); + this.resources.add(resource); + } + } + _xblockexpression = InputOutput.println("reading model finished"); + } + return _xblockexpression; + } + + public List calculateViolations() { + throw new Error("Unresolved compilation problems:" + + "\nThe method or field querySpecification is undefined for the type Object" + + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object" + + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" + + "\ngetMatcher cannot be resolved" + + "\ncountMatches cannot be resolved"); + } + + public ArrayList> calculateViolationMaps() { + throw new Error("Unresolved compilation problems:" + + "\nThe method or field querySpecification is undefined for the type Object" + + "\nThe method or field querySpecification is undefined for the type Object" + + "\nThe method initEngine(Notifier) from the type ConstraintCollection refers to the missing type Object" + + "\nThe field ConstraintCollection.constraints refers to the missing type IConstraintSpecification" + + "\ngetMatcher cannot be resolved" + + "\ncountMatches cannot be resolved" + + "\nsimpleName cannot be resolved"); + } + + private Object initEngine(final Notifier r) { + throw new Error("Unresolved compilation problems:" + + "\nThe method or field ViatraQueryEngine is undefined" + + "\nEMFScope cannot be resolved." + + "\nThe field ConstraintCollection.patterns refers to the missing type BaseGeneratedPatternGroup" + + "\non cannot be resolved" + + "\nprepare cannot be resolved"); + } +} 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 @@ +package ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.validation; + +import ca.mcgill.ecse.dslreasoner.realistic.metrics.calculator.app.Domain; +import java.util.ArrayList; +import java.util.Map; +import org.eclipse.emf.ecore.EObject; + +@SuppressWarnings("all") +public class ViolationCheck { + /** + * Return the total number of violations + */ + public static int calculateViolationCounts(final EObject root, final Domain d) { + throw new Error("Unresolved compilation problems:" + + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification" + + "\nThe constructor ConstraintCollection(List, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification"); + } + + /** + * return a map contain the count for each type of violation + */ + public static Map violationMaps(final EObject root) { + throw new Error("Unresolved compilation problems:" + + "\nThe method loadConstraints(String) from the type ViolationCheck refers to the missing type IConstraintSpecification" + + "\nThe constructor ConstraintCollection(List, BaseGeneratedPatternGroup) refers to the missing type IConstraintSpecification"); + } + + public static /* ArrayList */Object loadConstraints(final String packageName) { + throw new Error("Unresolved compilation problems:" + + "\nIConstraintSpecification cannot be resolved to a type." + + "\nIConstraintSpecification cannot be resolved to a type." + + "\nThe method or field IConstraintSpecification is undefined"); + } +} 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcC.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcEDA.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMPC.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcMetric2.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNA.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDA.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcNDC.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRCNT.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRNUM.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQROSZ.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/calculations/.CalcSQRTOT.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.xtendbin 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CalculationsNA.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.FixModelURIs.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.MetricsCalculationUsingShapes.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/bin/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.Util.java._trace 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 Binary files /dev/null and b/Metrics/ca.mcgill.ecse.dslreasoner.realistic.metrics/xtend-gen/ca/mcgill/ecse/dslreasoner/realistic/metrics/examples/.CSERposterSample.java._trace 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeModule.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ide/xtend-gen/ca/mcgill/ecse/dslreasoner/ide/.VampireLanguageIdeSetup.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/.VampireLanguageUiModule.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/contentassist/.VampireLanguageProposalProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageDescriptionLabelProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/labeling/.VampireLanguageLabelProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/outline/.VampireLanguageOutlineTreeProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language.ui/xtend-gen/ca/mcgill/ecse/dslreasoner/ui/quickfix/.VampireLanguageQuickfixProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageRuntimeModule.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/.VampireLanguageStandaloneSetup.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/formatting2/.VampireLanguageFormatter.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/generator/.VampireLanguageGenerator.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/scoping/.VampireLanguageScopeProvider.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.language/xtend-gen/ca/mcgill/ecse/dslreasoner/validation/.VampireLanguageValidator.xtendbin 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 @@ +put the Vampire executeable in this folder. +rename it to "vampire.exe" diff --git a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe new file mode 100644 index 00000000..51b44f82 Binary files /dev/null and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/lib/vampire.exe 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 { val Vampire2LogicMapper backwardMapper = new Vampire2LogicMapper val VampireHandler handler = new VampireHandler - val fileName = "vampireProblem.tptp" + var fileName = "problem.tptp" + + def solve(LogicProblem problem, LogicSolverConfiguration config, ReasonerWorkspace workspace, String location) { + fileName = location + fileName + solve(problem, config, workspace) + } override solve(LogicProblem problem, LogicSolverConfiguration config, ReasonerWorkspace workspace) throws LogicReasonerException { @@ -54,26 +59,21 @@ class VampireSolver extends LogicReasoner { // Result as String val transformationTime = System.currentTimeMillis - transformationStart // Finish: Logic -> Vampire mapping - /* - * // Start: Solving Alloy problem - * val solverStart = System.currentTimeMillis - * //Calling Solver (Currently Manually) - * val result2 = handler.callSolver(vampireProblem,workspace,vampireConfig,vampireCode) - * // val result2 = null - * //TODO - * //Backwards Mapper - * val logicResult = backwardMapper.transformOutput(problem,config.solutionScope.numberOfRequiredSolution,result2,forwardTrace,transformationTime) - * - * val solverFinish = System.currentTimeMillis-solverStart - * // Finish: Solving Alloy problem - * - * if(vampireConfig.writeToFile) workspace.deactivateModel(fileName) - * - * return logicResult - * - /*/ - return null // for now - // */ + // Start: Solving .tptp problem + val solverStart = System.currentTimeMillis + // Calling Solver (Currently Manually) + val result2 = handler.callSolver(vampireProblem, workspace, vampireConfig) + // val result2 = null + val solvingTime = System.currentTimeMillis - solverStart + // TODO +// val backTransformationStart = System.currentTimeMillis +// // Backwards Mapper +// val logicResult = backwardMapper.transformOutput(problem, config.solutionScope.numberOfRequiredSolution, +// result2, forwardTrace, transformationTime) +// +// val backTransformationTime = System.currentTimeMillis - backTransformationStart + // Finish: Solving Alloy problem + return null } 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 @@ package ca.mcgill.ecse.dslreasoner.vampire.reasoner.builder -import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireBackendSolver import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel -import com.google.common.util.concurrent.SimpleTimeLimiter -import com.google.common.util.concurrent.UncheckedTimeoutException -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicSolverConfiguration import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace -import java.util.ArrayList -import java.util.HashMap -import java.util.LinkedList +import java.io.BufferedReader +import java.io.InputStreamReader import java.util.List -import java.util.Map -import java.util.concurrent.Callable -import java.util.concurrent.TimeUnit -import org.eclipse.emf.common.command.Command +import org.eclipse.emf.ecore.resource.Resource import org.eclipse.xtend.lib.annotations.Data +import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl class VampireSolverException extends Exception{ new(String s) { super(s) } @@ -39,7 +32,62 @@ class VampireHandler { //val fileName = "problem.als" - public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration,String vampireCode) { + public def callSolver(VampireModel problem, ReasonerWorkspace workspace, VampireSolverConfiguration configuration) { + + val CMD = "cmd /c " + val VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\" + val VAMPNAME = "vampire.exe" + val TEMPNAME = "TEMP.tptp" + val OPTION = " --mode casc_sat " + val SOLNNAME = "solution.tptp" + val PATH = "C:/cygwin64/bin" + + val wsURI = workspace.workspaceURI + val tempLoc = wsURI + TEMPNAME + val solnLoc = wsURI + SOLNNAME + " " + val vampLoc = VAMPDIR + VAMPNAME + + + //1. create temp file for vampire problem + var tempURI = workspace.writeModel(problem, TEMPNAME).toFileString + + //2. run command and save to + //need to have cygwin downloaded + + + + + val p = Runtime.runtime.exec(CMD + vampLoc + OPTION + tempLoc + " > " + solnLoc, newArrayList("Path=" + PATH)) + //2.1 determine time left + p.waitFor + + //2.2 store output into local variable + val BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); + val List output = newArrayList + + var line = ""; + while ((line = reader.readLine())!= null) { + output.add(line + "\n"); + } + +// println(output.toString()) + + //4. delete temp file + workspace.getFile(TEMPNAME).delete + + //5. determine and return whether or not finite model was found + + //6. save solution as a .tptp model + Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put("*", new VampireLanguageFactoryImpl) + workspace.readModel(VampireModel, SOLNNAME).eResource.contents + + + + + + + + /* //Prepare val warnings = new LinkedList 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireAnalyzerConfiguration.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/.VampireSolver.xtendbin 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; import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; import java.util.List; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.ecore.EObject; import org.eclipse.xtend2.lib.StringConcatenation; +import org.eclipse.xtext.xbase.lib.Exceptions; @SuppressWarnings("all") public class VampireSolver extends LogicReasoner { @@ -36,7 +39,20 @@ public class VampireSolver extends LogicReasoner { private final VampireHandler handler = new VampireHandler(); - private final String fileName = "vampireProblem.tptp"; + private String fileName = "problem.tptp"; + + public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace, final String location) { + try { + LogicResult _xblockexpression = null; + { + this.fileName = (location + this.fileName); + _xblockexpression = this.solve(problem, config, workspace); + } + return _xblockexpression; + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } + } @Override public LogicResult solve(final LogicProblem problem, final LogicSolverConfiguration config, final ReasonerWorkspace workspace) throws LogicReasonerException { @@ -55,6 +71,10 @@ public class VampireSolver extends LogicReasoner { } long _currentTimeMillis = System.currentTimeMillis(); final long transformationTime = (_currentTimeMillis - transformationStart); + final long solverStart = System.currentTimeMillis(); + final EList result2 = this.handler.callSolver(vampireProblem, workspace, vampireConfig); + long _currentTimeMillis_1 = System.currentTimeMillis(); + final long solvingTime = (_currentTimeMillis_1 - solverStart); return null; } 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapperTrace.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ConstantMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ContainmentMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_RelationMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_ScopeMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_Support.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Logic2VampireLanguageMapper_TypeMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.Vampire2LogicMapper.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireHandler.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation.xtendbin 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 Binary files a/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin and b/Solvers/Vampire-Solver/ca.mcgill.ecse.dslreasoner.vampire.reasoner/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/reasoner/builder/.VampireModelInterpretation_TypeInterpretation_FilteredTypes.xtendbin 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; import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; +import ca.mcgill.ecse.dslreasoner.vampireLanguage.impl.VampireLanguageFactoryImpl; +import com.google.common.base.Objects; import hu.bme.mit.inf.dslreasoner.workspace.ReasonerWorkspace; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Map; +import org.eclipse.emf.common.util.EList; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.xtext.xbase.lib.CollectionLiterals; +import org.eclipse.xtext.xbase.lib.Conversions; +import org.eclipse.xtext.xbase.lib.Exceptions; @SuppressWarnings("all") public class VampireHandler { - public Object callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration, final String vampireCode) { - return null; + public EList callSolver(final VampireModel problem, final ReasonerWorkspace workspace, final VampireSolverConfiguration configuration) { + try { + EList _xblockexpression = null; + { + final String CMD = "cmd /c "; + final String VAMPDIR = "..\\..\\Solvers\\Vampire-Solver\\ca.mcgill.ecse.dslreasoner.vampire.reasoner\\lib\\"; + final String VAMPNAME = "vampire.exe"; + final String TEMPNAME = "TEMP.tptp"; + final String OPTION = " --mode casc_sat "; + final String SOLNNAME = "solution.tptp"; + final String PATH = "C:/cygwin64/bin"; + final URI wsURI = workspace.getWorkspaceURI(); + final String tempLoc = (wsURI + TEMPNAME); + String _plus = (wsURI + SOLNNAME); + final String solnLoc = (_plus + " "); + final String vampLoc = (VAMPDIR + VAMPNAME); + String tempURI = workspace.writeModel(problem, TEMPNAME).toFileString(); + final Process p = Runtime.getRuntime().exec((((((CMD + vampLoc) + OPTION) + tempLoc) + " > ") + solnLoc), ((String[])Conversions.unwrapArray(CollectionLiterals.newArrayList(("Path=" + PATH)), String.class))); + p.waitFor(); + InputStream _inputStream = p.getInputStream(); + InputStreamReader _inputStreamReader = new InputStreamReader(_inputStream); + final BufferedReader reader = new BufferedReader(_inputStreamReader); + final List output = CollectionLiterals.newArrayList(); + String line = ""; + while ((!Objects.equal((line = reader.readLine()), null))) { + output.add((line + "\n")); + } + workspace.getFile(TEMPNAME).delete(); + Map _extensionToFactoryMap = Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap(); + VampireLanguageFactoryImpl _vampireLanguageFactoryImpl = new VampireLanguageFactoryImpl(); + _extensionToFactoryMap.put("*", _vampireLanguageFactoryImpl); + _xblockexpression = workspace.readModel(VampireModel.class, SOLNNAME).eResource().getContents(); + } + return _xblockexpression; + } catch (Throwable _e) { + throw Exceptions.sneakyThrow(_e); + } } } 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 @@ -
+
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 @@ - 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 Bundle-Name: Test Bundle-SymbolicName: ca.mcgill.ecse.dslreasoner.vampire.test;singleton:=true Bundle-Version: 1.0.0.qualifier -Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, - ca.mcgill.ecse.dslreasoner.vampire.test.queries.ecore, - ca.mcgill.ecse.dslreasoner.vampire.test.queries.fam, - ca.mcgill.ecse.dslreasoner.vampire.test.queries.filesystem, - ca.mcgill.ecse.dslreasoner.vampire.test.queries.yakindu +Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries Require-Bundle: org.eclipse.viatra.addon.querybasedfeatures.runtime, org.eclipse.emf.ecore, 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 @@ bin.includes = META-INF/,\ . source.. = src/,\ - src-gen/,\ src-gen/ output.. = bin/ diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml index 33dc7485..b0735f37 100644 --- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml +++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml @@ -1,238 +1,9 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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 { it.documentationLevel = DocumentationLevel::FULL ] - solution = reasoner.solve(logicProblem, vampireConfig, workspace) + solution = reasoner.solve(logicProblem, vampireConfig, workspace, "ECO") println("Problem solved") 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 { //Start Time var startTime = System.currentTimeMillis - var LogicReasoner reasoner + var VampireSolver reasoner // * reasoner = new VampireSolver 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 @@ package ca.mcgill.ecse.dslreasoner.vampire.icse +import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.Dir +import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage -import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic @@ -15,7 +15,6 @@ import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace import java.util.HashMap import org.eclipse.emf.ecore.resource.Resource import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl -import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.* class FileSystemTest { def static void main(String[] args) { @@ -38,7 +37,7 @@ class FileSystemTest { val metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE) val partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi") - val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) +// val queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance) println("DSL loaded") @@ -53,7 +52,7 @@ class FileSystemTest { // Start Time var startTime = System.currentTimeMillis - var LogicReasoner reasoner + var VampireSolver reasoner // * reasoner = new VampireSolver @@ -87,7 +86,7 @@ class FileSystemTest { it.uniquenessDuplicates = false ] - var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace) + var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "FS") /*/ * 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 { // Start Time var startTime = System.currentTimeMillis - var LogicReasoner reasoner + var VampireSolver reasoner // * reasoner = new VampireSolver @@ -85,7 +85,7 @@ class YakinduTest { it.uniquenessDuplicates = false ] - var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace) + var LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "YAK") /*/ * 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 Binary files /dev/null and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/vampire.exe 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin 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 @@ package ca.mcgill.ecse.dslreasoner.vampire.icse; -import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; -import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; -import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; -import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; -import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; -import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; -import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; -import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; -import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; -import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; -import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; -import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; -import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; -import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.xbase.lib.Exceptions; -import org.eclipse.xtext.xbase.lib.InputOutput; -import org.eclipse.xtext.xbase.lib.ObjectExtensions; -import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; - @SuppressWarnings("all") public class EcoreTest { public static void main(final String[] args) { - try { - StringConcatenation _builder = new StringConcatenation(); - _builder.append("initialModels/"); - final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("output/FEcoreTest/"); - final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); - workspace.initAndClear(); - InputOutput.println("Input and output workspaces are created"); - final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); - final EList partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); - final Object queries = null; - InputOutput.println("DSL loaded"); - final Ecore2Logic ecore2Logic = new Ecore2Logic(); - final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); - final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); - final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); - Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); - final TracedOutput modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); - final TracedOutput modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel); - final LogicProblem logicProblem = modelGenerationProblem.getOutput(); - InputOutput.println("Problem created"); - LogicResult solution = null; - LogicReasoner reasoner = null; - VampireSolver _vampireSolver = new VampireSolver(); - reasoner = _vampireSolver; - VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); - final Procedure1 _function = (VampireSolverConfiguration it) -> { - it.documentationLevel = DocumentationLevel.FULL; - }; - final VampireSolverConfiguration vampireConfig = ObjectExtensions.operator_doubleArrow(_vampireSolverConfiguration, _function); - solution = reasoner.solve(logicProblem, vampireConfig, workspace); - InputOutput.println("Problem solved"); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } + throw new Error("Unresolved compilation problems:" + + "\nInvalid number of arguments. The method solve(LogicProblem, LogicSolverConfiguration, ReasonerWorkspace) is not applicable for the arguments (LogicProblem,VampireSolverConfiguration,FileSystemWorkspace,String)"); } } 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; import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; @@ -62,7 +61,7 @@ public class FAMTest { workspace.writeModel(problem, "Fam.logicproblem"); InputOutput.println("Problem created"); long startTime = System.currentTimeMillis(); - LogicReasoner reasoner = null; + VampireSolver reasoner = null; VampireSolver _vampireSolver = new VampireSolver(); reasoner = _vampireSolver; final HashMap classMapMin = new HashMap(); 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; import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.File; import ca.mcgill.ecse.dslreasoner.standalone.test.filesystem.filesystemPackage; import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; -import ca.mcgill.ecse.dslreasoner.vampire.queries.FileSystemPatterns; import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; @@ -12,13 +11,11 @@ import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; -import hu.bme.mit.inf.dslreasoner.logic.model.builder.LogicReasoner; import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; import hu.bme.mit.inf.dslreasoner.logic.model.logiclanguage.Type; import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; -import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; import java.util.HashMap; @@ -28,7 +25,6 @@ import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; import org.eclipse.xtend2.lib.StringConcatenation; -import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.InputOutput; import org.eclipse.xtext.xbase.lib.ObjectExtensions; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; @@ -36,75 +32,70 @@ import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; @SuppressWarnings("all") public class FileSystemTest { public static void main(final String[] args) { - try { - final Ecore2Logic ecore2Logic = new Ecore2Logic(); - final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); - final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); - StringConcatenation _builder = new StringConcatenation(); - _builder.append("initialModels/"); - final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); - StringConcatenation _builder_1 = new StringConcatenation(); - _builder_1.append("output/FileSystemTest/"); - final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); - workspace.initAndClear(); - final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; - final Map map = reg.getExtensionToFactoryMap(); - XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); - map.put("logicproblem", _xMIResourceFactoryImpl); - InputOutput.println("Input and output workspaces are created"); - final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); - final EList partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); - final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FileSystemPatterns.instance()); - InputOutput.println("DSL loaded"); - Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); - final TracedOutput modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); - LogicProblem problem = modelGenerationProblem.getOutput(); - problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); - workspace.writeModel(problem, "FileSystem.logicproblem"); - InputOutput.println("Problem created"); - long startTime = System.currentTimeMillis(); - LogicReasoner reasoner = null; - VampireSolver _vampireSolver = new VampireSolver(); - reasoner = _vampireSolver; - final HashMap classMapMin = new HashMap(); - classMapMin.put(Dir.class, Integer.valueOf(10)); - classMapMin.put(File.class, Integer.valueOf(5)); - final Map typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); - final HashMap classMapMax = new HashMap(); - classMapMax.put(File.class, Integer.valueOf(15)); - classMapMax.put(Dir.class, Integer.valueOf(15)); - final Map typeMapMax = GeneralTest.getTypeMap(classMapMax, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); - VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); - final Procedure1 _function = (VampireSolverConfiguration it) -> { - it.documentationLevel = DocumentationLevel.FULL; - it.typeScopes.minNewElements = 10; - it.typeScopes.maxNewElements = 25; - int _size = typeMapMin.size(); - boolean _notEquals = (_size != 0); - if (_notEquals) { - it.typeScopes.minNewElementsByType = typeMapMin; - } - int _size_1 = typeMapMin.size(); - boolean _notEquals_1 = (_size_1 != 0); - if (_notEquals_1) { - it.typeScopes.maxNewElementsByType = typeMapMax; - } - it.contCycleLevel = 5; - it.uniquenessDuplicates = false; - }; - final VampireSolverConfiguration vampireConfig = ObjectExtensions.operator_doubleArrow(_vampireSolverConfiguration, _function); - LogicResult solution = reasoner.solve(problem, vampireConfig, workspace); - long _currentTimeMillis = System.currentTimeMillis(); - long _minus = (_currentTimeMillis - startTime); - long totalTimeMin = (_minus / 60000); - long _currentTimeMillis_1 = System.currentTimeMillis(); - long _minus_1 = (_currentTimeMillis_1 - startTime); - long _divide = (_minus_1 / 1000); - long totalTimeSec = (_divide % 60); - InputOutput.println("Problem solved"); - InputOutput.println(((("Time was: " + Long.valueOf(totalTimeMin)) + ":") + Long.valueOf(totalTimeSec))); - } catch (Throwable _e) { - throw Exceptions.sneakyThrow(_e); - } + final Ecore2Logic ecore2Logic = new Ecore2Logic(); + final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); + final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); + StringConcatenation _builder = new StringConcatenation(); + _builder.append("initialModels/"); + final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); + StringConcatenation _builder_1 = new StringConcatenation(); + _builder_1.append("output/FileSystemTest/"); + final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); + workspace.initAndClear(); + final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; + final Map map = reg.getExtensionToFactoryMap(); + XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); + map.put("logicproblem", _xMIResourceFactoryImpl); + InputOutput.println("Input and output workspaces are created"); + final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(filesystemPackage.eINSTANCE); + final EList partialModel = GeneralTest.loadPartialModel(inputs, "fs/filesystemInstance.xmi"); + InputOutput.println("DSL loaded"); + Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); + final TracedOutput modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); + LogicProblem problem = modelGenerationProblem.getOutput(); + problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); + workspace.writeModel(problem, "FileSystem.logicproblem"); + InputOutput.println("Problem created"); + long startTime = System.currentTimeMillis(); + VampireSolver reasoner = null; + VampireSolver _vampireSolver = new VampireSolver(); + reasoner = _vampireSolver; + final HashMap classMapMin = new HashMap(); + classMapMin.put(Dir.class, Integer.valueOf(10)); + classMapMin.put(File.class, Integer.valueOf(5)); + final Map typeMapMin = GeneralTest.getTypeMap(classMapMin, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); + final HashMap classMapMax = new HashMap(); + classMapMax.put(File.class, Integer.valueOf(15)); + classMapMax.put(Dir.class, Integer.valueOf(15)); + final Map typeMapMax = GeneralTest.getTypeMap(classMapMax, metamodel, ecore2Logic, modelGenerationProblem.getTrace()); + VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); + final Procedure1 _function = (VampireSolverConfiguration it) -> { + it.documentationLevel = DocumentationLevel.FULL; + it.typeScopes.minNewElements = 10; + it.typeScopes.maxNewElements = 25; + int _size = typeMapMin.size(); + boolean _notEquals = (_size != 0); + if (_notEquals) { + it.typeScopes.minNewElementsByType = typeMapMin; + } + int _size_1 = typeMapMin.size(); + boolean _notEquals_1 = (_size_1 != 0); + if (_notEquals_1) { + it.typeScopes.maxNewElementsByType = typeMapMax; + } + it.contCycleLevel = 5; + it.uniquenessDuplicates = false; + }; + final VampireSolverConfiguration vampireConfig = ObjectExtensions.operator_doubleArrow(_vampireSolverConfiguration, _function); + LogicResult solution = reasoner.solve(problem, vampireConfig, workspace, "FS"); + long _currentTimeMillis = System.currentTimeMillis(); + long _minus = (_currentTimeMillis - startTime); + long totalTimeMin = (_minus / 60000); + long _currentTimeMillis_1 = System.currentTimeMillis(); + long _minus_1 = (_currentTimeMillis_1 - startTime); + long _divide = (_minus_1 / 1000); + long totalTimeSec = (_divide % 60); + InputOutput.println("Problem solved"); + InputOutput.println(((("Time was: " + Long.valueOf(totalTimeMin)) + ":") + Long.valueOf(totalTimeSec))); } } 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin 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 Binary files a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin and b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin differ -- cgit v1.2.3-54-g00ecf