package org.visage.runtime.sequences;
import java.util.*;
/**
*
* @author Michael Heinrichs
*/
public class TestResult {
public static final String FORMAT = "time,";
public static final TestResult EMPTY = new TestResult(0);
private final int time;
public int getTime() {
return time;
}
public TestResult(int time) {
this.time = time;
}
public static TestResult average(TestResult... resultlist) {
int length = resultlist.length;
int sum_time = 0;
for (TestResult cur : resultlist) {
if (!cur.equals(EMPTY))
sum_time += cur.time;
else
length--;
}
if (sum_time == 0 || length == 0)
return EMPTY;
return new TestResult(sum_time /= resultlist.length);
}
@Override
public String toString() {
if (time == 0)
return ",";
else
return Integer.toString(time) + ",";
}
public static List<TestResult> parse(String line, String format) {
List<TestResult> result = new ArrayList<TestResult>();
if (format.equalsIgnoreCase("time,")) {
String[] parts = line.split(",", -1);
for (String s : parts) {
if (s.length() == 0) {
result.add(TestResult.EMPTY);
} else {
result.add(new TestResult(Integer.parseInt(s)));
}
}
}
return result;
}
@Override
public boolean equals(Object obj) {
if (obj == this)
return true;
if (obj instanceof TestResult) {
return ((TestResult)obj).time == this.time;
}
return false;
}
@Override
public int hashCode() {
return time;
}
}