piker/.agents/skills/piker-fsp-expert/test-map.md

2.1 KiB

FSP Test Map

Operator Tests

  • Historical output schema, dtype, units, and source timestamp alignment.
  • Realtime update equivalence with the final row of a batch recomputation.
  • Warm-up, NaN, zero, gap, duplicate, and out-of-order behavior.
  • Session reset and elapsed-time behavior.
  • Parameter and source identity isolation.

Engine Tests

  • Equal absolute source/destination bounds.
  • Normal one-step destination lag.
  • Destination lead and lag greater than one step.
  • Source prepend by one, two, and a full provider frame.
  • In-place gap repair with unchanged source bounds.
  • Equal lengths with shifted absolute bounds.
  • Source change during historical recomputation and convergence afterward.
  • Cancellation while the quote stream, sample stream, or compute generator is blocked.
  • Foreign FQME and timeframe backfill broadcasts.

Graph and Actor Tests

  • Dependency startup before downstream operator lookup.
  • Actor-local flow registry isolation.
  • One destination writer and multiple readers.
  • Consumer cancellation without orphaned cascade or worker tasks.
  • Worker failure propagation and SHM cleanup.
  • Feed-like fan-out with a slow or disconnected consumer.

UI Tests

  • An fsp_update redraws every field visualization sharing its destination token and no unrelated market, OHLC, or FSP visualization.
  • A prepend outside the visible range does not move or re-range the live view.
  • A revised value inside the visible range invalidates only required formatter and graphics caches.
  • Hidden charts defer rendering without stopping compute correctness.

Performance Tests

  • Historical bootstrap across realistic SHM capacities.
  • O(1) realtime recurrence cost under bursty quotes.
  • Consecutive provider-frame prepends with two or more cascades.
  • Multi-market sampler broadcasts and targeted wakeups.
  • Visible-range redraw cost at several units-per-pixel levels.

Prefer deterministic local arrays and controlled Trio task interleavings. Use live providers only as a separate integration layer because credentials, rate limits, sessions, and changing history make poor regression oracles.