5 checks
Leading-line insertion
Reconstructs both versions and verifies 1 added, 0 removed, 3 unchanged.
Count words, Unicode grapheme characters, sentences, paragraphs, and lines without treating a multi-code-point emoji as several visible characters.
Words
0
Characters
0
No whitespace
0
Sentences
0
Paragraphs
0
Lines
0
Estimated reading time at 200 words/minute: 0 minutes
“Characters” means Unicode grapheme clusters—what people generally perceive as individual characters. Word and sentence boundaries can vary by language; the tool uses the browser’s Intl.Segmenter implementation when available.
The browser’s locale-sensitive segmenter identifies word-like and sentence segments. Punctuation, abbreviations, and language conventions can affect the result.
A character is counted as a Unicode grapheme cluster: a user-perceived unit such as a letter plus combining mark or a joined emoji sequence.
The estimate divides the word count by 200 and rounds up to a whole minute. It is a disclosed planning assumption, not a measurement of an individual reader.
| Metric | Rule used here | Important boundary |
|---|---|---|
| Words | Intl.Segmenter word-like segments | Locale-sensitive; not whitespace splitting |
| Characters | Unicode grapheme clusters | May contain several code points or UTF-16 code units |
| No whitespace | Grapheme clusters except whitespace-only clusters | Punctuation and emoji remain included |
| Sentences | Intl.Segmenter sentence segments | Abbreviations and language conventions can vary |
| Paragraphs | Non-empty blocks separated by blank lines | A single newline changes the line count, not the paragraph count |
| Lines | Line-feed boundaries after normalizing CRLF and CR | An empty input has zero lines |
Controlled benchmark · September 15, 2026
Five owned fixtures exercise line alignment, Unicode-aware counting, separator placement, and the output-size guard. Every expected value and round-trip reconstruction matched.
5 checks
Reconstructs both versions and verifies 1 added, 0 removed, 3 unchanged.
5 checks
Reconstructs both versions and verifies 1 added, 2 removed, 2 unchanged.
6 checks
Checks words, grapheme clusters, non-whitespace graphemes, sentences, paragraphs, and lines.
3 checks
Checks exact output, repeat count, and UTF-8 byte size.
1 check
Verifies oversized repeated output is rejected before the string is constructed.
Boundary: this benchmark verifies these deterministic fixtures in the current JavaScript runtime. It does not prove semantic equivalence, plagiarism detection, identical counts across every locale, or suitability for arbitrarily large documents.
Character, word, and sentence segmentation follows the browser’s Intl.Segmenter behavior when available, which implements locale-sensitive segmentation defined by ECMA-402 and informed by Unicode text-boundary rules.
Compare text differences
Repeat text multiple times
Merge multiple PDF files into one
HELP ANOTHER PERSON SKIP THE UPLOAD