!759 p { O engine = run_overBot("#1002751"); Lisp testCode = snlToTree(loadSnippet("#1002754")); L ops = snlSplitOps(testCode); int score = 0, total = 0; new L memory; for (int i = 0; i < l(ops); i += 2) { Lisp on = ops.get(i); Lisp say = ops.get(i+1); assertEquals("on *", on.head); assertEquals("say *", say.head); S sOn = snlFromTree(on.get(0)); print("> " + sOn); Lisp out = cast restructure(call(engine, "quickrun", memory, sOn)); S sOut = snlFromTree(out); S sSay = snlFromTree(say.get(0)); print("< " + sOut); if (testOut(say.get(0), out)) { print("Hmm!"); print("! " + sSay); print("# " + out); print("# " + say.get(0)); } else { print("OK"); ++score; } ++total; } print("Score: " + score + "/" + total); } static boolean testOut(Lisp say, Lisp out) { if (say.isA("* or *")) ret eq(say.get(0), out) || eq(say.get(1), out); else ret eq(say, out); }