# Filter

**Test family:** `FLT`

- **FLT-001** Each operator works at below/equal/above boundaries: equals/not, contains, range, before/after, is empty/not.
- **FLT-002** Missing/null/empty/zero/false are not conflated.
- **FLT-003** Multiple filters implement visible AND/OR grouping and precedence.
- **FLT-004** Add/remove/clear one/clear all; chip, control, URL, count, and results remain synchronized.
- **FLT-005** Filter across time zone, locale, enum changes, archived values, inaccessible references, and deleted options.
- **FLT-006** Saved/shared filters preserve schema/version and handle renamed/deleted fields.
- **FLT-007** Zero-result state retains filters and explains recovery; export/bulk action uses same population.

## Comprehensive per-item coverage

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