package edu.usc.enl.dynamicmeasurement.metric.hhhmonitors;
import edu.usc.enl.dynamicmeasurement.algorithms.tasks.hhh.flow.singleswitch.FalseHHHFinder;
import edu.usc.enl.dynamicmeasurement.model.WildcardPattern;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
/**
* Created with IntelliJ IDEA.
* User: masoud
* Date: 8/12/13
* Time: 11:44 AM
*/
public class FalseFringeHHHNum extends HHHMonitorMetric {
protected FalseHHHFinder falseHHHFinder;
public FalseFringeHHHNum(FalseHHHFinder falseHHHFinder) {
this.falseHHHFinder = falseHHHFinder;
}
@Override
public Double compute(List<WildcardPattern> realHhhs, List<WildcardPattern> reportedHHH, List<WildcardPattern> monitors) {
List<WildcardPattern> falseHHHs = falseHHHFinder.getLastFalseHHHs();
Set<WildcardPattern> monitorsSet = new HashSet<>(monitors);
double falseFringeHHHsWeight = 0;
int count = 0;
for (WildcardPattern falseHHH : falseHHHs) {
if (monitorsSet.contains(falseHHH)) {
count++;
}
}
return Double.valueOf(count);
}
@Override
public String toString() {
return "FalseFringeHHHNum";
}
}