static void ctxTestIO(S input, S regexp) { ctxTestIO("", input, regexp); } static void ctxTestIO(S prelude, S input, S regexp) { S desc = prelude + input + " -> " + regexp; regexp = ctxREToJavaRE(trim(multiSpacesToSingle(regexp))); print("\nTesting: " + desc); try { ctxContext().rulesFired.clear(); ctxClearOutput(); ctxProcessInput(input); ctxProcessRules(); ctxDefaultOnEmptyOutput(); S output = ctxDropEmotions(ctxGetOutput()); bool ok = regexpIC(regexp, output).find(); desc += " | " + struct(output) + " " + sfu(ctxContext().rulesFired); addTestResultVerbose(desc, ok); } catch e { addTestResult(desc, e); } }