"""HARD LIMIT exportu (CLAUDE.md §4.19): reg 143 nikdy nad limit ulice. Pokuta v řádu desítek tisíc Kč za každou kW překročení rezervovaného exportního výkonu na fakturačním elektroměru. Terminálový limit (reg 143) nesmí přesáhnout max_export_power_w za žádných okolností — žádný feed-forward o měřenou spotřebu mezi střídačem a CT. """ from __future__ import annotations import unittest from services.control.setpoints import _deye_reg143_export_w class ExportHardLimitTests(unittest.TestCase): def test_reg143_never_exceeds_street_limit(self) -> None: street_limit = 13_500 self.assertLessEqual( _deye_reg143_export_w(False, street_limit), street_limit ) def test_no_export_is_zero(self) -> None: self.assertEqual(_deye_reg143_export_w(True, 13_500), 0) def test_plan_export_limit_caps_not_raises(self) -> None: # vzor z write_inverter_setpoints: export_lim = min(hw, plan) — plán # smí limit jen SNÍŽIT, nikdy zvýšit hw = _deye_reg143_export_w(False, 13_500) plan_limit = 20_000 self.assertLessEqual(min(hw, plan_limit), 13_500) if __name__ == "__main__": unittest.main()