@@ -67,17 +67,42 @@ Wire all components together, ensure the public API works end-to-end, and port/r
6767
6868## Todo List
6969
70- - [ ] Wire up all subtasks into complete CalculateLayout
71- - [ ] Verify public API matches expected signature
72- - [ ] Port high-priority unit tests first
73- - [ ] Run tests and fix failures
74- - [ ] Port medium-priority tests
75- - [ ] Port low-priority tests
76- - [ ] Port generated tests (can be automated)
70+ - [x] Wire up all subtasks into complete CalculateLayout (fixed 2026-07-03: debug module,
71+ owner semantics, flex basis FitContent, measure func fast path — see PR #7 )
72+ - [x] Verify public API matches expected signature
73+ - [x] Port high-priority unit tests first — Measure, MeasureCache, MeasureMode, Relayout
74+ ported 2026-07-03 (49 tests in test/timewarp-flexbox-tests/Algorithm/)
75+ - [x] Run tests and fix failures — all 20 failures the new tests exposed are fixed:
76+ multi-line alignment two-pass restructure + ConstrainMaxSizeForMode rewrite
77+ (CalculateLayoutCore.cs, LayoutHelpers.cs), WebFlexBasis generation check
78+ (FlexBasis.cs), style-change dirtying (Style.cs/Node.cs), canSkipFlex min/max
79+ clamp (JustifyContent.cs). Suite: 1046 passed / 0 failed / 3 skipped.
80+ - [x] Port medium-priority tests — all remaining generated files converted 2026-07-03
81+ (Margin, Padding, Border, MinMaxDimension, Percentage, Gap, Display, BoxSizing,
82+ StaticPosition, Rounding, AlignSelf, AspectRatio, Auto, Dimension, DisplayContents,
83+ FlexBasisFitContent, IntrinsicSize, SizeOverflow); all pass. Suite: 1335/0/3.
84+ - [ ] Port low-priority tests — remaining hand-written unit tests: YGBaselineFuncTest,
85+ YGAlignBaselineTest, YGAspectRatioTest, YGEdgeTest, YGComputedMargin/PaddingTest,
86+ YGHadOverflowTest, YGRounding* Test, YGScaleChangeTest, YGZeroOutLayoutRecursivelyTest,
87+ YGPersistenceTest, YGPersistentNodeCloningTest, FlexGapTest, YGDirtiedTest,
88+ YGDirtyMarkingTest, YGNodeChildTest, plus IntrinsicSize text-measurement tests
89+ (need a shared text-measure helper like Yoga's TestUtil)
90+ - [x] Port generated tests (can be automated) — automated via ` runfiles/port-generated-tests.cs ` ;
91+ first 7 files converted 2026-07-03 (FlexDirection, JustifyContent, AlignItems, AlignContent,
92+ FlexWrap, Flex, AbsolutePosition = 241 tests). Remaining generated files: re-run the
93+ converter per file and extend its mapping when it reports unsupported constructs.
7794- [ ] Performance benchmarking
7895- [ ] Memory usage profiling
7996- [ ] Cross-platform validation
8097
98+ ## Progress Notes (2026-07-03)
99+
100+ - ` runfiles/port-generated-tests.cs <yoga-repo> <Name>... ` converts ` tests/generated/YG<Name>Test.cpp `
101+ to ` test/timewarp-flexbox-tests/Generated/<Name>Tests.cs ` . Tests upstream marks GTEST_SKIP are
102+ excluded automatically and reported.
103+ - First conversion batch: 241 tests; 224 passed immediately, 17 failed — all in wrapped-line
104+ cross-axis alignment (align-content with wrap ×11, wrap+align-items ×4, baseline multiline ×2).
105+
81106## Dependencies
82107
83108- All subtasks 125a-125i completed
0 commit comments