@@ -256,14 +256,6 @@ def evaluation_function(response, answer, params, include_test_data=False) -> di
256
256
parameters .update ({key : value })
257
257
if "criteria" not in parameters .keys ():
258
258
parameters .update ({"criteria" : "," .join (context ["default_criteria" ])})
259
- try :
260
- preview = context ["expression_preview" ](response , deepcopy (parameters ))["preview" ]
261
- except Exception :
262
- evaluation_result .latex = response
263
- evaluation_result .simplified = response
264
- else :
265
- evaluation_result .latex = preview ["latex" ]
266
- evaluation_result .simplified = preview ["sympy" ]
267
259
268
260
reserved_expressions_keys = list (reserved_expressions_strings ["learner" ].keys ())+ list (reserved_expressions_strings ["task" ].keys ())
269
261
parameters .update (
@@ -301,6 +293,22 @@ def evaluation_function(response, answer, params, include_test_data=False) -> di
301
293
return evaluation_result .serialise (include_test_data )
302
294
reserved_expressions_parsed = {** reserved_expressions ["learner" ], ** reserved_expressions ["task" ]}
303
295
296
+ try :
297
+ preview = context ["expression_preview" ](response , deepcopy (parameters ))["preview" ]
298
+ except Exception :
299
+ evaluation_result .latex = response
300
+ evaluation_result .simplified = response
301
+ else :
302
+ evaluation_result .latex = preview ["latex" ]
303
+ parsed_response = reserved_expressions ["learner" ]["response" ]
304
+ if isinstance (parsed_response , list ) or isinstance (parsed_response , set ):
305
+ evaluation_result .simplified = ", " .join ([str (ex .simplify ()) for ex in parsed_response ])
306
+ else :
307
+ try :
308
+ evaluation_result .simplified = str (parsed_response .simplify ())
309
+ except Exception :
310
+ evaluation_result .simplified = response
311
+
304
312
criteria_parser = context ["generate_criteria_parser" ](reserved_expressions )
305
313
criteria = create_criteria_dict (criteria_parser , parameters )
306
314
0 commit comments