diff options
Diffstat (limited to 'Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java')
-rw-r--r-- | Tests/ca.mcgill.ecse.dslreasoner.vampire.test/xtend-gen/ca/mcgill/ecse/dslreasoner/vampire/icse/YakinduTest.java | 148 |
1 files changed, 145 insertions, 3 deletions
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 f8502439..616868a6 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,10 +1,152 @@ | |||
1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; | 1 | package ca.mcgill.ecse.dslreasoner.vampire.icse; |
2 | 2 | ||
3 | import ca.mcgill.ecse.dslreasoner.standalone.test.fam.queries.FamPatterns; | ||
4 | import ca.mcgill.ecse.dslreasoner.vampire.icse.GeneralTest; | ||
5 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolver; | ||
6 | import ca.mcgill.ecse.dslreasoner.vampire.reasoner.VampireSolverConfiguration; | ||
7 | import ca.mcgill.ecse.dslreasoner.vampireLanguage.VampireModel; | ||
8 | import functionalarchitecture.FunctionalarchitecturePackage; | ||
9 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic; | ||
10 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2LogicConfiguration; | ||
11 | import hu.bme.mit.inf.dslreasoner.ecore2logic.Ecore2Logic_Trace; | ||
12 | import hu.bme.mit.inf.dslreasoner.ecore2logic.EcoreMetamodelDescriptor; | ||
13 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.DocumentationLevel; | ||
14 | import hu.bme.mit.inf.dslreasoner.logic.model.builder.TracedOutput; | ||
15 | import hu.bme.mit.inf.dslreasoner.logic.model.logicproblem.LogicProblem; | ||
16 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.LogicResult; | ||
17 | import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.ModelResult; | ||
18 | import hu.bme.mit.inf.dslreasoner.logic2ecore.Logic2Ecore; | ||
19 | import hu.bme.mit.inf.dslreasoner.viatra2logic.Viatra2Logic; | ||
20 | import hu.bme.mit.inf.dslreasoner.viatra2logic.ViatraQuerySetDescriptor; | ||
21 | import hu.bme.mit.inf.dslreasoner.viatrasolver.partialinterpretation2logic.InstanceModel2Logic; | ||
22 | import hu.bme.mit.inf.dslreasoner.workspace.FileSystemWorkspace; | ||
23 | import java.io.PrintWriter; | ||
24 | import java.util.Map; | ||
25 | import org.eclipse.emf.common.util.EList; | ||
26 | import org.eclipse.emf.common.util.URI; | ||
27 | import org.eclipse.emf.ecore.EObject; | ||
28 | import org.eclipse.emf.ecore.resource.Resource; | ||
29 | import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; | ||
30 | import org.eclipse.xtend2.lib.StringConcatenation; | ||
31 | import org.eclipse.xtext.xbase.lib.Exceptions; | ||
32 | import org.eclipse.xtext.xbase.lib.InputOutput; | ||
33 | import org.eclipse.xtext.xbase.lib.ObjectExtensions; | ||
34 | import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; | ||
35 | |||
3 | @SuppressWarnings("all") | 36 | @SuppressWarnings("all") |
4 | public class YakinduTest { | 37 | public class YakinduTest { |
5 | public static void main(final String[] args) { | 38 | public static void main(final String[] args) { |
6 | throw new Error("Unresolved compilation problems:" | 39 | try { |
7 | + "\nThe method or field yakinduPackage is undefined" | 40 | final Ecore2Logic ecore2Logic = new Ecore2Logic(); |
8 | + "\neINSTANCE cannot be resolved"); | 41 | final Logic2Ecore logic2Ecore = new Logic2Ecore(ecore2Logic); |
42 | final Viatra2Logic viatra2Logic = new Viatra2Logic(ecore2Logic); | ||
43 | final InstanceModel2Logic instanceModel2Logic = new InstanceModel2Logic(); | ||
44 | StringConcatenation _builder = new StringConcatenation(); | ||
45 | _builder.append("initialModels/"); | ||
46 | final FileSystemWorkspace inputs = new FileSystemWorkspace(_builder.toString(), ""); | ||
47 | StringConcatenation _builder_1 = new StringConcatenation(); | ||
48 | _builder_1.append("output/YakinduTest/"); | ||
49 | final FileSystemWorkspace workspace = new FileSystemWorkspace(_builder_1.toString(), ""); | ||
50 | workspace.initAndClear(); | ||
51 | final Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; | ||
52 | final Map<String, Object> map = reg.getExtensionToFactoryMap(); | ||
53 | XMIResourceFactoryImpl _xMIResourceFactoryImpl = new XMIResourceFactoryImpl(); | ||
54 | map.put("logicproblem", _xMIResourceFactoryImpl); | ||
55 | InputOutput.<String>println("Input and output workspaces are created"); | ||
56 | final EcoreMetamodelDescriptor metamodel = GeneralTest.loadMetamodel(FunctionalarchitecturePackage.eINSTANCE); | ||
57 | final EList<EObject> partialModel = GeneralTest.loadPartialModel(inputs, "FAM/FaModel.xmi"); | ||
58 | final ViatraQuerySetDescriptor queries = GeneralTest.loadQueries(metamodel, FamPatterns.instance()); | ||
59 | InputOutput.<String>println("DSL loaded"); | ||
60 | int MAX = 150; | ||
61 | int START = 10; | ||
62 | int INC = 20; | ||
63 | int REPS = 1; | ||
64 | final int EXACT = (-1); | ||
65 | if ((EXACT != (-1))) { | ||
66 | MAX = EXACT; | ||
67 | START = EXACT; | ||
68 | INC = 1; | ||
69 | REPS = 5; | ||
70 | } | ||
71 | URI _workspaceURI = workspace.getWorkspaceURI(); | ||
72 | String _plus = (_workspaceURI + "//yakinduStats.csv"); | ||
73 | PrintWriter writer = new PrintWriter(_plus); | ||
74 | writer.append("size,"); | ||
75 | for (int x = 0; (x < REPS); x++) { | ||
76 | writer.append((("t" + Integer.valueOf(x)) + ",")); | ||
77 | } | ||
78 | writer.append("avg\n"); | ||
79 | double totalTime = 0.0; | ||
80 | double totFound = 0.0; | ||
81 | boolean modelFound = true; | ||
82 | LogicResult solution = null; | ||
83 | { | ||
84 | int i = START; | ||
85 | boolean _while = (i <= MAX); | ||
86 | while (_while) { | ||
87 | { | ||
88 | final int num = ((i - START) / INC); | ||
89 | InputOutput.<String>print((((("Generation " + Integer.valueOf(num)) + ": SIZE=") + Integer.valueOf(i)) + " Attempt: ")); | ||
90 | String _plus_1 = (Integer.valueOf(i) + ","); | ||
91 | writer.append(_plus_1); | ||
92 | totalTime = 0.0; | ||
93 | totFound = 0.0; | ||
94 | modelFound = true; | ||
95 | for (int j = 0; (j < REPS); j++) { | ||
96 | { | ||
97 | InputOutput.<Integer>print(Integer.valueOf(j)); | ||
98 | Ecore2LogicConfiguration _ecore2LogicConfiguration = new Ecore2LogicConfiguration(); | ||
99 | final TracedOutput<LogicProblem, Ecore2Logic_Trace> modelGenerationProblem = ecore2Logic.transformMetamodel(metamodel, _ecore2LogicConfiguration); | ||
100 | LogicProblem problem = modelGenerationProblem.getOutput(); | ||
101 | problem = instanceModel2Logic.transform(modelGenerationProblem, partialModel).getOutput(); | ||
102 | workspace.writeModel(problem, "Yakindu.logicproblem"); | ||
103 | long startTime = System.currentTimeMillis(); | ||
104 | VampireSolver reasoner = null; | ||
105 | VampireSolver _vampireSolver = new VampireSolver(); | ||
106 | reasoner = _vampireSolver; | ||
107 | final int size = i; | ||
108 | final int inc = INC; | ||
109 | VampireSolverConfiguration _vampireSolverConfiguration = new VampireSolverConfiguration(); | ||
110 | final Procedure1<VampireSolverConfiguration> _function = (VampireSolverConfiguration it) -> { | ||
111 | it.documentationLevel = DocumentationLevel.FULL; | ||
112 | it.typeScopes.minNewElements = (size - inc); | ||
113 | it.typeScopes.maxNewElements = size; | ||
114 | it.contCycleLevel = 5; | ||
115 | it.uniquenessDuplicates = false; | ||
116 | }; | ||
117 | final VampireSolverConfiguration vampireConfig = ObjectExtensions.<VampireSolverConfiguration>operator_doubleArrow(_vampireSolverConfiguration, _function); | ||
118 | solution = reasoner.solve(problem, vampireConfig, workspace); | ||
119 | Object _get = ((ModelResult) solution).getRepresentation().get(0); | ||
120 | final VampireModel soln = ((VampireModel) _get); | ||
121 | int _transformationTime = solution.getStatistics().getTransformationTime(); | ||
122 | final double time = (_transformationTime / 1000.0); | ||
123 | String _plus_2 = (Double.valueOf(time) + ","); | ||
124 | writer.append(_plus_2); | ||
125 | InputOutput.<String>print((("(" + Double.valueOf(time)) + ")..")); | ||
126 | double _talTime = totalTime; | ||
127 | totalTime = (_talTime + time); | ||
128 | double _tFound = totFound; | ||
129 | totFound = (_tFound + 1); | ||
130 | } | ||
131 | } | ||
132 | InputOutput.println(); | ||
133 | double avg = 0.0; | ||
134 | if ((totFound == 0)) { | ||
135 | avg = (-1); | ||
136 | } else { | ||
137 | avg = (totalTime / totFound); | ||
138 | } | ||
139 | writer.append(Double.valueOf(avg).toString()); | ||
140 | writer.append("\n"); | ||
141 | } | ||
142 | int _i = i; | ||
143 | i = (_i + INC); | ||
144 | _while = (i <= MAX); | ||
145 | } | ||
146 | } | ||
147 | writer.close(); | ||
148 | } catch (Throwable _e) { | ||
149 | throw Exceptions.sneakyThrow(_e); | ||
150 | } | ||
9 | } | 151 | } |
10 | } | 152 | } |