gradeTyping function

TypingMetrics gradeTyping({
  1. required String reference,
  2. required String input,
  3. required TypingGradingPolicy policy,
  4. required Duration activeElapsed,
})

Grades committed text after applying one immutable comparison policy.

Throws ArgumentError when activeElapsed is negative or policy preparation leaves the reference empty.

Implementation

TypingMetrics gradeTyping({
  required String reference,
  required String input,
  required TypingGradingPolicy policy,
  required Duration activeElapsed,
}) {
  final comparison = compareNormalizedGraphemes(
    reference: policy.prepareForComparison(reference),
    input: policy.prepareForComparison(input),
  );
  return calculateTypingMetrics(
    comparison: comparison,
    activeElapsed: activeElapsed,
  );
}