Skip to content

Add Designer/runtime layout parity test suite - #92

Merged
ProGraMajster merged 1 commit into
masterfrom
codex/issue-42-designer-runtime-layout-parity
Aug 20, 2026
Merged

Add Designer/runtime layout parity test suite#92
ProGraMajster merged 1 commit into
masterfrom
codex/issue-42-designer-runtime-layout-parity

Conversation

@ProGraMajster

Copy link
Copy Markdown
Owner

Summary

Adds a deterministic, headless Designer/runtime layout parity harness. It builds equivalent trees and compares actual DesignerLayoutEngine geometry with real ModernFormsNext controls laid out through the production runtime Control.PerformLayout path. The harness records normalized structured snapshots and emits scenario, control path, property, runtime value, and Designer value for every mismatch; it does not contain a second Dock/Anchor/Padding algorithm.

Coverage

  • Dock, Anchor, Padding, Margin, MinimumSize/MaximumSize, and visibility
  • nested containers, clipping, child order, and repeated resize
  • Form and UserControl roots, including nested UserControls
  • live Property Grid edits
  • .mfdesign save/reopen serialization
  • generated Designer code compilation and runtime execution
  • reverse parser reconstruction
  • final-geometry hit testing
  • logical-to-device edge parity at 100%, 125%, 150%, and 200%

Bugs found and fixed

  • hidden Designer children incorrectly participated in Dock layout and hit testing
  • Designer min/max constraints were not reflected in effective layout bounds
  • Designer Fill incorrectly consumed the remaining docking rectangle
  • root resize could persist Anchor drift instead of the final runtime-equivalent geometry
  • basic Flow layout ignored Margin and default Table auto strips did not match runtime behavior
  • generated Form roots assigned outer Size instead of semantic ClientSize
  • reverse parsing did not accept composite bitwise enum flags
  • ScrollableControl could reinitialize Anchor data during a bounds-driven resize before runtime layout consumed it

Regression coverage

Validation

  • parity suite: 78/78 passed, 0 skipped
  • Designer tests: 275/275 passed, 0 skipped
  • all tests: 1218/1218 passed
  • full Debug build: passed, 0 warnings / 0 errors
  • full Release build: passed, 0 warnings / 0 errors
  • VSIX Debug and Release validation: passed, 0 warnings / 0 errors
  • release documentation tests: 32/32 assertions passed
  • git diff --check: clean

The parity suite is deterministic and headless: no flaky retry mechanism, no Thread.Sleep, no monitor-derived DPI dependency, and no visible-window requirement.

Follow-ups

Closes #42

- compare Designer layout against real runtime layout semantics
- cover Dock, Anchor, Padding, nested containers and UserControl roots
- add serialization/codegen and reverse-parser parity regressions
- provide deterministic diagnostics for layout mismatches
- document and centralize Designer/runtime parity coverage
@ProGraMajster
ProGraMajster merged commit 0fb159f into master Aug 20, 2026
1 check passed
@ProGraMajster
ProGraMajster deleted the codex/issue-42-designer-runtime-layout-parity branch August 20, 2026 18:35
@github-project-automation github-project-automation Bot moved this from Backlog to Done in ModernFormsNext Roadmap Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add Designer/runtime layout parity test suite

1 participant