unicode_typing_grader library

Unicode-aware primitives for comparing and grading typed text.

Classes

ActiveTypingTimer
Measures active typing time from a monotonic duration source.
TypingComparison
An immutable NFC-normalized, grapheme-level comparison snapshot.
TypingEdit
Locates one minimum edit needed to turn the reference into the input.
TypingGradingPolicy
A serializable policy for the unicode-typing-grader.v1 contract.
TypingMetrics
Reproducible typing measurements and their raw calculation inputs.

Enums

TypingEditKind
The operation represented by a grapheme-level edit.
TypingPunctuationPolicy
Controls how sentence-ending punctuation is prepared before comparison.
TypingWhitespacePolicy
Controls how whitespace is prepared before text comparison.

Functions

calculateTypingMetrics({required TypingComparison comparison, required Duration activeElapsed}) → TypingMetrics
Calculates accuracy and gross CPM from a prepared grapheme comparison.
compareNormalizedGraphemes({required String reference, required String input}) → TypingComparison
Compares NFC text by extended grapheme cluster instead of UTF-16 code unit.
gradeTyping({required String reference, required String input, required TypingGradingPolicy policy, required Duration activeElapsed}) → TypingMetrics
Grades committed text after applying one immutable comparison policy.