package test.java.integration.helpers; import java.io.*; import java.util.HashMap; import java.util.Map; public class ObjectsResultsParser { Map <String, Map<String, Double>> resultsObjects; double avgAbsoluteEstimationError; double avgRelativeEstimationError; public ObjectsResultsParser() { this.resultsObjects = new HashMap<String, Map<String,Double>>(); this.avgAbsoluteEstimationError = 0.0; this.avgRelativeEstimationError = 0.0; } public void ParseResultsObjectsFile(String filePath) throws UnsupportedEncodingException { FileInputStream fstream = null; try { fstream = new FileInputStream(filePath); } catch (FileNotFoundException e) { e.printStackTrace(); } DataInputStream in = new DataInputStream(fstream); BufferedReader br = new BufferedReader(new InputStreamReader(in, "UTF-8")); String line; try { while ((line = br.readLine()) != null) { String[] entries = line.split("\t"); if (entries.length != 6) { if (line.contains("Average absolute estimation error for z-values:")) { double val = Double.parseDouble(line.split(":")[1].trim()); this.avgAbsoluteEstimationError = val; } if (line.contains("Average relative estimation error for z-values:")) { double val = Double.parseDouble(line.split(":")[1].trim()); this.avgRelativeEstimationError = val; } } else { String objectName = entries[0]; Map<String,Double> estimatedObjectValues = new HashMap<String,Double>(); estimatedObjectValues.put("avgLabel", Double.parseDouble(entries[1])); estimatedObjectValues.put("estValue", Double.parseDouble(entries[2])); estimatedObjectValues.put("estZeta", Double.parseDouble(entries[3])); estimatedObjectValues.put("trueValue", Double.parseDouble(entries[4])); estimatedObjectValues.put("trueZeta", Double.parseDouble(entries[5])); resultsObjects.put(objectName, estimatedObjectValues); } } } catch (IOException e) { e.printStackTrace(); } try { br.close(); } catch (IOException e) { e.printStackTrace(); } } public Map <String, Map<String, Double>> getEstimatedObjectValues(){ return this.resultsObjects; } }