Skip to content

Commit d5b6f37

Browse files
Add tests for producer power
Signed-off-by: Matthias Wende <[email protected]>
1 parent 9454574 commit d5b6f37

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

tests/timeseries/test_logical_meter.py

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,3 +185,51 @@ async def test_consumer_power_no_grid_meter(self, mocker: MockerFixture) -> None
185185

186186
await mockgrid.mock_data.send_meter_power([20.0, 2.0, 3.0, 4.0, 5.0])
187187
assert (await consumer_power_receiver.receive()).value == 20.0
188+
189+
async def test_producer_power(self, mocker: MockerFixture) -> None:
190+
"""Test the producer power formula."""
191+
mockgrid = MockMicrogrid(grid_side_meter=False)
192+
mockgrid.add_solar_inverters(2)
193+
mockgrid.add_chps(2)
194+
await mockgrid.start_mock_datapipeline(mocker)
195+
196+
logical_meter = microgrid.logical_meter()
197+
producer_power_receiver = logical_meter.producer_power.new_receiver()
198+
199+
await mockgrid.mock_data.send_meter_power([20.0, 2.0, 3.0, 4.0, 5.0])
200+
assert (await producer_power_receiver.receive()).value == 14.0
201+
202+
async def test_producer_power_no_chp(self, mocker: MockerFixture) -> None:
203+
"""Test the producer power formula without a chp."""
204+
mockgrid = MockMicrogrid(grid_side_meter=False)
205+
mockgrid.add_solar_inverters(2)
206+
await mockgrid.start_mock_datapipeline(mocker)
207+
208+
logical_meter = microgrid.logical_meter()
209+
producer_power_receiver = logical_meter.producer_power.new_receiver()
210+
211+
await mockgrid.mock_data.send_meter_power([20.0, 2.0, 3.0])
212+
assert (await producer_power_receiver.receive()).value == 5.0
213+
214+
async def test_producer_power_no_pv(self, mocker: MockerFixture) -> None:
215+
"""Test the producer power formula without pv."""
216+
mockgrid = MockMicrogrid(grid_side_meter=False)
217+
mockgrid.add_chps(1)
218+
await mockgrid.start_mock_datapipeline(mocker)
219+
220+
logical_meter = microgrid.logical_meter()
221+
producer_power_receiver = logical_meter.producer_power.new_receiver()
222+
223+
await mockgrid.mock_data.send_meter_power([20.0, 2.0])
224+
assert (await producer_power_receiver.receive()).value == 2.0
225+
226+
async def test_no_producer_power(self, mocker: MockerFixture) -> None:
227+
"""Test the producer power formula without producers."""
228+
mockgrid = MockMicrogrid(grid_side_meter=False)
229+
await mockgrid.start_mock_datapipeline(mocker)
230+
231+
logical_meter = microgrid.logical_meter()
232+
producer_power_receiver = logical_meter.producer_power.new_receiver()
233+
234+
await mockgrid.mock_data.send_non_existing_component_value()
235+
assert (await producer_power_receiver.receive()).value == 0.0

0 commit comments

Comments
 (0)