evaluate method
Future<DartBlockEvaluation>
evaluate(
- DartBlockProgram solutionCore,
- DartBlockProgram answerCore
override
Implementation
@override
Future<DartBlockEvaluation> evaluate(
DartBlockProgram solutionCore,
DartBlockProgram answerCore,
) async {
final List<FunctionDefinition> correctFunctionDefinitions = [];
final List<FunctionDefinition> missingFunctionDefinitions = [];
final List<(FunctionDefinition, FunctionDefinition)>
wrongFunctionDefinitions = [];
for (final functionDefinition in functionDefinitions) {
final answerFunctionDefinition = answerCore.customFunctions
.firstWhereOrNull(
(element) =>
element.getAsFunctionDefinition().name ==
functionDefinition.name,
)
?.getAsFunctionDefinition();
if (answerFunctionDefinition != null) {
if (answerFunctionDefinition == functionDefinition) {
correctFunctionDefinitions.add(functionDefinition);
} else {
wrongFunctionDefinitions.add((
functionDefinition,
answerFunctionDefinition,
));
}
} else {
missingFunctionDefinitions.add(functionDefinition);
}
}
return DartBlockFunctionDefinitionEvaluation.init(
correctFunctionDefinitions,
missingFunctionDefinitions,
wrongFunctionDefinitions,
);
}