@@ -256,14 +256,6 @@ def evaluation_function(response, answer, params, include_test_data=False) -> di
256256 parameters .update ({key : value })
257257 if "criteria" not in parameters .keys ():
258258 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" ]
267259
268260 reserved_expressions_keys = list (reserved_expressions_strings ["learner" ].keys ())+ list (reserved_expressions_strings ["task" ].keys ())
269261 parameters .update (
@@ -301,6 +293,22 @@ def evaluation_function(response, answer, params, include_test_data=False) -> di
301293 return evaluation_result .serialise (include_test_data )
302294 reserved_expressions_parsed = {** reserved_expressions ["learner" ], ** reserved_expressions ["task" ]}
303295
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+
304312 criteria_parser = context ["generate_criteria_parser" ](reserved_expressions )
305313 criteria = create_criteria_dict (criteria_parser , parameters )
306314
0 commit comments