Skip to content

Commit

Permalink
Merge pull request #516 from EBoguslawski/fix_446
Browse files Browse the repository at this point in the history
fix issue 446: problem with BoxGymObsSpace when normalizing
  • Loading branch information
BDonnot authored Sep 6, 2023
2 parents a819a77 + 2ea3c8a commit 5c5b6b3
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 2 deletions.
4 changes: 2 additions & 2 deletions grid2op/gym_compat/box_gym_obsspace.py
Original file line number Diff line number Diff line change
Expand Up @@ -618,10 +618,10 @@ def __init__(

if subtract is None:
subtract = {}
self._subtract = subtract
self._subtract = subtract.copy()
if divide is None:
divide = {}
self._divide = divide
self._divide = divide.copy()

# handle the "functional" part
self._template_obs = ob_sp._template_obj.copy()
Expand Down
45 changes: 45 additions & 0 deletions grid2op/tests/test_issue_446.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
# Copyright (c) 2023, RTE (https://www.rte-france.com)
# See AUTHORS.txt
# This Source Code Form is subject to the terms of the Mozilla Public License, version 2.0.
# If a copy of the Mozilla Public License, version 2.0 was not distributed with this file,
# you can obtain one at http://mozilla.org/MPL/2.0/.
# SPDX-License-Identifier: MPL-2.0
# This file is part of Grid2Op, Grid2Op a testbed platform to model sequential decision making in power systems.


import grid2op
from grid2op.gym_compat import BoxGymActSpace, BoxGymObsSpace
import numpy as np
import unittest


class Issue446Tester(unittest.TestCase):
def test_box_action_space(self):
# We considers only redispatching actions
env = grid2op.make("l2rpn_case14_sandbox", test=True)

divide = {"hour_of_day": np.ones(1)}
subtract = {"hour_of_day": np.zeros(1)}

gym_observation_space_1 = BoxGymObsSpace(env.observation_space,
attr_to_keep=["curtailment_mw", "hour_of_day"],
divide = divide,
subtract = subtract
)

gym_observation_space_2 = BoxGymObsSpace(env.observation_space.copy(),
attr_to_keep=["curtailment_mw", "hour_of_day"],
divide = divide,
subtract = subtract
)

gym_observation_space_1.normalize_attr("curtailment_mw")

assert "curtailment_mw" in gym_observation_space_1._divide
assert "curtailment_mw" not in gym_observation_space_2._divide
assert "curtailment_mw" in gym_observation_space_1._subtract
assert "curtailment_mw" not in gym_observation_space_2._subtract


if __name__ == "__main__":
unittest.main()

0 comments on commit 5c5b6b3

Please sign in to comment.