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