// A = parameter type
srecord noeq AIC_EvaluateParameter(
S parameterName,
Cl parameterValues,
IVF2 applyParameter) {
new AICDemo demo;
new Map scores;
new LL tokenByToken;
run {
fOr (param : parameterValues) {
demo.adapt = aic -> applyParameter.get(param, aic);
int l = l(demo.compress());
tokenByToken.add(demo.tokenByToken);
printVars(+param, +l, escapeWordsUsed := demo.aicComp.escapeWordsUsed);
demo.decompress();
if (!demo.decompressedOK)
fail(parameterName + "=" + param + " breaks the algorithm");
scores.put(param, l);
}
printScores();
}
void printScores {
pnl(mapSortedByValue(scores));
}
}