sS ai_verifyDetector(IPred detector, S posLines, S negLines) { LS posExamples = tlft(posLines); LS negExamples = tlft(negLines); LPair examples = trueFalseBPairs(posExamples, negExamples); new LS good; new LS bad; new Scorer scorer; long time = sysNow(); for (Pair example : examples) { bool result = detector.get(example.a); bool ok = result == example.b; scorer.add(ok); S line = (ok ? "OK" : example.b ? "False negative" : "False positive") + ": " + example.a; (ok ? good : bad).add(line); } time = sysNow()-time; ret "Score for detector: " + scorer + "\n" + n2(good, "correct answer") + ", " + n2(bad, "bad answer") + ". Runtime: " + n2(time) + " ms\n\n" + or2(trim(lines(concatLists(bad, ll(""), good))), "No errors"); }