acdream/tests/AcDream.App.Tests/UI
Erik 200f19ce47 test(app): put every strict-zero site on the probe (#250)
The first commit converted the four members the issue named and left the other
sites alone, reasoning that none had been observed failing. A 20-run
complete-solution baseline disproved that within minutes:

  run  2  LiveEntityRuntimeTests.AnimationView_HotSpatialTraversal…
  run 14  StaticRenderProjectionJournalTests.ActiveAnimatedSynchronization…
  run 18  StaticRenderProjectionJournalTests.ActiveAnimatedSynchronization…
  run 19  CurrentRenderSceneOracleTests.SurfaceOverrideFingerprint…

Both new names are the same shape as the four — one warm call, then a
thousand-iteration loop inside the measured window — and neither had been
recorded anywhere. "Not observed failing" only ever meant "not yet observed",
and leaving known-shape sites in place would have guaranteed the acceptance gate
failed. Run 19 is the sharper lesson: the issue named
`SurfaceOverrideFingerprint_DictionaryHotPathAllocatesNothing`, and the first
commit converted a *different* test in that same file, so the actually-named
member was still on the old shape. Matching by file was not matching by test.

Every strict-zero site in the assembly is now on the probe — ten tests. Two came
out stricter rather than merely steadier:

`StaticRenderProjectionJournalTests` was measuring a synchronise whose journal
does **not** coalesce. Repeating it grew the journal by 1,000 entries per call —
192,000 by the end of a probe run — so the steady state the test claimed to
measure did not exist and the single-call window had been hiding it. Its step is
now the whole frame cycle, synchronise *and* drain, which puts `DrainTo` inside
the measured window for the first time and asserts the journal ends empty.

`RetailInboundEventDispatcherTests` asserted a hard-coded 1,001 callbacks. It
now counts its own dispatches and pins the callback count against that, so the
assertion still proves the fast path ran the callback every time without being
coupled to a loop bound that no longer exists.

Left alone deliberately: the four sites asserting a tolerance rather than zero —
`CellViewDedupTests` and `PortalProjectionTests`. Their ceilings already absorb
this noise and none has flaked; changing a bound in either direction is a
separate decision from fixing a measurement. Worth noting that
`PortalProjectionTests`' ceiling exists explicitly to tolerate "a
tiered-JIT/ArrayPool bookkeeping transition ... to the first measured batch",
which is exactly what the probe removes, so it could probably be tightened to
zero now — recorded in the issue rather than done here.

Solution build 0 warnings / 0 errors; App suite 3,941 passed / 3 skipped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 03:49:13 +02:00
..
Layout test(app): put every strict-zero site on the probe (#250) 2026-07-29 03:49:13 +02:00
AutoWieldGenerationTests.cs feat(net): port retail physics spawn and event timestamps 2026-07-14 00:22:17 +02:00
ClientCommandControllerTests.cs feat(chat): port retail client command families 2026-07-13 14:50:15 +02:00
ControlsIniTests.cs feat(D.2b): controls.ini stylesheet loader + apply title color 2026-06-14 17:31:55 +02:00
CursorFeedbackControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DatWidgetFactoryZOrderTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
DragDropSpineTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
GameplayConfirmationControllerTests.cs refactor(net): converge live session state reset 2026-07-21 12:00:48 +02:00
IconComposerTests.cs fix(D.5.2): effect tint = per-pixel tile copy (surface ReplaceColor overload) 2026-06-18 10:21:33 +02:00
ItemInteractionControllerTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
LayoutImporterMountTests.cs feat(ui): D.2b-B — sub-window mount (inheritor attaches base subtree) 2026-06-20 22:36:20 +02:00
MarkupDocumentTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
PortalWaitNoticeControllerTests.cs perf(streaming): reserve destination reveal capacity 2026-07-24 19:39:23 +02:00
RetailCursorCatalogTests.cs fix(ui): port retail window control feedback 2026-07-17 09:40:08 +02:00
RetailCursorManagerTests.cs feat(ui): complete retail cursor state machine 2026-07-11 08:31:40 +02:00
RetailItemConfirmationControllerTests.cs refactor(runtime): own interaction transactions 2026-07-26 11:13:09 +02:00
RetailSkillTrainingConfirmationControllerTests.cs fix(ui): restore retail skill training confirmation 2026-07-13 17:57:29 +02:00
RetailUiAutomationProbeTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailUiInteractionFlowTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
RetailUiRuntimeLeaseTests.cs refactor(lifetime): own render resource prefixes 2026-07-22 14:42:14 +02:00
RetailWindowLayoutPersistenceTests.cs fix(ui): restore modern spell formula presentation 2026-07-24 07:08:47 +02:00
RetailWindowManagerTests.cs fix(ui): port retail window control feedback 2026-07-17 09:40:08 +02:00
RetainedPanelControllerGroupTests.cs refactor(ui): own retained controller lifetimes 2026-07-10 23:35:26 +02:00
RetainedUiInputBindingTests.cs refactor(input): own pointer and callback lifetime 2026-07-22 11:59:33 +02:00
UiButtonStateMachineTests.cs feat(ui): port retained widget foundations 2026-07-10 17:55:41 +02:00
UiButtonTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiClipRectTests.cs fix(ui): complete retail inventory scroll polish 2026-07-11 10:56:33 +02:00
UiCollapsibleFrameTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiCompositeShutdownTests.cs test(runtime): add unattended connected R6 soak 2026-07-20 12:12:08 +02:00
UiDatFontTests.cs test(app): measure the warmed path, not the path being warmed (#250) 2026-07-29 03:42:08 +02:00
UiElementChildOrderTests.cs fix(rendering): bound portal resource lifetime 2026-07-18 21:35:16 +02:00
UiFieldTests.cs fix #234: port retail appraisal floaty and inscriptions 2026-07-23 12:12:57 +02:00
UiItemListGridTests.cs feat(ui): D.2b item interaction + retail cursors + live character sheet 2026-07-03 09:18:43 +02:00
UiItemListScrollTests.cs fix(ui): complete retail inventory scroll polish 2026-07-11 10:56:33 +02:00
UiItemListTests.cs feat(items): port retail shared cooldown overlays 2026-07-23 10:41:16 +02:00
UiItemSlotTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiLayoutPolicyTests.cs fix(ui): preserve cropped chat and button faces 2026-07-10 18:11:14 +02:00
UiMenuTests.cs fix(D.2b): UiMenu — controller owns Selected (review fix for Task 4) 2026-06-16 17:27:30 +02:00
UiMeterTests.cs feat(D.2b): UiMeter vital bar + fill-geometry tests 2026-06-14 16:38:07 +02:00
UiMeterVerticalTests.cs feat(ui): D.2b-B — UiMeter vertical fill (burden bar, retail m_eDirection 2/4) 2026-06-21 08:58:37 +02:00
UiNineSlicePanelTests.cs feat(D.2b): UiNineSlicePanel — 8-piece retail window frame + geometry test 2026-06-14 16:36:11 +02:00
UiRadarTests.cs feat(ui): port retail radar and compass 2026-07-10 16:14:37 +02:00
UiRootInputTests.cs Revert "Campaign V slice V4a" - it lost world multisampling 2026-07-27 18:29:28 +02:00
UiScrollablePanelTests.cs feat(ui): D.2b item interaction + retail cursors + live character sheet 2026-07-03 09:18:43 +02:00
UiScrollableTests.cs feat(ui): unify retained window mounts 2026-07-10 22:22:25 +02:00
UiScrollbarTests.cs fix(ui): match retail spell bar controls 2026-07-23 07:49:09 +02:00
UiTextDatFontTests.cs feat(D.2b): UiText (Type 12) -- generic text + Type-12 flip; transcript factory-built (widget-generalization Task 5) 2026-06-16 17:39:02 +02:00
UiTextTests.cs fix(ui): render live component counts 2026-07-15 18:11:02 +02:00