Skip to content

Commit 3b52fa9

Browse files
authored
Merge v0.25.1 (#652)
The following fixes are pulled in: - Replace the `section-index` plugin with `navigation.indexes` - Fix consumer power formula - Add test for consumer power formula
2 parents 7bb970a + 70b9c09 commit 3b52fa9

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

mkdocs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ theme:
2424
features:
2525
- content.code.annotate
2626
- content.code.copy
27+
- navigation.indexes
2728
- navigation.instant
2829
- navigation.tabs
2930
- navigation.top
@@ -115,7 +116,6 @@ plugins:
115116
- https://typing-extensions.readthedocs.io/en/stable/objects.inv
116117
- https://watchfiles.helpmanual.io/objects.inv
117118
- search
118-
- section-index
119119

120120
# Preview controls
121121
watch:

src/frequenz/sdk/timeseries/_formula_engine/_formula_generators/_consumer_power_formula.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ def non_consumer_component(component: Component) -> bool:
106106
# push all grid meters
107107
for idx, grid_meter in enumerate(grid_meters):
108108
if idx > 0:
109-
builder.push_oper("-")
109+
builder.push_oper("+")
110110
builder.push_component_metric(
111111
grid_meter.component_id, nones_are_zeros=False
112112
)

tests/timeseries/test_logical_meter.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
# pylint: disable=protected-access
2222

2323

24-
class TestLogicalMeter:
24+
class TestLogicalMeter: # pylint: disable=too-many-public-methods
2525
"""Tests for the logical meter."""
2626

2727
async def test_grid_power_1(self, mocker: MockerFixture) -> None:
@@ -423,6 +423,22 @@ async def test_consumer_power_no_grid_meter(self, mocker: MockerFixture) -> None
423423
await mockgrid.mock_resampler.send_meter_power([20.0, 2.0, 3.0, 4.0, 5.0])
424424
assert (await consumer_power_receiver.receive()).value == Power.from_watts(20.0)
425425

426+
async def test_consumer_power_2_grid_meters(
427+
self,
428+
mocker: MockerFixture,
429+
) -> None:
430+
"""Test the grid power formula with grid meters."""
431+
mockgrid = MockMicrogrid(grid_meter=False)
432+
# with no further sucessor these will be detected as grid meters
433+
mockgrid.add_consumer_meters(2)
434+
await mockgrid.start(mocker)
435+
436+
logical_meter = microgrid.logical_meter()
437+
grid_consumption_recv = logical_meter.grid_consumption_power.new_receiver()
438+
439+
await mockgrid.mock_resampler.send_meter_power([1.0, 2.0])
440+
assert (await grid_consumption_recv.receive()).value == Power.from_watts(3.0)
441+
426442
async def test_consumer_power_no_grid_meter_no_consumer_meter(
427443
self, mocker: MockerFixture
428444
) -> None:

0 commit comments

Comments
 (0)