Names and identity test values

Names that break assumptions about what a "normal" name looks like. 12 values, each with what it breaks and what a correct application does instead.

names-identity version 1.0, updated 2026-10-14 CC-BY-4.0

Type them one at a time with AltShiftN in the palette, or take them all into a script with nkb emit names-identity.

Surname Null

names-identity/surname-null
Null Null
  • 4 graphemes
  • 4 code points
  • 4 bytes
  • 4 UTF-16 units
What it breaks
A real surname that every layer treating text loosely turns into an absent value; the record loses its name on save.
What a correct application does
Stored and displayed as a four-letter surname, distinct from an empty field.

Single name only

names-identity/single-name
Suharto Suharto
  • 7 graphemes
  • 7 code points
  • 7 bytes
  • 7 UTF-16 units
What it breaks
People with one name exist; a form requiring both parts cannot represent them at all.
What a correct application does
Accepted with one name filled in, without inventing a placeholder for the other.

Surname with an apostrophe

names-identity/apostrophe-surname
O'Brien O'Brien
  • 7 graphemes
  • 7 code points
  • 7 bytes
  • 7 UTF-16 units
What it breaks
The apostrophe breaks query construction, name splitting and sorting; the most common real surname that breaks forms.
What a correct application does
Stored, displayed, searched and sorted exactly as written.

Two surnames without a hyphen

names-identity/two-surnames
GarcíaMárquez García Márquez
  • 14 graphemes
  • 14 code points
  • 16 bytes
  • 14 UTF-16 units
What it breaks
Two surnames without a hyphen; splitting on the space produces a wrong first name.
What a correct application does
Kept as one surname; splitting, if any, is a deliberate feature rather than a guess.

Surname with lowercase particles

names-identity/particle-prefix
vanderBerg van der Berg
  • 12 graphemes
  • 12 code points
  • 12 bytes
  • 12 UTF-16 units
What it breaks
Lowercase particles break capitalisation, sorting and any rule assuming a surname starts with a capital letter.
What a correct application does
Stored as written; sorting rules stated rather than assumed.

One-letter name

names-identity/single-letter-name
X X
  • 1 grapheme
  • 1 code point
  • 1 byte
  • 1 UTF-16 unit
What it breaks
A one-letter name is legal in several countries and rejected by nearly every minimum-length rule.
What a correct application does
Accepted, or the minimum stated with a reason.

Surname in capitals

names-identity/all-caps-surname
KOWALSKI KOWALSKI
  • 8 graphemes
  • 8 code points
  • 8 bytes
  • 8 UTF-16 units
What it breaks
Names written in capitals, common on documents; auto-capitalisation turns them into something else.
What a correct application does
Stored as entered; automatic capitalisation, if any, is visible and reversible.

Digit in a name

names-identity/digits-in-name
John3 John3
  • 5 graphemes
  • 5 code points
  • 5 bytes
  • 5 UTF-16 units
What it breaks
Digits in a name break validators that allow letters only, and those validators reject legitimate users.
What a correct application does
Accepted, or a stated rule explaining the restriction.

Name of 120 characters

names-identity/very-long-name
120 × a
  • 120 graphemes
  • 120 code points
  • 120 bytes
  • 120 UTF-16 units
What it breaks
Long names hit column limits and layouts sized for a typical name.
What a correct application does
Accepted up to a stated limit and displayed without breaking the layout.

Title typed into the name

names-identity/title-inside
DrJanKowalski Dr Jan Kowalski
  • 15 graphemes
  • 15 code points
  • 15 bytes
  • 15 UTF-16 units
What it breaks
Titles typed into a name field break salutations and duplicate detection.
What a correct application does
Stored as written; the salutation composed without assuming the field contains only a name.

Hyphenated given name

names-identity/hyphen-first-name
Anna-Maria Anna-Maria
  • 10 graphemes
  • 10 code points
  • 10 bytes
  • 10 UTF-16 units
What it breaks
A hyphenated given name splits into two in systems assuming one word per field.
What a correct application does
Kept as one given name.

Surname True

names-identity/surname-true
True True
  • 4 graphemes
  • 4 code points
  • 4 bytes
  • 4 UTF-16 units
What it breaks
The same failure as Null in a different form, and one that also breaks configuration files.
What a correct application does
Stored and displayed as written.