static A assertEqualsVerbose(O x, A y) {
assertEqualsVerbose((S) null, x, y);
ret y;
}
static A assertEqualsVerbose(S msg, O x, A y) {
if (!eq(x, y)) {
ifdef assertEqualsVerbose_advancedDiff
if (x instanceof S && y instanceof S && (containsNewLine((S) x) || containsNewLine((S) y)))
nlPrintNL(unidiff((S) x, (S) y));
endifdef
fail((msg != null ? msg + ": " : "") + /*sfu*/(y) + " != " + /*sfu*/(x));
} else
print("OK: " + sfu(x));
ret y;
}
ifclass Scorer
static void assertEqualsVerbose(Scorer scorer, O x, O y) {
if (!eq(x, y)) {
print(sfu(y) + " != " + sfu(x));
scorer.add(false);
} else {
print("OK: " + sfu(x));
scorer.add(true);
}
}
endif