package cz.agents.agentpolis.tools.geovisio.spy.darptestbed; import java.io.File; import java.io.FileWriter; import java.io.FilenameFilter; import java.io.IOException; import java.util.Collections; import java.util.Comparator; import java.util.List; import org.apache.commons.io.FileUtils; import au.com.bytecode.opencsv.CSVWriter; import com.google.common.collect.Lists; public class ResultParser { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { CSVWriter csvWriter = new CSVWriter(new FileWriter(new File("merge_result.csv"))); String[] header = new String[] { "Exp. number", "Request number", "Driver number", "Uni. dist driver", "Uni. dist, passenger", "Average passenger travel time (on-board) is", "Max passenger travel time (on-board) is", "Median passenger travel time (on-board) is", "Average passenger ride time (on-board) is", "Max passenger ride time (on-board) is", "Median passenger ride time (on-board) is", "Average passenger wait time is", "Max passenger wait time is", "Median passenger wait time is", "Total vehicle distance driven (in kilometers)", "Total values of CO2 [gram]", "Total values of CO [gram]", "Total values of NOx [gram]", "Total values of PM10 [gram]", "Total values of SOx [gram]", "Total values of [Liter] fuel" }; csvWriter.writeNext(header); File resultsFile = new File("results"); List<File> files = Lists.newArrayList(resultsFile.listFiles()); Collections.sort(files, new Comparator<File>() { @Override public int compare(File o1, File o2) { return Integer.valueOf(o1.getName()) - Integer.valueOf(o2.getName()); } }); for (File result : files) { String[] line = new String[header.length]; line[0] = result.getName(); File[] resultDataFiles = result.listFiles(new FilenameFilter() { @Override public boolean accept(File arg0, String arg1) { return arg1.indexOf("result_testbed_san_francisco") != -1; } }); if (resultDataFiles == null || resultDataFiles.length == 0) { continue; } File resultDataFile = resultDataFiles[0]; String[] simConfig = resultDataFile.getName().split("_"); line[1] = simConfig[5].replace("r", "").trim(); line[2] = simConfig[6].replace("d", "").trim(); line[3] = simConfig[7].replace("DU", "").trim(); line[4] = simConfig[8].replace("PU", "").replace(".txt", "").trim(); List<String> factors = FileUtils.readLines(resultDataFile).subList(1, 17); int ind = 5; for (String factor : factors) { line[ind++] = factor.substring(factor.indexOf(":") + 1, factor.length()).trim(); } csvWriter.writeNext(line); } csvWriter.close(); } }