# Sort

**Test family:** `SRT`

- **SRT-001** Ascending/descending for text, normalized text, number, money, date/time, enum/business order, and boolean.
- **SRT-002** Null/empty/unknown values have a stable documented position.
- **SRT-003** Ties use deterministic secondary order so pagination does not duplicate/skip.
- **SRT-004** Locale/collation and case/diacritic behavior are consistent with displayed language.
- **SRT-005** Server and client sorting agree for large/virtualized/paginated sets.
- **SRT-006** Sort state survives/reset on navigation, filter, column hide, and shared URL intentionally.

## Comprehensive per-item coverage

- **SRT-007** Exercise absent, empty, ordinary, duplicate, boundary-size, over-limit, malformed, stale, and unknown values.
- **SRT-008** Use ASCII emoticons, emoji/ZWJ sequences, kaomoji, accents, mixed scripts, RTL, combining marks, confusables, and invisible characters in every textual value.
- **SRT-009** Use whitespace, tabs, newlines, delimiters, wildcards, operators, quotes, escapes, slashes, and encoded separators; parse only where the contract says.
- **SRT-010** Use inert markup, script, SQL, template, command, path, CSV-formula, header, and log-forging canaries; keep them data in every output context.
- **SRT-011** Compare UI, query string, path, JSON, form, import, API, database, cache, search index, analytics, and export representations.
- **SRT-012** Test case sensitivity, locale collation, normalization, stemming, tokenization, exact match, fuzzy match, and natural versus lexical ordering where relevant.
- **SRT-013** Create exact, case-variant, normalization-equivalent, and concurrently submitted duplicates; enforce explicit uniqueness atomically.
- **SRT-014** Change the underlying data while a query, filter, sort, grouping, or page is active; avoid omissions, duplicates, and stale totals.
- **SRT-015** Use owner, collaborator, restricted role, removed member, anonymous user, and another tenant; prevent hidden values from affecting visible counts or timing.
- **SRT-016** Deep-link, bookmark, share, refresh, duplicate the tab, navigate back/forward, and restore state; encode exactly once and reject tampering.
- **SRT-017** Import, export, copy, paste, bulk edit, migrate, and sync values; preserve identity and unknown/new values safely.
- **SRT-018** Retry after timeout, repeat the request, and operate offline/reconnected; avoid duplicate creation and silent state loss.
- **SRT-019** Use two sessions to edit definitions and applied state concurrently; expose conflicts and version decisions.
- **SRT-020** Delete, archive, restore, rename, merge, and reuse values; update references, URLs, caches, saved views, and audit coherently.
- **SRT-021** Verify keyboard operation, screen-reader labels/state/results, focus, error association, live announcements, and non-color distinctions.
- **SRT-022** Test narrow screens, zoom/reflow, long translations, RTL layout, locale changes, and unsupported glyph fonts.
- **SRT-023** Measure query, update, render, index, import, and export latency for empty, ordinary, and supported maximum datasets.
- **SRT-024** Cap expensive expressions, wildcards, nesting, fan-out, and user-controlled queries; cancel safely and protect shared capacity.
- **SRT-025** Log actor, query/definition version, target scope, old/new value, outcome, and correlation ID while redacting sensitive criteria.
- **SRT-026** Recover from partial index, cache, replica, or migration failure; detect divergence and provide reconciliation.

[Back to Search, filter, sort, group, and structured values index](../../find-organize.md)
