28 lines
852 B
Python
28 lines
852 B
Python
"""DispatchResult: nove ekonomicke sloupce (cashflow/arbitraz/penalty/bonus)."""
|
|
from __future__ import annotations
|
|
|
|
import unittest
|
|
from dataclasses import fields
|
|
|
|
from services.planning_engine import DispatchResult
|
|
|
|
|
|
class DispatchResultEconomicsFieldsTests(unittest.TestCase):
|
|
def test_has_new_economics_fields(self) -> None:
|
|
names = {f.name for f in fields(DispatchResult)}
|
|
for required in (
|
|
"cashflow_czk",
|
|
"battery_arbitrage_czk",
|
|
"penalty_czk",
|
|
"green_bonus_czk",
|
|
):
|
|
self.assertIn(required, names, f"DispatchResult missing field {required}")
|
|
|
|
def test_legacy_expected_cost_czk_kept(self) -> None:
|
|
names = {f.name for f in fields(DispatchResult)}
|
|
self.assertIn("expected_cost_czk", names)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|