pydynamicestimator.tests.test_inverter_init_composition ======================================================= .. py:module:: pydynamicestimator.tests.test_inverter_init_composition .. autoapi-nested-parse:: The strategy-composed sequential init: each strategy owns its stage, the host orchestrates by name. The byte-identity that this reproduces the old monolithic init is covered by the recur/selector/init-method gates; here we lock the two *new* guarantees of the composition: 1. **Compatibility warning** -- if the inner controller needs a plant capability the filter doesn't provide, the host warns (but continues). 2. **Init guard** -- a strategy that provides no ``finit_sequential`` raises a clear error instead of silently mis-initializing. Functions --------- .. autoapisummary:: pydynamicestimator.tests.test_inverter_init_composition.test_default_combo_no_warning pydynamicestimator.tests.test_inverter_init_composition.test_capability_mismatch_warns pydynamicestimator.tests.test_inverter_init_composition.test_sequential_init_guard Module Contents --------------- .. py:function:: test_default_combo_no_warning(caplog) The default LCL + Cascaded combo is compatible (capacitor provided). .. py:function:: test_capability_mismatch_warns(caplog, monkeypatch) An inner controller requiring a plant feature the filter lacks warns. .. py:function:: test_sequential_init_guard(monkeypatch) A strategy with no sequential init raises a clear error (rather than silently solving the wrong equations).