static Scorer dm_gazelle_checkPredictor(F2, S> predictor, O... _) { bool verbose = boolPar verbose(_); S ruleID = optPar ruleID(_); new Map> statementsByRule; new Scorer scorer; for (dm_gazelle_appliedRulesForLearning_Entry e : dm_gazelle_appliedRulesForLearning_withoutChangedRules()) { if (ruleID != null && neq(e.ruleID, ruleID)) continue; Set set = getOrCreateTreeSet(statementsByRule, e.ruleID); if (nempty(set)) { if (verbose) print("Have " + n2(set, "statement")); ai_gazelle_analyzeStatementsForRule_Data data = ai_gazelle_analyzeStatementsForRule(set); S guess = "good"; if (containsAny(keys(e.r.map), data.varsUsedInBadOnly)) guess = "bad"; scorer.add(eq(guess, e.judgement)); if (verbose) print(" " + guess + "/" + e.judgement + ": " + e.r.map); } LS statements = ai_gazelle_statementsFromAppliedRule(e.r, e.judgement); set.addAll(statements); } ret scorer; }