You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
PR #457 R4 polish: narrow always-treated carve-out to U-bucket only
R4 verdict was Looks good with 1 P3 informational item: the per-component
parity test skipped the ENTIRE always_treated_remapped fixture, leaving
the 6 timing-vs-timing rows (Earlier/Later vs Earlier/Later Treated
between cohorts 3/4/5) without direct per-component parity assertions.
Per memory feedback_test_coverage_gap_treat_as_actionable, this is the
"test exists but doesn't directly exercise the surface" pattern and
should be actionable.
Narrowed the carve-out: instead of skipping the whole fixture, drop only
the treated_vs_never keys from both Python and R sides (the actual
U-bucket convention divergence), and keep direct atol=1e-6 parity
assertions on the 6 timing-vs-timing keys. Also refined _classify_r_type
to canonicalize R's "Later vs Always Treated" type string to
treated_vs_never (Python folds those rows into the U bucket per paper
footnote 11, so they belong to the U comparison set semantically even
though R numbers them by the always-treated cohort), keeping the
narrow carve-out simple.
Tests: 34/34 pass in test_methodology_bacon.py (+6 directly asserted
timing-vs-timing comparisons in the remap fixture vs prior coverage).
0 commit comments