!7 sclass Example { S sentence, converted; } concept Solver { S code, codeHints; long testedWhen; double score; } module ConvertTo3rdPersonSolver > DynCRUD { *() { super(Solver); } afterVisualize { addButton(tableDependentButton(table(), "Test Solver", rThread { testSolver(selected()) })); } void testSolver(Solver solver) enter { F1 f = codeWithHintsToFunctionOnString(solver.code, solver.codeHints); cset(solver, score := 0.0, testedWhen := now()); L examples = shallowCloneListToClass(Example, (L) dm_makeAndCall("#1020639/ConvertTo3rdPersonExamples", 'concepts)); new Scorer scorer; for (Example e : examples) scorer.add(eqic(e.converted, pcallF(f, e.sentence))); cset(solver, score := scorer.score()); } }