
self = <test_cohort_projection.TestCohortProjectionDataclass testMethod=test_has_band_false_when_below_floor>

    def test_has_band_false_when_below_floor(self):
>       p = self._mk(familiarity=0.1, below_floor=True, band_ets=["12:00"])
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

tests/services/test_cohort_projection.py:152: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <test_cohort_projection.TestCohortProjectionDataclass testMethod=test_has_band_false_when_below_floor>
kw = {'band_ets': ['12:00'], 'below_floor': True, 'familiarity': 0.1}
defaults = {'actual_close_vs_band': 0.0, 'band_ets': ['12:00'], 'band_max': [0.5], 'band_median': [0.0], ...}

    def _mk(self, **kw: object) -> CohortProjection:
        defaults: dict = dict(
            run_id="r1", trading_day="2026-07-31", now_et="12:00", minutes_from_open=150,
            cohort_kind="calendar", cohort_family="pce", cohort_n_days=10, members=[],
            today_partial=[0.0], today_partial_ets=["12:00"],
            today_continuation=[0.0], today_continuation_ets=["12:00"],
            band_min=[-0.5], band_max=[0.5], band_median=[0.0],
            weighted_median=[0.0], band_ets=["12:00"],
            familiarity=0.6, below_floor=False, contained=True,
            actual_close_vs_band=0.0, detail={},
        )
        defaults.update(kw)
>       return CohortProjection(**defaults)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E       TypeError: CohortProjection.__init__() missing 4 required positional arguments: 'band_lo', 'band_hi', 'band_quantile', and 'contained_pct'

tests/services/test_cohort_projection.py:145: TypeError
