From 60f01f46ba232ed6416054f0a6115cb2a9b70b4e Mon Sep 17 00:00:00 2001 From: OszkarSemerath Date: Sat, 10 Jun 2017 19:05:05 +0200 Subject: Migrating Additional projects --- .../model/statistics/StatisticSections2CSV.xtend | 89 ++++++++++++++++++++++ .../model/statistics/StatisticSections2Print.xtend | 23 ++++++ 2 files changed, 112 insertions(+) create mode 100644 Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2CSV.xtend create mode 100644 Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics/StatisticSections2Print.xtend (limited to 'Framework/hu.bme.mit.inf.dslreasoner.logic.model/src/hu/bme/mit/inf/dslreasoner/logic/model/statistics') 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 @@ +package hu.bme.mit.inf.dslreasoner.logic.model.statistics + +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.Statistics +import java.util.ArrayList +import java.util.HashMap +import java.util.LinkedList +import java.util.List +import java.util.Map + +class StatisticsData { + public var List> inputConfiguration + public var List> outputMetrics + public var Statistics solverStatistics +} + +class StatisticSections2CSV { + static val separator = ';' + static val empty = "" + + private def getValue(Map map,String key) { + if(map.containsKey(key)) return map.get(key) + else return empty + } + private def addKey(List list, String newValue) { + if(! list.contains(newValue)) list+=newValue + } + + public def CharSequence transformStatisticDatas2CSV( + List statistics) + { + val inputConfigurationColumns = new LinkedList + val inputConfigurationValues = new ArrayList(statistics.length) + val solverStatisticColumns = new LinkedList + val solverStatisticValues = new ArrayList(statistics.length) + val outputMetricColumns = new LinkedList + val outputMetricValues = new ArrayList(statistics.length) + + statistics.map[inputConfiguration].indexColumnsForPairs(inputConfigurationColumns, inputConfigurationValues) + statistics.map[it.solverStatistics].indexColumnsForEntries(solverStatisticColumns, solverStatisticValues) + statistics.map[outputMetrics].indexColumnsForPairs(outputMetricColumns,outputMetricValues) + + return ''' + ID« // Header + IF inputConfigurationColumns.length>0»«separator»«FOR name : inputConfigurationColumns SEPARATOR separator»«name»«ENDFOR»«ENDIF»« + separator»Transformation_Time«separator»Solver_Time«separator»Solver_Memory« + IF solverStatisticColumns.length>0»«separator»«ENDIF»« + FOR name:solverStatisticColumns SEPARATOR separator»«name»«ENDFOR»« + IF outputMetricColumns.length>0»«separator»«ENDIF»« + FOR name:outputMetricColumns SEPARATOR separator»«name»«ENDFOR» + « // Table + FOR index : 0..0»«separator»«ENDIF»« + FOR name : inputConfigurationColumns SEPARATOR separator»«inputConfigurationValues.get(index).getValue(name)»«ENDFOR»« + separator»«statistics.get(index).solverStatistics.transformationTime»« + separator»«statistics.get(index).solverStatistics.solverTime»« + separator»«statistics.get(index).solverStatistics.solverMemory»« + IF solverStatisticColumns.size>0»«separator»«ENDIF»« + FOR name:solverStatisticColumns SEPARATOR separator»«solverStatisticValues.get(index).getValue(name)»«ENDFOR»« + IF outputMetricColumns.size>0»«separator»«ENDIF»« + FOR name:outputMetricColumns SEPARATOR separator»«outputMetricValues.get(index).getValue(name)»«ENDFOR» + «ENDFOR»''' + } + + def private indexColumnsForPairs(List>> datas, List columns, List> values) { + for(inputConfiguration : datas) { + val map = new HashMap + for(entry : inputConfiguration) { + columns.addKey(entry.key) + map.put(entry.key,entry.value) + } + values+=map + } + } + def private indexColumnsForEntries(List datas, List columns, List> values) { + for(inputConfiguration : datas) { + val map = new HashMap + for(entry : inputConfiguration.entries) { + columns.addKey(entry.name) + map.put(entry.name,entry.readValue) + } + values+=map + } + } + private def dispatch String readValue(IntStatisticEntry e) { return e.value.toString } + private def dispatch String readValue(RealStatisticEntry e){ return e.value.toString } +} \ 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 @@ +package hu.bme.mit.inf.dslreasoner.logic.model.statistics + +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.IntStatisticEntry +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.RealStatisticEntry +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StatisticEntry +import hu.bme.mit.inf.dslreasoner.logic.model.logicresult.StringStatisticEntry +import java.util.List + +class StatisticSections2Print { + public def CharSequence transformStatisticDatas2CSV( + List statistics) + { + var result = ""; + for(statistic : statistics) { + result+= '''«statistic.readValue»;''' + } + return result + } + + private def dispatch String readValue(IntStatisticEntry e) { return e.value.toString } + private def dispatch String readValue(RealStatisticEntry e){ return e.value.toString } + private def dispatch String readValue(StringStatisticEntry e) { return "\n" + e.value } +} \ No newline at end of file -- cgit v1.2.3-54-g00ecf