Skip to content

Commit 8e081c3

Browse files
committed
Phase 13.58.ADF: taxonomy + matrix for LAZY.subframe_draw (count-lock 51->52)
Subframe-column lazy draw (single-level A.col + nested/recursive A.B.col), shipped with tests in the preceding commits, was not represented in the taxonomy. Add it as LAZY.subframe_draw (3 test functions), bump the Phase 13.56 post-audit count-lock 51->52, and regenerate docs/CAPABILITY_MATRIX.md (FM#13: regenerated, not hand-edited). Matrix now: 52 features; LAZY.subframe_draw verified (3/3), LAZY.timeseries_draw verified (36/37, gallery skipped). Full run 1738P/8F/1E -- the 8F/1E are the documented pre-existing set (K1/K2 vector-draw, RDF friend-trees x3, backend I2_6, compression I4_2/I4_3, schema serialization ERROR); no regression.
1 parent c884b3b commit 8e081c3

3 files changed

Lines changed: 26 additions & 13 deletions

File tree

UTILS/dfextensions/AliasDataFrame/docs/CAPABILITY_MATRIX.md

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
# Capability Matrix — AliasDataFrame
22

3-
**Generated:** 2026-06-16 05:54 UTC
3+
**Generated:** 2026-06-16 21:07 UTC
44
**Phase:** 13.11.B
5-
**Taxonomy:** 50 features (PHASE_13_11_B approved)
5+
**Taxonomy:** 52 features (PHASE_13_11_B approved)
66
**Generator:** `scripts/generate_capability_matrix.py` v2 (taxonomy-based)
77

88
## Summary
99

1010
| Status | Count | % |
1111
|--------|------:|--:|
12-
| ✅ Verified | 31 | 62% |
13-
| ☑️ Smoke-only | 14 | 28% |
14-
| 🧨 Broken | 4 | 8% |
15-
| 📋 Planned | 1 | 2% |
16-
| **Total features** | **50** | |
17-
| **Matched tests** | **1700** | |
18-
| **Invariance tests** | **253** | |
12+
| ✅ Verified | 33 | 63% |
13+
| ☑️ Smoke-only | 14 | 26% |
14+
| 🧨 Broken | 4 | 7% |
15+
| 📋 Planned | 1 | 1% |
16+
| **Total features** | **52** | |
17+
| **Matched tests** | **1740** | |
18+
| **Invariance tests** | **286** | |
1919

2020
**Unmatched tests:** 96 (not mapped to any feature)
2121

@@ -101,6 +101,8 @@
101101
|| **LAZY.chain** — Chain loading (multiple files) | 60 | 58 | 0 | 8 |
102102
|| **LAZY.materialization** — Lazy subframe & alias evaluation | 54 | 54 | 0 | 2 |
103103
|| **LAZY.userinfo_backcompat** — Lazy-path UserInfo metadata back-compatibility (AD-3 precedence) | 15 | 14 | 0 | 5 |
104+
|| **LAZY.timeseries_draw** — Single-tree lazy time-series loading & lazy drawing (D1 resolver + D2 draw-surface branch scan + D3 estimate_memory) | 37 | 36 | 0 | 30 |
105+
|| **LAZY.subframe_draw** — Subframe-column lazy draw (single-level A.col + nested A.B.col; on-demand materialization via ensure_subframe + recursive chain walk) | 3 | 3 | 0 | 3 |
104106

105107
## FIT_REGISTRATION
106108

@@ -132,20 +134,20 @@
132134
## 🧨 Broken Features — Details
133135

134136
### DRAW.execution
135-
-`test_K2_vector_draw_end_to_end.py::TestK2VectorDrawEndToEnd::test_K2_3_production_reproducer_mirror`
136137
-`test_K1_vector_draw_kwarg_diagnostic.py::TestK1VectorDrawKwargDiagnostic::test_K1_3_draw_batch_forwards_batch_kwargs`
138+
-`test_K2_vector_draw_end_to_end.py::TestK2VectorDrawEndToEnd::test_K2_3_production_reproducer_mirror`
137139

138140
### COMP.roundtrip
139-
-`test_invariance_compression.py::TestInvarianceCompression::test_I4_3_asinh_compression_roundtrip`
140141
-`test_invariance_compression.py::TestInvarianceCompression::test_I4_2_scaled_linear_compression_roundtrip`
142+
-`test_invariance_compression.py::TestInvarianceCompression::test_I4_3_asinh_compression_roundtrip`
141143

142144
### BACK.invariance
143145
-`test_invariance_backend.py::TestInvarianceBackend::test_I2_6_chained_subframe_expressions_numba_vs_numpy`
144146

145147
### RDF.export
146-
-`test_AliasDataFrameRDF.py::TestAddDefinesCollision::test_collision_from_friend_tree`
147148
-`test_AliasDataFrameRDF.py::TestTMemFileBranch::test_missing_keys_in_friend`
148149
-`test_AliasDataFrameRDF.py::TestRDataFrameFriendAccess::test_composite_index_friend`
150+
-`test_AliasDataFrameRDF.py::TestAddDefinesCollision::test_collision_from_friend_tree`
149151

150152
## Unmatched Tests
151153

UTILS/dfextensions/AliasDataFrame/tests/feature_taxonomy.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
D3 estimate_memory) covered by test_phase1358_lazy_timeseries.py (7),
2424
test_phase1358_lazy_draw_invariance.py (14), test_phase1358_gallery_lazy.py (1,
2525
env-gated). Total: 50 → 51.
26+
Phase 13.58.ADF (2026-06-16): Added 1 new feature LAZY.subframe_draw (subframe-column
27+
lazy draw — single-level A.col + nested/recursive A.B.col, on-demand materialization via
28+
ensure_subframe) covered by test_lazy_subframe_column_draw, test_lazy_nested_subframe_
29+
column_draw, and test_calibITS_subframe_column_lazy_draw. Total: 51 → 52.
2630
"""
2731

2832
FEATURES = [
@@ -321,6 +325,13 @@
321325
"test_phase1358_lazy_calibITS.py", # real-data lazy invariance on calibITS (committed 4 MB fixture)
322326
"test_phase1358_gallery_lazy.py", # time-series gallery double-run (env-gated)
323327
]},
328+
{"id": "LAZY.subframe_draw", "name": "Subframe-column lazy draw (single-level A.col + nested A.B.col; on-demand materialization via ensure_subframe + recursive chain walk)", "category": "LAZY_LOADING",
329+
"test_patterns": [
330+
# Phase 13.58.ADF — subframe-column lazy draw (single-level + nested/recursive)
331+
"test_phase1358_lazy_draw_invariance.py::test_lazy_subframe_column_draw",
332+
"test_phase1358_lazy_draw_invariance.py::test_lazy_nested_subframe_column_draw",
333+
"test_phase1358_lazy_calibITS.py::test_calibITS_subframe_column_lazy_draw",
334+
]},
324335

325336
# ── FIT_REGISTRATION (2) ──
326337
{"id": "FIT.registration", "name": "Fit metadata storage & retrieval", "category": "FIT_REGISTRATION",

UTILS/dfextensions/AliasDataFrame/tests/test_phase_13_56_adf_post_audit.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,7 @@ def test_TG4_dispatch_features_registered(self):
194194
ids = {f["id"] for f in FEATURES}
195195
assert "DISPATCH.adf_routing" in ids
196196
assert "DISPATCH.error_visibility" in ids
197-
assert len(FEATURES) == 51 # 49 + LAZY.userinfo_backcompat (13.59) + LAZY.timeseries_draw (13.58.ADF)
197+
assert len(FEATURES) == 52 # 49 + LAZY.userinfo_backcompat (13.59) + LAZY.timeseries_draw + LAZY.subframe_draw (13.58.ADF)
198198
routing = next(f for f in FEATURES if f["id"] == "DISPATCH.adf_routing")
199199
vis = next(f for f in FEATURES if f["id"] == "DISPATCH.error_visibility")
200200
node_55 = ("test_phase_13_55_adf_dispatch_audit.py::"

0 commit comments

Comments
 (0)