예제 #1
0
 def test_reset_seq(self):
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX)
     for i in range(2):
         assert i == mme.current_index
         mme.reset()
         assert mme.current_obs is not None
         assert mme.current_env is not None
예제 #2
0
 def test_reset_with_params(self):
     p = Parameters()
     p.MAX_SUB_CHANGED = 666
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX, param=p)
     mme.reset()
     assert mme.current_obs is not None
     assert mme.current_env is not None
     assert mme.parameters.MAX_SUB_CHANGED == 666
예제 #3
0
 def test_reset_with_opponent(self):
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX,
                               opponent_class=BaseOpponent,
                               opponent_init_budget=42.0,
                               opponent_budget_per_ts=0.42)
     mme.reset()
     assert mme.current_obs is not None
     assert mme.current_env is not None
     assert mme._opponent_class == BaseOpponent
     assert mme._opponent_init_budget == dt_float(42.0)
     assert mme._opponent_budget_per_ts == dt_float(0.42)
예제 #4
0
    def test_reset_with_backend(self):
        class DummyBackend3(PandaPowerBackend):
            def __init__(self):
                super().__init__()
                self._dummy = -1

            def reset(self, grid_path=None, grid_filename=None):
                self._dummy = 1

            def dummy(self):
                return self._dummy

        mme = MultiMixEnvironment(PATH_DATA_MULTIMIX, backend=DummyBackend3())
        mme.reset()
        assert mme.current_env.backend.dummy() == 1
예제 #5
0
    def test_reset_with_other_rewards(self):
        p = Parameters()
        p.NO_OVERFLOW_DISCONNECTION = True
        oth_r = {
            "game": GameplayReward,
            "l2rpn": L2RPNReward,
        }
        mme = MultiMixEnvironment(PATH_DATA_MULTIMIX,
                                  param=p,
                                  other_rewards=oth_r)
        mme.reset()

        assert mme.current_obs is not None
        assert mme.current_env is not None
        o, r, d, i = mme.step(mme.action_space({}))
        assert i is not None
        assert "rewards" in i
        assert "game" in i["rewards"]
        assert "l2rpn" in i["rewards"]
예제 #6
0
 def test_forecast_toggle(self):
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX)
     dn = mme.action_space({})
     # Forecast off
     mme.deactivate_forecast()
     # Step once
     obs, _, _ , _ = mme.step(dn)
     # Cant simulate
     with self.assertRaises(NoForecastAvailable):
         obs.simulate(dn)
     # Forecast ON
     mme.reactivate_forecast()
     # Reset, step once
     mme.reset()
     obs, _, _ , _ = mme.step(dn)
     # Can simulate
     obs, r, done, info = obs.simulate(dn)
     assert obs is not None
     assert r is not None
     assert isinstance(info, dict)
     assert done is not True
예제 #7
0
 def test_reset_random(self):
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX)
     for i in range(2):
         mme.reset(random=True)
         assert mme.current_obs is not None
         assert mme.current_env is not None
예제 #8
0
 def test_reset(self):
     mme = MultiMixEnvironment(PATH_DATA_MULTIMIX)
     mme.reset()
     assert mme.current_obs is not None
     assert mme.current_env is not None