aboutsummaryrefslogtreecommitdiffstats
path: root/Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Tests')
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/META-INF/MANIFEST.MF8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml10
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.xtend111
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql8
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbinbin4545 -> 4545 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbinbin6624 -> 6624 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbinbin6204 -> 6204 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbinbin6456 -> 6456 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbinbin7597 -> 7838 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java91
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbinbin4997 -> 4997 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbinbin687 -> 687 bytes
-rw-r--r--Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbinbin6500 -> 6500 bytes
13 files changed, 119 insertions, 109 deletions
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 9e50006e..b786abfb 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
@@ -6,7 +6,13 @@ Bundle-Version: 1.0.0.qualifier
6Bundle-ClassPath: . 6Bundle-ClassPath: .
7Bundle-Vendor: %providerName 7Bundle-Vendor: %providerName
8Bundle-Localization: plugin 8Bundle-Localization: plugin
9Export-Package: ca.mcgill.ecse.dslreasoner.vampire.queries, 9Export-Package: ca.mcgill.ecse.dslreasoner.vamipre.yakindumm,
10 ca.mcgill.ecse.dslreasoner.vamipre.yakindumm.impl,
11 ca.mcgill.ecse.dslreasoner.vamipre.yakindumm.util,
12 ca.mcgill.ecse.dslreasoner.vampire.queries,
13 ca.mcgill.ecse.dslreasoner.vampire.yakindumm,
14 ca.mcgill.ecse.dslreasoner.vampire.yakindumm.impl,
15 ca.mcgill.ecse.dslreasoner.vampire.yakindumm.util,
10 yakindumm, 16 yakindumm,
11 yakindumm.impl, 17 yakindumm.impl,
12 yakindumm.util, 18 yakindumm.util,
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
index 6a9aee5e..fa271bd3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/plugin.xml
@@ -1,15 +1,13 @@
1<?xml version="1.0" encoding="UTF-8"?><plugin> 1<?xml version="1.0" encoding="UTF-8"?><plugin>
2 <extension point="org.eclipse.emf.ecore.generated_package"> 2 <extension point="org.eclipse.emf.ecore.generated_package">
3 <!-- @generated yakindu_simplified --> 3 <!-- @generated xGen -->
4 <package class="yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/> 4 <package class="ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/>
5 </extension>
6 <extension point="org.eclipse.emf.ecore.generated_package">
7 <!-- @generated yakindu_simplified -->
8 <package class="yakindumm.yakindumm.YakindummPackage" genModel="initialModels/yakindu/yakindu_simplified.genmodel" uri="hu.bme.mit.inf.yakindumm"/>
9 </extension> 5 </extension>
10 <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification"> 6 <extension id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" point="org.eclipse.viatra.query.runtime.queryspecification">
11 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns"> 7 <group group="org.eclipse.viatra.query.runtime.extensibility.SingletonExtensionFactory:ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns" id="ca.mcgill.ecse.dslreasoner.vampire.queries.FamPatterns">
12 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/> 8 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.terminatorAndInformation"/>
9 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.rootElements"/>
10 <query-specification fqn="ca.mcgill.ecse.dslreasoner.vampire.queries.parent"/>
13 </group> 11 </group>
14 </extension> 12 </extension>
15</plugin> 13</plugin>
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 057bcf12..cc7f4809 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
@@ -1,10 +1,10 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse 1package ca.mcgill.ecse.dslreasoner.vampire.icse
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns 3import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns
4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver 4import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration
6import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage
6import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel 7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel
7import functionalarchitecture.FunctionalarchitecturePackage
8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic 8import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration
10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel 10import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel
@@ -12,9 +12,13 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult
12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult 12import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult
13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore 13import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore
14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic 14import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic
15import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration
15import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic 16import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic
16import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace 17import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace
17import java.io.PrintWriter 18import java.io.PrintWriter
19import java.text.SimpleDateFormat
20import java.time.LocalDate
21import java.util.Date
18import org.eclipse.emf.ecore.resource.Resource 22import org.eclipse.emf.ecore.resource.Resource
19import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl 23import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl
20 24
@@ -26,8 +30,12 @@ class YakinduTest {
26 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic 30 val InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic
27 31
28 // Workspace setup 32 // Workspace setup
33 val Date date = new Date(System.currentTimeMillis)
34 val SimpleDateFormat format = new SimpleDateFormat("MMdd-HHmmss");
35 val formattedDate = format.format(date)
36
29 val inputs = new FileSystemWorkspace('''initialModels/''', "") 37 val inputs = new FileSystemWorkspace('''initialModels/''', "")
30 val workspace = new FileSystemWorkspace('''output/YakinduTest/''', "") 38 val workspace = new FileSystemWorkspace('''output/YakinduTest/''' + formattedDate + '''/''', "")
31 workspace.initAndClear 39 workspace.initAndClear
32 40
33 // Logicproblem writing setup 41 // Logicproblem writing setup
@@ -37,12 +45,12 @@ class YakinduTest {
37 45
38 println("Input and output workspaces are created") 46 println("Input and output workspaces are created")
39 47
40// val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE) 48 val metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE)
41 val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE) 49 val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi")
42// val partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi") 50 val queries = GeneralTest.loadQueries(metamodel, Patterns.instance)
43 val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi") 51// val metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE)
44// val queries = GeneralTest.loadQueries(metamodel, YakinduPatterns.instance) 52// val partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi")
45 val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance) 53// val queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance)
46// val queries = null 54// val queries = null
47 println("DSL loaded") 55 println("DSL loaded")
48 56
@@ -50,40 +58,42 @@ class YakinduTest {
50 var START = 10 58 var START = 10
51 var INC = 20 59 var INC = 20
52 var REPS = 1 60 var REPS = 1
53 61
54 val EXACT = -1 62 val EXACT = 50
55 if (EXACT!= -1) { 63 if (EXACT != -1) {
56 MAX = EXACT 64 MAX = EXACT
57 START = EXACT 65 START = EXACT
58 INC = 1 66 INC = 1
59 REPS = 5 67 REPS = 3
60 } 68 }
61 69
62 var writer = new PrintWriter(workspace.workspaceURI + "//yakinduStats.csv") 70 var writer = new PrintWriter(workspace.workspaceURI + "//_yakinduStats.csv")
63 writer.append("size,") 71 writer.append("size,")
64 for (var x = 0; x < REPS; x++) { 72 for (var x = 0; x < REPS; x++) {
65 writer.append("t" + x + ",") 73 writer.append("tTransf" + x + "," + "tSolv" + x + ",")
66 } 74 }
67 writer.append("avg\n") 75 writer.append("medSolv,medTransf\n")
68 var totalTime = 0.0 76 var solverTimes = newArrayList
69 var totFound = 0.0 77 var transformationTimes = newArrayList
70 var modelFound = true 78 var modelFound = true
71 var LogicResult solution = null 79 var LogicResult solution = null
72 for (var i = START; i <= MAX; i += INC) { 80 for (var i = START; i <= MAX; i += INC) {
73 val num = (i - START) / INC 81 val num = (i - START) / INC
74 print("Generation " + num + ": SIZE=" + i + " Attempt: ") 82 print("Generation " + num + ": SIZE=" + i + " Attempt: ")
75 writer.append(i + ",") 83 writer.append(i + ",")
76 totalTime = 0.0 84 solverTimes.clear
77 totFound = 0.0 85 transformationTimes.clear
78 modelFound = true 86 modelFound = true
79 for (var j = 0; j < REPS; j++) { 87 for (var j = 0; j < REPS; j++) {
80 88
81 print(j) 89 print(j)
82 90
83 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration()) 91 val modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, new Ecore2LogicConfiguration())
84 var problem = modelGenerationProblem.output 92 var modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel)
85 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).output 93 var validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem,
86// problem = viatra2Logic.transformQueries(queries, modelGenerationProblem, new Viatra2LogicConfiguration).output 94 new Viatra2LogicConfiguration)
95
96 var problem = validModelExtensionProblem.output
87 workspace.writeModel(problem, "Yakindu.logicproblem") 97 workspace.writeModel(problem, "Yakindu.logicproblem")
88 98
89// println("Problem created") 99// println("Problem created")
@@ -110,9 +120,11 @@ class YakinduTest {
110 // Define Config File 120 // Define Config File
111 val size = i 121 val size = i
112 val inc = INC 122 val inc = INC
123 val iter = j
113 val vampireConfig = new VampireSolverConfiguration => [ 124 val vampireConfig = new VampireSolverConfiguration => [
114 // add configuration things, in config file first 125 // add configuration things, in config file first
115 it.documentationLevel = DocumentationLevel::FULL 126 it.documentationLevel = DocumentationLevel::FULL
127 it.iteration = iter
116 128
117 it.typeScopes.minNewElements = size - inc 129 it.typeScopes.minNewElements = size - inc
118 it.typeScopes.maxNewElements = size 130 it.typeScopes.maxNewElements = size
@@ -132,11 +144,12 @@ class YakinduTest {
132// ].isEmpty 144// ].isEmpty
133// 145//
134// if (modelFound) { 146// if (modelFound) {
135 val time = solution.statistics.transformationTime / 1000.0 147 val tTime = solution.statistics.transformationTime / 1000.0
136 writer.append(time + ",") 148 val sTime = solution.statistics.solverTime / 1000.0
137 print("(" + time + ")..") 149 writer.append(tTime + "," + sTime + ",")
138 totalTime += time 150 print("(" + tTime + "/" + sTime + "s)..")
139 totFound += 1 151 solverTimes.add(sTime)
152 transformationTimes.add(tTime)
140// } else { 153// } else {
141// writer.append("MNF" + ",") 154// writer.append("MNF" + ",")
142//// print("MNF") 155//// print("MNF")
@@ -144,55 +157,19 @@ class YakinduTest {
144 // println("Problem solved") 157 // println("Problem solved")
145 // visualisation, see 158 // visualisation, see
146// var interpretations = reasoner.getInterpretations(solution as ModelResult) 159// var interpretations = reasoner.getInterpretations(solution as ModelResult)
147 /* interpretations.get(0) as VampireModelInterpretation
148 * println(ecore2Logic.IsAttributeValue(modelGenerationProblem.trace, )
149 * Literal(modelGenerationProblem.trace, ecore2Logic.allLiteralsInScope(modelGenerationProblem.trace).get(0) )
150 * )
151 * println((ecore2Logic.allAttributesInScope(modelGenerationProblem.trace)).get(0).EAttributeType)
152 print(interpretations.class)*/
153// for (interpretation : interpretations) { 160// for (interpretation : interpretations) {
154// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace) 161// val model = logic2Ecore.transformInterpretation(interpretation, modelGenerationProblem.trace)
155// workspace.writeModel(model, "model.xmi") 162// workspace.writeModel(model, "model.xmi")
156 /* val representation = im2pi.transform(modelGenerationProblem, model.eAllContents.toList, false)//solution.representation.get(0) // TODO: fix for multiple represenations
157 * if (representation instanceof PartialInterpretation) {
158 * val vis1 = new PartialInterpretation2Gml
159 * val gml = vis1.transform(representation)
160 * workspace.writeText("model.gml", gml)
161
162 * val vis2 = new GraphvizVisualiser
163 * val dot = vis2.visualiseConcretization(representation)
164 * dot.writeToFile(workspace, "model.png")
165 * } else {
166 * println("ERROR")
167 * }
168 look here: hu.bme.mit.inf.dslreasoner.application.execution.GenerationTaskExecutor*/
169// } 163// }
170 /*/
171 *
172 * reasoner = new AlloySolver
173 * val alloyConfig = new AlloySolverConfiguration => [
174 * it.typeScopes.maxNewElements = 7
175 * it.typeScopes.minNewElements = 3
176 * it.solutionScope.numberOfRequiredSolution = 1
177 * it.typeScopes.maxNewIntegers = 0
178 * it.documentationLevel = DocumentationLevel::NORMAL
179 * ]
180 * solution = reasoner.solve(problem, alloyConfig, workspace)
181 //*/
182 // /////////////////////////////////////////////////////
183// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000 164// var totalTimeMin = (System.currentTimeMillis - startTime) / 60000
184// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60 165// var totalTimeSec = ((System.currentTimeMillis - startTime) / 1000) % 60
185// println("Problem solved") 166// println("Problem solved")
186// println("Time was: " + totalTimeMin + ":" + totalTimeSec) 167// println("Time was: " + totalTimeMin + ":" + totalTimeSec)
187 } 168 }
188 println() 169 println()
189 var avg = 0.0 170 var solverMed = solverTimes.sort.get(REPS/2)
190 if (totFound == 0) { 171 var transformationMed = transformationTimes.sort.get(REPS/2)
191 avg = -1 172 writer.append(solverMed.toString + "," + transformationMed.toString)
192 } else {
193 avg = totalTime / totFound
194 }
195 writer.append(avg.toString)
196 writer.append("\n") 173 writer.append("\n")
197 } 174 }
198 writer.close 175 writer.close
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
index 60679874..d9d6b881 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/src/ca/mcgill/ecse/dslreasoner/vampire/queries/FamPatterns.vql
@@ -9,4 +9,12 @@ pattern terminatorAndInformation(T : FAMTerminator, I : InformationLink) = {
9} or { 9} or {
10 InformationLink.to(I,In); 10 InformationLink.to(I,In);
11 FunctionalInput.terminator(In,T); 11 FunctionalInput.terminator(In,T);
12}
13
14pattern rootElements(Model: FunctionalArchitectureModel, Root : Function) = {
15 FunctionalArchitectureModel.rootElements(Model, Root);
16}
17
18pattern parent(Func : Function, Par : Function) = {
19 Function.parent(Func, Par);
12} \ No newline at end of file 20} \ No newline at end of file
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 4880c751..1d9db781 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.EcoreTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
index 8ad6dfed..15159cb7 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FAMTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
index 164e6c2f..69cbcc0a 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.FileSystemTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
index 46cad7ee..16a24539 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.GeneralTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
index eeb7c77a..57a6fa02 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/.YakinduTest.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
index 616868a6..35c48de2 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java
@@ -1,11 +1,11 @@
1package ca.mcgill.ecse.dslreasoner.vampire.icse; 1package ca.mcgill.ecse.dslreasoner.vampire.icse;
2 2
3import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns;
4import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; 3import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest;
4import ca.mcgill.ecse.dslreasoner.vampire.queries.Patterns;
5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; 5import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver;
6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; 6import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration;
7import ca.mcgill.ecse.dslreasoner.vampire.yakindumm.YakindummPackage;
7import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; 8import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel;
8import functionalarchitecture.FunctionalarchitecturePackage;
9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; 9import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic;
10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; 10import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration;
11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; 11import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace;
@@ -17,10 +17,15 @@ import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult;
17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; 17import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult;
18import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; 18import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore;
19import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; 19import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic;
20import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicConfiguration;
21import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2LogicTrace;
20import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; 22import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor;
21import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; 23import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic;
22import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; 24import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace;
23import java.io.PrintWriter; 25import java.io.PrintWriter;
26import java.text.SimpleDateFormat;
27import java.util.ArrayList;
28import java.util.Date;
24import java.util.Map; 29import java.util.Map;
25import org.eclipse.emf.common.util.EList; 30import org.eclipse.emf.common.util.EList;
26import org.eclipse.emf.common.util.URI; 31import org.eclipse.emf.common.util.URI;
@@ -28,8 +33,10 @@ import org.eclipse.emf.ecore.EObject;
28import org.eclipse.emf.ecore.resource.Resource; 33import org.eclipse.emf.ecore.resource.Resource;
29import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; 34import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
30import org.eclipse.xtend2.lib.StringConcatenation; 35import org.eclipse.xtend2.lib.StringConcatenation;
36import org.eclipse.xtext.xbase.lib.CollectionLiterals;
31import org.eclipse.xtext.xbase.lib.Exceptions; 37import org.eclipse.xtext.xbase.lib.Exceptions;
32import org.eclipse.xtext.xbase.lib.InputOutput; 38import org.eclipse.xtext.xbase.lib.InputOutput;
39import org.eclipse.xtext.xbase.lib.IterableExtensions;
33import org.eclipse.xtext.xbase.lib.ObjectExtensions; 40import org.eclipse.xtext.xbase.lib.ObjectExtensions;
34import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; 41import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;
35 42
@@ -41,43 +48,51 @@ public class YakinduTest {
41 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); 48 final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic);
42 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); 49 final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic);
43 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); 50 final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic();
51 long _currentTimeMillis = System.currentTimeMillis();
52 final Date date = new Date(_currentTimeMillis);
53 final SimpleDateFormat format = new SimpleDateFormat("MMdd-HHmmss");
54 final String formattedDate = format.format(date);
44 StringConcatenation _builder = new StringConcatenation(); 55 StringConcatenation _builder = new StringConcatenation();
45 _builder.append("initialModels/"); 56 _builder.append("initialModels/");
46 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); 57 final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), "");
47 StringConcatenation _builder_1 = new StringConcatenation(); 58 StringConcatenation _builder_1 = new StringConcatenation();
48 _builder_1.append("output/YakinduTest/"); 59 _builder_1.append("output/YakinduTest/");
49 final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); 60 String _plus = (_builder_1.toString() + formattedDate);
61 StringConcatenation _builder_2 = new StringConcatenation();
62 _builder_2.append("/");
63 String _plus_1 = (_plus + _builder_2);
64 final FileSystemWorkspace workspace = new FileSystemWorkspace(_plus_1, "");
50 workspace.initAndClear(); 65 workspace.initAndClear();
51 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; 66 final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE;
52 final Map<String, Object> map = reg.getExtensionToFactoryMap(); 67 final Map<String, Object> map = reg.getExtensionToFactoryMap();
53 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); 68 XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl();
54 map.put("logicproblem", _xMIResourceFactoryImpl); 69 map.put("logicproblem", _xMIResourceFactoryImpl);
55 InputOutput.<String>println("Input and output workspaces are created"); 70 InputOutput.<String>println("Input and output workspaces are created");
56 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); 71 final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(YakindummPackage.eINSTANCE);
57 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi"); 72 final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "yakindu/Yakindu.xmi");
58 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); 73 final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, Patterns.instance());
59 InputOutput.<String>println("DSL loaded"); 74 InputOutput.<String>println("DSL loaded");
60 int MAX = 150; 75 int MAX = 150;
61 int START = 10; 76 int START = 10;
62 int INC = 20; 77 int INC = 20;
63 int REPS = 1; 78 int REPS = 1;
64 final int EXACT = (-1); 79 final int EXACT = 50;
65 if ((EXACT != (-1))) { 80 if ((EXACT != (-1))) {
66 MAX = EXACT; 81 MAX = EXACT;
67 START = EXACT; 82 START = EXACT;
68 INC = 1; 83 INC = 1;
69 REPS = 5; 84 REPS = 3;
70 } 85 }
71 URI _workspaceURI = workspace.getWorkspaceURI(); 86 URI _workspaceURI = workspace.getWorkspaceURI();
72 String _plus = (_workspaceURI + "//yakinduStats.csv"); 87 String _plus_2 = (_workspaceURI + "//_yakinduStats.csv");
73 PrintWriter writer = new PrintWriter(_plus); 88 PrintWriter writer = new PrintWriter(_plus_2);
74 writer.append("size,"); 89 writer.append("size,");
75 for (int x = 0; (x < REPS); x++) { 90 for (int x = 0; (x < REPS); x++) {
76 writer.append((("t" + Integer.valueOf(x)) + ",")); 91 writer.append(((((("tTransf" + Integer.valueOf(x)) + ",") + "tSolv") + Integer.valueOf(x)) + ","));
77 } 92 }
78 writer.append("avg\n"); 93 writer.append("medSolv,medTransf\n");
79 double totalTime = 0.0; 94 ArrayList<Double> solverTimes = CollectionLiterals.<Double>newArrayList();
80 double totFound = 0.0; 95 ArrayList<Double> transformationTimes = CollectionLiterals.<Double>newArrayList();
81 boolean modelFound = true; 96 boolean modelFound = true;
82 LogicResult solution = null; 97 LogicResult solution = null;
83 { 98 {
@@ -87,18 +102,20 @@ public class YakinduTest {
87 { 102 {
88 final int num = ((i - START) / INC); 103 final int num = ((i - START) / INC);
89 InputOutput.<String>print((((("Generation " + Integer.valueOf(num)) + ": SIZE=") + Integer.valueOf(i)) + " Attempt: ")); 104 InputOutput.<String>print((((("Generation " + Integer.valueOf(num)) + ": SIZE=") + Integer.valueOf(i)) + " Attempt: "));
90 String _plus_1 = (Integer.valueOf(i) + ","); 105 String _plus_3 = (Integer.valueOf(i) + ",");
91 writer.append(_plus_1); 106 writer.append(_plus_3);
92 totalTime = 0.0; 107 solverTimes.clear();
93 totFound = 0.0; 108 transformationTimes.clear();
94 modelFound = true; 109 modelFound = true;
95 for (int j = 0; (j < REPS); j++) { 110 for (int j = 0; (j < REPS); j++) {
96 { 111 {
97 InputOutput.<Integer>print(Integer.valueOf(j)); 112 InputOutput.<Integer>print(Integer.valueOf(j));
98 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); 113 Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration();
99 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); 114 final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration);
100 LogicProblem problem = modelGenerationProblem.getOutput(); 115 TracedOutput<LogicProblem, Ecore2Logic_Trace> modelExtensionProblem = instanceModel2Logic.transform(modelGenerationProblem, partialModel);
101 problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); 116 Viatra2LogicConfiguration _viatra2LogicConfiguration = new Viatra2LogicConfiguration();
117 TracedOutput<LogicProblem, Viatra2LogicTrace> validModelExtensionProblem = viatra2Logic.transformQueries(queries, modelExtensionProblem, _viatra2LogicConfiguration);
118 LogicProblem problem = validModelExtensionProblem.getOutput();
102 workspace.writeModel(problem, "Yakindu.logicproblem"); 119 workspace.writeModel(problem, "Yakindu.logicproblem");
103 long startTime = System.currentTimeMillis(); 120 long startTime = System.currentTimeMillis();
104 VampireSolver reasoner = null; 121 VampireSolver reasoner = null;
@@ -106,9 +123,11 @@ public class YakinduTest {
106 reasoner = _vampireSolver; 123 reasoner = _vampireSolver;
107 final int size = i; 124 final int size = i;
108 final int inc = INC; 125 final int inc = INC;
126 final int iter = j;
109 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); 127 VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration();
110 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { 128 final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> {
111 it.documentationLevel = DocumentationLevel.FULL; 129 it.documentationLevel = DocumentationLevel.FULL;
130 it.iteration = iter;
112 it.typeScopes.minNewElements = (size - inc); 131 it.typeScopes.minNewElements = (size - inc);
113 it.typeScopes.maxNewElements = size; 132 it.typeScopes.maxNewElements = size;
114 it.contCycleLevel = 5; 133 it.contCycleLevel = 5;
@@ -119,24 +138,26 @@ public class YakinduTest {
119 Object _get = ((ModelResult) solution).getRepresentation().get(0); 138 Object _get = ((ModelResult) solution).getRepresentation().get(0);
120 final VampireModel soln = ((VampireModel) _get); 139 final VampireModel soln = ((VampireModel) _get);
121 int _transformationTime = solution.getStatistics().getTransformationTime(); 140 int _transformationTime = solution.getStatistics().getTransformationTime();
122 final double time = (_transformationTime / 1000.0); 141 final double tTime = (_transformationTime / 1000.0);
123 String _plus_2 = (Double.valueOf(time) + ","); 142 int _solverTime = solution.getStatistics().getSolverTime();
124 writer.append(_plus_2); 143 final double sTime = (_solverTime / 1000.0);
125 InputOutput.<String>print((("(" + Double.valueOf(time)) + ")..")); 144 String _plus_4 = (Double.valueOf(tTime) + ",");
126 double _talTime = totalTime; 145 String _plus_5 = (_plus_4 + Double.valueOf(sTime));
127 totalTime = (_talTime + time); 146 String _plus_6 = (_plus_5 + ",");
128 double _tFound = totFound; 147 writer.append(_plus_6);
129 totFound = (_tFound + 1); 148 InputOutput.<String>print((((("(" + Double.valueOf(tTime)) + "/") + Double.valueOf(sTime)) + "s).."));
149 solverTimes.add(Double.valueOf(sTime));
150 transformationTimes.add(Double.valueOf(tTime));
130 } 151 }
131 } 152 }
132 InputOutput.println(); 153 InputOutput.println();
133 double avg = 0.0; 154 Double solverMed = IterableExtensions.<Double>sort(solverTimes).get((REPS / 2));
134 if ((totFound == 0)) { 155 Double transformationMed = IterableExtensions.<Double>sort(transformationTimes).get((REPS / 2));
135 avg = (-1); 156 String _string = solverMed.toString();
136 } else { 157 String _plus_4 = (_string + ",");
137 avg = (totalTime / totFound); 158 String _string_1 = transformationMed.toString();
138 } 159 String _plus_5 = (_plus_4 + _string_1);
139 writer.append(Double.valueOf(avg).toString()); 160 writer.append(_plus_5);
140 writer.append("\n"); 161 writer.append("\n");
141 } 162 }
142 int _i = i; 163 int _i = i;
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 e9a1a8db..74f8e73f 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.MedicalSystem.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
index 39d9c161..68b3fd77 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.SimpleRun.xtendbin
Binary files differ
diff --git a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
index effd204e..fc4464b3 100644
--- a/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
+++ b/Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/test/.VampireTest.xtendbin
Binary files differ