calculateResultWithExistingMatrix method

  1. @override
Future<List<SawResult>> calculateResultWithExistingMatrix({
  1. required List<SawMatrix> matrix,
})
override

========================================================================== RESULT WITH CRITERIA

Implementation

@override
Future<List<SawResult>> calculateResultWithExistingMatrix({
  required List<SawMatrix> matrix,
}) async {
  startPerformanceProfiling('Calculate result with existing matrix');
  try {
    if (matrix.isEmpty) {
      throw Exception("Matrix cannot be empty!");
    }

    await _validateMaxInputValue(matrix);

    final validatedMatrix = _validateAndFixMatrix(matrix);

    final normalizedMatrix = await _normalizeMatrix(validatedMatrix);
    final sawResult = await _calculateSawScore(normalizedMatrix);

    return sawResult;
  } catch (e) {
    rethrow;
  } finally {
    endPerformanceProfiling('Calculate result with existing matrix');
  }
}