MCPcopy Create free account
hub / github.com/ahalev/python-microgrid / check_step

Method check_step

tests/microgrid/test_microgrid.py:399–445  ·  view source on GitHub ↗
(self, microgrid, step_number=0)

Source from the content-addressed store, hash-verified

397 self.assertFalse(nonmodular.architecture['genset'])
398
399 def check_step(self, microgrid, step_number=0):
400
401 control = microgrid.get_empty_action()
402 self.assertEqual(len(control), 0)
403
404 obs, reward, done, info = microgrid.step(control)
405 loss_load = self.load_ts[step_number]-self.pv_ts[step_number]
406 loss_load_cost = self.microgrid.modules.balancing[0].loss_load_cost * max(loss_load, 0)
407
408 self.assertEqual(loss_load_cost, -1*reward)
409
410 self.assertEqual(len(microgrid.log), step_number + 1)
411 self.assertTrue(all(module in microgrid.log for module in microgrid.modules.names()))
412
413 load_met = min(self.load_ts[step_number], self.pv_ts[step_number])
414 loss_load = max(self.load_ts[step_number] - load_met, 0)
415 pv_curtailment = max(self.pv_ts[step_number]-load_met, 0)
416
417 # Checking the log populated correctly.
418
419 log_row = microgrid.log.iloc[step_number]
420 log_entry = lambda module, entry: log_row.loc[pd.IndexSlice[module, :, entry]].sum()
421
422 # Check that there are log entries for all modules of each name
423 self.assertEqual(log_row['load'].index.get_level_values(0).nunique(), self.n_loads)
424
425 self.assertEqual(log_entry('load', 'load_current'), -1 * self.load_ts[step_number])
426 self.assertEqual(log_entry('load', 'load_met'), self.load_ts[step_number])
427
428 if loss_load == 0:
429 self.assertEqual(log_entry('load', 'load_met'), load_met)
430
431 self.assertEqual(log_entry('renewable', 'renewable_current'), self.pv_ts[step_number])
432 self.assertEqual(log_entry('renewable', 'renewable_used'), load_met)
433 self.assertEqual(log_entry('renewable', 'curtailment'), pv_curtailment)
434
435 self.assertEqual(log_entry('balancing', 'loss_load'), loss_load)
436
437 self.assertEqual(log_entry('balance', 'reward'), -1 * loss_load_cost)
438 self.assertEqual(log_entry('balance', 'overall_provided_to_microgrid'), self.load_ts[step_number])
439 self.assertEqual(log_entry('balance', 'overall_absorbed_from_microgrid'), self.load_ts[step_number])
440 self.assertEqual(log_entry('balance', 'fixed_provided_to_microgrid'), 0.0)
441 self.assertEqual(log_entry('balance', 'fixed_absorbed_from_microgrid'), self.load_ts[step_number])
442 self.assertEqual(log_entry('balance', 'controllable_absorbed_from_microgrid'), 0.0)
443 self.assertEqual(log_entry('balance', 'controllable_provided_to_microgrid'), 0.0)
444
445 return microgrid
446
447 def test_run_one_step(self):
448 microgrid = self.microgrid

Callers 2

test_run_one_stepMethod · 0.95
test_run_n_stepsMethod · 0.95

Calls 4

assertEqualMethod · 0.80
namesMethod · 0.80
get_empty_actionMethod · 0.45
stepMethod · 0.45

Tested by

no test coverage detected