package eu.project.ttc.eval;
import java.util.List;
import java.util.stream.Stream;
import org.assertj.core.util.Lists;
import com.google.common.base.MoreObjects;
public class RunTrace {
private List<AlignmentRecord> records = Lists.newArrayList();
public boolean newTry(AlignmentRecord e) {
return records.add(e);
}
public double getPrecision() {
if(records.isEmpty())
return 0;
else {
return (double)successResults().count()/validResults().count();
}
}
public Stream<AlignmentRecord> validResults() {
return records.stream().filter(e -> e.isValid());
}
public Stream<AlignmentRecord> invalidResults() {
return records.stream().filter(e -> !e.isValid());
}
public Stream<AlignmentRecord> successResults() {
return validResults().filter(e->e.isSuccess());
}
public Stream<AlignmentRecord> failedResults() {
return validResults().filter(e->!e.isSuccess());
}
public Stream<AlignmentRecord> tries() {
return records.stream();
}
}