aboutsummaryrefslogtreecommitdiffstats
path: root/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics
diff options
context:
space:
mode:
authorLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
committerLibravatar OszkarSemerath <oszka@152.66.252.189>2017-06-10 19:05:05 +0200
commit60f01f46ba232ed6416054f0a6115cb2a9b70b4e (patch)
tree5edf8aeb07abc51f3fec63bbd15c926e1de09552 /Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics
parentInitial commit, migrating from SVN (diff)
downloadVIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.gz
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.tar.zst
VIATRA-Generator-60f01f46ba232ed6416054f0a6115cb2a9b70b4e.zip
Migrating Additional projects
Diffstat (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics')
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend89
-rw-r--r--Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend23
2 files changed, 112 insertions, 0 deletions
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend
new file mode 100644
index 00000000..442de6d9
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend
@@ -0,0 +1,89 @@
1package hu.bme.mit.inf.dslreasoner.logic.model.statistics
2
3import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry
4import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry
5import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics
6import java.util.ArrayList
7import java.util.HashMap
8import java.util.LinkedList
9import java.util.List
10import java.util.Map
11
12class StatisticsData {
13 public var List<Pair<String,String>> inputConfiguration
14 public var List<Pair<String,String>> outputMetrics
15 public var Statistics solverStatistics
16}
17
18class StatisticSections2CSV {
19 static val separator = ';'
20 static val empty = ""
21
22 private def getValue(Map<String, String> map,String key) {
23 if(map.containsKey(key)) return map.get(key)
24 else return empty
25 }
26 private def addKey(List<String> list, String newValue) {
27 if(! list.contains(newValue)) list+=newValue
28 }
29
30 public def CharSequence transformStatisticDatas2CSV(
31 List<StatisticsData> statistics)
32 {
33 val inputConfigurationColumns = new LinkedList
34 val inputConfigurationValues = new ArrayList(statistics.length)
35 val solverStatisticColumns = new LinkedList
36 val solverStatisticValues = new ArrayList(statistics.length)
37 val outputMetricColumns = new LinkedList
38 val outputMetricValues = new ArrayList(statistics.length)
39
40 statistics.map[inputConfiguration].indexColumnsForPairs(inputConfigurationColumns, inputConfigurationValues)
41 statistics.map[it.solverStatistics].indexColumnsForEntries(solverStatisticColumns, solverStatisticValues)
42 statistics.map[outputMetrics].indexColumnsForPairs(outputMetricColumns,outputMetricValues)
43
44 return '''
45 ID« // Header
46 IF inputConfigurationColumns.length>0»«separator»«FOR name : inputConfigurationColumns SEPARATOR separator»«name»«ENDFOR»«ENDIF»«
47 separator»Transformation_Time«separator»Solver_Time«separator»Solver_Memory«
48 IF solverStatisticColumns.length>0»«separator»«ENDIF»«
49 FOR name:solverStatisticColumns SEPARATOR separator»«name»«ENDFOR»«
50 IF outputMetricColumns.length>0»«separator»«ENDIF»«
51 FOR name:outputMetricColumns SEPARATOR separator»«name»«ENDFOR»
52 « // Table
53 FOR index : 0..<statistics.size»
54 «index+1 /*ID*/»«
55 IF inputConfigurationColumns.size>0»«separator»«ENDIF»«
56 FOR name : inputConfigurationColumns SEPARATOR separator»«inputConfigurationValues.get(index).getValue(name)»«ENDFOR»«
57 separator»«statistics.get(index).solverStatistics.transformationTime»«
58 separator»«statistics.get(index).solverStatistics.solverTime»«
59 separator»«statistics.get(index).solverStatistics.solverMemory»«
60 IF solverStatisticColumns.size>0»«separator»«ENDIF»«
61 FOR name:solverStatisticColumns SEPARATOR separator»«solverStatisticValues.get(index).getValue(name)»«ENDFOR»«
62 IF outputMetricColumns.size>0»«separator»«ENDIF»«
63 FOR name:outputMetricColumns SEPARATOR separator»«outputMetricValues.get(index).getValue(name)»«ENDFOR»
64 «ENDFOR»'''
65 }
66
67 def private indexColumnsForPairs(List<List<Pair<String, String>>> datas, List<String> columns, List<Map<String, String>> values) {
68 for(inputConfiguration : datas) {
69 val map = new HashMap
70 for(entry : inputConfiguration) {
71 columns.addKey(entry.key)
72 map.put(entry.key,entry.value)
73 }
74 values+=map
75 }
76 }
77 def private indexColumnsForEntries(List<Statistics> datas, List<String> columns, List<Map<String, String>> values) {
78 for(inputConfiguration : datas) {
79 val map = new HashMap
80 for(entry : inputConfiguration.entries) {
81 columns.addKey(entry.name)
82 map.put(entry.name,entry.readValue)
83 }
84 values+=map
85 }
86 }
87 private def dispatch String readValue(IntStatisticEntry e) { return e.value.toString }
88 private def dispatch String readValue(RealStatisticEntry e){ return e.value.toString }
89} \ No newline at end of file
diff --git a/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend
new file mode 100644
index 00000000..08efa811
--- /dev/null
+++ b/Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend
@@ -0,0 +1,23 @@
1package hu.bme.mit.inf.dslreasoner.logic.model.statistics
2
3import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry
4import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry
5import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StatisticEntry
6import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry
7import java.util.List
8
9class StatisticSections2Print {
10 public def CharSequence transformStatisticDatas2CSV(
11 List<StatisticEntry> statistics)
12 {
13 var result = "";
14 for(statistic : statistics) {
15 result+= '''«statistic.readValue»;'''
16 }
17 return result
18 }
19
20 private def dispatch String readValue(IntStatisticEntry e) { return e.value.toString }
21 private def dispatch String readValue(RealStatisticEntry e){ return e.value.toString }
22 private def dispatch String readValue(StringStatisticEntry e) { return "\n" + e.value }
23} \ No newline at end of file