diff --git a/.circleci/config.yml b/.circleci/config.yml index 90f75038..0730b9c5 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -31,7 +31,7 @@ executors: jobs: test: executor: grid2op-executor - resource_class: medium+ + resource_class: large parallelism: 4 steps: - checkout diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ed5ffb21..440344bb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -311,11 +311,68 @@ jobs: - name: Test the automatic generation of classes in the env folder run: | python -m unittest grid2op/tests/automatic_classes.py -v -f + + detailed_topology: + name: Test detailed topology on ${{ matrix.config.name }} + runs-on: ${{ matrix.config.os }} + strategy: + matrix: + config: + # - { + # name: darwin, + # os: macos-latest, + # } + # - { + # name: windows, + # os: windows-2019, + # } + - { + name: ubuntu, + os: ubuntu-latest, + } + python: + - { + name: cp39, + version: '3.9', + } + - { + name: cp313, + version: '3.13', + } + + steps: + + - name: Checkout sources + uses: actions/checkout@v3 + with: + submodules: true + + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python.version }} + + - name: Install Python dependencies + run: | + python -m pip install --upgrade pip wheel setuptools gymnasium build + + - name: Build wheel + run: python -m build --wheel . + + - name: Install wheel + shell: bash + run: | + python -m pip install dist/*.whl --user + pip freeze + + - name: Test the working of the detailed topo representation + run: | + python -m unittest grid2op/tests/indep_test_detailed_topo_extended.py -f package: name: Test install runs-on: ubuntu-latest - needs: [manylinux_build, macos_windows_build, auto_class_in_file] + needs: [manylinux_build, macos_windows_build, auto_class_in_file, detailed_topology] steps: - name: Download wheels diff --git a/.gitignore b/.gitignore index 5e9b4a29..08e0dce6 100644 --- a/.gitignore +++ b/.gitignore @@ -416,7 +416,17 @@ getting_started/venv_310_ray/ grid2op/tests/venv_test_autoclass/ test_eduardo.py grid2op/tests/failed_test* +grid2op/tests/ampl_from_iidm.py +grid2op/tests/do_I_repeat.txt +grid2op/tests/parse_res35_working.txt +grid2op/tests/parse_res_35 (copie).txt +grid2op/tests/parse_res_35.txt +grid2op/tests/res_algo_topo_35.txt +grid2op/tests/test_topo_ampl/ +grid2op/tests/test_topo_ampl2/ venv_312 +venv_* +grid2op/tests/internal_*.pickle grid2op_test_issue_discord.ipynb grid2op_test_issue_discord_orig.ipynb grid_bug_pp3.json diff --git a/CHANGELOG.rst b/CHANGELOG.rst index c334b0fe..28bff2eb 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -100,6 +100,19 @@ Native multi agents support: - add detachment - add change_bus / set_bus +[1.13.0] - DETAILED TOPO +--------------------------- +- [FIXED] some issues with gym classes +- [IMPROVED] the serialization of class definition + when using "automatic_classes" or "experimental_read_from_local_dir" +- [IMPROVED] when using gym MultiDiscrete as an action space, + if the dimension is 0 (for one of the MultiDiscrete) then it is now + removed from the action space (for example, if your environment does not + contain storage unit, the corresponding MultiDiscrete will have one less + dimension, because you cannot act on storage unit.) +- [IMPROVED] classes for action and observation classes are now easier to + initialize (added the `finalize_class_definition` classmethod) + [1.12.2] - 2025-10-xx ---------------------- - [FIXED] an issue preventing to change the way @@ -296,9 +309,13 @@ Native multi agents support: [1.10.4] - 2024-10-14 ------------------------- -- [FIXED] an issue in the backend: if the backend failed to be +- [FIXED] an issue in the backend: if the backend failed to be copied created the `_grid` attribute was set to `None` and not set back to + its original value in the copied backend. - [FIXED] the `self.skip_if_needed()` was missing for one of the test suite. +- [FIXED] the correct `AmbiguousAction` is now raised when grid2op does not understand + what an action should be doing (an incorrect `IllegalAction` used to be sent) +- [FIXED] a test in `test_ActionProperties` did not test the correct property - [FIXED] an error in the descirption of the `educ_case14_storage` environment (wrong sign for the slack generator) - [FIXED] the environment would not load in case of an incorrect "layout.json" @@ -311,6 +328,7 @@ Native multi agents support: in the readme) - [ADDED] numpy 2 support (now that pandapower allows it) - [IMPROVED] error message when forecasts are not correctly set-up +- [IMPROVED] an error message when loading a grid with forecasts [1.10.3] - 2024-07-12 @@ -381,7 +399,6 @@ Native multi agents support: processes (using `fork` at least), see `ep_data.make_serializable` - [IMPROVED] chronix2grid tests are now done independantly on the CI - [1.10.2] - 2024-05-27 ------------------------- - [BREAKING] the `runner.run_one_episode` now returns an extra argument (first position): @@ -1168,7 +1185,7 @@ Native multi agents support: - [ADDED]: function to retrieve the maximum duration of the current episode. - [ADDED]: a new kind of opponent that is able to attack at "more random" times with "more random" duration. See the `GeometricOpponent`. -- [IMPROVED]: on windows at least, grid2op does not work with gym < 0.17.2 Checks are performed in order to make sure +- [IMPROVED]: on windows at least, grid2op does not work with `gym < 0.17.2` Checks are performed in order to make sure the installed open ai gym package meets this requirement (see issue `Issue#185 `_ ) - [IMPROVED] the seed of openAI gym for composed action space (see issue `https://github.com/openai/gym/issues/2166`): diff --git a/_profiling/profiler_switch.py b/_profiling/profiler_switch.py new file mode 100644 index 00000000..27e4874a --- /dev/null +++ b/_profiling/profiler_switch.py @@ -0,0 +1,135 @@ +# Copyright (c) 2019-2020, 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. + +""" +This file should be used to assess the performance of grid2op in "runner" mode: the loading time are not studied, +neither are the import times. + +Data are loaded only once, when the environment is "done" the programm stops. + +This corresponds to the situation: you have a trained agent, you want to assess its performance using the runner +""" + +import os + +from grid2op import make +from grid2op.Action import CompleteAction +from grid2op.Space import AddDetailedTopoIEEE +from grid2op.Parameters import Parameters +from grid2op.Agent import BaseAgent +from grid2op.Rules import AlwaysLegal +from grid2op.Backend import PandaPowerBackend +import cProfile + +from utils_benchmark import run_env, str2bool + +try: + from lightsim2grid import LightSimBackend + light_sim_avail = True +except ImportError: + light_sim_avail = False + +ENV_NAME = "rte_case5_example" +ENV_NAME = "rte_case14_realistic" +MAX_TS = 1000 +RANDOM_SWITCH_AGENT = False # do not change this +# for profiling it has no impact. + + +class RandomBusSwitchAgent(BaseAgent): + def act(self, observation, reward, done=False): + sub_id = self.space_prng.randint(type(self.action_space).n_sub) + new_position = self.space_prng.choice([-1, 1], size=1) + return self.action_space({"set_switch": [(sub_id, new_position)]}) + + +class RandomElSwitchAgent(BaseAgent): + def act(self, observation, reward, done = False): + if observation.current_step <= 1: + # deactivate the connector between busbars + res = self.action_space({"set_switch": [(sub_id, -1) + for sub_id in range(type(self.action_space).n_sub)]}) + else: + res = self.action_space() + + do_act = self.space_prng.choice([0, 1], size=1, p = [0.95, 0.05]) + if not do_act: + return res + + n_switch = type(self.action_space).detailed_topo_desc.switches.shape[0] + switch_id = self.space_prng.randint(type(self.action_space).n_sub, + n_switch, + size=1) + new_position = self.space_prng.choice([-1, 1], size=1) + res.update({"set_switch": [(switch_id, new_position)]}) + return res + +def main(max_ts, name, use_lightsim=False, test_env=True): + param = Parameters() + if use_lightsim: + if light_sim_avail: + class ThisBackendClass(AddDetailedTopoIEEE, LightSimBackend): + pass + else: + raise RuntimeError("LightSimBackend not available") + else: + class ThisBackendClass(AddDetailedTopoIEEE, PandaPowerBackend): + pass + + backend = ThisBackendClass() + + param.init_from_dict( + {"NO_OVERFLOW_DISCONNECTION": True, + "STOP_EP_IF_GEN_BREAK_CONSTRAINTS": False, + "ENV_DOES_REDISPATCHING": False}) + + env_klu = make(name, + backend=backend, + param=param, + gamerules_class=AlwaysLegal, + test=test_env, + action_class=CompleteAction) + assert type(env_klu).detailed_topo_desc is not None + agent = RandomBusSwitchAgent(action_space=env_klu.action_space) + if RANDOM_SWITCH_AGENT: + agent = RandomElSwitchAgent(action_space=env_klu.action_space) + agent.seed(4) + + cp = cProfile.Profile() + cp.enable() + nb_ts_klu, *_, time_step = run_env(env_klu, max_ts, agent) + cp.disable() + print(f'Time for {nb_ts_klu} steps: {time_step} => {time_step / nb_ts_klu} s/step or {nb_ts_klu / time_step:.3e} step / s') + nm_f, ext = os.path.splitext(__file__) + nm_out = "{}_{}_{}.prof".format(nm_f, "lightsim" if use_ls else "pp", name) + cp.dump_stats(nm_out) + print("You can view profiling results with:\n\tsnakeviz {}".format(nm_out)) + + +if __name__ == "__main__": + import argparse + parser = argparse.ArgumentParser(description='Benchmark pyKLU and Pandapower Backend for an agent that takes every ' + 'topological action possible') + parser.add_argument('--name', default=ENV_NAME, type=str, + help='Environment name to be used for the benchmark.') + parser.add_argument('--number', type=int, default=MAX_TS, + help='Maximum number of time steps for which the benchamark will be run.') + parser.add_argument("--use_ls", type=str2bool, nargs='?', + const=True, default=False, + help="Use the LightSim2Grid Backend.") + parser.add_argument("--no_test", type=str2bool, nargs='?', + const=True, default=False, + help="Do not use a test environment for the profiling (default to False: meaning you use a test env)") + + args = parser.parse_args() + + max_ts = int(args.number) + name = str(args.name) + use_ls = args.use_ls + test_env = not args.no_test + main(max_ts, name, use_lightsim=use_ls, test_env=test_env) diff --git a/_profiling/utils_benchmark.py b/_profiling/utils_benchmark.py index 6abd1277..43d07b69 100644 --- a/_profiling/utils_benchmark.py +++ b/_profiling/utils_benchmark.py @@ -10,6 +10,7 @@ import numpy as np from tqdm import tqdm import argparse +from grid2op.Environment import Environment from grid2op.Agent import AgentWithConverter from grid2op.Converter import IdToAct @@ -179,12 +180,12 @@ def print_res(env_klu, env_pp, print("Absolute value of the difference for gen_q: {}".format(np.max(np.abs(gen_q_klu - gen_q_pp)))) -def run_env(env, max_ts, agent): +def run_env(env: Environment, max_ts, agent): nb_rows = min(env.chronics_handler.max_timestep(), max_ts) aor = np.zeros((nb_rows, env.n_line)) gen_p = np.zeros((nb_rows, env.n_gen)) gen_q = np.zeros((nb_rows, env.n_gen)) - obs = env.get_obs() + obs = env.get_obs(_do_copy=False) done = False reward = env.reward_range[0] nb_ts = 0 @@ -196,6 +197,7 @@ def run_env(env, max_ts, agent): act = agent.act(obs, reward, done) beg_step = time.perf_counter() obs, reward, done, info = env.step(act) + assert not info["is_ambiguous"], info["exception"] time_step += time.perf_counter() - beg_step aor[nb_ts, :] = obs.a_or gen_p[nb_ts, :] = obs.prod_p diff --git a/docs/detailed_topology.rst b/docs/detailed_topology.rst new file mode 100644 index 00000000..c3dfff9c --- /dev/null +++ b/docs/detailed_topology.rst @@ -0,0 +1,50 @@ +.. _detailed-topology-modeling-module: + +Dive into the detailed topology "modeling" in grid2op +=================================================================== + +.. warning:: + Work in progress + +What is a "detailed" topology in grid2op +----------------------------------------- + +.. warning:: + Work in progress + + +- Concept of connectivity nodes +- Switches +- Processing of the switches to "original topoolgy" +- + +Impact in grid2op +------------------ + +.. warning:: + Work in progress + +- new action +- new observation + +.. danger:: + Be carefull with convertion fo / from switches !!! + +Why did we add it ? +-------------------- + +.. warning:: + Work in progress + +What features are actually implemented ? +----------------------------------------- + +.. warning:: + Work in progress + + +Pros and cons of using it ? +--------------------------------- +.. warning:: + Work in progress + diff --git a/docs/index.rst b/docs/index.rst index d6fc74dd..afa59b9e 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -110,6 +110,7 @@ graph. modeled_elements grid_graph topology + detailed_topology Environments --------------- diff --git a/docs/topology.rst b/docs/topology.rst index 2c81c722..74b13d9d 100644 --- a/docs/topology.rst +++ b/docs/topology.rst @@ -11,6 +11,11 @@ In this page of the documentation we dive into the description of the .. warning:: Work in progress +.. note:: + You can also find another representation of the topology in grid2op + in the page :ref:`detailed-topology-modeling-module` + + What do we call topology --------------------------------- @@ -131,6 +136,11 @@ With both these information the "nodal topology" can be computed as followed: Why the "switches" are not modled by default ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +For a grid modeling with switches, you can consult the dedicated +page :ref:`detailed-topology-modeling-module` of the grid2op +package. + + .. warning:: Doc in progress... diff --git a/grid2op/Action/_backendAction.py b/grid2op/Action/_backendAction.py index 1aafe621..4b4d799b 100644 --- a/grid2op/Action/_backendAction.py +++ b/grid2op/Action/_backendAction.py @@ -8,7 +8,7 @@ import copy import numpy as np -from typing import Tuple, Union +from typing import Tuple, Union try: from typing import Self @@ -19,6 +19,10 @@ from grid2op.Action.baseAction import BaseAction from grid2op.dtypes import dt_int, dt_bool, dt_float from grid2op.Space import GridObjects +from grid2op.Exceptions import Grid2OpException, AmbiguousAction + +ERR_MSG_SWITCH = ("Cannot retrieve switches configuration if the grid does not have " + "switches information. Have you set them when loading the grid ?") # TODO see if it can be done in c++ easily @@ -166,6 +170,7 @@ def reset(self): self.last_index = 0 def change_status(self, switch, lineor_id, lineex_id, old_vect): + # CAREFULL: swith here is not switch, it's only to say "change" !!! # pragma: no cover if not switch.any(): # nothing is modified so i stop here @@ -510,6 +515,7 @@ def __init__(self): self.shunt_p: ValueStore = ValueStore(cls.n_shunt, dtype=dt_float) self.shunt_q: ValueStore = ValueStore(cls.n_shunt, dtype=dt_float) self.shunt_bus: ValueStore = ValueStore(cls.n_shunt, dtype=dt_int) + self.shunt_bus.values[:] = 1 self.current_shunt_bus: ValueStore = ValueStore(cls.n_shunt, dtype=dt_int) self.current_shunt_bus.values[:] = 1 @@ -523,7 +529,7 @@ def __init__(self): self._lines_or_bus = None self._lines_ex_bus = None self._storage_bus = None - + self._shunt_bus = None #: .. versionadded: 1.11.0 self._is_cached = False self._injections_cached = None @@ -532,6 +538,17 @@ def __init__(self): # speed optim self._needs_active_bus = True + + # TODO detailed topo + if cls.detailed_topo_desc is not None: + self.last_switch_registered = np.zeros(cls.detailed_topo_desc.switches.shape[0], dtype=dt_bool) + self.current_switch = np.zeros(cls.detailed_topo_desc.switches.shape[0], dtype=dt_bool) + self.current_switch[:] = cls.detailed_topo_desc.compute_switches_position( + self.current_topo.values, + self.current_shunt_bus.values + )[0] + # TODO detailed topo: shunt_bus and last_shunt_bus ! + def __deepcopy__(self, memodict={}) -> Self: @@ -568,6 +585,10 @@ def __deepcopy__(self, memodict={}) -> Self: res._lines_or_bus = copy.deepcopy(self._lines_or_bus) res._lines_ex_bus = copy.deepcopy(self._lines_ex_bus) res._storage_bus = copy.deepcopy(self._storage_bus) + + if cls.detailed_topo_desc is not None: + res.last_switch_registered = copy.deepcopy(self.last_switch_registered) + res.current_switch = copy.deepcopy(self.current_switch) res._is_cached = self._is_cached res._injections_cached = self._injections_cached @@ -614,6 +635,8 @@ def reorder(self, no_load, no_gen, no_topo, no_storage, no_shunt) -> None: self.shunt_bus.reorder(no_shunt) self.current_shunt_bus.reorder(no_shunt) + # TODO detailed topo: force to reset the detailed topo + def reset(self) -> None: """ .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ @@ -645,9 +668,13 @@ def reset(self) -> None: self.shunt_q.reset() self.shunt_bus.reset() self.current_shunt_bus.reset() - + self.last_topo_registered.register_new_topo(self.current_topo) + if cls.detailed_topo_desc is not None: + # TODO detailed topo: what about current switch ? + self.last_switch_registered[:] = self.current_switch + def all_changed(self) -> None: """ .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ @@ -714,27 +741,46 @@ def _aux_iadd_inj(self, dict_injection): self.prod_v.set_val(tmp) self._is_cached = False - def _aux_iadd_shunt(self, other: BaseAction): + def _aux_iadd_shunt(self, other : BaseAction, shunt_tp_from_sw) -> bool: """ .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ Internal implementation of += """ + if not type(other).shunts_data_available or not other._modif_shunt: + return False + shunts = {} - if type(other).shunts_data_available and other._modif_shunt: - shunts["shunt_p"] = other._shunt_p - shunts["shunt_q"] = other._shunt_q - shunts["shunt_bus"] = other._shunt_bus - arr_ = shunts["shunt_p"] - self.shunt_p.set_val(arr_) - arr_ = shunts["shunt_q"] - self.shunt_q.set_val(arr_) - arr_ = shunts["shunt_bus"] + shunts["shunt_p"] = other._shunt_p + shunts["shunt_q"] = other._shunt_q + shunts["shunt_bus"] = other._shunt_bus + + arr_ = shunts["shunt_p"] + self.shunt_p.set_val(arr_) + arr_ = shunts["shunt_q"] + self.shunt_q.set_val(arr_) + self._is_cached = False + + # handle shunts topology now + arr_ = shunts["shunt_bus"] + if shunt_tp_from_sw is not None: + # some shunts have been modified with switches + mask = shunt_tp_from_sw != 0 + arr_[mask] = shunt_tp_from_sw[mask] + + mask_changed = (arr_ != 0) & (arr_ != self.shunt_bus.values) + if mask_changed.any(): + # shunt has been modified by the action self.shunt_bus.set_val(arr_) - self._is_cached = False - self.current_shunt_bus.values[self.shunt_bus.changed] = self.shunt_bus.values[self.shunt_bus.changed] - + self.current_shunt_bus.values[mask_changed] = self.shunt_bus.values[mask_changed] + return True + + def _aux_shunt_bus_in_act(self, other: BaseAction): + if type(self).shunts_data_available: + return (other.shunt_bus != 0).any() + return False + def _aux_iadd_reconcile_disco_reco(self): """ .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ @@ -806,7 +852,7 @@ def _aux_iadd_detach(self, other._dict_inj["prod_p"][other._detach_gen] = 0. self._is_cached = False return modif_set_bus, modif_inj - + def _aux_iadd_line_status(self, other: BaseAction, switch_status: np.ndarray, set_status: np.ndarray): if other._modif_change_status: self.current_topo.change_status( @@ -833,6 +879,76 @@ def _aux_iadd_line_status(self, other: BaseAction, switch_status: np.ndarray, se self.line_or_pos_topo_vect, self.line_ex_pos_topo_vect ) + def _aux_iadd_switch(self, other: BaseAction, modify_topo_bus: bool, set_topo_vect: np.ndarray): + cls = type(self) + # agent modified the switches + if cls.detailed_topo_desc is None: + raise AmbiguousAction("Something modified the switches while " + "no switch information is provided.") + orig_switch = self.current_switch.copy() # TODO detailed topo debug + subid_switch = other.get_sub_ids_switch() + if other._modif_change_switch: + # TODO detailed topo method of ValueStore ! + self.current_switch[other._change_switch_status] = ~self.current_switch[other._change_switch_status] + if other._modif_set_switch: + # TODO detailed topo method of ValueStore + mask_set = other._set_switch_status != 0 + self.current_switch[mask_set] = other._set_switch_status[mask_set] == 1 + + # TODO detailed topo: don't do that if the action does not modifies + # the set_bus, change_bus etc. + # if modify_topo_bus or True: + switch_topo_vect, shunt_tp_from_sw = self.detailed_topo_desc.from_switches_position(self.current_switch, subid_switch) + # change the "target topology" for the elements + # connected to the impacted substations + mask_switch = switch_topo_vect != 0 + set_topo_vect[mask_switch] = switch_topo_vect[mask_switch] + self._is_cached = False + return True + + def _aux_iadd_reconcile_bus_and_switch(self, + other, + shunt_bus_modif, + dtd): + cls = type(self) + # here I use the fact that the environment has cached the topological impact + # so I get the correct one ! + lines_impacted, subs_impacted_bus = other.get_topological_impact(_read_from_cache=True) + subs_impacted_switch = other.get_sub_ids_switch() + + # it is ambiguous to modify a substation by + # switches and set_bus / change_bus + subs_impacted_bus[subs_impacted_switch] = False + shunt_bus = None + if shunt_bus_modif: + subs_impacted_bus[cls.shunt_to_subid[other._shunt_bus >= 1]] = True + shunt_bus = other._shunt_bus.copy() + subs_changed = subs_impacted_bus # maks of the substation affected by BUS modification (not switch) + + # try to change the object when simple disconnection + # (faster and change only a few switches) + tp_el_disco = np.zeros(self.current_topo.values.shape, dtype=dt_bool) + shunt_el_disco = np.zeros(cls.n_shunt, dtype=dt_bool) + tgt_tv = self.current_topo.values + lines_disco = (lines_impacted & + ((tgt_tv[cls.line_or_pos_topo_vect] == -1) | + (tgt_tv[cls.line_ex_pos_topo_vect] == -1)) + ) + tp_el_disco[cls.line_or_pos_topo_vect[lines_disco]] = True + tp_el_disco[cls.line_ex_pos_topo_vect[lines_disco]] = True + shunt_el_disco[other._shunt_bus == -1] = True + tmp_status, mask_status = dtd.disconnect_el_with_switch(tp_el_disco, shunt_el_disco) + self.current_switch[mask_status] = tmp_status[mask_status] + # handle more difficult topological changes + # (slower and changes all the switches of the substation) + tmp_bus, mask_bus = dtd.compute_switches_position(self.current_topo.values, + shunt_bus, + subs_changed) + self.current_switch[mask_bus] = tmp_bus[mask_bus] + self._is_cached = False + # TODO detailed topo : tag the origin of the swtich state (and topological state to + # forward it in the observation) + def __iadd__(self, other : BaseAction) -> Self: """ .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ @@ -861,20 +977,26 @@ def __iadd__(self, other : BaseAction) -> Self: # self._is_cached = False => done in each of the things bellow # speed optim: cache is not invalidated if do nothing is added - set_status = other._set_line_status - switch_status = other._switch_line_status - set_topo_vect = other._set_topo_vect - switcth_topo_vect = other._change_bus_vect + set_status = other._private_set_line_status + switch_status = other._private_switch_line_status + set_topo_vect = other._private_set_topo_vect + if set_topo_vect is None: + set_topo_vect = type(other)._build_attr("_set_topo_vect") + switcth_topo_vect = other._private_change_bus_vect redispatching = other._private_redispatch - storage_power = other._storage_power + storage_power = other._private_storage_power + modif_switch = False + shunt_tp_from_sw = None + modif_set_bus = other._modif_set_bus modif_inj = other._modif_inj + modify_topo_bus = False cls = type(self) - + # I detachment (before all else) if cls.detachment_is_allowed and other.has_element_detached(): modif_set_bus, modif_inj = self._aux_iadd_detach(other, set_topo_vect, modif_inj) - + # I deal with injections # Ia set the injection if modif_inj: @@ -890,32 +1012,79 @@ def __iadd__(self, other : BaseAction) -> Self: self.storage_power.set_val(storage_power) self._is_cached = False + # III 0 before everything + # TODO detailed topo: optimize this for staying + # in the "switch" world + if other._modif_change_switch or other._modif_set_switch: + modif_switch = self._aux_iadd_switch(other, modify_topo_bus, + set_topo_vect, # might be modified here + ) + # II shunts if cls.shunts_data_available: - self._aux_iadd_shunt(other) + shunt_bus_modif = self._aux_iadd_shunt(other, shunt_tp_from_sw) + else: + shunt_bus_modif = False + if shunt_bus_modif: + modify_topo_bus = True # III line status # this need to be done BEFORE the topology, as a connected powerline will be connected to their old bus. # regardless if the status is changed in the action or not. - self._aux_iadd_line_status(other, switch_status, set_status) - + if other._modif_change_status: + self._is_cached = False + self.current_topo.change_status( + switch_status, + cls.line_or_pos_topo_vect, + cls.line_ex_pos_topo_vect, + self.last_topo_registered, + ) + + if other._modif_set_status: + self._is_cached = False + self.current_topo.set_status( + set_status, + cls.line_or_pos_topo_vect, + cls.line_ex_pos_topo_vect, + self.last_topo_registered, + ) + + # if other._modif_change_status or other._modif_set_status: + ( + self._status_or_before[:], + self._status_ex_before[:], + ) = self.current_topo.get_line_status( + cls.line_or_pos_topo_vect, cls.line_ex_pos_topo_vect + ) + # IV topo if other._modif_change_bus: self._is_cached = False self.current_topo.change_val(switcth_topo_vect) - if modif_set_bus: + modify_topo_bus = True + if modif_set_bus or modif_switch: self._is_cached = False self.current_topo.set_val(set_topo_vect) - + modify_topo_bus = True + # V Force disconnected status # of disconnected powerlines extremities self._status_or[:], self._status_ex[:] = self.current_topo.get_line_status( - self.line_or_pos_topo_vect, self.line_ex_pos_topo_vect + cls.line_or_pos_topo_vect, cls.line_ex_pos_topo_vect ) # At least one disconnected extremity - if other._modif_change_bus or modif_set_bus: + if other._modif_change_bus or modif_set_bus or modif_switch: + self._is_cached = False self._aux_iadd_reconcile_disco_reco() + + # compute the new switch state + # if there have been switch modification + dtd = cls.detailed_topo_desc + if ((dtd is not None) and modify_topo_bus) : + # reconcile switch and "set_bus" modification + self._aux_iadd_reconcile_bus_and_switch(other, shunt_bus_modif, dtd) + return self def _assign_0_to_disco_el(self) -> None: @@ -1105,7 +1274,24 @@ def _aux_to_global(self, value_store : ValueStore, to_subid) -> ValueStore: value_store = copy.deepcopy(value_store) value_store.values = type(self).local_bus_to_global(value_store.values, to_subid) return value_store + + def get_all_switches(self): + # TODO detailed topo + cls = type(self) + if cls.detailed_topo_desc is None: + raise Grid2OpException(ERR_MSG_SWITCH) + detailed_topo_desc = cls.detailed_topo_desc + if cls.shunts_data_available: + shunt_bus = self.current_shunt_bus.values + else: + shunt_bus = None + if self.current_switch is None: + # TODO detailed topo : optimization here : pass the substations modified + # TODO detailed topo : pass the current switches position + self.current_switch, _ = detailed_topo_desc.compute_switches_position(self.current_topo.values, shunt_bus) + return self.current_switch + def get_loads_bus_global(self) -> ValueStore: """ This function might be called in the implementation of :func:`grid2op.Backend.Backend.apply_action`. @@ -1547,11 +1733,11 @@ def update_state(self, powerline_disconnected) -> None: def get_load_detached(self): cls = type(self) return self.current_topo.values[cls.load_pos_topo_vect] == -1 - + def get_gen_detached(self): cls = type(self) return self.current_topo.values[cls.gen_pos_topo_vect] == -1 - + def get_sto_detached(self): cls = type(self) return self.current_topo.values[cls.storage_pos_topo_vect] == -1 diff --git a/grid2op/Action/actionSpace.py b/grid2op/Action/actionSpace.py index 32af8885..86e56152 100644 --- a/grid2op/Action/actionSpace.py +++ b/grid2op/Action/actionSpace.py @@ -8,7 +8,7 @@ import warnings import copy -from typing import Dict, List, Any, Literal, Optional +from typing import Dict, Literal, Optional import grid2op from grid2op.typing_variables import DICT_ACT_TYPING diff --git a/grid2op/Action/baseAction.py b/grid2op/Action/baseAction.py index 2de4d095..b80c69c3 100644 --- a/grid2op/Action/baseAction.py +++ b/grid2op/Action/baseAction.py @@ -255,6 +255,8 @@ class BaseAction(GridObjects): of MW that will be "curtailed" but will rather provide a limit on the number of MW a given generator can produce. + TODO detailed topo + Examples -------- Here are example on how to use the action, for more information on what will be the effect of each, @@ -507,6 +509,8 @@ def change_whatever(grid): "_detach_load": "detach_load", # new in 1.11.0 "_detach_gen": "detach_gen", # new in 1.11.0 "_detach_storage": "detach_storage", # new in 1.11.0 + "_set_switch_status": "set_switch", # new in TODO DETAILED TOPO + "_change_switch_status": "change_switch", # new in TODO DETAILED TOPO } # new in 1.11.0 (was not set to nan before in serialization) @@ -535,7 +539,10 @@ def change_whatever(grid): ISSUE_WARNING_SWITCH_SET_CHANGE : Literal["always", "once", "never"] = "always" #: perf optimization - DICT_ATTR_ = None + _DICT_ATTR_ = None + + #: perf optim + _IS_CLS_FINALIZED = False def __init__(self, _names_chronics_to_backend: Optional[Dict[Literal["loads", "prods", "lines"], Dict[str, str]]]=None): """ @@ -552,9 +559,7 @@ def __init__(self, _names_chronics_to_backend: Optional[Dict[Literal["loads", "p IMPORTANT: Use :func:`ActionSpace.__call__` or :func:`ActionSpace.sample` to generate a valid action. """ - GridObjects.__init__(self) - cls = type(self) - + GridObjects.__init__(self) if _names_chronics_to_backend is not None: # should only be the case for the "init state" action self._names_chronics_to_backend = _names_chronics_to_backend @@ -562,72 +567,52 @@ def __init__(self, _names_chronics_to_backend: Optional[Dict[Literal["loads", "p self._names_chronics_to_backend = None # False(line is disconnected) / True(line is connected) - self._private_set_line_status : Optional[np.ndarray] = None # np.full(shape=cls.n_line, fill_value=0, dtype=dt_int) - self._private_switch_line_status : Optional[np.ndarray] = None # np.full( - # shape=cls.n_line, fill_value=False, dtype=dt_bool - # ) + self._private_set_line_status : Optional[np.ndarray] = None + self._private_switch_line_status : Optional[np.ndarray] = None # injection change self._dict_inj : Dict[Literal["prod_p", "prod_v", "load_p", "load_q"], np.ndarray] = {} # topology changed - self._private_set_topo_vect : Optional[np.ndarray] = None # np.full(shape=cls.dim_topo, fill_value=0, dtype=dt_int) - self._private_change_bus_vect : Optional[np.ndarray] = None # np.full( - # shape=cls.dim_topo, fill_value=False, dtype=dt_bool - # ) - + self._private_set_topo_vect : Optional[np.ndarray] = None + self._private_change_bus_vect : Optional[np.ndarray] = None + # add the hazards and maintenance usefull for saving. - self._private_hazards : Optional[np.ndarray] = None # np.full(shape=cls.n_line, fill_value=False, dtype=dt_bool) - self._private_maintenance : Optional[np.ndarray] = None # np.full(shape=cls.n_line, fill_value=False, dtype=dt_bool) + self._private_hazards : Optional[np.ndarray] = None + self._private_maintenance : Optional[np.ndarray] = None # redispatching vector - self._private_redispatch : Optional[np.ndarray] = None # np.full(shape=cls.n_gen, fill_value=0.0, dtype=dt_float) + self._private_redispatch : Optional[np.ndarray] = None # storage unit vector - self._private_storage_power : Optional[np.ndarray] = None # np.full( - # shape=cls.n_storage, fill_value=0.0, dtype=dt_float - # ) + self._private_storage_power : Optional[np.ndarray] = None # curtailment of renewable energy - self._private_curtail : Optional[np.ndarray] = None # np.full(shape=cls.n_gen, fill_value=-1.0, dtype=dt_float) + self._private_curtail : Optional[np.ndarray] = None self._vectorized = None self._lines_impacted = None self._subs_impacted = None # shunts - if cls.shunts_data_available: - self._private_shunt_p : Optional[np.ndarray] = None # np.full( - # shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float - # ) - self._private_shunt_q : Optional[np.ndarray] = None # np.full( - # shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float - # ) - self._private_shunt_bus : Optional[np.ndarray] = None # np.full(shape=cls.n_shunt, fill_value=0, dtype=dt_int) - else: - self._private_shunt_p = None - self._private_shunt_q = None - self._private_shunt_bus = None + self._private_shunt_p : Optional[np.ndarray] = None + self._private_shunt_q : Optional[np.ndarray] = None + self._private_shunt_bus : Optional[np.ndarray] = None self._single_act = True - self._private_raise_alarm : Optional[np.ndarray] = None #np.full( - # shape=cls.dim_alarms, dtype=dt_bool, fill_value=False - #) - - self._private_raise_alert : Optional[np.ndarray] = None # np.full( - # shape=cls.dim_alerts, dtype=dt_bool, fill_value=False - #) - - if cls.detachment_is_allowed: - self._private_detach_load : Optional[np.ndarray] = None # np.full(cls.n_load, dtype=dt_bool, fill_value=False) - self._private_detach_gen : Optional[np.ndarray] = None # np.full(cls.n_gen, dtype=dt_bool, fill_value=False) - self._private_detach_storage : Optional[np.ndarray] = None # np.full(cls.n_storage, dtype=dt_bool, fill_value=False) - else: - self._private_detach_load = None - self._private_detach_gen = None - self._private_detach_storage = None + # alert and alarm + self._private_raise_alarm : Optional[np.ndarray] = None + self._private_raise_alert : Optional[np.ndarray] = None + # detachment + self._private_detach_load : Optional[np.ndarray] = None + self._private_detach_gen : Optional[np.ndarray] = None + self._private_detach_storage : Optional[np.ndarray] = None + + # TODO detailed topo + self._private_set_switch_status : Optional[np.ndarray] = None + self._private_change_switch_status : Optional[np.ndarray] = None #: .. versionadded:: 1.12.1 #: allows the agent to perform an action @@ -650,6 +635,9 @@ def __init__(self, _names_chronics_to_backend: Optional[Dict[Literal["loads", "p self._modif_detach_load = False self._modif_detach_gen = False self._modif_detach_storage = False + # TODO detailed topo + self._modif_set_switch = False + self._modif_change_switch = False #: .. versionadded:: 1.12.1 #: cache not to recompute the `is_ambiguous` for the same action @@ -775,13 +763,24 @@ def _detach_storage(self) -> Optional[np.ndarray]: if self._private_detach_storage is None and cls.detachment_is_allowed: self._private_detach_storage = cls._build_attr("_detach_storage") return self._private_detach_storage + + @property + def _set_switch_status(self) -> Optional[np.ndarray]: + cls = type(self) + if self._private_set_switch_status is None and cls.detailed_topo_desc is not None: + self._private_set_switch_status = cls._build_attr("_set_switch_status") + return self._private_set_switch_status + + @property + def _change_switch_status(self) -> Optional[np.ndarray]: + cls = type(self) + if self._private_change_switch_status is None and cls.detailed_topo_desc is not None: + self._private_change_switch_status = cls._build_attr("_set_switch_status") + return self._private_change_switch_status @classmethod - def _build_dict_attr_if_needed(cls): - if cls.DICT_ATTR_ is not None: - return - - cls.DICT_ATTR_ = { + def _build_ref_attributes(cls): + cls._DICT_ATTR_ = { "_set_line_status": np.full(shape=cls.n_line, fill_value=0, dtype=dt_int), "_switch_line_status": np.full(shape=cls.n_line, fill_value=False, dtype=dt_bool), "prod_p": np.full(shape=cls.n_gen, fill_value=np.nan, dtype=dt_float), @@ -825,28 +824,31 @@ def _build_dict_attr_if_needed(cls): # shunts if cls.shunts_data_available: - cls.DICT_ATTR_["_shunt_p"] = np.full(shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float) - cls.DICT_ATTR_["_shunt_q"] = np.full(shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float) - cls.DICT_ATTR_["_shunt_bus"] = np.full(shape=cls.n_shunt, fill_value=0, dtype=dt_int) + cls._DICT_ATTR_["_shunt_p"] = np.full(shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float) + cls._DICT_ATTR_["_shunt_q"] = np.full(shape=cls.n_shunt, fill_value=np.nan, dtype=dt_float) + cls._DICT_ATTR_["_shunt_bus"] = np.full(shape=cls.n_shunt, fill_value=0, dtype=dt_int) if cls.detachment_is_allowed: - cls.DICT_ATTR_["_detach_load"] = np.full(cls.n_load, dtype=dt_bool, fill_value=False) - cls.DICT_ATTR_["_detach_gen"] = np.full(cls.n_gen, dtype=dt_bool, fill_value=False) - cls.DICT_ATTR_["_detach_storage"] = np.full(cls.n_storage, dtype=dt_bool, fill_value=False) + cls._DICT_ATTR_["_detach_load"] = np.full(cls.n_load, dtype=dt_bool, fill_value=False) + cls._DICT_ATTR_["_detach_gen"] = np.full(cls.n_gen, dtype=dt_bool, fill_value=False) + cls._DICT_ATTR_["_detach_storage"] = np.full(cls.n_storage, dtype=dt_bool, fill_value=False) + + if cls.detailed_topo_desc is not None: + n_switch = cls.detailed_topo_desc.switches.shape[0] + cls._DICT_ATTR_["_set_switch_status"] = np.full(shape=n_switch, fill_value=0, dtype=dt_int) + cls._DICT_ATTR_["_change_switch_status"] = np.full(shape=n_switch, fill_value=False, dtype=dt_bool) @classmethod - def _build_attr(cls, attr_nm: str): - # False(line is disconnected) / True(line is connected) - cls._build_dict_attr_if_needed() - if attr_nm not in cls.DICT_ATTR_: + def _build_attr(cls, attr_nm: str): + if attr_nm not in cls._DICT_ATTR_: # TODO raise ActionException raise Grid2OpException( 'Impossible to find the attribute "{}" ' 'into the BaseAction of type "{}"'.format(attr_nm, cls) ) - tmp_read_only = cls.DICT_ATTR_[attr_nm] - return tmp_read_only.copy() if isinstance(tmp_read_only, np.ndarray) else None - + tmp_read_only = cls._DICT_ATTR_[attr_nm] + return None if tmp_read_only is None else tmp_read_only.copy() + @classmethod def process_shunt_static_data(cls): if not cls.shunts_data_available: @@ -910,6 +912,8 @@ def _aux_copy(self, other: Self) -> None: "_modif_detach_gen", "_modif_detach_storage", "_single_act", + "_modif_set_switch", + "_modif_change_switch", "_cached_is_not_ambiguous", ] @@ -934,6 +938,9 @@ def _aux_copy(self, other: Self) -> None: if cls.detachment_is_allowed: attr_vect += ["_private_detach_load", "_private_detach_gen", "_private_detach_storage"] + if cls.detailed_topo_desc is not None: + attr_vect += ["_private_set_switch_status", "_private_change_switch_status"] + for attr_nm in attr_simple: setattr(other, attr_nm, getattr(self, attr_nm)) @@ -1145,16 +1152,45 @@ def as_serializable_dict(self) -> dict: attr_vect = f"_private_detach_{el}" xxx_name = getattr(cls, f"name_{el}") res[attr_key] = {} - vect_ = getattr(self, attr_vect) + vect_ : np.ndarray = getattr(self, attr_vect) if vect_ is None: continue if vect_.any(): res[attr_key] = [str(xxx_name[el]) for el in vect_.nonzero()[0]] if not res[attr_key]: del res[attr_key] + + if cls.detailed_topo_desc is not None: + # TODO detailed topo + + if self._modif_set_switch and self._private_set_switch_status is not None: + res["set_switch_status"] = [ + (int(id_), int(val)) + for id_, val in enumerate(self._private_set_switch_status) + if val != 0 + ] + if not res["set_switch_status"]: + del res["set_switch_status"] + if self._modif_change_switch and self._private_change_switch_status is not None: + res["change_switch_status"] = [ + int(id_) for id_, val in enumerate(self._private_change_switch_status) if val + ] + if not res["change_switch_status"]: + del res["change_switch_status"] return res + @classmethod + def finalize_class_definition(cls): + """Finalize the definition of some class attributes + that depends on the environmnent. + """ + if not cls._IS_CLS_FINALIZED: + cls._add_shunt_data() + cls._update_value_set() + cls._build_ref_attributes() + cls._IS_CLS_FINALIZED = True + @classmethod def _add_shunt_data(cls): if cls.shunt_added is False and cls.shunts_data_available: @@ -1187,7 +1223,7 @@ def alarm_raised(self) -> np.ndarray: if self._modif_alarm: return (self._private_raise_alarm).nonzero()[0] else: - return np.zeros(0, dtype=int) + return np.zeros(0, dtype=bool) def alert_raised(self) -> np.ndarray: """ @@ -1204,7 +1240,7 @@ def alert_raised(self) -> np.ndarray: if self._modif_alert: return (self._private_raise_alert).nonzero[0] else: - return np.zeros(0, dtype=int) + return type(self)._build_attr("_raise_alarm") @classmethod def _aux_process_old_compat(cls): @@ -1240,6 +1276,26 @@ def _aux_remove_switches(cls): cls.authorized_keys.remove("change_switch") if "_change_switch_status" in cls.attr_list_vect: cls.attr_list_vect.remove("_change_switch_status") + + @classmethod + def process_grid2op_detailed_topo_vect(cls): + """Process the class to register new attribute for observation and action + if the detailed_topo_desc is not empty (*ie* if there switches on your grid) + + Only called if a detailed topology is registered + """ + cls.authorized_keys = copy.deepcopy(cls.authorized_keys) + cls.attr_list_vect = copy.deepcopy(cls.attr_list_vect) + cls.attr_list_set = copy.deepcopy(cls.attr_list_set) + + # for switches (element to busbar) + cls.authorized_keys.add("set_switch") + cls.authorized_keys.add("change_switch") + cls.attr_list_vect.append("_set_switch_status") + cls.attr_list_vect.append("_change_switch_status") + + cls.attr_list_set = set(cls.attr_list_vect) + return super().process_grid2op_detailed_topo_vect() @classmethod def _aux_process_n_busbar_per_sub(cls): @@ -1288,6 +1344,11 @@ def process_grid2op_compat(cls): # if there are only one busbar, the "set_bus" action can still be used # to disconnect the element, this is why it's not removed cls._aux_process_n_busbar_per_sub() + + if glop_ver < version.parse("1.12.0"): + # this feature did not exist before + cls.detailed_topo_desc = None + cls._aux_remove_switches() cls.attr_list_set = copy.deepcopy(cls.attr_list_set) cls.attr_list_set = set(cls.attr_list_vect) @@ -1308,6 +1369,9 @@ def _reset_modified_flags(self): self._modif_detach_load = False self._modif_detach_gen = False self._modif_detach_storage = False + # detailed topology + self._modif_set_switch = False + self._modif_change_switch = False def can_affect_something(self) -> bool: """ @@ -1332,6 +1396,8 @@ def can_affect_something(self) -> bool: or self._modif_detach_load or self._modif_detach_gen or self._modif_detach_storage + or self._modif_set_switch + or self._modif_change_switch or self.backend_dependant_callback is not None ) @@ -1430,6 +1496,12 @@ def _post_process_from_vect(self): self._modif_detach_load = self._private_detach_load is not None and (self._private_detach_load).any() self._modif_detach_gen = self._private_detach_gen is not None and (self._private_detach_gen).any() self._modif_detach_storage = self._private_detach_storage is not None and (self._private_detach_storage).any() + + if cls.detailed_topo_desc is not None: + self._modif_set_switch = (self._private_set_switch_status is not None and + (self._private_set_switch_status != 0).any()) + self._modif_change_switch = (self._private_change_switch_status is not None and + (self._private_change_switch_status).any()) if self.can_affect_something(): # reset the ambiguous cache @@ -1729,11 +1801,16 @@ def __eq__(self, other: "BaseAction") -> bool: return False # for all the "regular" attribute (generic code) - for modif_flag, attr_nm in zip( - ["_modif_set_status", "_modif_change_status", "_modif_curtailment", - "_modif_alarm", "_modif_alert", "_modif_set_bus", "_modif_change_bus", "_modif_redispatch"], - ["_set_line_status", "_switch_line_status", "_curtail", "_raise_alarm", "_raise_alert", + modif_flags = ["_modif_set_status", "_modif_change_status", "_modif_curtailment", + "_modif_alarm", "_modif_alert", "_modif_set_bus", "_modif_change_bus", "_modif_redispatch"] + vect_flags = ["_set_line_status", "_switch_line_status", "_curtail", "_raise_alarm", "_raise_alert", "_set_topo_vect", "_change_bus_vect", "_redispatch"] + if type(self).detailed_topo_desc is not None: + modif_flags += ["_modif_set_switch", "_modif_change_switch"] + vect_flags += ["_set_switch_status", "_change_switch_status"] + for modif_flag, attr_nm in zip( + modif_flags, vect_flags + ): if self._aux_vect_different(other, modif_flag, attr_nm): return False @@ -1746,6 +1823,10 @@ def __eq__(self, other: "BaseAction") -> bool: if not self._aux_eq_detachment(other): return False + # shunts are the same + if not self._aux_eq_shunts(other): + return False + # shunts are the same if not self._aux_eq_shunts(other): return False @@ -1761,8 +1842,75 @@ def _dont_affect_topology(self) -> bool: and (not self._modif_detach_load) and (not self._modif_detach_gen) and (not self._modif_detach_storage) + and (not self._modif_set_switch) + and (not self._modif_change_switch) ) + def compute_switches_status(self): + """This function is used to "process" the action on switches and convert + it on action of type set_bus / change_bus + + It can raise some :class:`grid2op.Exceptions.AmbiugousAction` in different cases: + - trying to "set" and "change" the same switch + - trying to "set" and "change" the same busbar coupler + - trying to `set_bus` and modify (set or change) busbar coupler + - trying to `change_bus` and modify (set or change) busbar coupler + - trying to `set_bus` a given element and (in the same action) modify + (set or change) a switch that acts on this same element + - trying to `change_bus` a given element and (in the same action) modify + (set or change) a switch that acts on this same element + + It does not modify the action. + """ + + # TODO detailed topo : implement it ! + # set_line_status = 1 * self._set_line_status # needed ? + # switch_line_status = copy.deepcopy(self._switch_line_status) # needed ? + # topology changed + set_topo_vect = 1 * self._set_topo_vect + change_bus_vect = copy.deepcopy(self._change_bus_vect) + shunt_bus = copy.deepcopy(self._shunt_bus) + dtd = type(self).detailed_topo_desc + + if dtd is None: + # nothing to do in this case + return set_topo_vect, change_bus_vect, shunt_bus + + # check ambiguous behaviour + ## switches + if (self._private_set_switch_status is not None and + self._private_change_switch_status is not None and + ((self._private_set_switch_status != 0) & self._private_change_switch_status).any() + ): + raise AmbiguousAction("Trying to both set the status of some switches (with 'set_switch') " + "and change it (with 'change_switch') using the same action.") + + if self._private_set_switch_status is not None: + id_topo_vect_set = dtd.switches_to_topovect_id[(self._private_set_switch_status != 0)] + id_topo_vect_set = id_topo_vect_set[id_topo_vect_set != -1] + if (set_topo_vect[id_topo_vect_set] != 0).any(): + raise AmbiguousAction("Trying to modify the status of some switches (with 'set_switch') " + "and set the element to a given busbar (using `set_bus`)") + if change_bus_vect[id_topo_vect_set].any(): + raise AmbiguousAction("Trying to modify the status of some switches (with 'set_switch') " + "and change the busbar to which the same element is connected " + "(using `change_bus`)") + if self._private_change_switch_status is not None: + id_topo_vect_change = dtd.switches_to_topovect_id[self._private_change_switch_status] + id_topo_vect_change = id_topo_vect_change[id_topo_vect_change != -1] + if (set_topo_vect[id_topo_vect_change] != 0).any(): + raise AmbiguousAction("Trying to modify the status of some switches (with 'change_switch') " + "and set the element to a given busbar (using `set_bus`)") + if change_bus_vect[id_topo_vect_change].any(): + raise AmbiguousAction("Trying to modify the status of some switches (with 'change_switch') " + "and change the busbar to which the same element is connected " + "(using `change_bus`)") + # TODO detailed topo : make it ambiguous to modify a substation topology + # with set_bus / change_bus and with set_switch / change_switch at the same same time + + # TODO detailed topo put elsewhere maybe ? + raise NotImplementedError("Not implemented yet, maybe check detailed_topo_desc.from_switches_position") + def _aux_get_topo_impact_notopo(self, _store_in_cache: bool): cls = type(self) _lines_impacted = np.full( @@ -1862,6 +2010,24 @@ def _aux_get_topo_impact_update_with_powerline_status(self, _lines_impacted |= disco_set_ex effective_change[cls.line_or_pos_topo_vect[disco_set_ex]] = False effective_change[cls.line_ex_pos_topo_vect[disco_set_ex]] = False + + def _aux_get_topo_impact_detachment(self, _subs_impacted): + cls = type(self) + if self._private_detach_load is not None: + _subs_impacted[cls.load_to_subid[self._private_detach_load]] = True + if self._private_detach_gen is not None: + _subs_impacted[cls.gen_to_subid[self._private_detach_gen]] = True + if self._private_detach_storage is not None: + _subs_impacted[cls.storage_to_subid[self._private_detach_storage]] = True + + def _aux_get_topo_impact_switches(self, _subs_impacted): + cls = type(self) + dtd = cls.detailed_topo_desc + if self._private_set_switch_status is not None: + _subs_impacted[dtd.switches[self._private_set_switch_status != 0, type(dtd).SUB_COL]] = True + if self._private_change_switch_status is not None: + _subs_impacted[dtd.switches[self._private_change_switch_status, type(dtd).SUB_COL]] = True + # TODO detailed topo (siwtches for a line status for example !) def get_topological_impact(self, powerline_status : Optional[np.ndarray]=None, @@ -1996,14 +2162,17 @@ def get_topological_impact(self, effective_change, # updated ) - _subs_impacted[cls._topo_vect_to_sub[effective_change]] = True + _subs_impacted[self._topo_vect_to_sub[effective_change]] = True if cls.detachment_is_allowed: # added for detachment: it can also affect substations - _subs_impacted[cls.load_to_subid[self._private_detach_load]] = True - _subs_impacted[cls.gen_to_subid[self._private_detach_gen]] = True - _subs_impacted[cls.storage_to_subid[self._private_detach_storage]] = True - + self._aux_get_topo_impact_detachment(_subs_impacted) + + dtd = cls.detailed_topo_desc + if dtd is not None: + # added for switches modification + self._aux_get_topo_impact_switches(_subs_impacted) + if _store_in_cache: # store the results in cache if asked too self._lines_impacted = _lines_impacted @@ -3165,6 +3334,7 @@ def update(self, - "detach_gen": TODO - "detach_storage": TODO - "shunt": TODO + - TODO detailed topo **NB**: CHANGES: you can reconnect a powerline without specifying on each bus you reconnect it at both its ends. In that case the last known bus id for each its end is used. @@ -3305,6 +3475,11 @@ def update(self, if cls.detachment_is_allowed: for el in cls.OBJ_SUPPORT_DETACH: self._digest_detach_eltype(el, dict_) + + # todo detailed topo + if cls.detailed_topo_desc is not None: + self._digest_change_switch(dict_) + self._digest_set_switch(dict_) return self @@ -3452,6 +3627,42 @@ def _check_for_correct_modif_flags(self): ) if attr_auth not in self.authorized_keys: raise IllegalAction(f"You illegally detached a {el}.") + + if cls.detailed_topo_desc is None: + # no detailed topo information + if self._private_set_switch_status is not None: + raise AmbiguousAction("You tried to modified switches (`_set_switch_status`) " + "without providing detailed topology information.") + if self._private_change_switch_status is not None: + raise AmbiguousAction("You tried to modified switches (`_change_switch_status`) " + "without providing detailed topology information.") + if self._modif_set_switch: + raise AmbiguousAction("You tried to modified switches (`_modif_set_switch`) " + "without providing detailed topology information.") + if self._modif_change_switch: + raise AmbiguousAction("You tried to modified switches (`_modif_change_switch`) " + "without providing detailed topology information.") + else: + # some detailed information is present + if (self._private_change_switch_status is not None and + self._private_change_switch_status.any()): + # user modified switches + if "change_switch" not in self.authorized_keys: + raise AmbiguousAction("You tried to modified switches (`_change_switch_status`) " + "but your action does not allow it.") + if not self._modif_change_switch: + raise AmbiguousAction("You tried to modified switches (_change_switch_status) " + "but the action has not registered it.") + + if (self._private_set_switch_status is not None and + (self._private_set_switch_status != 0).any()): + # user modified switches + if "set_switch" not in self.authorized_keys: + raise AmbiguousAction("You tried to modified switches (`_set_switch_status`) " + "but your action does not allow it.") + if not self._modif_set_switch: + raise AmbiguousAction("You tried to modified switches (_set_switch_status) " + "but the action has not registered it.") def _check_for_ambiguity(self): """ @@ -3795,6 +4006,10 @@ def _check_for_ambiguity(self): self._is_detachment_ambiguous() + if cls.detailed_topo_desc is not None: + # there are some switches information + self._are_switches_ambiguous() + def _is_detachment_ambiguous(self): """check if any of the detachment action is ambiguous""" cls = type(self) @@ -3833,17 +4048,99 @@ def _is_detachment_ambiguous(self): _detach_xxx = getattr(self, f"_detach_{el_nm}") name_xxx = getattr(cls, f"name_{el_nm}") if _modif_detach_xxx: - if self._private_change_bus_vect is not None: - issue_xxx = self._private_change_bus_vect[xxx_pos_topo_vect] & _detach_xxx - if (issue_xxx).any(): - raise AmbiguousAction(f"Trying to both change a {el_nm} of busbar (change_bus) AND detach it from the grid. " - f"Check {el_nm}: {name_xxx[issue_xxx]}") - if self._private_set_topo_vect is not None: - issue_xxx = (self._private_set_topo_vect[xxx_pos_topo_vect] >= 1) & _detach_xxx - if (issue_xxx).any(): - raise AmbiguousAction(f"Trying to both set a {el_nm} of busbar (set_bus) AND detach it from the grid. " - f"Check {el_nm}: {name_xxx[issue_xxx]}") - + issue_xxx = self._change_bus_vect[xxx_pos_topo_vect] & _detach_xxx + if (issue_xxx).any(): + raise AmbiguousAction(f"Trying to both change a {el_nm} of busbar (change_bus) AND detach it from the grid. " + f"Check {el_nm}: {name_xxx[issue_xxx]}") + issue_xxx = (self._set_topo_vect[xxx_pos_topo_vect] >= 1) & _detach_xxx + if (issue_xxx).any(): + raise AmbiguousAction(f"Trying to both set a {el_nm} of busbar (set_bus) AND detach it from the grid. " + f"Check {el_nm}: {name_xxx[issue_xxx]}") + def _are_switches_ambiguous(self): + cls = type(self) + dtd = cls.detailed_topo_desc + if (self._private_set_switch_status is not None and + self._private_set_switch_status.shape[0] != dtd.switches.shape[0]): + raise AmbiguousAction("Incorrect number of switches for set_switch in your action.") + if (self._private_change_switch_status is not None and + self._private_change_switch_status.shape[0] != dtd.switches.shape[0]): + raise AmbiguousAction("Incorrect number of switches for change_switch in your action.") + if ((self._modif_change_switch or self._modif_set_switch) and + self._modif_set_bus or self._modif_change_bus): + # trying to affect topology in two different ways... not a great ideas + if (cls.ISSUE_WARNING_SWITCH_SET_CHANGE == "always" or + cls.ISSUE_WARNING_SWITCH_SET_CHANGE == "once" ): + warnings.warn("Grid2op: you modified the topology with set_bus / change_bus " + "and set_switch / change_switch at the same time. Though it's not " + "necessarily ambiguous, we do not recommend to do it.") + if cls.ISSUE_WARNING_SWITCH_SET_CHANGE == "once": + # do not issue another warning like that + cls.ISSUE_WARNING_SWITCH_SET_CHANGE = "never" + + # TODO detailed topo : refacto that with the method get_sub_ids_switch + subs_aff_s_switch = np.zeros(cls.n_sub, dtype=dt_bool) + subs_aff_s_bus = np.zeros(cls.n_sub, dtype=dt_bool) + if self._private_set_switch_status is not None: + subs_aff_s_switch[dtd.switches[self._private_set_switch_status != 0, type(dtd).SUB_COL]] = True + if self._private_set_topo_vect is not None: + subs_aff_s_bus[cls.grid_objects_types[self._private_set_topo_vect != 0, cls.SUB_COL]] = True + + subs_aff_c_switch = np.zeros(cls.n_sub, dtype=dt_bool) + subs_aff_c_bus = np.zeros(cls.n_sub, dtype=dt_bool) + if self._private_change_switch_status is not None: + subs_aff_c_switch[dtd.switches[self._private_change_switch_status, type(dtd).SUB_COL]] = True + if self._private_change_bus_vect is not None: + subs_aff_c_bus[cls.grid_objects_types[self._private_change_bus_vect, cls.SUB_COL]] = True + + if (subs_aff_c_switch & subs_aff_c_bus).any(): + raise AmbiguousAction("You used change_switch and change_bus to modify the topology " + "of a given substation. You cannot affect the same substation " + "with switches or change_bus / set_bus") + if (subs_aff_c_switch & subs_aff_s_bus).any(): + raise AmbiguousAction("You used change_switch and set_bus to modify the topology " + "of a given substation. You cannot affect the same substation " + "with switches or change_bus / set_bus") + if (subs_aff_s_switch & subs_aff_c_bus).any(): + raise AmbiguousAction("You used set_switch and change_bus to modify the topology " + "of a given substation. You cannot affect the same substation " + "with switches or change_bus / set_bus") + if (subs_aff_s_switch & subs_aff_s_bus).any(): + raise AmbiguousAction("You used set_switch and set_bus to modify the topology " + "of a given substation. You cannot affect the same substation " + "with switches or change_bus / set_bus") + + if (self._private_set_switch_status is not None and + self._private_change_switch_status is not None and + ((self._private_set_switch_status != 0) & self._private_change_switch_status).any()): + raise AmbiguousAction("Trying to both set the status of some switches (with 'set_switch') " + "and change it (with 'change_switch') using the same action.") + + def get_sub_ids_switch(self) -> np.ndarray: + """Return the ids of the substations affected by + an action on switches (either with `set switch` or `change switch`) + + Returns + ------- + res: Optional[np.ndarray] + If no detailed topo description has been set by the backend, then it returns ``None`` + + Otherwise it returns a mask (numpy array of ``True`` and ``False``) that has the + size of the number of substation on the grid and that is ``True`` for all the + substations where at least one switch has been modified (either by set or by change) + + """ + cls = type(self) + dtd = cls.detailed_topo_desc + if dtd is None: + return None + res = np.zeros(cls.n_sub, dtype=dt_bool) + # TODO this is also done in `_are_switches_ambiguous` (cache this ?) + if self._private_change_switch_status is not None: + res[dtd.switches[self._private_change_switch_status, type(dtd).SUB_COL]] = True + if self._private_set_switch_status is not None: + res[dtd.switches[self._private_set_switch_status !=0, type(dtd).SUB_COL]] = True + return res + def _is_storage_ambiguous(self): """check if storage actions are ambiguous""" cls = type(self) @@ -4333,6 +4630,7 @@ def impact_on_objects(self) -> dict: curtailment["changed"] = True has_impact = True + # TODO detailed topo return { "has_impact": has_impact, "injection": inject_detail, @@ -4506,6 +4804,8 @@ def as_dict(self) -> Dict[Literal["load_p", "load_q", "prod_p", "prod_v", * `storage_power`: the setpoint for production / consumption for all storage units * `curtailment`: the curtailment performed on all generator * `shunt` : + + TODO detailed topo Returns ------- @@ -4536,6 +4836,7 @@ def as_dict(self) -> Dict[Literal["load_p", "load_q", "prod_p", "prod_v", if type(self).shunts_data_available: self._aux_as_dict_shunt(res) + # TODO detailed topo return res def get_types(self) -> Tuple[bool, bool, bool, bool, bool, bool, bool]: @@ -4860,6 +5161,8 @@ def effect_on( else: res = self._aux_effect_on_substation(substation_id) + + # TODO detailed topo ! return res def get_storage_modif(self) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: @@ -5599,7 +5902,7 @@ def set_bus(self) -> np.ndarray: raise IllegalAction( 'Impossible to modify the bus (with "set") with this action type.' ) - res = 1 * self._set_topo_vect + res = self._set_topo_vect.copy() res.flags.writeable = False return res @@ -5638,6 +5941,71 @@ def set_bus(self, values): f'The error was:\n"{exc_}"' ) from exc_ + @property + def set_switch(self) -> np.ndarray: + """ + Allows to retrieve (and affect) the switch state by using **set**. + + Notes + ----- + + For example: + + .. code-block:: python + + act.set_switch = [(0, 1), (1, -1), (3, 1)] + + Will: + + * set the switch 0 to the `1` state, which is "closed" (current can pass) + * set the switch 1 to the `-1` state, which is "opened" (current cannot pass) + * set the switch 3 to the `1` state, which is "closed" (current can pass) + + """ + if "set_switch" not in self.authorized_keys: + raise IllegalAction( + 'Impossible to modify the switch (with "set") with this action type.' + ) + res = self._set_switch_status.copy() + res.flags.writeable = False + return res + + @set_switch.setter + def set_switch(self, values): + cls = type(self) + if "set_switch" not in cls.authorized_keys: + raise IllegalAction( + 'Impossible to modify the switch (with "set") with this action type.' + ) + nb_switch = type(self).detailed_topo_desc.switches.shape[0] + orig_ = self.set_switch + try: + self._aux_affect_object_int( + values, + "", + nb_switch, + None, + np.arange(nb_switch), + self._set_switch_status, + max_val=1 + ) + self._modif_set_switch = True + except Exception as exc_: + self._aux_affect_object_int( + orig_, + "", + nb_switch, + None, + np.arange(nb_switch), + self._set_switch_status, + max_val=1 + ) + raise AmbiguousAction( + f"Impossible to modify the switch with your input. " + f"Please consult the documentation. " + f'The error was:\n"{exc_}"' + ) from exc_ + @property def line_set_status(self) -> np.ndarray: """ @@ -5670,7 +6038,7 @@ def line_set_status(self) -> np.ndarray: raise IllegalAction( 'Impossible to modify the status of powerlines (with "set") with this action type.' ) - res = 1 * self._set_line_status + res = self._set_line_status.copy() res.flags.writeable = False return res @@ -5680,7 +6048,7 @@ def line_set_status(self, values): raise IllegalAction( 'Impossible to modify the status of powerlines (with "set") with this action type.' ) - orig_ = 1 * self._set_line_status + orig_ = self.line_set_status try: self._aux_affect_object_int( values, @@ -5917,7 +6285,7 @@ def change_bus(self) -> np.ndarray: element correspond to what component of this "vector". """ - res = copy.deepcopy(self._change_bus_vect) + res = self._change_bus_vect.copy() res.flags.writeable = False return res @@ -5954,6 +6322,72 @@ def change_bus(self, values): f'The error was:\n"{exc_}"' ) from exc_ + @property + def change_switch(self) -> np.ndarray: + """ + Allows to retrieve (and affect) the switch using the **change** paradigm. + + Notes + ----- + + For example: + + .. code-block:: python + + act.change_switch = [0, 1, 3] + + Will: + + * change the position switch 0 (if it was open it will close it and if it was closed it will open it) + * change the position switch 1 (if it was open it will close it and if it was closed it will open it) + * change the position switch 3 (if it was open it will close it and if it was closed it will open it) + + .. warning:: + Changing the switch might not have any impact or it might have a very impactfull one. + + """ + if type(self).detailed_topo_desc is None: + raise AmbiguousAction("You cannot 'change the switch' as no detailed " + "information (about switches) is provided in your grid.") + res = self._change_switch_status.copy() + res.flags.writeable = False + return res + + @change_switch.setter + def change_switch(self, values): + + if "change_switch" not in self.authorized_keys: + raise IllegalAction( + 'Impossible to modify the switches (with change) state with this action type.' + ) + + orig_ = self.change_switch + nb_switch = type(self).detailed_topo_desc.switches.shape[0] + try: + self._aux_affect_object_bool( + values, + "", + nb_switch, + None, + np.arange(nb_switch), + self._change_switch_status, + ) + self._modif_change_switch = True + except Exception as exc_: + self._aux_affect_object_bool( + orig_, + "", + nb_switch, + None, + np.arange(nb_switch), + self._change_switch_status, + ) + raise AmbiguousAction( + f"Impossible to modify the switch with your input. " + f"Please consult the documentation. " + f'The error was:\n"{exc_}"' + ) from exc_ + @property def load_change_bus(self) -> np.ndarray: """ @@ -6255,7 +6689,7 @@ def line_change_status(self, values): raise IllegalAction( 'Impossible to modify the status of powerlines (with "change") with this action type.' ) - orig_ = 1 * self._switch_line_status + orig_ = self._switch_line_status.copy() try: self._aux_affect_object_bool( values, @@ -6306,7 +6740,7 @@ def raise_alarm(self) -> np.ndarray: This might be counter intuitive """ - res = copy.deepcopy(self._raise_alarm) + res = self._raise_alarm.copy() res.flags.writeable = False return res @@ -6319,7 +6753,7 @@ def raise_alarm(self, values): cls = type(self) if "raise_alarm" not in cls.authorized_keys: raise IllegalAction("Impossible to send alarms with this action type.") - orig_ = copy.deepcopy(self._raise_alarm) + orig_ = self.raise_alarm try: self._aux_affect_object_bool( values, @@ -6359,7 +6793,7 @@ def raise_alert(self) -> np.ndarray: # this act will raise an alert on the powerline attackable 0 (powerline concerned will be action.alertable_line_ids[0]) """ - res = copy.deepcopy(self._raise_alert) + res = self._raise_alert.copy() res.flags.writeable = False return res @@ -6368,7 +6802,7 @@ def raise_alert(self, values): cls = type(self) if "raise_alert" not in cls.authorized_keys: raise IllegalAction("Impossible to send alerts with this action type.") - orig_ = copy.deepcopy(self._raise_alert) + orig_ = self.raise_alert try: self._aux_affect_object_bool( values, @@ -6489,7 +6923,7 @@ def detach_load(self) -> np.ndarray: you want to change, for "set" you need to provide the ID **AND** where you want to set them. """ - res = copy.deepcopy(self._detach_load) + res = self._detach_load.copy() res.flags.writeable = False return res @@ -6544,7 +6978,7 @@ def detach_gen(self) -> np.ndarray: See notes in the :attr:`BaseAction.detach_load` for more information """ - res = copy.deepcopy(self._detach_gen) + res = self._detach_gen.copy() res.flags.writeable = False return res @@ -6599,7 +7033,7 @@ def detach_storage(self) -> np.ndarray: See notes in the :attr:`BaseAction.detach_load` for more information """ - res = copy.deepcopy(self._detach_storage) + res = self._detach_storage.copy() res.flags.writeable = False return res @@ -6922,7 +7356,7 @@ def redispatch(self) -> np.ndarray: and continuous action (where the values are float, like "redispatch" or "storage_p") """ - res = 1.0 * self._redispatch + res = self._redispatch.copy() res.flags.writeable = False return res @@ -6971,7 +7405,7 @@ def storage_p(self) -> np.ndarray: For more information, feel free to consult the documentation :ref:`storage-mod-el` where more details are given about the modeling ot these storage units. """ - res = 1.0 * self._storage_power + res = self._storage_power.copy() res.flags.writeable = False return res @@ -7024,7 +7458,7 @@ def curtail(self) -> np.ndarray: For more information, feel free to consult the documentation :ref:`generator-mod-el` where more details are given about the modeling ot these storage units. """ - res = 1.0 * self._curtail + res = self._curtail.copy() res.flags.writeable = False return res @@ -7162,7 +7596,7 @@ def _aux_set_bus_sub(self, values): @property def sub_set_bus(self) -> np.ndarray: # TODO doc - res = 1 * self.set_bus + res = self.set_bus.copy() res.flags.writeable = False return res @@ -7323,7 +7757,7 @@ def _aux_sub_when_dict_get_id(self, sub_id): @property def sub_change_bus(self) -> np.ndarray: - res = copy.deepcopy(self.change_bus) + res = self.change_bus.copy() res.flags.writeable = False return res @@ -7405,7 +7839,7 @@ def curtail_mw(self) -> np.ndarray: its production will be limited to 15 MW (then droping from 55MW to 15MW) so loosing 40MW (and not 15 !) """ - res = 1.0 * self._curtail * self.gen_pmax + res = self._curtail * self.gen_pmax res[res < 0.0] = -1.0 res.flags.writeable = False return res @@ -7876,6 +8310,11 @@ def decompose_as_unary_actions(self, self._aux_decompose_as_unary_actions_curtail(cls, group_curtail, res) return res + @classmethod + def from_switches(cls, obs, switches_list): + # TODO detailed topo + pass + def _add_act_and_remove_line_status_only_set(self, other: "BaseAction") -> "BaseAction": """INTERNAL @@ -7938,7 +8377,7 @@ def remove_change(self) -> "BaseAction": self._modif_change_bus = False if self._private_switch_line_status is not None and self._private_switch_line_status.any(): self._private_switch_line_status[:] = False - self._modif_change_status = False + self._modif_change_switch = False return self def has_element_detached(self): @@ -7946,3 +8385,52 @@ def has_element_detached(self): `detach_load`, `detach_gen` or `detach_storage` """ return self._modif_detach_gen or self._modif_detach_load or self._modif_detach_storage + + @classmethod + def _get_full_cls_str_derived(cls) -> str: + def _key_to_proper_string(k): + return f'"{k}"' + + def _identity(x): return x + + def _serialize_float(el): + if el is None: + return "None" + if np.isfinite(el): + return float(el) + return "np.nan" + + def _get_dict_entry(k, v): + dtype_str_ = "" + if v is None: + return f"{_key_to_proper_string(k)}: None, " + if len(v) == 0: + return f"{_key_to_proper_string(k)}: np.array([]), " + first_ = v[0] + if isinstance(first_, (bool, dt_bool)): + dtype_str_ = "dtype=dt_bool" + fun_ser_as_str = bool + elif isinstance(first_, (float, dt_float, np.float16, np.float32, np.float64)): + dtype_str_ = "dtype=dt_float" + fun_ser_as_str = _serialize_float + elif isinstance(first_, (int, dt_int, np.int16, np.int32, np.int64)): + dtype_str_ = "dtype=dt_int" + fun_ser_as_str = int + else: + fun_ser_as_str = _identity + array_str = f'np.array([{",".join([f"{fun_ser_as_str(el)}" for el in v])}], {dtype_str_})' + return f"{_key_to_proper_string(k)}: {array_str}," + sep_ = "\n\t" + authorized_keys_str = f"{{{','.join([_key_to_proper_string(el) for el in cls.authorized_keys])}}}" + attr_list_vect_str = f"[{','.join([_key_to_proper_string(el) for el in cls.attr_list_vect])}]" + attr_nan_list_set_str = f"set([{','.join([_key_to_proper_string(el) for el in cls.attr_nan_list_set])}])" + aux_dict_attr_str_ = sep_.join([_get_dict_entry(k, v) for k, v in cls._DICT_ATTR_.items()]) + _dict_attr_str = f"{{{aux_dict_attr_str_}}}" + res = f""" + authorized_keys = {authorized_keys_str} + attr_list_vect = {attr_list_vect_str} + attr_nan_list_set = {attr_nan_list_set_str} + _DICT_ATTR_ = {_dict_attr_str} + _IS_CLS_FINALIZED = True +""" + return res diff --git a/grid2op/Backend/backend.py b/grid2op/Backend/backend.py index 6bb872cb..5ad187a8 100644 --- a/grid2op/Backend/backend.py +++ b/grid2op/Backend/backend.py @@ -15,13 +15,6 @@ import numpy as np import pandas as pd from typing import Tuple, Optional, Any, Dict, Type, Union, TYPE_CHECKING - - -if TYPE_CHECKING: - # for type hints to avoid circular import - from grid2op.Action._backendAction import _BackendAction - from grid2op.Environment import BaseEnv - from grid2op.Action import CompleteAction try: from typing import Self @@ -29,7 +22,6 @@ # python version is probably bellow 3.11 from typing_extensions import Self # type: ignore -import grid2op from grid2op.dtypes import dt_int, dt_float, dt_bool from grid2op.Exceptions import ( EnvError, @@ -40,8 +32,21 @@ IncorrectNumberOfLines, Grid2OpException, ) -from grid2op.Space import GridObjects, ElTypeInfo, DEFAULT_N_BUSBAR_PER_SUB, DEFAULT_ALLOW_DETACHMENT +from grid2op.Space import (GridObjects, + ElTypeInfo, + DEFAULT_N_BUSBAR_PER_SUB, + DEFAULT_ALLOW_DETACHMENT, + DEFAULT_BK_CAN_MANIPULATE_SWITCH, + DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER, + ) +if TYPE_CHECKING: + # for type hints to avoid circular import + from grid2op.Action._backendAction import _BackendAction + from grid2op.Environment import BaseEnv + from grid2op.Action import CompleteAction + from grid2op.Observation import CompleteObservation + # TODO method to get V and theta at each bus, could be in the same shape as check_kirchoff class Backend(GridObjects, ABC): @@ -177,14 +182,16 @@ def __init__(self, #: A flag to indicate whether the :func:`Backend.cannot_handle_more_than_2_busbar` #: or the :func:`Backend.cannot_handle_more_than_2_busbar` #: has been called when :func:`Backend.load_grid` was called. - #: Starting from grid2op 1.10.0 this is a requirement (to + #: Starting from grid2op 1.10.0 calling either of the above method + #: is a requirement (to #: ensure backward compatibility) self._missing_two_busbars_support_info: bool = True #: .. versionadded:: 1.10.0 #: #: There is a difference between this and the class attribute. - #: You should not worry about the class attribute of the backend in :func:`Backend.apply_action` + #: You should not worry about the class attribute of the backend + #: in :func:`Backend.apply_action` self.n_busbar_per_sub: int = DEFAULT_N_BUSBAR_PER_SUB #: .. versionadded: 1.11.0 @@ -199,7 +206,7 @@ def __init__(self, #: .. versionadded: 1.11.0 #: will be used later on in future grid2op version - self._prevent_automatic_disconnection: bool = True + self._prevent_automatic_disconnection : bool = True #: speed optimization to avoid np.full, which is rather slow self._disconnected_during_cf = None @@ -207,6 +214,72 @@ def __init__(self, #: speed optimization: avoid to compute some data not used in general self._needs_active_bus = False + #: ..versionadded: SWITCH_VERSION + #: TODO detailed topo + self._missing_switch_support_info: bool = True + + #: ..versionadded: SWITCH_VERSION + #: TODO detailed topo + #: tells wether or not the backend has the possibility + #: to directly process switches + #: in this case costly (in terms of comptuation time + #: routines are not used grid2op side) + #: TODO this optimization is not done yet ! + self.can_manipulate_switch = DEFAULT_BK_CAN_MANIPULATE_SWITCH + + #: ..versionadded: SWITCH_VERSION + #: TODO detailed topo + self._missing_bus_breaker_topo_support_info: bool = True + + #: ..versionadded: SWITCH_VERSION + #: TODO detailed topo + #: tells wether or not the backend has the possibility + #: to directly process bus breaker topology + #: in this case costly (in terms of comptuation time + #: routines are not used grid2op side) + #: TODO this optimization is not done yet ! + self.can_manipulate_bus_breaker_topo = DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER + + def can_handle_switch(self): + """ + ..versionadded: SWITCH_VERSION + + TODO detailed topo + TODO: doc + test + AAA tests ! + """ + self._missing_switch_support_info = False + self.can_manipulate_switch = True + + def cannot_handle_switch(self): + """ + ..versionadded: SWITCH_VERSION + + TODO detailed topo + TODO: doc + test + AAA tests ! + """ + self._missing_switch_support_info = False + self.can_manipulate_switch = False + + def can_handle_bus_breaker_topo(self): + """ + ..versionadded: SWITCH_VERSION + + TODO detailed topo + TODO: doc + test + AAA tests ! + """ + self._missing_bus_breaker_topo_support_info = False + self.can_manipulate_bus_breaker_topo = True + + def cannot_handle_bus_breaker_topo(self): + """ + ..versionadded: SWITCH_VERSION + + TODO detailed topo + TODO: doc + test + AAA tests ! + """ + self._missing_bus_breaker_topo_support_info = False + self.can_manipulate_bus_breaker_topo = False + def can_handle_more_than_2_busbar(self): """ .. versionadded:: 1.10.0 @@ -588,17 +661,33 @@ def runpf(self, is_dc : bool=False) -> Tuple[bool, Union[Exception, None]]: """ pass - @abstractmethod - def get_topo_vect(self) -> np.ndarray: + def get_topo_vect(self) -> Optional[np.ndarray]: """ INTERNAL + TODO detailed topo: change of behaviour ! + + .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ Prefer using :attr:`grid2op.Observation.BaseObservation.topo_vect` Get the topology vector from the :attr:`Backend._grid`. + .. versionchanged:: 1.11.0 + + **mainly for developer** + + In grid2op version 1.11.0 we introduced the support (for some environment) + for switches. + + **IF** your backend expose the switches to grid2op, then you might + not need to implement this function. In this case (if you chose not + to implement it) then you must implement the :func:`Backend.get_switches_position` + and grid2op will compute the "topo_vect" (if required by the `Agent` or the `Rules` + using the :func:`grid2op.Space.DetailedTopoDescription.from_switches_position` + function, which might be slower than what you backend could do) + .. note:: It is called after the solver has been ran, only in case of success (convergence). @@ -626,8 +715,22 @@ def get_topo_vect(self) -> np.ndarray: An array saying to which bus the object is connected. """ - pass + return None + def get_switches_position(self) -> Optional[np.ndarray]: + """INTERNAL + + TODO detailed topo: change of behaviour ! + + .. newinversion:: 1.11.0 + + Returns + ------- + np.ndarray + _description_ + """ + return None + @abstractmethod def generators_info(self) -> Tuple[np.ndarray, np.ndarray, np.ndarray]: """ @@ -2237,7 +2340,7 @@ def get_action_to_set(self) -> "CompleteAction": return set_me def update_from_obs(self, - obs: "grid2op.Observation.CompleteObservation", + obs: "CompleteObservation", force_update: Optional[bool]=False) -> "_BackendAction": """ Takes an observation as input and update the internal state of `self` to match the state of the backend @@ -2365,6 +2468,51 @@ def assert_grid_correct(self, _local_dir_cls=None) -> None: self.detachment_is_allowed = DEFAULT_ALLOW_DETACHMENT warnings.warn("Your backend is missing the `_missing_detachment_support_info` " "attribute.") + + if hasattr(self, "_missing_switch_support_info"): + if self._missing_switch_support_info: + warnings.warn("The backend implementation you are using is probably too old to take advantage of the " + "new feature added in grid2op SWITCH_VERSION: the possibility " + "to modify the grid topology with swtiches directly." + "To silence this warning, you can modify the `load_grid` implementation " + "of your backend and either call:\n" + "- self.can_handle_switch if the current implementation " + " can handle the modification of switches OR\n" + "- self.cannot_handle_switch if not." + "\nAnd of course, ideally, if the current implementation " + "of your backend cannot handle switches, adapt it to make it work. " + f"\nThis is set to {DEFAULT_BK_CAN_MANIPULATE_SWITCH}, to match legacy code." + "\nThis entails that grid2op will compute the resulting topology after a switch " + "has been modified by the agent, which will increase computation time.") + self._missing_switch_support_info = False + self.can_manipulate_switch = DEFAULT_BK_CAN_MANIPULATE_SWITCH + else: + self._missing_switch_support_info = False + self.can_manipulate_switch = DEFAULT_BK_CAN_MANIPULATE_SWITCH + warnings.warn("Your backend is missing the `_missing_switch_support_info` " + "attribute.") + + if hasattr(self, "_missing_bus_breaker_topo_support_info"): + if self._missing_bus_breaker_topo_support_info: + warnings.warn("The backend implementation you are using is probably too old to take advantage of the " + "new feature added in grid2op SWITCH_VERSION: the possibility " + "to modify the grid topology with swtiches directly." + "For legacy backends, this imposed that the backend is able to process" + "'bus breaker' topology as it used to be required by grid2op.") + self._missing_bus_breaker_topo_support_info = False + self.can_manipulate_bus_breaker_topo = DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER + else: + self._missing_bus_breaker_topo_support_info = False + self.can_manipulate_bus_breaker_topo = DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER + warnings.warn("Your backend is missing the `_missing_bus_breaker_topo_support_info` " + "attribute.") + + if (not self.can_manipulate_bus_breaker_topo) and not (self.can_manipulate_switch): + warnings.warn("No topological action will be able to be performed by the agent, as" + "your backend does not know how to modify the topology.") + # TODO detailed topo: force also the emulation of protection, + # the opponent, + # and other kind of things in this case. orig_type = type(self) if orig_type.my_bk_act_class is None and orig_type._INIT_GRID_CLS is None: @@ -2404,8 +2552,6 @@ def _add_internal_classes(cls, _local_dir_cls): cls.my_bk_act_class = _BackendAction.init_grid(cls, _local_dir_cls=_local_dir_cls) cls._complete_action_class = CompleteAction.init_grid(cls, _local_dir_cls=_local_dir_cls) - cls._complete_action_class._add_shunt_data() - cls._complete_action_class._update_value_set() cls.assert_grid_correct_cls() def _remove_my_attr_cls(self): diff --git a/grid2op/Backend/pandaPowerBackend.py b/grid2op/Backend/pandaPowerBackend.py index 9c956ea5..3a68a404 100644 --- a/grid2op/Backend/pandaPowerBackend.py +++ b/grid2op/Backend/pandaPowerBackend.py @@ -362,6 +362,9 @@ def load_grid(self, """ self.can_handle_more_than_2_busbar() self.can_handle_detachment() + self.can_handle_bus_breaker_topo() + self.cannot_handle_switch() + full_path = self.make_complete_path(path, filename) with warnings.catch_warnings(): diff --git a/grid2op/Environment/_env_prev_state.py b/grid2op/Environment/_env_prev_state.py index 52d81221..3d7398bd 100644 --- a/grid2op/Environment/_env_prev_state.py +++ b/grid2op/Environment/_env_prev_state.py @@ -7,14 +7,16 @@ # This file is part of Grid2Op, Grid2Op a testbed platform to model sequential decision making in power systems. import copy -from typing import Optional, Type, Union +from typing import Optional, Type, Union, TYPE_CHECKING import numpy as np from grid2op.Space import GridObjects -import grid2op.Backend from grid2op.dtypes import dt_int from grid2op.typing_variables import CLS_AS_DICT_TYPING from grid2op.Exceptions import Grid2OpException +if TYPE_CHECKING: + from grid2op.Backend import Backend + class _EnvPreviousState(object): ERR_MSG_IMP_MODIF = "Impossible to modifiy this _EnvPreviousState" @@ -117,7 +119,7 @@ def update(self, raise Grid2OpException("No new switch values to update previous values") def update_from_backend(self, - backend: "grid2op.Backend.Backend"): + backend: "Backend"): if not self._can_modif: raise Grid2OpException(type(self).ERR_MSG_IMP_MODIF) topo_vect = backend.get_topo_vect() @@ -132,12 +134,11 @@ def update_from_backend(self, else: shunt_p, shunt_q, _, shunt_bus = None, None, None, None - switches = None - # if type(backend).detailed_topo_desc is not None: - # # TODO detailed topo ! - # switches = np.ones(type(backend).detailed_topo_desc.switches.shape[0], dtype=dt_int) - # else: - # switches = None + if type(backend).detailed_topo_desc is not None: + # TODO detailed topo ! + switches = np.ones(type(backend).detailed_topo_desc.switches.shape[0], dtype=dt_int) + else: + switches = None self.update(load_p, load_q, gen_p, gen_v, diff --git a/grid2op/Environment/baseEnv.py b/grid2op/Environment/baseEnv.py index abf0e252..c2f1d50f 100644 --- a/grid2op/Environment/baseEnv.py +++ b/grid2op/Environment/baseEnv.py @@ -22,6 +22,7 @@ from scipy.optimize import (minimize, LinearConstraint) from abc import ABC, abstractmethod +from grid2op.Space.detailed_topo_description import DetailedTopoDescription from grid2op._glop_platform_info import _IS_WINDOWS from grid2op.Environment._env_prev_state import _EnvPreviousState from grid2op.Observation import (BaseObservation, @@ -1350,8 +1351,8 @@ def _create_opponent(self): raise EnvError( 'Impossible to convert "opponent_init_budget" to a float with error {}'.format( e - ) - ) + ) + ) from e if self._opponent_init_budget < 0.0: raise EnvError( "If you want to deactivate the opponent, please don't set its budget to a negative number." @@ -1363,8 +1364,6 @@ def _create_opponent(self): "Impossible to make an opponent with a type that does not inherit from BaseOpponent." ) - self._opponent_action_class._add_shunt_data() - self._opponent_action_class._update_value_set() self._opponent_action_space = self._helper_action_class( gridobj=type(self.backend), legal_action=AlwaysLegal, @@ -1376,7 +1375,7 @@ def _create_opponent(self): self._opponent_action_space ) self._opponent = self._opponent_class(self._opponent_action_space) - self._oppSpace = self._opponent_space_type( + self._oppSpace : OpponentSpace = self._opponent_space_type( compute_budget=self._compute_opp_budget, init_budget=self._opponent_init_budget, attack_duration=self._opponent_attack_duration, @@ -1503,6 +1502,7 @@ def _has_been_initialized(self): # previous state (complete) n_shunt = bk_type.n_shunt if bk_type.shunts_data_available else 0 + dtd: Optional[DetailedTopoDescription] = bk_type.detailed_topo_desc self._previous_conn_state = _EnvPreviousState(bk_type, np.zeros(bk_type.n_load, dtype=dt_float), np.zeros(bk_type.n_load, dtype=dt_float), @@ -1513,17 +1513,20 @@ def _has_been_initialized(self): np.zeros(n_shunt, dtype=dt_float), np.zeros(n_shunt, dtype=dt_float), np.zeros(n_shunt, dtype=dt_int), + np.zeros(dtd.switches.shape[0]) if dtd is not None else None ) if self._init_obs is None: # regular environment, initialized from scratch try: self.backend.runpf(is_dc=self._parameters.ENV_DC) - self._previous_conn_state.update_from_backend(self.backend) + self._previous_conn_state.update_from_backend(self.backend) # TODO detailed topo: handle cases: a) backend has switch information b) backend does not know switches except Exception as exc_: # nothing to do in this case self.logger.warning(f"Impossible to retrieve the initial state of the grid before running the initial powerflow: {exc_}") self._previous_conn_state._topo_vect[:] = 1 # I force assign everything to busbar 1 by default... + # TODO detailed topo: in this case make the algorithm to find a possible configuration to all 1 for + # the switches self._cst_prev_state_at_init = copy.deepcopy(self._previous_conn_state) self._backend_action = self._backend_action_class() else: @@ -3099,7 +3102,7 @@ def _aux_handle_act_inj(self, action: BaseAction): # modification of the injections in the action, this erases the actions in the environment if inj_key in action._dict_inj: if inj_key in self._env_modification._dict_inj: - this_p_load = 1.0 * self._env_modification._dict_inj[inj_key] + this_p_load = self._env_modification._dict_inj[inj_key].copy() act_modif = action._dict_inj[inj_key] this_p_load[np.isfinite(act_modif)] = act_modif[ np.isfinite(act_modif) @@ -3107,7 +3110,7 @@ def _aux_handle_act_inj(self, action: BaseAction): self._env_modification._dict_inj[inj_key][:] = this_p_load else: self._env_modification._dict_inj[inj_key] = ( - 1.0 * action._dict_inj[inj_key] + action._dict_inj[inj_key].copy() ) self._env_modification._modif_inj = True @@ -3671,6 +3674,7 @@ def step(self, action: BaseAction) -> Tuple[BaseObservation, beg_step = time.perf_counter() self._last_obs : Optional[BaseObservation] = None self._forecasts = None # force reading the forecast from the time series + try: beg_ = time.perf_counter() @@ -3711,7 +3715,6 @@ def step(self, action: BaseAction) -> Tuple[BaseObservation, # explicitly store in cache the topological impact (not to recompute it again and again) # and this regardless of the _ = action.get_topological_impact(powerline_status, _store_in_cache=True, _read_from_cache=False) - if not self._called_from_reset: # avoid checking this at first environment "step" which is a "reset" is_legal, reason = self._game_rules(action=action, env=self) @@ -4251,7 +4254,7 @@ def attach_layout(self, grid_layout): if self.__is_init: res = {} for el in self.name_sub: - if not el in grid_layout: + if el not in grid_layout: raise EnvError( 'The substation "{}" is not present in grid_layout while in the powergrid.' "".format(el) @@ -4528,14 +4531,14 @@ def _aux_gen_classes(cls_other, sys_path, _add_class_output=False): env_path, env_nm = os.path.split(sub_repo) if env_path not in sys.path: sys.path.append(env_path) - if not package_path in sys.path: + if package_path not in sys.path: sys.path.append(package_path) super_supermodule = importlib.import_module(env_nm) nm_ = f"{tmp_nm}.{nm_}" tmp_nm = env_nm super_module = importlib.import_module(tmp_nm, package=sub_repo_mod) add_sys_path = os.path.dirname(super_module.__file__) - if not add_sys_path in sys.path: + if add_sys_path not in sys.path: sys.path.append(add_sys_path) if f"{tmp_nm}.{nm_}" in sys.modules: diff --git a/grid2op/Environment/environment.py b/grid2op/Environment/environment.py index 44342481..3e3973ec 100644 --- a/grid2op/Environment/environment.py +++ b/grid2op/Environment/environment.py @@ -353,7 +353,6 @@ def _init_backend( self._game_rules = RulesChecker(legalActClass=legalActClass) self._game_rules.initialize(self) self._legalActClass = legalActClass - # action helper if not isinstance(actionClass, type): raise Grid2OpException( @@ -386,12 +385,9 @@ def _init_backend( bk_type = type(self.backend) self._rewardClass = rewardClass self._actionClass : Type[BaseAction] = actionClass.init_grid(gridobj=bk_type, _local_dir_cls=self._local_dir_cls) - self._actionClass._add_shunt_data() - self._actionClass._update_value_set() self._observationClass = observationClass.init_grid(gridobj=bk_type, _local_dir_cls=self._local_dir_cls) - self._complete_action_cls = CompleteAction.init_grid(gridobj=bk_type, _local_dir_cls=self._local_dir_cls) - + self._complete_action_cls : Type[CompleteAction] = CompleteAction.init_grid(gridobj=bk_type, _local_dir_cls=self._local_dir_cls) self._helper_action_class = ActionSpace.init_grid(gridobj=bk_type, _local_dir_cls=self._local_dir_cls) self._action_space = self._helper_action_class( gridobj=bk_type, diff --git a/grid2op/MakeEnv/Make.py b/grid2op/MakeEnv/Make.py index d4fb5ee3..77c504b7 100644 --- a/grid2op/MakeEnv/Make.py +++ b/grid2op/MakeEnv/Make.py @@ -21,6 +21,7 @@ from grid2op.MakeEnv._aux_var import TEST_DEV_ENVS from grid2op.Download.DownloadDataset import _aux_download from grid2op.Space import DEFAULT_ALLOW_DETACHMENT, DEFAULT_N_BUSBAR_PER_SUB +from grid2op.MakeEnv._aux_var import TEST_DEV_ENVS _VAR_FORCE_TEST = "_GRID2OP_FORCE_TEST" diff --git a/grid2op/Observation/baseObservation.py b/grid2op/Observation/baseObservation.py index 3a85942a..446df771 100644 --- a/grid2op/Observation/baseObservation.py +++ b/grid2op/Observation/baseObservation.py @@ -577,8 +577,15 @@ class BaseObservation(GridObjects): attr_list_vect = None # value to assess if two observations are equal _tol_equal = 1e-3 - MAX_INT = dt_int(np.iinfo(dt_int).max) + #: .. versionadded: todo detailed topo + #: attributes that will be copied with other.attr = self.attr.copy() + attr_copy_method = [ + "_prev_conn" + ] + + #: .. versionadded: 1.12.0 + #: attributes that will be copied with other.attr = copy.copy(self.attr) attr_simple_cpy = [ "max_step", "current_step", @@ -591,9 +598,10 @@ class BaseObservation(GridObjects): "year", "delta_time", "_is_done", - "_prev_conn" ] - + + #: .. versionadded: 1.12.0 + # attributes that will be copied with other.attr[:] = self.attr attr_vect_cpy = [ "storage_theta", "gen_theta", @@ -661,6 +669,10 @@ class BaseObservation(GridObjects): # soft_overflow_threshold "timestep_protection_engaged" ] + + #: to avoid reading it each time an + #: observation is built + MAX_INT = dt_int(np.iinfo(dt_int).max) def __init__(self, obs_env=None, @@ -817,6 +829,11 @@ def _aux_copy(self, other : Self) -> None: # for old code (eg lightsim2grid legacy) # some attribute did not exist getattr(other, attr_nm)[:] = getattr(self, attr_nm) + + for attr_nm in cls.attr_copy_method: + tmp = getattr(self, attr_nm) + if tmp is not None: + setattr(other, attr_nm, tmp.copy()) def change_reward(self, reward_func: "grid2op.Reward.BaseReward"): """Allow to change the reward used when calling :func:`BaseObservation.simulate` @@ -5293,3 +5310,8 @@ def process_detachment(cls): pass cls._update_value_set() return super().process_detachment() + + @classmethod + def finalize_class_definition(cls): + cls._update_value_set() + \ No newline at end of file diff --git a/grid2op/Opponent/geometricOpponent.py b/grid2op/Opponent/geometricOpponent.py index 1c811aa5..652ca626 100644 --- a/grid2op/Opponent/geometricOpponent.py +++ b/grid2op/Opponent/geometricOpponent.py @@ -101,9 +101,9 @@ def init( if len(lines_attacked) == 0: warnings.warn( - f"The opponent is deactivated as there is no information as to which line to attack. " - f'You can set the argument "kwargs_opponent" to the list of the line names you want ' - f' the opponent to attack in the "make" function.' + "The opponent is deactivated as there is no information as to which line to attack. " + 'You can set the argument "kwargs_opponent" to the list of the line names you want ' + ' the opponent to attack in the "make" function.' ) # Store attackable lines IDs diff --git a/grid2op/Opponent/opponentSpace.py b/grid2op/Opponent/opponentSpace.py index 9a1583be..193d9a01 100644 --- a/grid2op/Opponent/opponentSpace.py +++ b/grid2op/Opponent/opponentSpace.py @@ -9,6 +9,7 @@ import numpy as np from grid2op.Exceptions import OpponentError +from grid2op.Opponent.baseOpponent import BaseOpponent class OpponentSpace(object): @@ -64,7 +65,7 @@ def __init__( self.init_budget = init_budget self.budget = init_budget self.compute_budget = compute_budget - self.opponent = opponent + self.opponent : BaseOpponent = opponent self._do_nothing = self.action_space() self.previous_fails = False self.budget_per_timestep = budget_per_timestep diff --git a/grid2op/Rules/RulesChecker.py b/grid2op/Rules/RulesChecker.py index 6f857c45..f9843e77 100644 --- a/grid2op/Rules/RulesChecker.py +++ b/grid2op/Rules/RulesChecker.py @@ -84,5 +84,4 @@ def __call__(self, action, env): if env.nb_time_step <= 0: # only access when env is reset return True, None - return self.legal_action(action, env) diff --git a/grid2op/Space/GridObjects.py b/grid2op/Space/GridObjects.py index 7ac2f902..c07dce1e 100644 --- a/grid2op/Space/GridObjects.py +++ b/grid2op/Space/GridObjects.py @@ -17,6 +17,7 @@ to manipulate. """ +from re import S import warnings import copy import os @@ -29,13 +30,37 @@ import grid2op from grid2op.dtypes import dt_int, dt_float, dt_bool from grid2op.typing_variables import CLS_AS_DICT_TYPING, N_BUSBAR_PER_SUB_TYPING -from grid2op.Exceptions import * -from grid2op.Space.space_utils import extract_from_dict, save_to_dict, ElTypeInfo +from grid2op.Exceptions import ( + Grid2OpException, + AmbiguousAction, + IncorrectNumberOfElements, + EnvError, + NonFiniteElement, + IncorrectNumberOfLoads, + IncorrectNumberOfGenerators, + IncorrectNumberOfLines, + IncorrectNumberOfStorages, + BackendError, + IncorrectNumberOfSubstation, + IncorrectPositionOfLoads, + IncorrectPositionOfGenerators, + IncorrectPositionOfLines, + IncorrectPositionOfStorages, + InvalidRedispatching, +) +from grid2op.Space.space_utils import (extract_from_dict, + save_to_dict, + _save_to_dict_str, + _save_to_dict_float, + _save_to_dict_int, + ElTypeInfo) + +from grid2op.Space.detailed_topo_description import DetailedTopoDescription from grid2op.Space.default_var import (DEFAULT_ALLOW_DETACHMENT, DEFAULT_N_BUSBAR_PER_SUB, GRID2OP_CLASSES_ENV_FOLDER, GRID2OP_CURRENT_VERSION_STR, - GRID2OP_CURRENT_VERSION) + ) # TODO tests of these methods and this class in general @@ -636,6 +661,8 @@ class GridObjects: alertable_line_names = [] # name of each line to produce an alert on # TODO alertable_line_ids = [] + detailed_topo_desc : ClassVar[Optional[DetailedTopoDescription]] = None + # test _IS_INIT : ClassVar[Optional[bool]] = False @@ -651,7 +678,7 @@ def set_n_busbar_per_sub(cls, n_busbar_per_sub: N_BUSBAR_PER_SUB_TYPING) -> None @classmethod def set_detachment_is_allowed(cls, detachment_is_allowed: bool) -> None: cls.detachment_is_allowed = detachment_is_allowed - + @classmethod def tell_dim_alarm(cls, dim_alarms: int) -> None: if cls.dim_alarms != 0: @@ -694,7 +721,7 @@ def _clear_class_attribute(cls) -> None: This clear the class as if it was defined in grid2op directly. """ - + #: this has to be here and not in _clear_grid_dependant_class_attributes # otherwise it breaks some lightsim2grid versions cls.shunts_data_available = False @@ -736,7 +763,7 @@ def _clear_class_attribute(cls) -> None: cls.LOR_COL = 3 cls.LEX_COL = 4 cls.STORAGE_COL = 5 - + cls._clear_grid_dependant_class_attributes() @classmethod @@ -853,6 +880,9 @@ def _clear_grid_dependant_class_attributes(cls) -> None: cls.alertable_line_names = [] cls.alertable_line_ids = [] + # detailed topology + cls.detailed_topo_desc = None + @classmethod def _update_value_set(cls) -> None: """ @@ -1143,7 +1173,7 @@ def _assign_attr_from_name(self, attr_nm, vect): If this function is overloaded, then the _get_array_from_attr_name must be too. Used for `from_vect`, please see `_set_array_from_attr_name` for `from_json` - + Parameters ---------- attr_nm @@ -1377,7 +1407,9 @@ def _init_class_attr(self, obj=None, _topo_vect_only=False): else: # set all the attributes setattr(cls, attr_nm, attr) - + if cls.detailed_topo_desc is not None and isinstance(cls.detailed_topo_desc, dict): + cls.detailed_topo_desc = DetailedTopoDescription.from_dict(cls.detailed_topo_desc) + # make sure to catch data intiialized even outside of this function if not _topo_vect_only: cls._reset_cls_dict() @@ -1500,7 +1532,7 @@ def _check_sub_id(cls): except Exception as e: raise EnvError( "self.storage_to_subid should be convertible to a numpy array" - ) + ) from e # now check the sizes if len(cls.load_to_subid) != cls.n_load: @@ -1663,7 +1695,7 @@ def _check_names(cls): cls.name_line = cls.name_line.astype(str) except Exception as exc_: raise EnvError( - f"self.name_line should be convertible to a numpy array of type str" + "self.name_line should be convertible to a numpy array of type str" ) from exc_ if not isinstance(cls.name_load, np.ndarray): try: @@ -2058,14 +2090,14 @@ def assert_grid_correct_cls(cls): raise EnvError("Grid2op cannot handle a different number " "of busbar per substations with provided input " "(make sure `n_busbar_per_sub` is an int)") - + if isinstance(cls.detachment_is_allowed, (bool, dt_bool)): cls.detachment_is_allowed = dt_bool(cls.detachment_is_allowed) else: raise EnvError("Grid2op cannot handle disconnection of loads / generators " "at the moment (make sure `detachment_is_allowed` " "is a bool)") - + if (cls.n_busbar_per_sub < 1).any(): raise EnvError(f"`n_busbar_per_sub` should be >= 1 found {cls.n_busbar_per_sub}") @@ -2356,6 +2388,9 @@ def assert_grid_correct_cls(cls): # alert data cls._check_validity_alert_data() + # detailed topo + cls._check_validity_detailed_topo() + @classmethod def _check_validity_alarm_data(cls): if cls.dim_alarms == 0: @@ -2430,6 +2465,11 @@ def _check_validity_alarm_data(cls): f'The powerline "{l_nm}" is not in cls.alarms_lines_area' ) + @classmethod + def _check_validity_detailed_topo(cls): + if cls.detailed_topo_desc is not None: + cls.detailed_topo_desc.check_validity(cls) + @classmethod def _check_validity_alert_data(cls): # TODO remove assert and raise Grid2opExcpetion instead @@ -2626,7 +2666,7 @@ def _check_validity_shunt_data(cls): except Exception as exc: raise EnvError( 'name_shunt should be convertible to a numpy array with dtype "str".' - ) + ) from exc if not isinstance(cls.shunt_to_subid, np.ndarray): try: @@ -2635,7 +2675,7 @@ def _check_validity_shunt_data(cls): except Exception as e: raise EnvError( 'shunt_to_subid should be convertible to a numpy array with dtype "int".' - ) + ) from e if cls.name_shunt.shape[0] != cls.n_shunt: raise IncorrectNumberOfElements( @@ -2793,7 +2833,7 @@ def _check_validity_dispathcing_data(cls): ) for el in cls.gen_type: - if not el in ["solar", "wind", "hydro", "thermal", "nuclear"]: + if el not in ["solar", "wind", "hydro", "thermal", "nuclear"]: raise InvalidRedispatching("Unknown generator type : {}".format(el)) if (cls.gen_pmin < 0.0).any(): @@ -2914,6 +2954,7 @@ def _aux_finish_init_grid_from_file(cls): cls._compute_pos_big_topo_cls() cls.process_shunt_static_data() cls.process_detachment() + cls.finalize_class_definition() @classmethod def _aux_init_grid_from_cls(cls, gridobj, name_res): @@ -2975,7 +3016,7 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo it does not initialize it. Setting "force=True" will bypass this check and update it accordingly. """ - # nothing to do now that the value are class member + # nothing to do now that the value are class member name_res = "{}_{}".format(cls.__name__, gridobj.env_name) if gridobj.glop_version != GRID2OP_CURRENT_VERSION_STR: name_res += f"_{gridobj.glop_version}" @@ -2999,10 +3040,10 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo # to be able to load same environment with # different `n_busbar_per_sub` name_res += f"_{gridobj.n_busbar_per_sub}" - + if gridobj.detachment_is_allowed != DEFAULT_ALLOW_DETACHMENT: name_res += "_allowDetach" - + if _local_dir_cls is not None and gridobj._PATH_GRID_CLASSES is not None: # new in grid2op 1.10.3: # if I end up here it's because (done in base_env.generate_classes()): @@ -3023,7 +3064,6 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo # If I end up it's because the environment is created with already initialized # classes. return cls._aux_init_grid_from_cls(gridobj, name_res) - # legacy behaviour: build the class "on the fly" # of new (>= 1.10.3 for the intial creation of the environment) if name_res in globals(): @@ -3037,6 +3077,9 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo cls_attr_as_dict = {} GridObjects._make_cls_dict_extended(gridobj, cls_attr_as_dict, as_list=False) res_cls = type(name_res, (cls,), cls_attr_as_dict) + if "detailed_topo_desc" in cls_attr_as_dict: + res_cls.detailed_topo_desc = DetailedTopoDescription.from_dict(res_cls.detailed_topo_desc) + if hasattr(cls, "_INIT_GRID_CLS") and cls._INIT_GRID_CLS is not None: # original class is already from an initialized environment, i keep track of it res_cls._INIT_GRID_CLS = cls._INIT_GRID_CLS @@ -3047,8 +3090,16 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo res_cls._compute_pos_big_topo_cls() compat_mode = res_cls.process_grid2op_compat() - res_cls.process_detachment() res_cls.process_shunt_static_data() + res_cls.process_detachment() + + # this needs to be done after process_grid2op_compat + # because process_grid2op_compat can remove the description of the topology + # which is not supported in earlier grid2op versions + if res_cls.detailed_topo_desc is not None: + res_cls.process_grid2op_detailed_topo_vect() + res_cls.finalize_class_definition() + res_cls._check_convert_to_np_array() # convert everything to numpy array if force_module is not None: res_cls.__module__ = force_module # hack because otherwise it says "abc" which is not the case @@ -3065,12 +3116,18 @@ def init_grid(cls, gridobj, force=False, extra_name=None, force_module=None, _lo # as the class has been modified with a "compatibility version" mode tmp = {} res_cls._make_cls_dict_extended(res_cls, tmp, as_list=False) - # store the type created here in the "globals" to prevent the initialization of the same class over and over globals()[name_res] = res_cls del res_cls return globals()[name_res] + @classmethod + def process_grid2op_detailed_topo_vect(cls): + """Process the class to register new attribute for observation and action + if the detailed_topo_desc is not empty (*ie* if there switches on your grid) + """ + pass + @classmethod def _get_grid2op_version_as_version_obj(cls): if cls.glop_version == cls.BEFORE_COMPAT_VERSION: @@ -3112,7 +3169,6 @@ def process_grid2op_compat(cls): cls.dim_alerts = 0 cls.alertable_line_names = [] cls.alertable_line_ids = [] - res = True if glop_ver < version.parse("1.10.0.dev0"): # this feature did not exists before @@ -3125,7 +3181,11 @@ def process_grid2op_compat(cls): # no effect cls.detachment_is_allowed = DEFAULT_ALLOW_DETACHMENT res = True - + + if glop_ver < version.parse("1.10.2.dev3"): + cls.detailed_topo_desc = None + res = True + if res: cls._reset_cls_dict() # forget the previous class (stored as dict) return res @@ -3749,7 +3809,11 @@ def topo_vect_element(cls, topo_vect_id: int) -> Dict[Literal["load_id", "gen_id raise Grid2OpException(f"Unknown element at position {topo_vect_id}") @staticmethod - def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): + def _make_cls_dict(cls: Type["GridObjects"], + res, + as_list=True, + copy_=True, + _topo_vect_only=False): """ INTERNAL @@ -3776,7 +3840,7 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): else: res[k] = v return - + save_to_dict(res, cls, "detachment_is_allowed", str, copy_) if not _topo_vect_only: @@ -3788,158 +3852,36 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): res["_PATH_GRID_CLASSES"] = cls._PATH_GRID_CLASSES # i do that manually for more control save_to_dict(res, cls, "n_busbar_per_sub", str, copy_) - save_to_dict( - res, - cls, - "name_gen", - (lambda arr: [str(el) for el in arr]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "name_load", - (lambda li: [str(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "name_line", - (lambda li: [str(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "name_sub", - (lambda li: [str(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "name_storage", - (lambda li: [str(el) for el in li]) if as_list else None, - copy_, - ) + li_nm_attrs = ["name_gen", "name_load", "name_line", + "name_sub", "name_storage"] + for nm in li_nm_attrs: + save_to_dict( + res, + cls, + nm, + _save_to_dict_str(as_list), + copy_, + ) save_to_dict(res, cls, "env_name", str, copy_) - save_to_dict( - res, - cls, - "sub_info", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - - save_to_dict( - res, - cls, - "load_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "gen_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_or_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_ex_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - - save_to_dict( - res, - cls, - "load_to_sub_pos", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "gen_to_sub_pos", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_or_to_sub_pos", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_ex_to_sub_pos", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_to_sub_pos", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - - save_to_dict( - res, - cls, - "load_pos_topo_vect", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "gen_pos_topo_vect", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_or_pos_topo_vect", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "line_ex_pos_topo_vect", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_pos_topo_vect", - (lambda li: [int(el) for el in li]) if as_list else None, - copy_, - ) + li_attr_ints = ["sub_info", + "load_to_subid", "gen_to_subid", + "line_or_to_subid", "line_ex_to_subid", + "storage_to_subid", + "load_to_sub_pos", "gen_to_sub_pos", + "line_or_to_sub_pos", "line_ex_to_sub_pos", + "storage_to_sub_pos", + "load_pos_topo_vect", "gen_pos_topo_vect", + "line_or_pos_topo_vect", "line_ex_pos_topo_vect", + "storage_pos_topo_vect", ] + for nm in li_attr_ints: + save_to_dict( + res, + cls, + nm, + _save_to_dict_int(as_list), + copy_, + ) # shunts (not in topo vect but still usefull) if cls.shunts_data_available: @@ -3947,14 +3889,14 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): res, cls, "name_shunt", - (lambda li: [str(el) for el in li]) if as_list else None, + _save_to_dict_str(as_list), copy_, ) save_to_dict( res, cls, "shunt_to_subid", - (lambda li: [int(el) for el in li]) if as_list else None, + _save_to_dict_int(as_list), copy_, ) else: @@ -4003,62 +3945,18 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): (lambda li: [str(el) for el in li]) if as_list else None, copy_, ) - save_to_dict( - res, - cls, - "storage_Emax", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_Emin", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_max_p_prod", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_max_p_absorb", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_marginal_cost", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_loss", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_charging_efficiency", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) - save_to_dict( - res, - cls, - "storage_discharging_efficiency", - (lambda li: [float(el) for el in li]) if as_list else None, - copy_, - ) + attr_storage_float = ["storage_Emax", "storage_Emin", + "storage_max_p_prod", "storage_max_p_absorb", + "storage_marginal_cost", "storage_loss", + "storage_charging_efficiency", "storage_discharging_efficiency"] + for el in attr_storage_float: + save_to_dict( + res, + cls, + el, + _save_to_dict_float(as_list), + copy_, + ) # alert or alarm if cls.assistant_warning_type is not None: @@ -4068,8 +3966,6 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): # area for the alarm feature res["dim_alarms"] = cls.dim_alarms - - save_to_dict( res, cls, "alarms_area_names", (lambda li: [str(el) for el in li]), copy_ ) @@ -4102,6 +3998,10 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): save_to_dict( res, cls, "alertable_line_ids", (lambda li: [int(el) for el in li]) if as_list else None, copy_ ) + + if cls.detailed_topo_desc is not None: + res["detailed_topo_desc"] = {} + cls.detailed_topo_desc.save_to_dict(res["detailed_topo_desc"], as_list=as_list, copy_=copy_) # avoid further computation and save it if not as_list: @@ -4109,7 +4009,11 @@ def _make_cls_dict(cls, res, as_list=True, copy_=True, _topo_vect_only=False): return res @staticmethod - def _make_cls_dict_extended(cls, res: CLS_AS_DICT_TYPING, as_list=True, copy_=True, _topo_vect_only=False): + def _make_cls_dict_extended(cls: Type["GridObjects"], + res: CLS_AS_DICT_TYPING, + as_list=True, + copy_=True, + _topo_vect_only=False): """add the n_gen and all in the class created Notes @@ -4157,9 +4061,9 @@ def _make_cls_dict_extended(cls, res: CLS_AS_DICT_TYPING, as_list=True, copy_=Tr # n_busbar_per_sub res["n_busbar_per_sub"] = cls.n_busbar_per_sub - + res["detachment_is_allowed"] = cls.detachment_is_allowed - + # avoid further computation and save it if not as_list and not _topo_vect_only: cls._CLS_DICT_EXTENDED = res.copy() @@ -4232,11 +4136,11 @@ class res(GridObjects): cls._PATH_GRID_CLASSES = None else: cls._PATH_GRID_CLASSES = None - + # Detachment of Loads / Generators if 'detachment_is_allowed' in dict_: if dict_["detachment_is_allowed"] == "True": - cls.detachment_is_allowed = True + cls.detachment_is_allowed = True elif dict_["detachment_is_allowed"] == "False": cls.detachment_is_allowed = False else: @@ -4244,7 +4148,7 @@ class res(GridObjects): "could not be converted to Boolean ") else: # Compatibility for older versions cls.detachment_is_allowed = DEFAULT_ALLOW_DETACHMENT - + if 'n_busbar_per_sub' in dict_: cls.n_busbar_per_sub = int(dict_["n_busbar_per_sub"]) else: @@ -4425,9 +4329,9 @@ class res(GridObjects): # cls.set_env_name(f"{cls.env_name}_{cls.glop_version}") # and now post process the class attributes for that cls.process_grid2op_compat() - + cls.process_detachment() - + if "assistant_warning_type" in dict_: cls.assistant_warning_type = dict_["assistant_warning_type"] else: @@ -4456,6 +4360,8 @@ class res(GridObjects): cls.alertable_line_names = [] cls.alertable_line_ids = [] + if "detailed_topo_desc" in dict_: + cls.detailed_topo_desc = DetailedTopoDescription.from_dict(dict_["detailed_topo_desc"]) # save the representation of this class as dict tmp = {} cls._make_cls_dict_extended(cls, tmp, as_list=False, copy_=True) @@ -4470,14 +4376,14 @@ class res(GridObjects): def process_shunt_static_data(cls): """remove possible shunts data from the classes, if shunts are deactivated""" pass - + @classmethod def process_detachment(cls): """process the status of detachment, that can be turned on or off, is overloaded for :class:`grid2op.Action.BaseAction` or :class:`grid2op.Observation.BaseObservation` """ pass - + @classmethod def set_no_storage(cls): """ @@ -4571,9 +4477,11 @@ def _build_cls_from_import(name_cls, path_env): # normal behaviour i don't do anything there # TODO explain why pass - my_class.process_grid2op_compat() - my_class.process_detachment() - my_class.process_shunt_static_data() + if my_class is not None: + my_class.process_grid2op_compat() + my_class.process_detachment() + my_class.process_shunt_static_data() + my_class.finalize_class_definition() return my_class @staticmethod @@ -4801,6 +4709,15 @@ def _format_bool_vect_to_cls_str(bool_vect): bool_vect_str = f"np.array([{bool_vect_str}], dtype=dt_bool)" return bool_vect_str + @classmethod + def _aux_get_full_cls_str_dtd(cls): + import json + tmp_dtds = {} + cls.detailed_topo_desc.save_to_dict(tmp_dtds) + tmp_dtds_str = json.dumps(tmp_dtds, separators=(',', ':')) + detailed_topo_desc_str = f"DetailedTopoDescription.from_dict({tmp_dtds_str})" + return detailed_topo_desc_str + @classmethod def _get_full_cls_str(cls): _PATH_ENV_str = "None" if cls._PATH_GRID_CLASSES is None else f'"{cls._PATH_GRID_CLASSES}"' @@ -4949,30 +4866,44 @@ def format_el(values): assistant_warning_type_str = (None if cls.assistant_warning_type is None else f'"{cls.assistant_warning_type}"') - alarms_area_names_str = ( - "[]" - if cls.dim_alarms == 0 - else ",".join([f'"{el}"' for el in cls.alarms_area_names]) - ) + + if cls.dim_alarms == 0: + alarms_area_names_str = "[]" + alarms_lines_area_str = "{}" + alarms_area_lines_str = "[]" + else: + + alarms_area_names_str = ",".join([f'"{el}"' for el in cls.alarms_area_names]) - tmp_tmp_ = ",".join( - [f'"{k}": [{format_el(v)}]' for k, v in cls.alarms_lines_area.items()] - ) - tmp_ = f"{{{tmp_tmp_}}}" - alarms_lines_area_str = "{}" if cls.dim_alarms == 0 else tmp_ + tmp_tmp_ = ",".join( + [f'"{k}": [{format_el(v)}]' for k, v in cls.alarms_lines_area.items()] + ) + tmp_ = f"{{{tmp_tmp_}}}" + alarms_lines_area_str = tmp_ + + tmp_tmp_ = ",".join([f"[{format_el(el)}]" for el in cls.alarms_area_lines]) + tmp_ = f"[{tmp_tmp_}]" + alarms_area_lines_str = tmp_ + + if cls.dim_alerts == 0: + alertable_line_names_str = '[]' + alertable_line_ids_str = '[]' + else: + tmp_tmp_ = ",".join([f"\"{el}\"" for el in cls.alertable_line_names]) + tmp_ = f"[{tmp_tmp_}]" + alertable_line_names_str = tmp_ + + tmp_tmp_ = ",".join([f"{el}" for el in cls.alertable_line_ids]) + tmp_ = f"[{tmp_tmp_}]" + alertable_line_ids_str = tmp_ - tmp_tmp_ = ",".join([f"[{format_el(el)}]" for el in cls.alarms_area_lines]) - tmp_ = f"[{tmp_tmp_}]" - alarms_area_lines_str = "[]" if cls.dim_alarms == 0 else tmp_ + detailed_topo_desc_str = "None" # TODO detailed topo + if cls.detailed_topo_desc is not None: + detailed_topo_desc_str = cls._aux_get_full_cls_str_dtd() - tmp_tmp_ = ",".join([f"\"{el}\"" for el in cls.alertable_line_names]) - tmp_ = f"[{tmp_tmp_}]" - alertable_line_names_str = '[]' if cls.dim_alerts == 0 else tmp_ + other_attr_str_ = cls._get_full_cls_str_derived() - tmp_tmp_ = ",".join([f"{el}" for el in cls.alertable_line_ids]) - tmp_ = f"[{tmp_tmp_}]" - alertable_line_ids_str = '[]' if cls.dim_alerts == 0 else tmp_ - res = f"""# Copyright (c) 2019-2024, RTE (https://www.rte-france.com) + res = f"""# Copyright (c) 2019-2025, 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, @@ -4986,6 +4917,7 @@ def format_el(values): import grid2op from grid2op.dtypes import dt_int, dt_float, dt_bool +from grid2op.Space.detailed_topo_description import DetailedTopoDescription from {cls._INIT_GRID_CLS.__module__} import {cls._INIT_GRID_CLS.__name__} @@ -5112,13 +5044,22 @@ class {cls.__name__}({cls._INIT_GRID_CLS.__name__}): dim_alerts = {cls.dim_alerts} alertable_line_names = {alertable_line_names_str} alertable_line_ids = {alertable_line_ids_str} + + # detailed topology of substations + detailed_topo_desc = {detailed_topo_desc_str} # shedding detachment_is_allowed = {cls.detachment_is_allowed} + # attributes depending on the class + {other_attr_str_} """ return res + @classmethod + def _get_full_cls_str_derived(cls) -> str: + return "" + @classmethod def get_line_info(cls, *, line_id : Optional[int]=None, line_name : Optional[str]=None) -> Tuple[int, str, int, int]: """ @@ -5302,8 +5243,8 @@ def get_storage_info(cls, *, storage_id : Optional[int]=None, storage_name : Opt obj_name=storage_name) sub_id = cls.storage_to_subid[storage_id] return storage_id, storage_name, sub_id - - + + @classmethod def _aux_kcl_eltype(cls, n_el : int, # cst eg. cls.n_gen @@ -5357,7 +5298,7 @@ def _aux_kcl_eltype(cls, if el_bus[i] == -1: # el is disconnected continue - + # for substations if load_conv: p_subs[psubid] += el_p[i] @@ -5390,8 +5331,8 @@ def _aux_kcl_eltype(cls, @classmethod def _aux_check_kirchhoff(cls, lineor_info : ElTypeInfo, - lineex_info: ElTypeInfo, - load_info: ElTypeInfo, + lineex_info: ElTypeInfo, + load_info: ElTypeInfo, gen_info: ElTypeInfo, storage_info: Optional[ElTypeInfo] = None, shunt_info : Optional[ElTypeInfo] = None, @@ -5400,7 +5341,7 @@ def _aux_check_kirchhoff(cls, Analogous to "backend.check_kirchhoff" but can be used for both the observation and the backend .. versionadded:: 1.11.0 - + Returns ------- p_subs ``numpy.ndarray`` @@ -5420,7 +5361,7 @@ def _aux_check_kirchhoff(cls, - first dimension represents the the substation (between 1 and self.n_sub) - second element represents the busbar in the substation (0 or 1 usually) - """ + """ # fist check the "substation law" : nothing is created at any substation p_subs = np.zeros(cls.n_sub, dtype=dt_float) q_subs = np.zeros(cls.n_sub, dtype=dt_float) @@ -5513,3 +5454,12 @@ def _aux_check_kirchhoff(cls, diff_v_bus[:, :] = v_bus[:, :, 1] - v_bus[:, :, 0] diff_v_bus[np.abs(diff_v_bus - -2. * some_kind_of_inf) <= 1e-5 ] = 0. # disconnected bus return p_subs, q_subs, p_bus, q_bus, diff_v_bus + + @classmethod + def finalize_class_definition(cls): + """ + This class method should be overriden if needed in specific subclass. + + Some examples are given in :func:`grid2op.Action.BaseAction.finalize_class_definition` + """ + pass diff --git a/grid2op/Space/SerializableSpace.py b/grid2op/Space/SerializableSpace.py index 088187ea..fce8e33b 100644 --- a/grid2op/Space/SerializableSpace.py +++ b/grid2op/Space/SerializableSpace.py @@ -11,6 +11,7 @@ import re import json import copy +from typing import Type, Union, TYPE_CHECKING from grid2op.Exceptions import Grid2OpException from grid2op.Space.space_utils import extract_from_dict, save_to_dict @@ -18,6 +19,10 @@ from grid2op.Space.GridObjects import GridObjects from grid2op.Space.RandomObject import RandomObject +if TYPE_CHECKING: + from grid2op.Action import BaseAction + from grid2op.Observation import BaseObservation + class SerializableSpace(GridObjects, RandomObject): """ @@ -62,7 +67,11 @@ class SerializableSpace(GridObjects, RandomObject): """ - def __init__(self, gridobj, subtype=object, _init_grid=True, _local_dir_cls=None): + def __init__(self, + gridobj, + subtype: Union[Type["BaseAction"], Type["BaseObservation"]]=object, + _init_grid=True, + _local_dir_cls=None): """ subtype: ``type`` @@ -80,33 +89,25 @@ def __init__(self, gridobj, subtype=object, _init_grid=True, _local_dir_cls=None '(an instance of a class). It is currently "{}"'.format(type(subtype)) ) - GridObjects.__init__(self) - RandomObject.__init__(self) - self._init_subtype = subtype # do not use, use to save restore only !!! - if _init_grid: - self.subtype = subtype.init_grid(gridobj, _local_dir_cls=_local_dir_cls) - from grid2op.Action import ( - BaseAction, - ) # lazy loading to prevent circular reference - - if issubclass(self.subtype, BaseAction): - # add the shunt data if needed by the action only - self.subtype._add_shunt_data() - # compute the class attribute "attr_list_set" from "attr_list_vect" - self.subtype._update_value_set() - else: - self.subtype = subtype - - from grid2op.Action import BaseAction # lazy import to avoid circular reference - from grid2op.Observation import ( - BaseObservation, - ) # lazy import to avoid circular reference + # lazy loading to prevent circular reference + from grid2op.Action import BaseAction + from grid2op.Observation import BaseObservation if not issubclass(subtype, (BaseAction, BaseObservation)): raise RuntimeError( f'"subtype" should inherit either BaseAction or BaseObservation. Currently it ' f'is "{subtype}"' ) + + GridObjects.__init__(self) + RandomObject.__init__(self) + self._init_subtype : Union[Type["BaseAction"], Type["BaseObservation"]] = subtype # do not use, use to save restore only !!! + + if _init_grid: + self.subtype = subtype.init_grid(gridobj, _local_dir_cls=_local_dir_cls) + else: + self.subtype = subtype + self._template_obj = self.subtype() self.n = self._template_obj.size() diff --git a/grid2op/Space/__init__.py b/grid2op/Space/__init__.py index 0de57192..60de1e31 100644 --- a/grid2op/Space/__init__.py +++ b/grid2op/Space/__init__.py @@ -1,24 +1,31 @@ __all__ = ["RandomObject", "SerializableSpace", "GridObjects", - "ElTypeInfo", "DEFAULT_N_BUSBAR_PER_SUB", "GRID2OP_CLASSES_ENV_FOLDER", "DEFAULT_ALLOW_DETACHMENT", "GRID2OP_CURRENT_VERSION", - "GRID2OP_CURRENT_VERSION_STR"] - + "GRID2OP_CURRENT_VERSION_STR", + "DetailedTopoDescription", + "AddDetailedTopoIEEE", + "ElTypeInfo", + "DEFAULT_BK_CAN_MANIPULATE_SWITCH", + "DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER", +] from grid2op.Space.RandomObject import RandomObject from grid2op.Space.SerializableSpace import SerializableSpace +from grid2op.Space.GridObjects import GridObjects, ElTypeInfo +from grid2op.Space.detailed_topo_description import DetailedTopoDescription +from grid2op.Space.addDetailedTopoIEEE import AddDetailedTopoIEEE -from grid2op.Space.GridObjects import (GridObjects, - ElTypeInfo) from grid2op.Space.default_var import (DEFAULT_N_BUSBAR_PER_SUB, GRID2OP_CLASSES_ENV_FOLDER, DEFAULT_ALLOW_DETACHMENT, GRID2OP_CURRENT_VERSION, - GRID2OP_CURRENT_VERSION_STR) - + GRID2OP_CURRENT_VERSION_STR, + DEFAULT_BK_CAN_MANIPULATE_SWITCH, + DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER, + ) diff --git a/grid2op/Space/addDetailedTopoIEEE.py b/grid2op/Space/addDetailedTopoIEEE.py new file mode 100644 index 00000000..b6da7da5 --- /dev/null +++ b/grid2op/Space/addDetailedTopoIEEE.py @@ -0,0 +1,96 @@ +# Copyright (c) 2024, 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. + +from typing import Optional +import numpy as np + + +from grid2op.Space.detailed_topo_description import DetailedTopoDescription + + +class AddDetailedTopoIEEE: + """This class allows to add some detailed topology for the ieee networks, because + most of the time this information is not present in the released grid (only + buses information is present in the description of the IEEE grid used for grid2op + environment as of writing). + + If you want to use it, you can by doing the following (or something similar) + + .. code-block:: python + + import grid2op + from grid2op.Space import AddDetailedTopoIEEE + from grid2op.Backend import PandaPowerBackend # or any other backend (*eg* lightsim2grid) + + class PandaPowerBackendWithDetailedTopo(AddDetailedTopoIEEE, PandaPowerBackend): + pass + + env_name = "l2rpn_case14_sandbox" + env = grid2op.make(env_name, backend=PandaPowerBackendWithDetailedTopo()) + # do wathever you want, with the possibility to operate switches. + + More specifically, this class will build each substation in the following way, + with each substation : + + - counting as many busbars as there are of `n_busbar_per_substation` on the grid + (2 by default, but can be changed with `env = grid2op.make(..., n_busbar=XXX)` + - having the possibility to connect each pairs of busbar together with an + appropriate switch (so you will have, **per substation** exactly + `n_busbar * (n_busbar - 1) // 2` switches allowing to connect them) + - having the possibility to disconnect each element of the grid independantly of + anything else. This means there is `n_load + n_gen + n_storage + 2 * n_line + n_shunt` + such switch like this in total + - having the possibility to connect each element to each busbar. This means + there is `n_busbar * (n_load + n_gen + n_storage + 2 * n_line + n_shunt)` such + switches on the grid. + + Here is the number of switches for some released grid2op environment (with 2 busbars - the default- per substation ): + + - `l2rpn_case14_sandbox`: 188 + - `l2rpn_neurips_2020_track1`: 585 + - `l2rpn_neurips_2020_track2`: 1759 + - `l2rpn_wcci_2022`: 1756 + - `l2rpn_idf_2023`: 1780 + + .. warning:: + As you can see, by using directly the switches to control the grid, the action space blows up. In this case you can + achieve exactly the same as the "classic" grid2op representation, but instead of having + an action space with a size of `n_load + n_gen + n_storage + 2 * n_line + n_shunt` (for chosing on which busbar you + want to connect the element) and again `n_load + n_gen + n_storage + 2 * n_line + n_shunt` (for chosing if you + want to connect / disconnect each element) you end up with an action space of + `(n_busbar + 1) * (n_load + n_gen + n_storage + 2 * n_line + n_shunt) + n_sub * (n_busbar * (n_busbar - 1) // 2)` + + This is of course to represent **exactly** the same actions: there are no more (and no less) action you can + do with the switches that you cannot do in the "original" grid2op representation. + + This gives, for some grid2op environments: + + ========================== ======================= ============= + env name original representation with switches + ========================== ======================= ============= + l2rpn_case14_sandbox 116 188 + l2rpn_neurips_2020_track1 366 585 + l2rpn_neurips_2020_track2 1094 1759 + l2rpn_wcci_2022 1092 1756 + l2rpn_idf_2023 1108 1780 + ========================== ======================= ============= + + + """ + def load_grid(self, path=None, filename=None): + super().load_grid(path, filename) + self.detailed_topo_desc = DetailedTopoDescription.from_ieee_grid(self) + + def get_switches_position(self) -> Optional[np.ndarray]: + topo_vect = self.get_topo_vect() + *_, shunt_bus = self.shunt_info() + res, mask = self.detailed_topo_desc.compute_switches_position(topo_vect, shunt_bus) + # TODO detailed topo store the detailed topo somehow and return the modifications + # self.detailed_topo[mask] = res[mask] + # return self.detailed_topo + return res diff --git a/grid2op/Space/default_var.py b/grid2op/Space/default_var.py index b5b22b3c..385b162f 100644 --- a/grid2op/Space/default_var.py +++ b/grid2op/Space/default_var.py @@ -28,3 +28,11 @@ #: current grid2op version used, represented as a "packaging version" #: use this for any comparison GRID2OP_CURRENT_VERSION = version.parse(GRID2OP_CURRENT_VERSION_STR) + +#: TODO detailed topo +#: Legacy backend could not manipulate switches directly +DEFAULT_BK_CAN_MANIPULATE_SWITCH = False + +#: legacy backend were required to manipulate +#: "bus breaker" / "nodal" topology +DEFAULT_BK_CAN_MANIPULATE_BUS_BREAKER = True \ No newline at end of file diff --git a/grid2op/Space/detailed_topo_description.py b/grid2op/Space/detailed_topo_description.py new file mode 100644 index 00000000..f9590274 --- /dev/null +++ b/grid2op/Space/detailed_topo_description.py @@ -0,0 +1,1838 @@ +# 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. + +from typing import List, Optional, Type + +from grid2op.Space import GridObjects +try: + from typing import Self +except ImportError: + from typing_extensions import Self + +import numpy as np +import networkx as nx +import copy + +import grid2op +from grid2op.dtypes import dt_int, dt_bool +from grid2op.Exceptions import Grid2OpException, ImpossibleTopology +from grid2op.Space.space_utils import (extract_from_dict, + save_to_dict, + _save_to_dict_str, + _save_to_dict_float, + _save_to_dict_int) + + +class DetailedTopoDescription(object): + """This class represent the detail description of the + switches in the grid. It allows to use new types of actions (`act.set_switches = ..` # TODO detailed topo) + and to get some extra information in the observation (`obs.switches_state` # TODO detailed topo). + + This class only stores the existence of switches. It just informs + the user that "just that it exists a switch between this and this". It does + not say whether switches / breakers / etc. are opened or closed (for that you need to have + a look at the observation) and it does not allow to modify the switches state (for that you + need to use the action). + + If set, it is "const" / "read only" / immutable. + It should be initialized by the backend and never modified afterwards. + + It is a const member of the main grid2op classes (not the object, the class !), just like the `n_sub` or + `lines_or_pos_topo_vect` property for example. + + # TODO detailed topo: remove the switches to topo_vect id and make a "conn node id to topo_vect id" + # TODO detailed topo: remove in the doc the requirement of conn_node_1 and conn_node_2 + # TODO detailed topo: remove the element types from the switch matrix + + In order to fill a :class:`DetailedTopoDescription` you need to fill the + following attributes : + + - :attr:`DetailedTopoDescription.conn_node_name` : for each connectivity node, you provide a name. For now we + recommend using it (at least for debug purpose) but later this vector might contain None for internal connectivity + node. + - :attr:`DetailedTopoDescription.conn_node_to_subid` : for each connectiviy node, you provide the substation to + which it is connected. The substation should exist in the grid. All substation should have a least one connectivity + node at the moment. + - :attr:`DetailedTopoDescription.switches` : this is the "main" information about detailed topology. It provide the + information about each switches on your grid. It is a matrix with 4 columns: + + - the first is the substation id to which this switches belong. As of now you have to fill it manually + and this information should match the one given by the connectivity node this switch + represent. TODO detailed topo: have a routine to add it automatically afterwards + - the second one is an information about the element - *eg* load or generator or side of powerline- it concerns (if any) + - the third one is the ID of one of the connectivity node this switch is attached to + - the fourth one is the ID of the other connectivity node this switch is attached to + + - :attr:`DetailedTopoDescription.conn_node_to_topovect_id` : for each connectivity node, it gives the index in the + topo_vect vector to which this connectivity node is connected. Put -1 for conn node not represented in + the "topo_vect" vector + otherwise the id of the topo_vect converned by this switch (should be -1 for everything except for + switch whose conn_node_id_1 represents element modeled in the topo_vect eg load, generator or side of powerline) + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.conn_node_to_shunt_id` : for each connectivity node, it gives the index of the shunt it + concerns (should be -1 except for connectivity node that concerns shunts) + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.load_to_conn_node_id` : for each load, it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.gen_to_conn_node_id` : for each generator, it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.line_or_to_conn_node_id` : for each "origin" side of powerline, + it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.line_ex_to_conn_node_id` : for each "extremity" side of powerline, + it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.storage_to_conn_node_id` : for each storage unit, + it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.shunt_to_conn_node_id` : for each shunt, + it gives by which connectivity + node it is represented. It should match the info in the colum 2 (third column) of the switches matrix. + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + - :attr:`DetailedTopoDescription.busbar_section_to_conn_node_id` : this vector has the size of the number + of "busbar sections" in the grid. And for each busbar section, it gives the information for which + connectivity node it is represented. + - :attr:`DetailedTopoDescription.busbar_section_to_subid` : this vector has the same size as the + :attr:`DetailedTopoDescription.busbar_section_to_conn_node_id` and give the information of + the substation id each busbar section is part of. It should match the + information in `self.switches` too + (TODO detailed topo: something again that for now you should manually process but that will + be automatically processed by grid2op in the near future). + + .. warning:: + If a switch connects an element - *eg* load or generator or side of powerline- on one of it side, the + connectivity node of this element should be on the 3rd column (index 2 in python) in the switches + matrix and not on the 4th column (index 4 in python) + + .. danger:: + As opposed to some other elements of grid2op, by default, connectivity nodes should be labeled + in a "global" way. This means that there is exactly one connectivity node labeled `1` + for the whole grid (as opposed to 1 per substation !). + + They are labelled the same way as *eg* `load` (there is a unique `load 1`) and not like `busbar in the + substation` where thare are "as many busbar 1 as there are substation". + + TODO detailed topo: this is `True` for now but there would be nothing (except some added tests + and maybe a bit of code) to allow the "substation local" labelling. + + .. danger:: + As of writing, we suppose that there exist a breaker controlling + the state of each element. This breaker should be unique. + + This means that for every connectiviy node representing an element + of the grid (*eg* the side of a powerline or a generator etc.) there + exist a switch connecting this element to the rest of the graph. And that, + if this switch is opened, the element is disconnected. + + This switch does not control any other element. + (you can write a feature request if this is a problem for you, we did + this hypothesis out of simplicity for disconnected element, but the routine + to compute the switch state can be adapted without it). + + To create a "detailed description of the swtiches", somewhere in the implementation of your + backend you have a piece of code looking like: + + .. code-block:: python + + import os + from grid2op.Backend import Backend + from typing import Optional, Union, Tuple + from grid2op.Space import DetailedTopoDescription + + class MyBackendType(Backend): + # some implementation of other methods... + + def load_grid(self, + path : Union[os.PathLike, str], + filename : Optional[Union[os.PathLike, str]]=None) -> None: + # do the regular implementation of the load_grid function + ... + ... + + # once done, then you can create a detailed topology + dtd = DetailedTopoDescription() + + # you fill it with the data in the grid you read + # (at this stage you tell grid2op what the grid is made of) + dtd.conn_node_name = ... + dtd.conn_node_to_subid = ... + dtd.switches = ... + dtd.conn_node_to_topovect_id = ... + dtd.conn_node_to_shunt_id = ... + dtd.load_to_conn_node_id = ... + dtd.gen_to_conn_node_id = ... + dtd.line_or_to_conn_node_id = ... + dtd.line_ex_to_conn_node_id = ... + dtd.storage_to_conn_node_id = ... + dtd.shunt_to_conn_node_id = ... + dtd.busbar_section_to_conn_node_id = ... + dtd.busbar_section_to_subid = ... + + # and then you assign it as a member of this class + self.detailed_topo_desc = dtd + + # some other implementation of other methods + + Examples + -------- + + Unfortunately, most of the ieee grid (used in released grid2op environments) does not + come with a detailed description of the topology. They only describe the "nodal" topology (buses) + and not how things are wired together with switches. + + If you want to use this feature with released grid2op environment, + you can create a new backend class, and use it to create a new environment like this: + + .. code-block:: python + + import grid2op + from grid2op.Space import AddDetailedTopoIEEE + from grid2op.Backend import PandaPowerBackend # or any other backend (*eg* lightsim2grid) + + class PandaPowerBackendWithDetailedTopo(AddDetailedTopoIEEE, PandaPowerBackend): + pass + + env_name = "l2rpn_case14_sandbox" + env = grid2op.make(env_name, backend=PandaPowerBackendWithDetailedTopo()) + # do wathever you want + + + """ + #: In the :attr:`DetailedTopoDescription.switches` table, tells that column 0 + #: concerns the substation + SUB_COL = 0 + + #: In the :attr:`DetailedTopoDescription.switches` table, tells that column 2 + #: concerns the id of object that this switches connects / disconnects + CONN_NODE_1_ID_COL = 1 + + #: In the :attr:`DetailedTopoDescription.switches` table, tells that column 2 + #: concerns the id of the connection node that this switches connects / disconnects + CONN_NODE_2_ID_COL = 2 + + #: TODO detailed topo doc + LOAD_ID = 0 + + #: TODO detailed topo doc + GEN_ID = 1 + + #: TODO detailed topo doc + STORAGE_ID = 2 + + #: TODO detailed topo doc + LINE_OR_ID = 3 + + #: TODO detailed topo doc + LINE_EX_ID = 4 + + #: TODO detailed topo doc + SHUNT_ID = 5 + + #: TODO detailed topo doc + OTHER = 6 + + def __init__(self): + #: vector of string that has the size of the number of connection nodes on your grid + #: and for each connection node it gives... its name + self.conn_node_name = None + + #: vector of int that has the size of the number of connection nodes on + #: your grid and for each connection node it gives the substation id [0...n_sub] to which + #: the connection node belongs to. + self.conn_node_to_subid = None + + #: It is a matrix describing each switches. This matrix has 'n_switches' rows and 4 columns. + #: Each column provides an information about the switch: + #: + #: - col 0 gives the substation id + #: - col 1 TODO detailed topo doc + #: - col 2 TODO detailed topo doc + self.switches = None + + #: TODO detailed topo doc + self.conn_node_to_topovect_id = None + + #: TODO detailed topo doc + self.conn_node_to_shunt_id = None + + #: TODO detailed topo doc + self.topovect_to_conn_node_id = None + + #: A list of tuple that has the same size as the number of loads on the grid. + #: For each loads, it gives the connection node ids to which (thanks to a switch) a load can be + #: connected. For example if `type(env)..detailed_topo_desc.load_to_conn_node_id[0]` is the tuple `(1, 15)` this means that load + #: id 0 can be connected to either connection node id 1 or connection node id 15. + #: This information is redundant with the one provided in :attr:`DetailedTopoDescription.switches` + self.load_to_conn_node_id = None + + #: Same as :attr:`DetailedTopoDescription.load_to_conn_node_id` but for generators + self.gen_to_conn_node_id = None + + #: Same as :attr:`DetailedTopoDescription.load_to_conn_node_id` but for lines (or side) + self.line_or_to_conn_node_id = None + + #: Same as :attr:`DetailedTopoDescription.load_to_conn_node_id` but for lines (ex side) + self.line_ex_to_conn_node_id = None + + #: Same as :attr:`DetailedTopoDescription.load_to_conn_node_id` but for storage unit + self.storage_to_conn_node_id = None + + #: Same as :attr:`DetailedTopoDescription.load_to_conn_node_id` but for shunt + self.shunt_to_conn_node_id = None + + #: For each busbar section, it gives the connection node id + #: that represent this busbar section + self.busbar_section_to_conn_node_id = None + + #: For each busbar section, it gives the substation id to which it + #: is connected + self.busbar_section_to_subid = None + + #: flag to detect that the detailed topo have been built with the + #: :func:`.DetailedTopoDescriptionfrom_ieee_grid` + #: which enables some feature that will be more generic in the future. + self._from_ieee_grid = False + + #: number of substation on the grid + #: this is automatically set when the detailed topo description + #: is processed + self._n_sub : int = -1 + + #: dimension of the "topology vector" (in grid2op) + #: this is automatically set when the detailed topo description + #: is processed + self._dim_topo : int = -1 + + #: number of shunt in the grid + #: this is automatically set when the detailed topo description + #: is processed + self._n_shunt : int = -1 + + #: INTERNAL + self._conn_node_to_bbs_conn_node_id = None + + #: INTERNAL + self._connectivity_graph : List[nx.Graph] = None + # TODO detailed topo: list per substation ! + + #: INTERNAL + self._cn_pos_in_sub : np.ndarray = None + + #: INTERNAL + self._sw_pos_in_sub : np.ndarray = None + + @classmethod + def from_ieee_grid(cls, init_grid : GridObjects): + """For now, suppose that the grid comes from ieee grids. + + See doc of :class:`AddDetailedTopoIEEE` for more information. + + """ + init_grid_cls : Type[GridObjects] = type(init_grid) + + n_sub = init_grid_cls.n_sub + n_bb_per_sub = init_grid_cls.n_busbar_per_sub + if n_bb_per_sub < 2: + raise NotImplementedError("This function has not been implemented for less " + "than 2 busbars per subs at the moment.") + res = cls() + res._from_ieee_grid = True + res._n_sub = n_sub + res._dim_topo = init_grid_cls.dim_topo + res._n_shunt = init_grid_cls.n_shunt + + # define the "connection nodes" + # for ieee grid we model: + # one connection node per busbar (per sub) + # for each element (side of powerline, load, generator, storage, shunt etc.) 2 connection nodes + # (status of the element) + # conn node for each busbar + bb_conn_node = sum([[f"conn_node_sub_{subid}_busbar_{bb_i}" for bb_i in range(n_bb_per_sub)] for subid in range(n_sub)], + start=[]) + res.busbar_section_to_subid = np.repeat(np.arange(n_sub), n_bb_per_sub) + res.busbar_section_to_conn_node_id = np.arange(len(bb_conn_node)) + + el_conn_node = ([f"conn_node_load_{i}" for i in range(init_grid_cls.n_load)] + + [f"conn_node_gen_{i}" for i in range(init_grid_cls.n_gen)] + + [f"conn_node_line_or_{i}" for i in range(init_grid_cls.n_line)] + + [f"conn_node_line_ex_{i}" for i in range(init_grid_cls.n_line)] + + [f"conn_node_storage_{i}" for i in range(init_grid_cls.n_storage)] + + [f"conn_node_shunt_{i}" for i in range(init_grid_cls.n_shunt)] if init_grid_cls.shunts_data_available else [] + ) + el_breaker_conn_node = ([f"conn_node_breaker_load_{i}" for i in range(init_grid_cls.n_load)] + + [f"conn_node_breaker_gen_{i}" for i in range(init_grid_cls.n_gen)] + + [f"conn_node_breaker_line_or_{i}" for i in range(init_grid_cls.n_line)] + + [f"conn_node_breaker_line_ex_{i}" for i in range(init_grid_cls.n_line)] + + [f"conn_node_breaker_storage_{i}" for i in range(init_grid_cls.n_storage)] + + [f"conn_node_breaker_shunt_{i}" for i in range(init_grid_cls.n_shunt)] if init_grid_cls.shunts_data_available else [] + ) + res.conn_node_name = np.array(bb_conn_node + + el_conn_node + + el_breaker_conn_node) + res.conn_node_to_subid = np.array(sum([[subid for bb_i in range(n_bb_per_sub)] for subid in range(n_sub)], start=[]) + + 2* (init_grid_cls.load_to_subid.tolist() + + init_grid_cls.gen_to_subid.tolist() + + init_grid_cls.line_or_to_subid.tolist() + + init_grid_cls.line_ex_to_subid.tolist() + + init_grid_cls.storage_to_subid.tolist() + + init_grid_cls.shunt_to_subid.tolist() if init_grid_cls.shunts_data_available else [] + ) + ) + n_conn_nodes = res.conn_node_name.shape[0] + + # add the switches : there are 1 switches that connects all pairs + # of busbars in the substation, plus for each element: + # - 1 switch for the status of the element ("conn_node_breaker_xxx_i") + # - 1 breaker connecting the element to each busbar + n_shunt = init_grid_cls.n_shunt if init_grid_cls.shunts_data_available else 0 + nb_switch_bb_per_sub = (n_bb_per_sub * (n_bb_per_sub - 1)) // 2 # switches between busbars + nb_switch_busbars = n_sub * nb_switch_bb_per_sub # switches between busbars at each substation + nb_switch_total = nb_switch_busbars + (init_grid_cls.dim_topo + n_shunt) * (1 + n_bb_per_sub) + res.switches = np.zeros((nb_switch_total, 3), dtype=dt_int) + + # add the shunts in the "sub_info" (considered as element here !) + sub_info = 1 * init_grid_cls.sub_info + if init_grid_cls.shunts_data_available: + for sub_id in init_grid_cls.shunt_to_subid: + sub_info[sub_id] += 1 + # now fill the switches matrix + # fill with the switches between busbars + res.switches[:nb_switch_busbars, cls.SUB_COL] = np.repeat(np.arange(n_sub), nb_switch_bb_per_sub) + + li_or_bb_switch = sum([[j for _ in range(j+1, n_bb_per_sub)] for j in range(n_bb_per_sub - 1)], start=[]) # order relative to the substation + li_ex_bb_switch = sum([list(range(j+1, n_bb_per_sub)) for j in range(n_bb_per_sub - 1)], start=[]) # order relative to the substation + add_sub_id_unique_id = np.repeat(np.arange(n_sub), nb_switch_bb_per_sub) * n_bb_per_sub # make it a unique substation labelling + res.switches[:nb_switch_busbars, cls.CONN_NODE_1_ID_COL] = np.array(n_sub * li_or_bb_switch) + add_sub_id_unique_id + res.switches[:nb_switch_busbars, cls.CONN_NODE_2_ID_COL] = np.array(n_sub * li_ex_bb_switch) + add_sub_id_unique_id + + # and now fill the switches for all elements + res.conn_node_to_topovect_id = np.zeros(n_conn_nodes, dtype=dt_int) - 1 + if init_grid_cls.shunts_data_available: + res.conn_node_to_shunt_id = np.zeros(n_conn_nodes, dtype=dt_int) - 1 + + arrs_subid = [init_grid_cls.load_to_subid, + init_grid_cls.gen_to_subid, + init_grid_cls.line_or_to_subid, + init_grid_cls.line_ex_to_subid, + init_grid_cls.storage_to_subid, + ] + ars2 = [init_grid_cls.load_pos_topo_vect, + init_grid_cls.gen_pos_topo_vect, + init_grid_cls.line_or_pos_topo_vect, + init_grid_cls.line_ex_pos_topo_vect, + init_grid_cls.storage_pos_topo_vect, + ] + ids = [cls.LOAD_ID, cls.GEN_ID, cls.LINE_OR_ID, cls.LINE_EX_ID, cls.STORAGE_ID] + if init_grid_cls.shunts_data_available: + arrs_subid.append(init_grid_cls.shunt_to_subid) + ars2.append(np.array([-1] * init_grid_cls.n_shunt)) + ids.append(cls.SHUNT_ID) + + prev_el = nb_switch_busbars + handled = 0 + for arr_subid, pos_topo_vect, obj_col in zip(arrs_subid, ars2, ids): + nb_el = arr_subid.shape[0] + next_el = prev_el + (1 + n_bb_per_sub) * nb_el + + # fill the object type + this_conn_nodes = np.arange(len(bb_conn_node) + handled, + len(bb_conn_node) + handled + nb_el) + if obj_col == cls.LOAD_ID: + res.load_to_conn_node_id = this_conn_nodes + elif obj_col == cls.GEN_ID: + res.gen_to_conn_node_id = this_conn_nodes + elif obj_col == cls.LINE_OR_ID: + res.line_or_to_conn_node_id = this_conn_nodes + elif obj_col == cls.LINE_EX_ID: + res.line_ex_to_conn_node_id = this_conn_nodes + elif obj_col == cls.STORAGE_ID: + res.storage_to_conn_node_id = this_conn_nodes + elif obj_col == cls.SHUNT_ID and init_grid_cls.shunts_data_available: + res.shunt_to_conn_node_id = this_conn_nodes + + # fill the substation id + res.switches[prev_el : next_el, cls.SUB_COL] = np.repeat(arr_subid, (1 + n_bb_per_sub)) + + conn_node_breaker_ids = (len(bb_conn_node) + len(el_conn_node) + handled + np.arange(nb_el)) + # fill the switches that connect the element to each busbars (eg) + # `conn_node_breaker_load_{i}` to `conn_node_sub_{subid}_busbar_{bb_i}` + # nb some values here are erased by the following statement (but I did not want to make a for loop in python) + res.switches[prev_el : next_el, cls.CONN_NODE_1_ID_COL] = np.repeat(conn_node_breaker_ids, 1 + n_bb_per_sub) + res.switches[prev_el : next_el, cls.CONN_NODE_2_ID_COL] = (np.tile(np.arange(-1, n_bb_per_sub), nb_el) + + np.repeat(arr_subid * n_bb_per_sub, n_bb_per_sub+1)) + + # fill the breaker that connect (eg): + # `conn_node_load_{i}` to `conn_node_breaker_load_{i}` + res.switches[prev_el : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_1_ID_COL] = len(bb_conn_node) + handled + np.arange(nb_el) + res.switches[prev_el : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_2_ID_COL] = conn_node_breaker_ids + + if obj_col != cls.SHUNT_ID: + res.conn_node_to_topovect_id[this_conn_nodes] = pos_topo_vect + if init_grid_cls.shunts_data_available and obj_col == cls.SHUNT_ID: + res.conn_node_to_shunt_id[this_conn_nodes] = np.arange(nb_el) + prev_el = next_el + handled += nb_el + + res.topovect_to_conn_node_id = res._aux_init_fill_topovect_to_conn_node_id(init_grid_cls.dim_topo, res.conn_node_to_topovect_id) + # TODO detailed topo: have a function to compute the switches `sub_id` columns from the `conn_node_to_subid` + # TODO detailed topo: have a function for the "conn_node_to_topovect_id" and "switches_to_shunt_id" + return res + + @staticmethod + def _aux_init_fill_topovect_to_conn_node_id(dim_topo, conn_node_to_topovect_id): + topovect_to_conn_node_id = np.zeros(dim_topo, dtype=dt_int) - 1 + mask_in_topo = conn_node_to_topovect_id != -1 + cn_ids = (mask_in_topo).nonzero()[0] + topovect_to_conn_node_id[conn_node_to_topovect_id[mask_in_topo]] = cn_ids + return topovect_to_conn_node_id + + def _aux_compute_busbars_sections(self): + # TODO detailed topo: speed optimization: install graph-tool (but not available with pip...) + cls = type(self) + self._connectivity_graph = [] + self._conn_node_to_bbs_conn_node_id = [set() for _ in range(self.conn_node_name.shape[0])] + for sub_id in range(self._n_sub): + g_this_sub = nx.Graph() + g_this_sub.add_edges_from([(el[1], el[2], {"id": switch_id}) for switch_id, el in enumerate(self.switches) if el[cls.SUB_COL] == sub_id]) + bbs_this_sub = self.busbar_section_to_conn_node_id[self.busbar_section_to_subid == sub_id] + # je veux isoler les elements qui, si on enleve les busbar, peuvent atteindre les autres busbars + for busbar_id in bbs_this_sub: + tmp_g = copy.deepcopy(g_this_sub) + tmp_g.remove_nodes_from([el for el in bbs_this_sub if el != busbar_id]) + conn_nodes = nx.node_connected_component(tmp_g, busbar_id) + for el in conn_nodes: + self._conn_node_to_bbs_conn_node_id[el].add(busbar_id) + self._connectivity_graph.append(g_this_sub) + + # compute the position of each connectivity node in the substation + self._cn_pos_in_sub = np.zeros(self.conn_node_to_subid.shape[0], dtype=dt_int) - 1 + for subid in range(self._n_sub): + cn_this_sub = (self.conn_node_to_subid == subid).nonzero()[0] + if len(cn_this_sub) == 0: + raise Grid2OpException(f"There are no connectivity node at substation {subid}") + self._cn_pos_in_sub[cn_this_sub] = cn_this_sub.argsort() + if self._cn_pos_in_sub.min() < 0: + raise Grid2OpException("Impossible to compute the position of some " + "connectivity nodes in their substation.") + + # compute the position of each switch in its substation + self._sw_pos_in_sub = np.zeros(self.switches.shape[0], dtype=dt_int) - 1 + for subid in range(self._n_sub): + sw_this_sub = (self.switches[:, cls.SUB_COL] == subid).nonzero()[0] + if len(sw_this_sub) == 0: + raise Grid2OpException(f"There are no switch at substation {subid}") + self._sw_pos_in_sub[sw_this_sub] = sw_this_sub.argsort() + if self._sw_pos_in_sub.min() < 0: + raise Grid2OpException("Impossible to compute the position of some " + "switches in their substation.") + + def get_switch_id_ieee(self, conn_node_id: int): + """TODO detailed topo + + Parameters + ---------- + conn_node_id : int + _description_ + """ + switch_id = (self.switches[:, type(self).CONN_NODE_1_ID_COL] == conn_node_id).nonzero()[0] + if switch_id.shape[0] == 0: + raise Grid2OpException(f"Cannot find a switch for connectivity node {conn_node_id}") + if switch_id.shape[0] > 1: + raise Grid2OpException(f"Found multiple switch for connectivity node {conn_node_id}") + switch_id = switch_id[0] + return switch_id + + def _aux_compute_switches_pos_ieee(self, + bus_vect, # topo_vect + el_to_conn_node_id, # load_to_conn_node_id + conn_node_to_bus_id, # conn_node_to_topo_vect_id + subs_changed, # mask of substation that are changed + switches_state, # result : switch state + switch_modif, # result: mask whether the switches is modified + ): + if not self._from_ieee_grid: + raise NotImplementedError("This function is only implemented for detailed topology " + "generated from ieee grids. You can use `compute_switches_position` " + "for a more generic function") + + # compute the position for the switches of the "topo_vect" elements + # only work for current grid2op modelling ! + + # TODO detailed topo vectorize this ! (or cython maybe ?) + for conn_node in el_to_conn_node_id: + if not subs_changed[self.conn_node_to_subid[conn_node]]: + # no need to change this element, it does not belong + # to a substation modified + continue + n_busbar_this_sub = (self.busbar_section_to_subid == self.conn_node_to_subid[conn_node]).sum() + nb_switch = n_busbar_this_sub + 1 + switch_id = self.get_switch_id_ieee(conn_node) + my_bus = bus_vect[conn_node_to_bus_id[conn_node]] + if my_bus == -1: + # I init the swith at False, so nothing to do in this case + switches_state[switch_id:(switch_id + nb_switch)] = False + switch_modif[switch_id:(switch_id + nb_switch)] = True + continue + switches_state[switch_id:(switch_id + nb_switch)] = False # all others are disconnected + switches_state[switch_id] = True # connector is connected + switches_state[switch_id + my_bus] = True # connector to busbar `my_bus` is connected + switch_modif[switch_id:(switch_id + nb_switch)] = True # all these switches are modified + + def compute_switches_position_ieee(self, + topo_vect, + shunt_bus, + subs_changed : Optional[np.ndarray]=None): + """TODO detailed topo + + Parameters + ---------- + topo_vect : _type_ + _description_ + shunt_bus : _type_ + _description_ + subs_changed : Optional[np.ndarray], optional + _description_, by default None + + Returns + ------- + _type_ + _description_ + + Raises + ------ + NotImplementedError + _description_ + """ + + if subs_changed is None: + subs_changed = np.ones(self._n_sub, dtype=dt_bool) + + if not self._from_ieee_grid: + raise NotImplementedError("This function is only implemented for detailed topology " + "generated from ieee grids. You can use `compute_switches_position` " + "for a more generic function.") + switches_state = np.zeros(self.switches.shape[0], dtype=dt_bool) + switch_modif = np.zeros(self.switches.shape[0], dtype=dt_bool) + + # compute the position for the switches of the "topo_vect" elements + self._aux_compute_switches_pos_ieee(topo_vect, self.load_to_conn_node_id, self.conn_node_to_topovect_id, subs_changed, switches_state, switch_modif) + self._aux_compute_switches_pos_ieee(topo_vect, self.gen_to_conn_node_id, self.conn_node_to_topovect_id, subs_changed, switches_state, switch_modif) + self._aux_compute_switches_pos_ieee(topo_vect, self.line_or_to_conn_node_id, self.conn_node_to_topovect_id, subs_changed, switches_state, switch_modif) + self._aux_compute_switches_pos_ieee(topo_vect, self.line_ex_to_conn_node_id, self.conn_node_to_topovect_id, subs_changed, switches_state, switch_modif) + self._aux_compute_switches_pos_ieee(topo_vect, self.storage_to_conn_node_id, self.conn_node_to_topovect_id, subs_changed, switches_state, switch_modif) + + if self.conn_node_to_shunt_id is None or shunt_bus is None or self._n_shunt == 0: + # no need to process the shunts in these cases + return switches_state, switch_modif + + # compute the position for the switches of the "shunts" elements + self._aux_compute_switches_pos_ieee(shunt_bus, self.shunt_to_conn_node_id, self.conn_node_to_shunt_id, subs_changed, switches_state, switch_modif) + return switches_state, switch_modif + + def disconnect_el_with_switch(self, + mask_topo_vect: np.ndarray, + mask_shunt : Optional[np.ndarray]=None): + """This function allows to disconnect the switches for a given sets of elements (if they have been + disconnected by set_bus, change_line_status or set_line_status for example). + + It can be use as a replacement of :func:`DetailedTopoDescription.compute_switches_position` if + only **disconnection** actions are being performed. + + This function will set to ``False`` (meaning disconnected) all the switches directly connected to an element + without modifying the others. + + It will not do anything else. + + Parameters + ---------- + mask_topo_vect : np.ndarray + The element of the topo_vect to disconnect, represented by a mask (vector of + bool with the same size as `dim_topo`) + + mask_shunt : Optional[np.ndarray] + The shunts to disconnect, represented by a mask (vector of + bool with the same size as `dim_topo`) + + Returns + --------- + + """ + cls = type(self) + full_res = np.zeros(self.switches.shape[0], dtype=dt_bool) + affected_switch = np.zeros(self.switches.shape[0], dtype=dt_bool) + + # handle element in topo vect + cns = self.topovect_to_conn_node_id[mask_topo_vect] + switches = ((np.isin(self.switches[:,cls.CONN_NODE_1_ID_COL], cns)) | + (np.isin(self.switches[:,cls.CONN_NODE_2_ID_COL], cns))) + full_res[switches] = False + affected_switch[switches] = True + + if mask_shunt is None: + return full_res, affected_switch + + # handle the shunts + cns = self.shunt_to_conn_node_id[mask_shunt] + switches = ((np.isin(self.switches[:,cls.CONN_NODE_1_ID_COL], cns)) | + (np.isin(self.switches[:,cls.CONN_NODE_2_ID_COL], cns))) + full_res[switches] = False # disconnect the elements + affected_switch[switches] = True # say these switches have been modified + return full_res, affected_switch + + def _compute_switches_position_check_inputs(self, + topo_vect: np.ndarray, + shunt_bus: Optional[np.ndarray]=None, + subs_changed : Optional[np.ndarray]=None + ): + conn_shunt = None + if topo_vect.shape[0] != self._dim_topo: + raise Grid2OpException("Incorrect input size for the topology vector.") + if shunt_bus is not None and shunt_bus.shape[0] != self._n_shunt: + raise Grid2OpException("Incorrect size for the shunt bus vector.") + conn_topo_vect = topo_vect[topo_vect != -1] + if len(conn_topo_vect) and conn_topo_vect.min() < 1: + raise Grid2OpException("In grid2op buses are labelled starting from 1 and not 0 " + "(check your `topo_vect` input)") + if self._n_shunt > 0 and shunt_bus is not None: + conn_shunt = shunt_bus[shunt_bus != -1] + if conn_shunt.shape[0] and conn_shunt.min() < 1: + raise Grid2OpException("In grid2op buses are labelled starting from 1 and not 0 " + "(check your `shunt_bus` input)") + if np.unique(conn_topo_vect).shape[0] > self.busbar_section_to_subid.shape[0]: + raise ImpossibleTopology("You ask for more independant buses than there are " + "busbar section on this substation") + + if subs_changed is None: + subs_changed = np.ones(self._n_sub, dtype=dt_bool) + else: + if subs_changed.shape[0] != self._n_sub: + raise Grid2OpException("Incorrect size for the substation mask") + return conn_topo_vect, conn_shunt, subs_changed + + def compute_switches_position(self, + topo_vect: np.ndarray, + shunt_bus: Optional[np.ndarray]=None, + subs_changed : Optional[np.ndarray]=None): + """This function compute a plausible switches configuration + from a given `topo_vect` representation. + + TODO detailed topo: documentation + type hints + + Parameters + ---------- + topo_vect : `np.ndarray` + The `topo_vect` detailing on which bus each element of the grid is connected + shunt_bus : `np.ndarray` + The busbar on which each shunt is connected. + + Returns + ------- + `switches_state` state (connected = ``True`` or disconnected = ``False``) of each switches as + a numpy boolean array. + + `switches_changed` whether or not the switches have changed TODO detailed topo ! + """ + # TODO detailed topo: input the previous switch state + + + *_, subs_changed = self._compute_switches_position_check_inputs(topo_vect, shunt_bus, subs_changed) + if self._from_ieee_grid: + # specific case for IEEE grid, consistent with the AddDetailedTopoIEEE + # class + return self.compute_switches_position_ieee(topo_vect, shunt_bus, subs_changed) + + + if self._conn_node_to_bbs_conn_node_id is None: + self._aux_compute_busbars_sections() + + full_res = np.zeros(self.switches.shape[0], dtype=dt_bool) + switch_modif = np.zeros(self.switches.shape[0], dtype=dt_bool) + for sub_id, is_sub_modif in enumerate(subs_changed): + if not is_sub_modif: + continue + mask_this_sub = self.switches[:, type(self).SUB_COL] == sub_id + res_this_sub = self._aux_compute_switches_position_one_sub(sub_id, topo_vect, shunt_bus) + full_res[mask_this_sub] = res_this_sub + switch_modif[mask_this_sub] = True + return full_res, switch_modif + + def _aux_compute_switches_position_one_sub(self, + sub_id, + topo_vect: np.ndarray, + shunt_bus: Optional[np.ndarray]=None): + + # by default they are False + nb_switch = self.switches[self.switches[:, type(self).SUB_COL] == sub_id].shape[0] + nb_conn_node = self.conn_node_name[self.conn_node_to_subid == sub_id].shape[0] + + # results + switches_state = np.zeros(nb_switch, dtype=dt_bool) + # whether the switch is already assigned to a bus + switch_visited = np.zeros(nb_switch, dtype=dt_bool) + + # whether the connectivity node is assigned to a bus + conn_node_visited = np.zeros(nb_conn_node, dtype=dt_bool) + conn_node_to_bus_id = np.zeros(nb_conn_node, dtype=dt_int) + all_pos = ((self.conn_node_to_topovect_id != -1) & (self.conn_node_to_subid == sub_id)).nonzero()[0] + + if self._n_shunt > 0 and shunt_bus is not None: + # add the shunts + all_pos = np.concatenate((all_pos, + ((self.conn_node_to_shunt_id != -1) & (self.conn_node_to_subid == sub_id)).nonzero()[0])) + topo_vect = np.concatenate((topo_vect, shunt_bus)) + + # traverse all objects + main_obj_id = 0 + # perf optim + # loop through elements in a given order: + # first start by element that are the most constrained + li_bbs = [len(self._conn_node_to_bbs_conn_node_id[el]) for el in all_pos] + order_pos = np.argsort(li_bbs) + # perf optim 2 + # assign all elements at the same bus + # then deal with second bus etc. + tmp = {} # key: bus, value: order_pos + for el in order_pos: + el_bus = topo_vect[el] + if el_bus not in tmp: + tmp[el_bus] = [] + tmp[el_bus].append(el) + nb_indep_buses = len(tmp) + new_order = [] + bus_treated = set() + if -1 in tmp: + new_order = tmp[-1] + bus_treated.add(-1) + nb_indep_buses -= 1 + for el in order_pos: + el_bus = topo_vect[el] + if el_bus in bus_treated: + continue + new_order += tmp[el_bus] + bus_treated.add(el_bus) + + # new_order = np.arange(len(li_bbs)) # debug + # end perf optim + # TODO another speed optim: put together the objects that can be connected to the same busbars + try: + # TODO detailed topo: in the df_compute_switches, make clearer what is const and what is not + res = self._dfs_compute_switches_position(topo_vect, + self._connectivity_graph[sub_id], + main_obj_id, + all_pos, + switch_visited, + switches_state, + conn_node_visited, + conn_node_to_bus_id, + new_order, + nb_indep_buses + # cn_can_be_connected + ) + except RecursionError as exc_: + raise ImpossibleTopology(f"For substation {sub_id}: " + "No topology found, maybe the substation is " + "too large or there is a bug in the implementation. " + "It is most likely due to the fact that does not exist " + "a valid switch state for the input topology, but we " + "exclude a bug or a substation too large.") from exc_ + except Exception as exc_: + raise Grid2OpException(f"Error in the `compute_switches_position` " + f"for sub {sub_id}") from exc_ + if res is None: + raise ImpossibleTopology(f"For substation {sub_id}") + return res + + def _order_bbs(self, cn_bbs_possible, conn_node_to_bus_id, my_bus): + # order to favor bbs with same bus, then + # bbs without anything + # then the other bbs (with possibly other element to other bus) + cn_bbs_possible = list(cn_bbs_possible) + def mysort(el): + tmp = conn_node_to_bus_id[self._cn_pos_in_sub[el]] + if tmp == my_bus: + return 1 + elif tmp == 0: + return 2 + return 3 + res = sorted(cn_bbs_possible, key=mysort) + return res + + def _order_switches(self, switches, cns_, bbs_cn_this_sub): + # when visiting switches configuration + # try to visit configuration with as little busbar coupler as possible + # and (2nd criteria) with as little switch as possible + both_ = [(sw, cn) for sw, cn in zip(switches, cns_)] + both_ = sorted(both_, key=lambda el: ((np.isin(el[1], bbs_cn_this_sub)).sum(), len(el[0]))) + return both_ + + def _aux_dfs_compute_switches_position_disco(self, + conn_node_visited, + conn_node_to_bus_id, + el_cn_id_is, + all_pos, + topo_vect, + conn_graph_this_sub, + switch_visited, + switches_state, + main_obj_id, + order_pos, + nb_indep_buses): + # the object is disconnected, I suppose here that there exist + # a switch that directly control this element. + # With this hyp. this switch will never be changed + # so there is nothing to do. + + # TODO detailed topo: speed optim: this is probably copied too many times + # switch_visited = copy.deepcopy(switch_visited) + # switches_state = copy.deepcopy(switches_state) + conn_node_to_bus_id = copy.deepcopy(conn_node_to_bus_id) + conn_node_visited = copy.deepcopy(conn_node_visited) + + conn_node_visited[el_cn_id_is] = True + conn_node_to_bus_id[el_cn_id_is] = -1 + main_obj_id_new = self._aux_find_next_el_id(main_obj_id, all_pos, conn_node_visited, order_pos) + assert main_obj_id_new != main_obj_id # TODO detailed topo debug + if main_obj_id_new is not None: + # I still need to visit some other elements + this_res = self._dfs_compute_switches_position(topo_vect, + conn_graph_this_sub, + main_obj_id_new, + all_pos, + switch_visited, + switches_state, + conn_node_visited, + conn_node_to_bus_id, + order_pos, + nb_indep_buses) + return this_res + # all elements have been visited + return switches_state + + def _aux_dfs_compute_switches_position_connect_bbs(self, + conn_node_to_bus_id, + my_bus, + conn_graph_this_sub, + cn_bbs, + switch_visited, + switches_state, + conn_node_visited, + topo_vect, + main_obj_id, + all_pos, + order_pos, + nb_indep_buses + ): + # there is already an element connected to "my" bus, so I need to connect + # cn_bbs to some busbar sections, which are of the right color + which_other_bbs = (conn_node_to_bus_id[self.busbar_section_to_conn_node_id] == my_bus).nonzero()[0] + other_bbs_cn_ids = self.busbar_section_to_conn_node_id[which_other_bbs] + + # remove the nodes that would connect elements to other buses + # this_tmp_g = conn_graph_this_sub + this_tmp_g : nx.Graph = copy.deepcopy(conn_graph_this_sub) + this_tmp_g.remove_nodes_from([el for el in this_tmp_g.nodes if conn_node_to_bus_id[self._cn_pos_in_sub[el]] != 0 and conn_node_to_bus_id[self._cn_pos_in_sub[el]] != my_bus]) + # li_nodes_ok = [el for el in conn_graph_this_sub.nodes + # if (conn_node_to_bus_id[self._cn_pos_in_sub[el]] == 0 + # or + # conn_node_to_bus_id[self._cn_pos_in_sub[el]] == my_bus) + # ] + # this_tmp_g = conn_graph_this_sub.subgraph(li_nodes_ok) + # if cn_bbs not in li_nodes_ok: + # # no way to connect both busbar in this case + # continue + + for debug_id, other_bbs_cn in enumerate(other_bbs_cn_ids): + # I try to conenct cn_bbs to other_bbs_cn by avoiding all + # connectiviy nodes connected to other buses + other_bbs_cn_is = self._cn_pos_in_sub[other_bbs_cn] + bid_other = conn_node_to_bus_id[other_bbs_cn_is] + if bid_other != 0 and bid_other != my_bus: + # this busbar section is already of the wrong color + continue + + # TODO detailed topo: speed optim, maybe unnecessary to copy here + n_switch_visited = copy.deepcopy(switch_visited) + n_switches_state = copy.deepcopy(switches_state) + n_conn_node_to_bus_id = copy.deepcopy(conn_node_to_bus_id) + n_conn_node_visited = copy.deepcopy(conn_node_visited) + + n_conn_node_to_bus_id[other_bbs_cn_is] = my_bus + n_conn_node_visited[other_bbs_cn_is] = True + # so I need to check if a path between cn_bbs and other_bbs_cn + # of the color `my_bus` exists + + both_ = self._aux_connect_el_to_switch_gen(conn_graph_this_sub, + other_bbs_cn, + cn_bbs, + n_switch_visited, + n_switches_state, + this_tmp_g) + generator_path = enumerate(both_) + while True: + try: + debug_id2, (bbs_sw, bbs_cn_) = next(generator_path) + except StopIteration: + # cannot conenct cn_bbs to other_bbs_cn + # move to another + break + # there is a way to connect both busbar sections + # we see if it works out until the end + + # TODO detailed topo: speed optim, maybe unnecessary to copy here + nn_switch_visited = copy.deepcopy(n_switch_visited) + nn_switches_state = copy.deepcopy(n_switches_state) + nn_conn_node_to_bus_id = copy.deepcopy(n_conn_node_to_bus_id) + nn_conn_node_visited = copy.deepcopy(n_conn_node_visited) + + nn_switch_visited[bbs_sw] = True + nn_switches_state[bbs_sw] = True + nn_conn_node_visited[bbs_cn_] = True + nn_conn_node_to_bus_id[bbs_cn_] = my_bus + this_res = self._dfs_compute_switches_position(topo_vect, + conn_graph_this_sub, + main_obj_id, + all_pos, + nn_switch_visited, + nn_switches_state, + nn_conn_node_visited, + nn_conn_node_to_bus_id, + order_pos, + nb_indep_buses) + if this_res is not None: + # I found a solution by connecting the + # busbar cn_bbs to other_bbs_cn + return this_res + # print(f"\t\t for bbs {debug_id}: {debug_id2} fail to connect bbs {cn_bbs} and {other_bbs_cn}") + # I cannot connect cn_bbs + # to a busbar connected to bus `my_bus` + # for all other `other_bbs_cn` so + # I need to backtrack before `cn_bbs` is chosen + return None + + def _dfs_compute_switches_position(self, + topo_vect, # full topo vect + conn_graph_this_sub, + main_obj_id, # obj id in the substation + all_pos, # all position to handle in the sub + switch_visited, # in the sub + switches_state, # in the sub + conn_node_visited, # in the sub + conn_node_to_bus_id, # in the sub + order_pos, + nb_indep_buses + ): + """should be use for one substation only, otherwise it will not work !""" + # print(f"_dfs_compute_switches_position: {main_obj_id} / {len(all_pos)}") + if main_obj_id >= len(all_pos): + # I affected all objects: a solution has been found ! + return switch_visited + + if switch_visited.all(): + # TODO detailed topo do I have to check if result topo is correct ? + return None + + # TODO detailed topo: compute this once and for all + bbs_cn_this_sub = [el + for el in self.busbar_section_to_conn_node_id + if el in conn_graph_this_sub.nodes] + bbs_cn_this_sub = self._cn_pos_in_sub[bbs_cn_this_sub] + # end todo + + el_cn_id = all_pos[order_pos[main_obj_id]] + el_cn_id_is = self._cn_pos_in_sub[el_cn_id] # element connectivity node id, in the substation + my_bus = topo_vect[self.conn_node_to_topovect_id[el_cn_id]] + cn_bbs_possible = np.array(list(self._conn_node_to_bbs_conn_node_id[el_cn_id])) + + # check that I have enough remaining busbars to affect other buses + cn_bbs_for_check = conn_node_to_bus_id[bbs_cn_this_sub] + assigned_buses = np.unique(cn_bbs_for_check) + assigned_buses = assigned_buses[assigned_buses != 0] + assigned_buses = assigned_buses[assigned_buses != -1] + nb_assigned_buses = assigned_buses.shape[0] + nb_free_bbs = (cn_bbs_for_check == 0).sum() + if nb_assigned_buses + nb_free_bbs < nb_indep_buses: + # I would need to affect nb_indep_buses - nb_free_bbs other buses + # but I have only nb_free_bbs free busbar section + return None + + # TODO detailed topo: speed optim: this is probably copied too many times + # DEBUG: make sure input data are not modified + # switch_visited = copy.deepcopy(switch_visited) + # switches_state = copy.deepcopy(switches_state) + # conn_node_to_bus_id = copy.deepcopy(conn_node_to_bus_id) + # conn_node_visited = copy.deepcopy(conn_node_visited) + + if conn_node_visited[el_cn_id_is]: + # object has already been visited, and if so + # without any issue. I can go to the next one + if conn_node_to_bus_id[el_cn_id_is] != my_bus: + # This is not a solution + return None + main_obj_id_new = self._aux_find_next_el_id(main_obj_id, + all_pos, + conn_node_visited, + order_pos) + if main_obj_id_new is not None: + # still some work to do + return self._dfs_compute_switches_position(topo_vect, + conn_graph_this_sub, + main_obj_id_new, + all_pos, + switch_visited, + switches_state, + conn_node_visited, + conn_node_to_bus_id, + order_pos, + nb_indep_buses) + else: + # a solution has been found + return switches_state + + if my_bus == -1: + # special case if the element is disconnected + # remember I specified in the requirement that an element + # should be controled by a unique switch. + # otherwise I would have to make a loop here too ! + return self._aux_dfs_compute_switches_position_disco( + conn_node_visited, + conn_node_to_bus_id, + el_cn_id_is, + all_pos, + topo_vect, + conn_graph_this_sub, + switch_visited, + switches_state, + main_obj_id, + order_pos, + nb_indep_buses) + + # speed optim: reorder the exploration of the busbar section + better_order = self._order_bbs(cn_bbs_possible, conn_node_to_bus_id, my_bus) + # end speed optim + + for cn_bbs in better_order: # chose a busbar section + # TODO detailed topo: speed optim: this is probably copied too many times + # if main_obj_id <= 200: + # print(f"{str_debug} obj {main_obj_id}, order {order_pos[main_obj_id]}, bbs {cn_bbs}, bus : {my_bus}, {conn_node_to_bus_id}") + n_switch_visited = copy.deepcopy(switch_visited) + n_switches_state = copy.deepcopy(switches_state) + n_conn_node_to_bus_id = copy.deepcopy(conn_node_to_bus_id) + n_conn_node_visited = copy.deepcopy(conn_node_visited) + + cn_bbs_is = self._cn_pos_in_sub[cn_bbs] # position in the substation + if n_conn_node_visited[cn_bbs_is]: + if my_bus != n_conn_node_to_bus_id[cn_bbs_is]: + # cannot assign on the same busbar section two objects not on the same bus + # so I need to "backtrack" + continue + + # cn_bbs has already the right color, I need to find a direct + # path between cn_bbs and the current element + # and return it + + elif (n_conn_node_to_bus_id == my_bus).any(): + tmp = self._aux_dfs_compute_switches_position_connect_bbs( + n_conn_node_to_bus_id, + my_bus, + conn_graph_this_sub, + cn_bbs, + n_switch_visited, + n_switches_state, + n_conn_node_visited, + topo_vect, + main_obj_id, + all_pos, + order_pos, + nb_indep_buses) + if tmp is not None: + # a solution has been found that connect + # cn_bbs to another busbar + return tmp + else: + # I cannot connect cn_bbs + # to a busbar connected to bus `my_bus` + # for all other `other_bbs_cn` so + # I need to backtrack before `cn_bbs` is chosen + continue + + # this is a new bus, I try to connect it to some busbar and + # see if it leads to some infeasibility + n_conn_node_visited[el_cn_id_is] = True + n_conn_node_to_bus_id[el_cn_id_is] = my_bus + # graph with all busbars remove except the "correct" one + tmp_g : nx.Graph = copy.deepcopy(conn_graph_this_sub) + tmp_g.remove_nodes_from([el for el in self.busbar_section_to_conn_node_id if el != cn_bbs]) + + both_ = self._aux_connect_el_to_switch_gen(conn_graph_this_sub, + el_cn_id, + cn_bbs, + n_switch_visited, + n_switches_state, + tmp_g) + generator_path = enumerate(both_) + + something_works = False + this_res = None + while True: + try: + debug_id2, (path, cn_path) = next(generator_path) + except StopIteration: + # cannot connect cn_bbs to other_bbs_cn + # move to another + break + + nn_switch_visited = copy.deepcopy(n_switch_visited) + nn_switches_state = copy.deepcopy(n_switches_state) + nn_conn_node_to_bus_id = copy.deepcopy(n_conn_node_to_bus_id) + nn_conn_node_visited = copy.deepcopy(n_conn_node_visited) + + nn_switch_visited[path] = True + nn_switches_state[path] = True + nn_conn_node_to_bus_id[cn_path] = my_bus + nn_conn_node_visited[cn_path] = True + is_working = True + + this_tmp_g = copy.deepcopy(conn_graph_this_sub) + this_tmp_g.remove_nodes_from([el for el in this_tmp_g.nodes + if (conn_node_to_bus_id[self._cn_pos_in_sub[el]] != 0 and + conn_node_to_bus_id[self._cn_pos_in_sub[el]] != my_bus) + ]) + + # speed optim + # below i try to detect every constraints that I can + # that are direct cause to the current state + solve_constraints = True + while solve_constraints: + solve_constraints = False + for other_cn_id in all_pos: + oth_cn_id_is = self._cn_pos_in_sub[other_cn_id] + if nn_conn_node_visited[oth_cn_id_is]: + # node already visited, it is assumed to be correct + continue + + # find if all other elements can be assigned to this path (just an assessment for now) + bus_other = topo_vect[self.conn_node_to_topovect_id[other_cn_id]] + if bus_other != my_bus: + # nothing to do if the object is not on the same bus + # TODO detailed topo: actually we can do something if an element + # in this case is forced to be connected on my_bus it is not possible + if bus_other == -1: + continue + # continue + possible_bbs_other = list(self._conn_node_to_bbs_conn_node_id[other_cn_id]) + possible_bbs_other_is = self._cn_pos_in_sub[possible_bbs_other] + possible_bus_this = nn_conn_node_to_bus_id[possible_bbs_other_is] + if (possible_bus_this != 0).all() and (possible_bus_this != bus_other).all(): + # this element cannot be connected to the right bus + is_working = False + break + # feasibility checks are done, do not study this bus + continue + + ps_tmp, cns_tmp = self._aux_connect_el_to_switch(conn_graph_this_sub, + other_cn_id, + cn_bbs, + nn_switch_visited, + nn_switches_state, + this_tmp_g, + assessment=True) + if len(ps_tmp) == 0: + is_working = False + break + + if len(ps_tmp) == 1: + # both objects are on the same bus and there is only one path + # to connect this object to the main object, so I necessarily + # toggle all switches on this path and continue + # print(f"adding conn nodes {cns_tmp[0]} to bus {my_bus} when studying cn {other_cn_id}") + solve_constraints = True + tmp_path = ps_tmp[0] + nn_switch_visited[tmp_path] = True + nn_switches_state[tmp_path] = True + nn_conn_node_visited[cns_tmp[0]] = True + nn_conn_node_to_bus_id[cns_tmp[0]] = my_bus + + this_topo_vect = nn_conn_node_to_bus_id[self._cn_pos_in_sub[all_pos]] + this_sub_tgt_topo_vect = topo_vect[self.conn_node_to_topovect_id[all_pos]] + assigned_this = this_topo_vect != 0 + tmp_for_check = this_topo_vect[assigned_this] != this_sub_tgt_topo_vect[assigned_this] + if tmp_for_check.any(): + # solving the constraints would for sure create a problem + # as one element would not be assigned to the right bus + is_working = False + break + + if not is_working: + # this path is not working, I don't use it + continue + else: + # this seems to work, I try to see if I can + # handle all the remaining elements + main_obj_id_new = self._aux_find_next_el_id(main_obj_id, all_pos, nn_conn_node_visited, order_pos) + if main_obj_id_new is not None: + # I still need to visit some other elements + this_res = self._dfs_compute_switches_position(topo_vect, + conn_graph_this_sub, + main_obj_id_new, + all_pos, + nn_switch_visited, + nn_switches_state, + nn_conn_node_visited, + nn_conn_node_to_bus_id, + order_pos, + nb_indep_buses) + else: + # I found a correct path + return nn_switches_state + if this_res is not None: + something_works = True + return this_res + else: + # I need to back track + something_works = False + + if something_works: + # I found a solution valid for everything + return this_res + else: + # no solution found, this bus is not possible + continue + # If I end up here it's because + # none of the `cn_bbs in cn_bbs_possible` are working + # so there is not solution + return None + + def _aux_find_next_el_id(self, main_obj_id, all_pos, n_conn_node_visited, order_pos): + still_more_els = True + while n_conn_node_visited[self._cn_pos_in_sub[all_pos[order_pos[main_obj_id]]]]: + main_obj_id += 1 + if main_obj_id >= len(all_pos): + still_more_els = False + break + if still_more_els: + return main_obj_id + return None + + def _aux_connect_el_to_switch_aux(self, + conn_graph_this_sub, + switches_state, + switch_visited, + cn_path): + + # retrieve the switch id + sws_id = np.array([conn_graph_this_sub.edges[cn_path[i], cn_path[i+1]]["id"] for i in range(len(cn_path)-1)]) + + sws_is = self._sw_pos_in_sub[sws_id] + if not (switches_state[sws_is] | ~switch_visited[sws_is]).all(): + return None + cn_is = self._cn_pos_in_sub[np.array(cn_path)] + return sws_is, cn_is + + def _aux_connect_el_to_switch_gen(self, + conn_graph_this_sub, + el_cn_id, + cn_bbs, + switch_visited, + switches_state, + tmp_g): + all_paths = nx.all_simple_paths(tmp_g, el_cn_id, cn_bbs) + res = None + while True: + try: + cn_path = next(all_paths) + except StopIteration: + return + res = self._aux_connect_el_to_switch_aux( + conn_graph_this_sub, + switches_state, + switch_visited, + cn_path) + if res is not None: + yield res + + def _aux_connect_el_to_switch(self, + conn_graph_this_sub, + el_cn_id, + cn_bbs, + switch_visited, + switches_state, + tmp_g, + assessment=False): + """connect the connectivity node `el_cn_id` (representing an element) to + the connectivity node representing a busbar `cn_bbs` and should return all possible ways + to connect it without having to traverse another busbar + """ + # TODO detailed topo: time optim: in tmp_g, + # you can remove the edges that does not satisfy + # `switches_state[sws_is] | ~switch_visited[sws_is]` + # directly in the graph, so that I don't need to check + # that in post processing + + # TODO detailed topo: label the "tmp_g" directly with the position + # in the substation and not the "global" position + + # TODO detailed topo: add the information about the current bus to target + # and the already assigned buses + # so that this function can also check that no other "buses" + # are in the path + + res_switch = [] + res_cn = [] + path_generator = nx.all_simple_paths(tmp_g, el_cn_id, cn_bbs) + for cn_path in path_generator: + # retrieve the switch id + tmp = self._aux_connect_el_to_switch_aux(conn_graph_this_sub, + switches_state, + switch_visited, + cn_path) + if tmp is None: + continue + sws_is, cn_is = tmp + res_switch.append(sws_is) + res_cn.append(cn_is) + if assessment and len(res_switch) >= 2: + # at least two paths that will be visited later + # when the element id will be the "main" object + # (in this case, only one is enough; i put two so that + # the rest of the code works - if only one then the dfs routine + # does some stuff) + break + return res_switch, res_cn + + def from_switches_position(self, + switches_state : np.ndarray, + subs_changed : Optional[np.ndarray]=None): + if switches_state.shape[0] != self.switches.shape[0]: + raise Grid2OpException("Impossible to compute the nodal topology from " + "the switches as you did not provide the state " + "of the correct number of switches: " + f"expected {self.switches.shape[0]} " + f"found {switches_state.shape[0]}") + if subs_changed is None: + subs_changed = np.ones(self._n_sub, dtype=dt_bool) + + if subs_changed.shape[0] != self._n_sub: + raise Grid2OpException("Incorrect number of substation provided in the " + "subs_changed argument (it should be a mask " + "indicating for each one whether this substation " + "has been modified or not)") + + # TODO detailed topo + # opposite of `compute_switches_position` + topo_vect = np.zeros(self._dim_topo, dtype=dt_int) + if self.conn_node_to_shunt_id is not None: + shunt_bus = np.zeros(self._n_shunt, dtype=dt_int) + else: + shunt_bus = None + + # TODO detailed topo: find a way to accelarate it + for sub_id in range(self._n_sub): + if not subs_changed[sub_id]: + continue + + bbs_this_sub = self.busbar_section_to_subid == sub_id # bbs = busbar section + bbs_id = bbs_this_sub.nonzero()[0] + bbs_id_inv = np.zeros(bbs_id.max() + 1, dtype=dt_int) - 1 + bbs_id_inv[bbs_id] = np.arange(bbs_id.shape[0]) + bbs_handled = np.zeros(bbs_id.shape[0], dtype=dt_bool) + mask_s_this_sub = self.switches[:, type(self).SUB_COL] == sub_id + switches_this_sub = self.switches[mask_s_this_sub,:] + switches_state_this_sub = switches_state[mask_s_this_sub] + mask_cn_this_sub = self.conn_node_to_subid == sub_id + cn_to_tv_id = self.conn_node_to_topovect_id[mask_cn_this_sub] + # by default elements of this subs are disconnected + topo_vect[cn_to_tv_id[cn_to_tv_id != -1]] = -1 + + if self.conn_node_to_shunt_id is not None: + cn_to_sh_id = self.conn_node_to_shunt_id[mask_cn_this_sub] + # by default all shunts are connected + shunt_bus[cn_to_sh_id[cn_to_sh_id != -1]] = -1 + bbs_id_this_sub = 0 + bbs_node_id = 1 + while True: + if bbs_handled[bbs_id_this_sub]: + # this busbar section has already been process + bbs_id_this_sub += 1 + continue + + connected_conn_node = np.array([bbs_id[bbs_id_this_sub]]) + # now find all "connection node" connected to this busbar section + while True: + add_conn_2 = np.isin(switches_this_sub[:, type(self).CONN_NODE_1_ID_COL], connected_conn_node) & switches_state_this_sub + add_conn_1 = np.isin(switches_this_sub[:, type(self).CONN_NODE_2_ID_COL], connected_conn_node) & switches_state_this_sub + if add_conn_1.any() or add_conn_2.any(): + size_bef = connected_conn_node.shape[0] + connected_conn_node = np.concatenate((connected_conn_node, + switches_this_sub[add_conn_2, type(self).CONN_NODE_2_ID_COL])) + connected_conn_node = np.concatenate((connected_conn_node, + switches_this_sub[add_conn_1, type(self).CONN_NODE_1_ID_COL])) + connected_conn_node = np.unique(connected_conn_node) + if connected_conn_node.shape[0] == size_bef: + # nothing added + break + else: + break + + # now connect all real element link to the connection node to the right bus id + topo_vect_id = self.conn_node_to_topovect_id[connected_conn_node] # keep only connected "connection node" that are connected to an element + topo_vect_id = topo_vect_id[topo_vect_id != -1] + topo_vect_id = topo_vect_id[topo_vect[topo_vect_id] == -1] # remove element already assigned on a bus + topo_vect[topo_vect_id] = bbs_node_id # assign the current bus bar section id + # now handle the shunts + if self.conn_node_to_shunt_id is not None: + shunt_id = self.conn_node_to_shunt_id[connected_conn_node] # keep only connected "connection node" that are connected to an element + shunt_id = shunt_id[shunt_id != -1] + shunt_id = shunt_id[shunt_bus[shunt_id] == -1] # remove element already assigned on a bus + shunt_bus[shunt_id] = bbs_node_id # assign the current bus bar section id + + # say we go to the next bus id + bbs_node_id += 1 + + # now find the next busbar section at this substation not handled + bbs_conn_this = connected_conn_node[np.isin(connected_conn_node, bbs_id)] + bbs_handled[bbs_id_inv[bbs_conn_this]] = True + stop = False + while True: + bbs_id_this_sub += 1 + if bbs_id_this_sub >= bbs_handled.shape[0]: + stop = True + break + if not bbs_handled[bbs_id_this_sub]: + stop = False + break + if stop: + # go to next substation as all the busbar sections to + # this substation have been processed + break + return topo_vect, shunt_bus + + def _aux_check_pos_topo_vect(self, + el_ids, # eg load_to_conn_node_id + vect_pos_tv, # eg gridobj_cls.load_pos_topo_vect + el_nm, # eg "load" + ): + el_tv_id = self.conn_node_to_topovect_id[el_ids] + if (vect_pos_tv != el_tv_id).any(): + raise Grid2OpException(f"Inconsistency in `conn_node_to_topovect_id` and `switch` for {el_nm}: " + f"Some switch representing {el_nm} do not have the same " + f"`conn_node_to_topovect_id` and `gridobj_cls.{el_nm}_pos_topo_vect`") + + def check_validity(self, gridobj_cls: "grid2op.Space.GridObjects.GridObjects"): + cls = type(self) + if self._n_sub is None or self._n_sub == -1: + self._n_sub = gridobj_cls.n_sub + if self._n_sub != gridobj_cls.n_sub: + raise Grid2OpException("Incorrect number of susbtation registered " + "in the detailed topology description") + if self._dim_topo is None or self._dim_topo == -1: + self._dim_topo = gridobj_cls.dim_topo + if self._dim_topo != gridobj_cls.dim_topo: + raise Grid2OpException("Incorrect size for the topology vector registered " + "in the detailed topology description") + if self._n_shunt is None or self._n_shunt == -1: + self._n_shunt = gridobj_cls.n_shunt + if self._n_shunt != gridobj_cls.n_shunt: + raise Grid2OpException("Incorrect number of shunts registered " + "in the detailed topology description") + + if self.conn_node_to_subid.max() != gridobj_cls.n_sub - 1: + raise Grid2OpException("There are some 'connectivity node' connected to unknown substation, check conn_node_to_subid") + if self.conn_node_name.shape[0] != self.conn_node_to_subid.shape[0]: + raise Grid2OpException(f"There are {self.conn_node_name.shape[0]} according to `conn_node_name` " + f"but {self.conn_node_to_subid.shape[0]} according to `conn_node_to_subid`.") + arr = self.conn_node_to_subid + arr = arr[arr != -1] + arr.sort() + if (np.unique(arr) != np.arange(gridobj_cls.n_sub)).any(): + raise Grid2OpException("There are no 'connectivity node' on some substation, check conn_node_to_subid") + + if self.conn_node_to_subid.shape != self.conn_node_name.shape: + raise Grid2OpException(f"Inconsistencies found on the connectivity nodes: " + f"you declared {len(self.conn_node_to_subid)} connectivity nodes " + f"in `self.conn_node_to_subid` but " + f"{len( self.conn_node_name)} connectivity nodes in " + "`self.conn_node_name`") + + nb_conn_node = self.conn_node_name.shape[0] + all_conn_nodes = np.arange(nb_conn_node) + if not (np.isin(self.busbar_section_to_conn_node_id, all_conn_nodes)).all(): + raise Grid2OpException("Some busbar are connected to unknown connectivity nodes. Check `busbar_section_to_conn_node_id`") + if not (np.isin(self.switches[:,cls.CONN_NODE_1_ID_COL], all_conn_nodes)).all(): + raise Grid2OpException(f"Some busbar are connected to unknown connectivity nodes. Check `switches` " + f"(column {cls.CONN_NODE_1_ID_COL})") + if not (np.isin(self.switches[:,cls.CONN_NODE_2_ID_COL], all_conn_nodes)).all(): + raise Grid2OpException(f"Some busbar are connected to unknown connectivity nodes. Check `switches` " + f"(column {cls.CONN_NODE_2_ID_COL})") + + if self.switches[:,cls.CONN_NODE_1_ID_COL].max() >= len(self.conn_node_to_subid): + raise Grid2OpException("Inconsistencies found in the switches: some switches are " + "mapping unknown connectivity nodes for 'CONN_NODE_1_ID_COL' (too high)") + if self.switches[:,cls.CONN_NODE_2_ID_COL].max() >= len(self.conn_node_to_subid): + raise Grid2OpException("Inconsistencies found in the switches: some switches are " + "mapping unknown connectivity nodes for 'CONN_NODE_2_ID_COL' (too high)") + if self.switches[:,cls.CONN_NODE_1_ID_COL].min() < 0: + raise Grid2OpException("Inconsistencies found in the switches: some switches are " + "mapping unknown connectivity nodes for 'CONN_NODE_1_ID_COL' (too low)") + if self.switches[:,cls.CONN_NODE_2_ID_COL].max() >= len(self.conn_node_to_subid): + raise Grid2OpException("Inconsistencies found in the switches: some switches are " + "mapping unknown connectivity nodes for 'CONN_NODE_2_ID_COL' (too low)") + + # check connectivity node info is consistent + if (self.conn_node_to_subid[self.switches[:,cls.CONN_NODE_1_ID_COL]] != + self.conn_node_to_subid[self.switches[:,cls.CONN_NODE_2_ID_COL]]).any(): + raise Grid2OpException("Inconsistencies found in the switches mapping. Some switches are " + "mapping connectivity nodes that belong to different substation.") + if (self.conn_node_to_subid[self.switches[:,cls.CONN_NODE_1_ID_COL]] != + self.switches[:,cls.SUB_COL] + ).any(): + raise Grid2OpException(f"Inconsistencies detected between `conn_node_to_subid` and `switches`. " + f"There are some switches declared to belong to some substation (col {cls.SUB_COL}) " + f"or `switches` that connects connectivity node not belonging to this substation " + f"`conn_node_to_subid[switches[:,{cls.CONN_NODE_1_ID_COL}]]`") + if (self.conn_node_to_subid[self.switches[:,cls.CONN_NODE_2_ID_COL]] != + self.switches[:,cls.SUB_COL] + ).any(): + raise Grid2OpException(f"Inconsistencies detected between `conn_node_to_subid` and `switches`. " + f"There are some switches declared to belong to some substation (col {cls.SUB_COL}) " + f"or `switches` that connects connectivity node not belonging to this substation " + f"`conn_node_to_subid[switches[:,{cls.CONN_NODE_2_ID_COL}]]`") + + # check topo vect is consistent + arr = self.conn_node_to_topovect_id[self.conn_node_to_topovect_id != -1] + if self.topovect_to_conn_node_id is None: + self.topovect_to_conn_node_id = self._aux_init_fill_topovect_to_conn_node_id(self._dim_topo, self.conn_node_to_topovect_id) + else: + # self.conn_node_to_topovect_id[] + if (np.arange(self._dim_topo) != self.conn_node_to_topovect_id[self.topovect_to_conn_node_id]).any(): + raise Grid2OpException("Inconsistency between `conn_node_to_topovect_id` and `topovect_to_conn_node_id`") + mask = self.conn_node_to_topovect_id != -1 + vals = mask.nonzero()[0] + if (self.topovect_to_conn_node_id[self.conn_node_to_topovect_id[mask]] != vals).any(): + raise Grid2OpException("Inconsistency between `conn_node_to_topovect_id` and `topovect_to_conn_node_id`") + + dim_topo = gridobj_cls.dim_topo + if arr.max() != dim_topo - 1: + raise Grid2OpException("Inconsistency in `self.conn_node_to_topovect_id`: some objects in the " + "topo_vect are not connected to any switch") + if arr.shape[0] != dim_topo: + raise Grid2OpException("Inconsistencies in `self.conn_node_to_topovect_id`: some elements of " + "topo vect are not controlled by any switches.") + arr.sort() + if (arr != np.arange(dim_topo)).any(): + raise Grid2OpException("Inconsistencies in `self.conn_node_to_topovect_id`: two or more swtiches " + "are pointing to the same element") + self._aux_check_pos_topo_vect(self.load_to_conn_node_id, gridobj_cls.load_pos_topo_vect, "load") + self._aux_check_pos_topo_vect(self.gen_to_conn_node_id, gridobj_cls.gen_pos_topo_vect, "gen") + self._aux_check_pos_topo_vect(self.line_or_to_conn_node_id, gridobj_cls.line_or_pos_topo_vect, "line_or") + self._aux_check_pos_topo_vect(self.line_ex_to_conn_node_id, gridobj_cls.line_ex_pos_topo_vect, "line_ex") + self._aux_check_pos_topo_vect(self.storage_to_conn_node_id, gridobj_cls.storage_pos_topo_vect, "storage") + + # check "el to connectivity nodes" are consistent + if self.load_to_conn_node_id.shape[0] != gridobj_cls.n_load: + raise Grid2OpException("load_to_conn_node_id is not with a size of n_load") + if self.gen_to_conn_node_id.shape[0] != gridobj_cls.n_gen: + raise Grid2OpException("gen_to_conn_node_id is not with a size of n_gen") + if self.line_or_to_conn_node_id.shape[0] != gridobj_cls.n_line: + raise Grid2OpException("line_or_to_conn_node_id is not with a size of n_line") + if self.line_ex_to_conn_node_id.shape[0] != gridobj_cls.n_line: + raise Grid2OpException("line_ex_to_conn_node_id is not with a size of n_line") + if self.storage_to_conn_node_id.shape[0] != gridobj_cls.n_storage: + raise Grid2OpException("storage_to_conn_node_id is not with a size of n_storage") + if self.shunt_to_conn_node_id is not None: + if self.shunt_to_conn_node_id.shape[0] != gridobj_cls.n_shunt: + raise Grid2OpException("storage_to_conn_node_id is not with a size of n_shunt") + + # check some info about the busbars + if self.busbar_section_to_subid.max() != gridobj_cls.n_sub - 1: + raise Grid2OpException("There are some 'busbar section' connected to unknown substation, check busbar_section_to_subid") + arr = self.busbar_section_to_subid + arr = arr[arr != -1] + arr.sort() + if (np.unique(arr) != np.arange(gridobj_cls.n_sub)).any(): + raise Grid2OpException("There are no 'busbar section' on some substation, check busbar_section_to_subid") + if self.busbar_section_to_subid.shape[0] != self.busbar_section_to_conn_node_id.shape[0]: + raise Grid2OpException("Wrong size detected for busbar_section_to_subid or busbar_section_to_conn_node_id") + + # test "unicity" of connectivity node + # eg. 1 connectivity nodes cannot represent 2 different objects + tup =(self.load_to_conn_node_id, + self.gen_to_conn_node_id, + self.line_or_to_conn_node_id, + self.line_ex_to_conn_node_id, + self.storage_to_conn_node_id, + self.busbar_section_to_conn_node_id) + shape_th = (gridobj_cls.n_load + + gridobj_cls.n_gen + + 2 * gridobj_cls.n_line + + gridobj_cls.n_storage + + self.busbar_section_to_conn_node_id.shape[0]) + if self.shunt_to_conn_node_id is not None: + tup = tup + (self.shunt_to_conn_node_id,) + shape_th += self._n_shunt + conn_nodes = np.concatenate(tup) + if np.unique(conn_nodes).shape[0] != shape_th: + raise Grid2OpException("It appears the same connectivity node represent " + "different element (for example it could represent " + "at the same time a load and a busbar section or " + "a generator and the origin side of a powerline)") + + # TODO detailed topo proper exception class and not Grid2OpException + + def save_to_dict(self, res, as_list=True, copy_=True): + # TODO detailed topo + save_to_dict( + res, + self, + "conn_node_name", + _save_to_dict_str(as_list), + copy_, + ) + save_to_dict( + res, + self, + "conn_node_to_subid", + _save_to_dict_int(as_list), + copy_, + ) + res["_from_ieee_grid"] = self._from_ieee_grid + res["_n_sub"] = int(self._n_sub) + res["_dim_topo"] = int(self._dim_topo) + res["_n_shunt"] = int(self._n_shunt) + + save_to_dict( + res, + self, + "switches", + (lambda arr: [int(el) for el in arr.flatten()]) if as_list else lambda arr: arr.flatten(), + copy_, + ) + save_to_dict( + res, + self, + "conn_node_to_topovect_id", + (lambda arr: [int(el) for el in arr]) if as_list else lambda arr: arr.flatten(), + copy_, + ) + + if self.topovect_to_conn_node_id is None: + self.topovect_to_conn_node_id = self._aux_init_fill_topovect_to_conn_node_id(self._dim_topo, self.conn_node_to_topovect_id) + save_to_dict( + res, + self, + "topovect_to_conn_node_id", + (lambda arr: [int(el) for el in arr]) if as_list else lambda arr: arr.flatten(), + copy_, + ) + if self.conn_node_to_shunt_id is not None: + save_to_dict( + res, + self, + "conn_node_to_shunt_id", + (lambda arr: [int(el) for el in arr]) if as_list else lambda arr: arr.flatten(), + copy_, + ) + + # for the switches per element + li_attr_saved = ["load_to_conn_node_id", "gen_to_conn_node_id", + "line_or_to_conn_node_id", "line_ex_to_conn_node_id", + "storage_to_conn_node_id", "busbar_section_to_conn_node_id", + "busbar_section_to_subid"] + if self.shunt_to_conn_node_id is not None: + li_attr_saved.append("shunt_to_conn_node_id") + for attr_nm in li_attr_saved: + save_to_dict( + res, + self, + attr_nm, + _save_to_dict_int(as_list), + copy_, + ) + + @classmethod + def from_dict(cls, dict_) -> Self: + """ + INTERNAL + + .. warning:: /!\\\\ Internal, do not use unless you know what you are doing /!\\\\ + This is used internally only to build the "DetailedTopoDescription" + when the classes are serialized. You should not modify this under any circumstances. + + """ + res = cls() + res.conn_node_name = extract_from_dict( + dict_, "conn_node_name", lambda x: np.array(x).astype(str) + ) + res.conn_node_to_subid = extract_from_dict( + dict_, "conn_node_to_subid", lambda x: np.array(x).astype(dt_int) + ) + + res.switches = extract_from_dict( + dict_, "switches", lambda x: np.array(x).astype(dt_int) + ) + res.switches = res.switches.reshape((-1, 3)) + + res.conn_node_to_topovect_id = extract_from_dict( + dict_, "conn_node_to_topovect_id", lambda x: np.array(x).astype(dt_int) + ) + res.topovect_to_conn_node_id = extract_from_dict( + dict_, "topovect_to_conn_node_id", lambda x: np.array(x).astype(dt_int) + ) + res._from_ieee_grid = bool(dict_["_from_ieee_grid"]) + res._n_sub = int(dict_["_n_sub"]) + res._dim_topo = int(dict_["_dim_topo"]) + res._n_shunt = int(dict_["_n_shunt"]) + + if "conn_node_to_shunt_id" in dict_: + res.conn_node_to_shunt_id = extract_from_dict( + dict_, "conn_node_to_shunt_id", lambda x: np.array(x).astype(dt_int) + ) + else: + # shunts are not supported + res.conn_node_to_shunt_id = None + + res.load_to_conn_node_id = extract_from_dict( + dict_, "load_to_conn_node_id", lambda x: x + ) + res.gen_to_conn_node_id = extract_from_dict( + dict_, "gen_to_conn_node_id", lambda x: x + ) + res.line_or_to_conn_node_id = extract_from_dict( + dict_, "line_or_to_conn_node_id", lambda x: x + ) + res.line_ex_to_conn_node_id = extract_from_dict( + dict_, "line_ex_to_conn_node_id", lambda x: x + ) + res.storage_to_conn_node_id = extract_from_dict( + dict_, "storage_to_conn_node_id", lambda x: x + ) + res.busbar_section_to_conn_node_id = extract_from_dict( + dict_, "busbar_section_to_conn_node_id", lambda x: x + ) + res.busbar_section_to_subid = extract_from_dict( + dict_, "busbar_section_to_subid", lambda x: x + ) + if "shunt_to_conn_node_id" in dict_: + res.shunt_to_conn_node_id = extract_from_dict( + dict_, "shunt_to_conn_node_id", lambda x: x + ) + + # TODO detailed topo + return res \ No newline at end of file diff --git a/grid2op/Space/space_utils.py b/grid2op/Space/space_utils.py index 285bc955..03886947 100644 --- a/grid2op/Space/space_utils.py +++ b/grid2op/Space/space_utils.py @@ -7,7 +7,7 @@ # This file is part of Grid2Op, Grid2Op a testbed platform to model sequential decision making in power systems. import copy -from typing import Optional +from typing import Callable, Iterable, List, Optional import numpy as np from grid2op.Exceptions import Grid2OpException @@ -68,7 +68,7 @@ def save_to_dict(res_dict, me, key, converter, copy_=True): raise Grid2OpException( 'Impossible to convert "{}" into class {} with exception ' '\n"{}"'.format(key, converter, exc_) - ) + ) from exc_ if key in res_dict: msg_err_ = ( @@ -109,3 +109,25 @@ def __init__(self, self._p = el_p self._q = el_q self._v = el_v + + +def _save_to_dict_generic_type(as_list, convert_type_fun): + """Should only be used in the `_save_to_dict_xxx` methods !""" + if as_list: + return lambda arr: [convert_type_fun(el) for el in arr] + return None + + +def _save_to_dict_str(as_list) -> Optional[Callable[[Iterable[str]], List[str]]]: + """Should only be used in the `save_to_dict` method !""" + return _save_to_dict_generic_type(as_list, str) + + +def _save_to_dict_float(as_list) -> Optional[Callable[[Iterable[float]], List[float]]]: + """Should only be used in the `save_to_dict` method !""" + return _save_to_dict_generic_type(as_list, float) + + +def _save_to_dict_int(as_list) -> Optional[Callable[[Iterable[int]], List[int]]]: + """Should only be used in the `save_to_dict` method !""" + return _save_to_dict_generic_type(as_list, int) diff --git a/grid2op/VoltageControler/ControlVoltageFromFile.py b/grid2op/VoltageControler/ControlVoltageFromFile.py index d811874d..1a17b77b 100644 --- a/grid2op/VoltageControler/ControlVoltageFromFile.py +++ b/grid2op/VoltageControler/ControlVoltageFromFile.py @@ -112,4 +112,8 @@ def fix_voltage(self, observation, agent_action, env_action, prod_v_chronics): res = self.action_space({"injection": {"prod_v": prod_v_chronics}}) else: res = self.action_space() + if observation is not None: + # cache the get_topological_impact to avoid useless computations later + # this is a speed optimization + _ = res.get_topological_impact(observation.line_status, _store_in_cache=True, _read_from_cache=False) return res diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections1.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections1.txt new file mode 100644 index 00000000..512c0acb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections1.txt @@ -0,0 +1,59 @@ +switch_id node1 node2 open +0 0 10 0 +1 0 32 1 +2 0 34 1 +3 0 16 1 +4 0 4 1 +5 0 18 0 +6 0 39 0 +7 0 36 1 +8 0 26 0 +9 21 0 0 +10 1 12 0 +11 1 6 1 +12 1 14 1 +13 1 30 1 +14 1 8 0 +15 1 28 1 +16 1 24 0 +17 38 1 0 +18 23 1 0 +19 2 20 0 +20 2 10 1 +21 2 32 0 +22 2 34 0 +23 2 16 0 +24 2 4 0 +25 2 18 1 +26 2 41 0 +27 2 36 0 +28 2 26 1 +29 3 12 1 +30 3 6 0 +31 3 14 0 +32 3 30 0 +33 3 8 1 +34 3 22 0 +35 3 28 0 +36 3 24 1 +37 40 3 0 +38 4 5 0 +39 6 7 0 +40 8 9 0 +41 10 11 0 +42 12 13 0 +43 14 15 0 +44 16 17 0 +45 18 19 0 +46 20 21 1 +47 22 23 1 +48 24 25 0 +49 26 27 0 +50 28 29 0 +51 30 31 0 +52 32 33 0 +53 34 35 0 +54 36 37 0 +55 39 38 1 +56 41 40 0 + diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections10.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections10.txt new file mode 100644 index 00000000..233b2140 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections10.txt @@ -0,0 +1,51 @@ +switch_id node1 node2 open +0 2 18 0 +1 0 19 1 +2 0 20 0 +3 1 21 1 +4 0 1 0 +5 2 3 1 +6 2 22 1 +7 0 23 1 +8 0 24 1 +9 3 25 1 +10 1 26 1 +11 2 27 1 +12 3 21 0 +13 2 20 1 +14 3 28 0 +15 3 26 0 +16 29 0 0 +17 2 30 0 +18 2 31 0 +19 0 30 1 +20 0 27 1 +21 1 28 1 +22 1 32 0 +23 3 33 0 +24 0 31 1 +25 34 1 0 +26 3 32 1 +27 3 35 0 +28 2 24 0 +29 0 22 0 +30 1 35 1 +31 2 19 0 +32 1 25 0 +33 2 23 0 +34 23 12 0 +35 30 16 0 +36 26 14 0 +37 20 13 0 +38 24 17 0 +39 31 6 0 +40 35 15 0 +41 28 5 0 +42 21 4 1 +43 19 8 0 +44 18 29 0 +45 25 10 1 +46 22 7 0 +47 27 9 1 +48 33 34 0 +49 32 11 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections100.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections100.txt new file mode 100644 index 00000000..d58555b7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections100.txt @@ -0,0 +1,36 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 8 1 +2 0 10 0 +3 0 16 1 +4 0 20 1 +5 0 22 0 +6 0 12 0 +7 0 14 1 +8 0 4 0 +9 3 0 0 +10 1 2 0 +11 1 6 0 +12 1 8 0 +13 1 10 1 +14 1 16 0 +15 1 20 0 +16 1 22 1 +17 1 12 1 +18 1 14 0 +19 1 4 1 +20 2 3 1 +21 4 5 0 +22 6 7 0 +23 8 9 0 +24 10 11 0 +25 12 13 0 +26 14 15 0 +27 16 17 0 +28 18 17 0 +29 19 17 0 +30 20 26 0 +31 22 23 0 +32 24 17 1 +33 21 26 0 +34 25 26 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections101.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections101.txt new file mode 100644 index 00000000..85a54f54 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections101.txt @@ -0,0 +1,102 @@ +switch_id node1 node2 open +0 0 61 0 +1 79 0 0 +2 1 2 0 +3 60 1 0 +4 2 63 0 +5 3 4 0 +6 3 76 0 +7 62 3 0 +8 81 3 0 +9 4 65 0 +10 83 4 0 +11 5 6 0 +12 64 5 0 +13 6 67 0 +14 66 7 0 +15 85 7 0 +16 8 28 0 +17 8 53 0 +18 8 78 0 +19 9 30 0 +20 9 10 1 +21 9 36 0 +22 52 9 0 +23 93 9 0 +24 10 32 0 +25 10 57 0 +26 10 38 0 +27 95 10 0 +28 11 34 0 +29 11 12 1 +30 11 80 0 +31 56 11 0 +32 12 46 0 +33 12 82 0 +34 12 55 0 +35 13 44 0 +36 13 48 0 +37 13 14 1 +38 54 13 0 +39 89 13 0 +40 14 59 0 +41 14 26 0 +42 14 40 0 +43 91 14 0 +44 15 50 0 +45 15 84 0 +46 15 24 0 +47 15 42 0 +48 58 15 0 +49 16 69 0 +50 17 18 0 +51 17 92 0 +52 68 17 0 +53 18 71 0 +54 18 94 0 +55 19 20 0 +56 19 86 0 +57 70 19 0 +58 20 73 0 +59 21 22 0 +60 21 88 0 +61 72 21 0 +62 22 75 0 +63 22 90 0 +64 74 23 0 +65 24 25 1 +66 26 27 1 +67 28 29 0 +68 30 31 0 +69 32 33 0 +70 34 35 0 +71 36 37 0 +72 38 39 0 +73 40 41 0 +74 42 43 0 +75 44 45 0 +76 46 47 0 +77 48 49 0 +78 50 51 1 +79 53 52 0 +80 55 54 0 +81 57 56 0 +82 59 58 0 +83 61 60 0 +84 63 62 0 +85 65 64 0 +86 67 66 0 +87 69 68 0 +88 71 70 0 +89 73 72 0 +90 75 74 0 +91 76 77 0 +92 78 79 0 +93 80 81 0 +94 82 83 1 +95 84 85 1 +96 86 87 0 +97 88 89 0 +98 90 91 0 +99 92 93 1 +100 94 95 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections102.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections102.txt new file mode 100644 index 00000000..ea3df44a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections102.txt @@ -0,0 +1,124 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 16 0 +2 0 22 1 +3 0 50 1 +4 0 52 0 +5 0 58 1 +6 0 65 0 +7 0 28 1 +8 0 30 1 +9 0 32 1 +10 0 34 1 +11 0 36 1 +12 13 0 0 +13 1 9 1 +14 1 19 1 +15 1 25 0 +16 1 48 0 +17 1 55 0 +18 1 61 1 +19 1 42 1 +20 1 44 1 +21 1 46 1 +22 1 38 1 +23 1 40 1 +24 15 1 0 +25 64 1 0 +26 2 6 1 +27 2 12 0 +28 2 16 1 +29 2 22 0 +30 2 50 0 +31 2 52 1 +32 2 58 0 +33 2 67 0 +34 2 28 1 +35 2 30 1 +36 2 32 1 +37 2 34 1 +38 2 36 1 +39 3 9 0 +40 3 14 0 +41 3 19 0 +42 3 25 1 +43 3 48 1 +44 3 55 1 +45 3 61 0 +46 3 42 1 +47 3 44 1 +48 3 46 1 +49 3 38 1 +50 3 40 1 +51 66 3 0 +52 4 28 1 +53 4 6 1 +54 4 22 1 +55 4 16 1 +56 4 30 1 +57 4 32 1 +58 4 34 1 +59 4 36 1 +60 4 50 1 +61 4 52 1 +62 4 58 1 +63 4 69 0 +64 5 42 1 +65 5 44 1 +66 5 46 1 +67 5 9 1 +68 5 19 1 +69 5 25 1 +70 5 38 1 +71 5 40 1 +72 5 48 1 +73 5 55 1 +74 5 61 1 +75 68 5 0 +76 6 8 0 +77 8 7 0 +78 8 37 0 +79 9 11 0 +80 11 10 0 +81 11 39 0 +82 12 13 0 +83 14 15 0 +84 16 18 0 +85 18 17 0 +86 18 31 0 +87 19 21 0 +88 21 20 0 +89 21 43 0 +90 22 24 0 +91 24 23 0 +92 24 35 0 +93 25 27 0 +94 27 26 0 +95 27 41 0 +96 28 29 0 +97 60 29 0 +98 30 31 0 +99 32 33 0 +100 54 33 0 +101 34 35 0 +102 36 37 0 +103 38 39 0 +104 40 41 0 +105 42 43 0 +106 44 45 0 +107 57 45 0 +108 46 47 0 +109 63 47 0 +110 48 49 0 +111 50 51 0 +112 52 54 0 +113 54 53 0 +114 55 57 0 +115 57 56 0 +116 58 60 0 +117 60 59 0 +118 61 63 0 +119 63 62 0 +120 65 64 0 +121 67 66 0 +122 69 68 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections103.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections103.txt new file mode 100644 index 00000000..6a70d60a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections103.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 13 0 +2 0 17 0 +3 1 8 0 +4 1 15 0 +5 1 19 0 +6 2 9 0 +7 2 3 0 +8 5 2 0 +9 3 11 0 +10 3 21 0 +11 3 4 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections104.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections104.txt new file mode 100644 index 00000000..6eda0b7d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections104.txt @@ -0,0 +1,51 @@ +switch_id node1 node2 open +0 0 24 0 +1 0 26 1 +2 0 12 0 +3 0 15 0 +4 0 34 0 +5 0 8 1 +6 0 10 0 +7 5 0 0 +8 1 28 0 +9 1 18 1 +10 1 20 1 +11 1 36 1 +12 1 32 1 +13 1 30 0 +14 14 1 0 +15 7 1 0 +16 2 4 0 +17 2 24 1 +18 2 26 0 +19 2 12 1 +20 2 17 0 +21 2 34 1 +22 2 8 0 +23 2 10 1 +24 3 28 1 +25 3 18 0 +26 3 20 0 +27 3 36 0 +28 3 32 0 +29 3 6 0 +30 3 30 1 +31 16 3 0 +32 4 5 1 +33 6 7 1 +34 8 9 0 +35 10 11 0 +36 12 13 0 +37 15 14 0 +38 17 16 0 +39 18 19 0 +40 20 21 0 +41 22 21 0 +42 23 21 1 +43 24 25 0 +44 26 27 0 +45 28 29 0 +46 30 31 0 +47 32 33 0 +48 34 35 0 +49 36 37 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections105.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections105.txt new file mode 100644 index 00000000..6919ffde --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections105.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 4 0 +2 0 1 1 +3 0 20 0 +4 1 16 0 +5 1 8 0 +6 1 2 1 +7 1 24 0 +8 2 18 0 +9 2 10 0 +10 2 3 1 +11 2 26 0 +12 3 14 0 +13 3 6 0 +14 3 22 0 +15 4 5 0 +16 6 7 0 +17 8 9 0 +18 10 11 0 +19 12 13 0 +20 14 15 1 +21 16 17 0 +22 18 19 0 +23 20 21 0 +24 22 23 0 +25 24 25 0 +26 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections106.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections106.txt new file mode 100644 index 00000000..f9abf8f1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections106.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 39 0 +2 0 5 0 +3 0 3 0 +4 0 7 0 +5 0 9 0 +6 0 11 0 +7 0 33 0 +8 1 27 0 +9 1 29 0 +10 1 31 0 +11 1 2 1 +12 1 13 0 +13 1 15 0 +14 1 35 0 +15 2 17 0 +16 2 19 0 +17 2 21 0 +18 2 23 0 +19 2 25 0 +20 2 37 0 +21 3 4 0 +22 5 6 0 +23 7 8 0 +24 9 10 0 +25 11 12 0 +26 13 14 0 +27 15 16 0 +28 17 18 0 +29 19 20 0 +30 21 22 0 +31 23 24 0 +32 25 26 0 +33 27 28 0 +34 29 30 0 +35 31 32 0 +36 33 34 0 +37 35 36 0 +38 37 38 0 +39 39 40 1 +40 41 42 0 +41 42 1 0 +42 43 44 0 +43 44 2 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections107.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections107.txt new file mode 100644 index 00000000..1132d165 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections107.txt @@ -0,0 +1,48 @@ +switch_id node1 node2 open +0 0 26 0 +1 0 8 1 +2 0 28 1 +3 0 10 0 +4 0 30 1 +5 0 4 0 +6 0 14 0 +7 0 6 1 +8 0 2 1 +9 0 32 0 +10 0 22 1 +11 0 18 1 +12 13 0 1 +13 1 12 1 +14 1 26 1 +15 1 8 0 +16 1 28 0 +17 1 10 1 +18 1 30 0 +19 1 4 1 +20 1 14 1 +21 1 6 0 +22 1 2 0 +23 1 32 1 +24 1 22 0 +25 1 18 0 +26 2 3 0 +27 4 5 0 +28 6 7 0 +29 8 9 0 +30 10 11 0 +31 12 13 1 +32 14 15 0 +33 16 15 0 +34 17 15 0 +35 18 19 0 +36 20 19 0 +37 21 19 0 +38 22 23 0 +39 24 23 0 +40 25 23 0 +41 26 27 0 +42 28 29 0 +43 30 31 0 +44 32 33 0 +45 34 15 1 +46 35 19 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections108.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections108.txt new file mode 100644 index 00000000..5ab5f083 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections108.txt @@ -0,0 +1,60 @@ +switch_id node1 node2 open +0 0 27 1 +1 0 33 0 +2 0 39 1 +3 0 1 1 +4 0 41 0 +5 0 14 0 +6 9 0 0 +7 1 22 1 +8 1 31 1 +9 1 10 0 +10 1 18 1 +11 1 35 1 +12 1 37 0 +13 1 2 0 +14 2 20 0 +15 2 12 0 +16 2 29 0 +17 2 16 1 +18 2 25 0 +19 7 2 0 +20 3 27 0 +21 3 33 1 +22 3 8 0 +23 3 39 0 +24 3 4 0 +25 3 41 1 +26 3 14 1 +27 4 22 0 +28 4 31 0 +29 4 10 1 +30 4 18 0 +31 4 35 0 +32 4 37 1 +33 4 5 0 +34 5 20 1 +35 5 12 1 +36 5 29 1 +37 5 16 0 +38 5 25 1 +39 5 6 0 +40 6 7 0 +41 8 9 1 +42 10 11 0 +43 12 13 0 +44 14 15 0 +45 16 17 0 +46 18 19 0 +47 20 21 0 +48 22 23 0 +49 23 24 1 +50 25 26 0 +51 27 28 0 +52 29 30 0 +53 31 32 0 +54 33 34 0 +55 35 36 0 +56 37 38 0 +57 39 40 0 +58 41 42 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections109.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections109.txt new file mode 100644 index 00000000..74fc015d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections109.txt @@ -0,0 +1,40 @@ +switch_id node1 node2 open +0 0 22 1 +1 0 20 1 +2 0 1 0 +3 0 28 1 +4 1 8 1 +5 1 26 1 +6 1 2 0 +7 17 1 0 +8 2 10 0 +9 2 24 1 +10 2 3 0 +11 15 2 0 +12 3 12 1 +13 3 18 1 +14 4 22 0 +15 4 20 0 +16 4 5 1 +17 4 28 0 +18 5 8 0 +19 5 26 0 +20 5 6 1 +21 5 16 0 +22 6 10 1 +23 6 24 0 +24 6 7 0 +25 6 14 0 +26 7 12 0 +27 7 18 0 +28 8 9 0 +29 10 11 0 +30 12 13 0 +31 14 15 0 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 23 0 +36 24 25 0 +37 26 27 0 +38 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections11.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections11.txt new file mode 100644 index 00000000..e320f2c0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections11.txt @@ -0,0 +1,26 @@ +switch_id node1 node2 open +0 1 13 0 +1 14 1 0 +2 1 15 0 +3 0 16 0 +4 1 17 1 +5 1 18 0 +6 1 19 0 +7 0 20 0 +8 0 21 0 +9 0 22 0 +10 1 23 0 +11 1 24 0 +12 0 25 0 +13 18 12 0 +14 13 9 0 +15 15 11 0 +16 20 14 0 +17 17 8 1 +18 25 2 0 +19 16 10 0 +20 24 7 0 +21 22 4 0 +22 23 3 0 +23 21 5 0 +24 19 6 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections110.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections110.txt new file mode 100644 index 00000000..100826ef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections110.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 20 1 +1 0 1 0 +2 0 16 1 +3 1 26 0 +4 1 24 1 +5 1 8 1 +6 1 18 0 +7 1 2 0 +8 2 28 0 +9 2 10 0 +10 2 3 0 +11 2 14 1 +12 13 2 0 +13 3 30 0 +14 4 20 0 +15 4 5 0 +16 4 16 0 +17 5 26 1 +18 5 24 0 +19 5 8 0 +20 5 18 1 +21 5 6 0 +22 6 28 1 +23 6 10 1 +24 6 7 0 +25 6 12 0 +26 6 14 0 +27 7 30 1 +28 8 9 0 +29 10 11 0 +30 12 13 1 +31 14 15 0 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 21 0 +36 23 21 0 +37 24 25 0 +38 26 27 0 +39 28 29 0 +40 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections111.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections111.txt new file mode 100644 index 00000000..133cfd53 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections111.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 8 1 +1 0 6 1 +2 0 10 0 +3 0 18 0 +4 0 14 0 +5 0 20 1 +6 0 1 0 +7 0 26 0 +8 5 0 0 +9 1 24 1 +10 1 16 1 +11 1 22 1 +12 1 28 1 +13 1 12 1 +14 2 4 0 +15 2 8 0 +16 2 6 0 +17 2 10 1 +18 2 18 1 +19 2 14 1 +20 2 20 0 +21 2 3 1 +22 2 26 1 +23 3 24 0 +24 3 16 0 +25 3 22 0 +26 3 28 0 +27 3 12 0 +28 4 5 0 +29 6 7 0 +30 8 9 0 +31 10 11 0 +32 12 13 0 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 20 21 0 +37 22 23 0 +38 24 25 0 +39 26 27 0 +40 28 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections112.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections112.txt new file mode 100644 index 00000000..631694e3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections112.txt @@ -0,0 +1,43 @@ +switch_id node1 node2 open +0 0 22 0 +1 0 2 1 +2 0 26 0 +3 0 10 0 +4 0 24 1 +5 0 8 1 +6 0 16 1 +7 0 18 0 +8 0 28 0 +9 0 20 1 +10 0 4 0 +11 0 14 0 +12 0 12 1 +13 7 0 0 +14 1 22 1 +15 1 2 0 +16 1 26 1 +17 1 10 1 +18 1 24 0 +19 1 8 0 +20 1 16 0 +21 1 18 1 +22 1 28 1 +23 1 20 0 +24 1 4 1 +25 1 14 1 +26 1 12 0 +27 1 6 0 +28 2 3 0 +29 4 5 0 +30 6 7 1 +31 8 9 0 +32 10 11 0 +33 12 13 0 +34 14 15 0 +35 16 17 0 +36 18 19 0 +37 20 21 0 +38 22 23 0 +39 24 25 0 +40 26 27 0 +41 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections113.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections113.txt new file mode 100644 index 00000000..bf3e6ca7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections113.txt @@ -0,0 +1,48 @@ +switch_id node1 node2 open +0 0 16 1 +1 0 18 1 +2 0 26 1 +3 0 1 0 +4 1 24 0 +5 1 14 1 +6 1 10 0 +7 1 32 1 +8 1 2 0 +9 2 8 1 +10 2 3 0 +11 2 28 0 +12 13 2 0 +13 3 22 0 +14 3 30 0 +15 4 16 0 +16 4 18 0 +17 4 26 0 +18 4 5 0 +19 5 24 1 +20 5 14 0 +21 5 10 1 +22 5 32 0 +23 5 6 0 +24 6 8 0 +25 6 7 0 +26 6 28 1 +27 6 12 0 +28 7 22 1 +29 7 30 1 +30 8 9 0 +31 10 11 0 +32 12 13 1 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 20 19 0 +37 21 19 1 +38 22 36 0 +39 24 25 0 +40 26 27 0 +41 28 29 0 +42 30 31 0 +43 32 33 0 +44 34 19 1 +45 23 36 0 +46 35 36 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections114.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections114.txt new file mode 100644 index 00000000..9b994a4e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections114.txt @@ -0,0 +1,36 @@ +switch_id node1 node2 open +0 0 20 1 +1 0 18 0 +2 0 6 0 +3 0 12 1 +4 0 14 0 +5 0 22 1 +6 0 24 1 +7 0 2 1 +8 0 4 0 +9 0 10 1 +10 9 0 0 +11 1 20 0 +12 1 18 1 +13 1 6 1 +14 1 12 0 +15 1 14 1 +16 1 22 0 +17 1 24 0 +18 1 8 0 +19 1 2 0 +20 1 4 1 +21 1 10 0 +22 2 3 0 +23 4 5 0 +24 6 7 0 +25 8 9 1 +26 10 11 0 +27 12 13 0 +28 14 15 0 +29 16 15 0 +30 17 15 1 +31 18 19 0 +32 20 21 0 +33 22 23 0 +34 24 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections115.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections115.txt new file mode 100644 index 00000000..08c30ed2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections115.txt @@ -0,0 +1,24 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 1 1 +2 0 4 0 +3 1 14 0 +4 1 2 1 +5 1 6 0 +6 2 16 0 +7 2 3 1 +8 2 8 0 +9 3 18 0 +10 3 10 0 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 1 +15 12 13 0 +16 14 15 0 +17 16 17 0 +18 18 19 0 +19 20 21 0 +20 21 0 0 +21 22 23 0 +22 23 3 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections116.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections116.txt new file mode 100644 index 00000000..45f9f793 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections116.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 12 0 +2 0 1 1 +3 1 6 0 +4 1 14 0 +5 1 2 1 +6 2 8 0 +7 2 16 0 +8 2 3 1 +9 3 10 0 +10 3 18 0 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 0 +15 12 13 0 +16 14 15 0 +17 16 17 0 +18 18 19 0 +19 20 21 0 +20 21 3 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections117.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections117.txt new file mode 100644 index 00000000..1f0b534d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections117.txt @@ -0,0 +1,57 @@ +switch_id node1 node2 open +0 0 29 0 +1 0 6 1 +2 0 20 1 +3 0 14 0 +4 0 25 0 +5 0 10 0 +6 0 1 1 +7 0 18 1 +8 0 33 0 +9 0 35 1 +10 9 0 0 +11 1 12 0 +12 1 31 0 +13 1 16 0 +14 1 4 0 +15 1 37 0 +16 19 1 0 +17 2 8 0 +18 2 29 1 +19 2 6 0 +20 2 20 0 +21 2 14 1 +22 2 25 1 +23 2 10 1 +24 2 3 1 +25 2 18 0 +26 2 33 1 +27 2 35 0 +28 3 12 1 +29 3 31 1 +30 3 16 1 +31 3 4 1 +32 3 37 1 +33 19 3 1 +34 4 5 0 +35 6 7 0 +36 8 9 0 +37 10 11 0 +38 12 13 0 +39 14 15 0 +40 16 17 0 +41 18 19 1 +42 20 21 0 +43 22 21 0 +44 23 21 1 +45 24 21 0 +46 25 26 0 +47 27 26 0 +48 28 26 0 +49 29 30 0 +50 31 32 0 +51 33 34 0 +52 35 36 0 +53 37 38 0 +54 39 21 1 +55 40 26 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections118.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections118.txt new file mode 100644 index 00000000..43620d31 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections118.txt @@ -0,0 +1,29 @@ +switch_id node1 node2 open +0 0 19 0 +1 0 1 1 +2 0 25 0 +3 0 12 0 +4 1 15 0 +5 1 2 1 +6 1 7 0 +7 2 17 0 +8 2 3 1 +9 2 9 0 +10 2 27 0 +11 3 21 0 +12 3 23 0 +13 7 4 0 +14 10 5 0 +15 13 6 0 +16 7 8 0 +17 9 10 0 +18 10 11 0 +19 12 13 0 +20 13 14 1 +21 15 16 0 +22 17 18 0 +23 19 20 0 +24 21 22 0 +25 23 24 0 +26 25 26 0 +27 27 28 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections119.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections119.txt new file mode 100644 index 00000000..75643603 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections119.txt @@ -0,0 +1,55 @@ +switch_id node1 node2 open +0 0 30 0 +1 0 14 1 +2 0 22 0 +3 0 16 1 +4 0 10 0 +5 0 32 1 +6 0 28 0 +7 0 8 1 +8 0 18 1 +9 0 20 0 +10 0 2 0 +11 0 4 1 +12 0 36 0 +13 0 12 1 +14 0 26 1 +15 0 24 0 +16 0 34 1 +17 7 0 0 +18 1 30 1 +19 1 14 0 +20 1 22 1 +21 1 16 0 +22 1 6 0 +23 1 10 1 +24 1 32 0 +25 1 28 1 +26 1 8 0 +27 1 18 0 +28 1 20 1 +29 1 2 1 +30 1 4 0 +31 1 36 1 +32 1 12 0 +33 1 26 0 +34 1 24 1 +35 1 34 0 +36 2 3 1 +37 4 5 1 +38 6 7 1 +39 8 9 0 +40 10 11 0 +41 12 13 0 +42 14 15 0 +43 16 17 0 +44 18 19 0 +45 20 21 0 +46 22 23 0 +47 24 25 0 +48 26 27 0 +49 28 29 0 +50 30 31 0 +51 32 33 0 +52 34 35 0 +53 36 37 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections12.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections12.txt new file mode 100644 index 00000000..6b30def2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections12.txt @@ -0,0 +1,23 @@ +switch_id node1 node2 open +0 1 11 0 +1 0 12 0 +2 13 1 0 +3 2 14 0 +4 15 2 0 +5 1 2 0 +6 0 16 0 +7 1 17 0 +8 0 18 0 +9 1 19 0 +10 0 20 0 +11 11 6 0 +12 16 10 0 +13 14 9 0 +14 20 3 0 +15 19 8 0 +16 12 7 0 +17 17 25 0 +18 18 13 0 +19 15 21 0 +20 5 21 0 +21 4 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections120.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections120.txt new file mode 100644 index 00000000..fd9c7a6b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections120.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 15 0 +2 0 23 0 +3 1 13 0 +4 1 17 0 +5 1 8 0 +6 2 9 0 +7 2 3 0 +8 5 2 0 +9 3 11 0 +10 3 4 1 +11 3 19 0 +12 4 21 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections121.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections121.txt new file mode 100644 index 00000000..c74df68f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections121.txt @@ -0,0 +1,38 @@ +switch_id node1 node2 open +0 0 21 1 +1 0 25 1 +2 0 23 0 +3 0 8 0 +4 0 12 1 +5 0 4 0 +6 0 16 0 +7 0 2 1 +8 0 10 0 +9 7 0 0 +10 1 6 0 +11 1 21 0 +12 1 25 0 +13 1 23 1 +14 1 8 1 +15 1 12 0 +16 1 4 1 +17 1 16 1 +18 1 2 0 +19 1 10 1 +20 2 3 0 +21 4 5 0 +22 6 7 1 +23 8 9 0 +24 10 11 0 +25 12 13 0 +26 14 13 0 +27 15 13 0 +28 16 17 0 +29 18 17 0 +30 19 17 1 +31 20 17 0 +32 21 22 0 +33 23 24 0 +34 25 26 0 +35 27 13 1 +36 28 17 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections122.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections122.txt new file mode 100644 index 00000000..a03a136b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections122.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 10 1 +1 0 30 0 +2 0 28 1 +3 0 26 0 +4 0 16 1 +5 0 14 0 +6 0 24 0 +7 0 12 1 +8 0 4 0 +9 0 2 1 +10 0 8 0 +11 0 18 1 +12 0 22 0 +13 7 0 0 +14 1 10 1 +15 1 30 1 +16 1 28 0 +17 1 26 1 +18 1 16 0 +19 1 14 1 +20 1 24 1 +21 1 12 0 +22 1 4 1 +23 1 6 0 +24 1 2 0 +25 1 8 1 +26 1 18 0 +27 1 22 1 +28 2 3 0 +29 4 5 0 +30 6 7 1 +31 8 9 0 +32 10 11 1 +33 12 13 0 +34 14 15 0 +35 16 17 0 +36 18 19 0 +37 20 19 0 +38 21 19 1 +39 22 23 0 +40 24 25 0 +41 26 27 0 +42 28 29 0 +43 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections123.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections123.txt new file mode 100644 index 00000000..52758f69 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections123.txt @@ -0,0 +1,23 @@ +switch_id node1 node2 open +0 0 15 0 +1 0 19 0 +2 0 21 0 +3 0 6 0 +4 1 13 0 +5 1 11 0 +6 1 2 0 +7 5 1 0 +8 2 7 0 +9 2 3 0 +10 2 17 0 +11 3 4 0 +12 6 5 1 +13 7 8 0 +14 9 8 0 +15 10 8 1 +16 11 12 0 +17 13 14 0 +18 15 16 0 +19 17 18 0 +20 19 20 0 +21 21 22 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections124.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections124.txt new file mode 100644 index 00000000..afdeb945 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections124.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 28 0 +1 0 29 0 +2 0 10 0 +3 0 15 0 +4 0 17 0 +5 0 23 0 +6 0 6 0 +7 1 2 1 +8 1 13 0 +9 1 31 0 +10 1 19 0 +11 1 21 0 +12 1 25 0 +13 1 8 0 +14 27 1 0 +15 2 3 0 +16 2 32 0 +17 3 4 0 +18 11 5 0 +19 6 7 1 +20 8 9 1 +21 10 11 1 +22 11 12 0 +23 13 14 1 +24 15 16 0 +25 17 18 0 +26 19 20 0 +27 21 22 0 +28 23 24 0 +29 25 26 0 +30 28 27 1 +31 29 30 0 +32 31 30 0 +33 32 33 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections125.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections125.txt new file mode 100644 index 00000000..db3a112c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections125.txt @@ -0,0 +1,57 @@ +switch_id node1 node2 open +0 0 28 0 +1 0 34 1 +2 0 30 1 +3 0 20 1 +4 0 32 0 +5 0 8 0 +6 0 1 0 +7 0 14 1 +8 0 22 0 +9 0 36 0 +10 13 0 0 +11 1 26 1 +12 1 18 1 +13 1 16 0 +14 1 4 1 +15 1 38 0 +16 1 6 1 +17 1 24 1 +18 11 1 0 +19 2 28 1 +20 2 34 0 +21 2 30 0 +22 2 20 0 +23 2 32 1 +24 2 8 1 +25 2 3 1 +26 2 14 0 +27 2 22 1 +28 2 12 0 +29 2 36 1 +30 3 26 0 +31 3 18 0 +32 3 16 1 +33 3 4 0 +34 3 38 1 +35 3 10 0 +36 3 6 0 +37 3 24 0 +38 4 5 0 +39 6 7 0 +40 8 9 0 +41 10 11 1 +42 12 13 0 +43 14 15 0 +44 16 17 0 +45 18 19 0 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 26 27 0 +50 28 29 0 +51 30 31 0 +52 32 33 0 +53 34 35 0 +54 36 37 0 +55 38 39 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections126.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections126.txt new file mode 100644 index 00000000..bf412eea --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections126.txt @@ -0,0 +1,61 @@ +switch_id node1 node2 open +0 0 18 1 +1 0 22 0 +2 0 38 1 +3 0 42 0 +4 0 28 1 +5 0 14 1 +6 0 6 0 +7 0 33 0 +8 0 26 1 +9 13 0 0 +10 1 16 1 +11 1 8 0 +12 1 30 1 +13 1 4 0 +14 1 40 0 +15 1 20 1 +16 1 36 1 +17 1 24 1 +18 32 1 0 +19 11 1 0 +20 2 12 0 +21 2 18 0 +22 2 22 1 +23 2 38 0 +24 2 42 1 +25 2 28 0 +26 2 14 0 +27 2 6 1 +28 2 35 0 +29 2 26 0 +30 3 16 0 +31 3 8 1 +32 3 30 0 +33 3 4 1 +34 3 40 1 +35 3 20 0 +36 3 36 0 +37 3 24 0 +38 3 10 0 +39 34 3 0 +40 4 5 0 +41 6 7 0 +42 8 9 0 +43 10 11 1 +44 12 13 1 +45 14 15 0 +46 16 17 0 +47 18 19 0 +48 20 21 0 +49 22 23 0 +50 24 25 0 +51 26 27 0 +52 28 29 0 +53 30 31 0 +54 33 32 0 +55 35 34 0 +56 36 37 0 +57 38 39 0 +58 40 41 0 +59 42 43 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections127.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections127.txt new file mode 100644 index 00000000..e3e64c02 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections127.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 18 0 +2 0 6 0 +3 1 2 1 +4 1 24 0 +5 1 12 0 +6 2 3 0 +7 2 22 0 +8 2 10 0 +9 3 4 1 +10 3 20 0 +11 3 8 0 +12 4 5 0 +13 4 26 0 +14 4 14 0 +15 5 28 0 +16 5 16 0 +17 6 7 0 +18 8 9 1 +19 10 11 0 +20 12 13 0 +21 14 15 0 +22 16 17 0 +23 18 19 0 +24 20 21 0 +25 22 23 0 +26 24 25 0 +27 26 27 0 +28 28 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections128.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections128.txt new file mode 100644 index 00000000..67d94f3a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections128.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 15 0 +1 0 1 1 +2 0 3 0 +3 0 5 0 +4 1 7 0 +5 1 9 0 +6 1 17 0 +7 1 2 1 +8 2 11 0 +9 2 13 0 +10 2 19 0 +11 3 4 0 +12 5 6 0 +13 7 8 0 +14 9 10 0 +15 11 12 0 +16 13 14 0 +17 15 16 0 +18 17 18 0 +19 19 20 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections129.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections129.txt new file mode 100644 index 00000000..d103dac2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections129.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 17 0 +2 0 9 0 +3 1 20 0 +4 1 8 0 +5 1 12 0 +6 2 13 0 +7 2 3 1 +8 5 2 0 +9 3 15 0 +10 3 4 1 +11 3 21 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 12 11 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 20 19 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections13.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections13.txt new file mode 100644 index 00000000..3016382d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections13.txt @@ -0,0 +1,55 @@ +switch_id node1 node2 open +0 0 18 1 +1 1 19 1 +2 1 20 0 +3 0 21 0 +4 0 22 1 +5 1 23 1 +6 1 22 0 +7 0 24 0 +8 1 25 0 +9 1 18 0 +10 0 26 0 +11 1 21 1 +12 1 27 1 +13 0 28 1 +14 0 23 0 +15 0 29 1 +16 0 30 0 +17 0 31 1 +18 1 26 1 +19 0 32 1 +20 0 33 0 +21 0 27 0 +22 1 29 0 +23 1 34 1 +24 1 28 0 +25 1 31 0 +26 1 32 0 +27 35 0 0 +28 0 34 0 +29 1 30 1 +30 0 19 0 +31 1 33 1 +32 1 24 1 +33 0 20 1 +34 21 6 0 +35 32 11 0 +36 27 9 0 +37 18 38 0 +38 20 13 0 +39 31 5 0 +40 26 36 0 +41 28 7 0 +42 22 10 0 +43 19 12 0 +44 29 17 0 +45 25 35 0 +46 30 15 0 +47 23 16 0 +48 34 14 0 +49 33 8 0 +50 24 42 0 +51 4 36 0 +52 2 38 0 +53 3 42 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections130.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections130.txt new file mode 100644 index 00000000..81eb3212 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections130.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 1 0 +2 0 3 0 +3 0 14 0 +4 1 2 1 +5 1 6 0 +6 1 12 0 +7 2 20 0 +8 2 9 0 +9 2 16 0 +10 3 5 0 +11 5 4 0 +12 6 8 0 +13 8 7 0 +14 9 11 0 +15 11 10 0 +16 12 13 0 +17 14 15 0 +18 16 17 1 +19 18 19 0 +20 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections131.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections131.txt new file mode 100644 index 00000000..1772777f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections131.txt @@ -0,0 +1,49 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 6 0 +2 0 14 0 +3 0 16 1 +4 0 34 1 +5 0 18 1 +6 0 29 0 +7 11 0 0 +8 1 12 0 +9 1 20 1 +10 1 22 0 +11 1 24 1 +12 1 26 1 +13 1 32 1 +14 9 1 0 +15 28 1 0 +16 2 10 0 +17 2 4 1 +18 2 6 1 +19 2 14 1 +20 2 16 0 +21 2 34 0 +22 2 18 0 +23 2 31 0 +24 3 8 0 +25 3 12 1 +26 3 20 0 +27 3 22 1 +28 3 24 0 +29 3 26 0 +30 3 32 0 +31 30 3 0 +32 4 5 0 +33 6 7 0 +34 8 9 0 +35 10 11 1 +36 12 13 0 +37 14 15 0 +38 16 17 0 +39 18 19 0 +40 20 21 0 +41 22 23 0 +42 24 25 0 +43 26 27 0 +44 29 28 1 +45 31 30 1 +46 32 33 0 +47 34 35 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections132.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections132.txt new file mode 100644 index 00000000..bde9b0bf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections132.txt @@ -0,0 +1,48 @@ +switch_id node1 node2 open +0 0 12 1 +1 0 24 0 +2 0 10 0 +3 0 1 0 +4 0 14 0 +5 19 0 0 +6 1 31 0 +7 2 22 0 +8 2 26 0 +9 2 34 0 +10 2 6 0 +11 2 8 1 +12 2 28 1 +13 2 16 0 +14 30 2 0 +15 21 2 0 +16 3 18 0 +17 3 12 0 +18 3 24 1 +19 3 10 1 +20 3 4 0 +21 3 14 1 +22 4 33 0 +23 5 22 1 +24 5 26 1 +25 5 34 1 +26 5 6 1 +27 5 8 0 +28 5 20 0 +29 5 28 0 +30 5 16 1 +31 32 5 0 +32 6 7 0 +33 8 9 0 +34 10 11 1 +35 12 13 0 +36 14 15 1 +37 16 17 1 +38 18 19 1 +39 20 21 1 +40 22 23 0 +41 24 25 0 +42 26 27 0 +43 28 29 0 +44 31 30 0 +45 33 32 0 +46 34 35 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections133.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections133.txt new file mode 100644 index 00000000..ccbff0f9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections133.txt @@ -0,0 +1,40 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 14 0 +2 0 6 1 +3 0 16 1 +4 0 18 0 +5 0 20 1 +6 0 25 0 +7 11 0 0 +8 1 8 1 +9 1 28 0 +10 1 22 1 +11 24 1 0 +12 13 1 0 +13 2 10 0 +14 2 4 1 +15 2 14 1 +16 2 6 0 +17 2 16 0 +18 2 18 1 +19 2 20 0 +20 2 27 0 +21 3 8 0 +22 3 28 1 +23 3 12 0 +24 3 22 0 +25 26 3 0 +26 4 5 0 +27 6 7 0 +28 8 9 0 +29 10 11 1 +30 12 13 1 +31 14 15 0 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 23 0 +36 25 24 0 +37 27 26 0 +38 28 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections134.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections134.txt new file mode 100644 index 00000000..f86e5390 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections134.txt @@ -0,0 +1,46 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 41 0 +2 0 22 0 +3 1 2 1 +4 1 39 0 +5 1 19 0 +6 2 3 1 +7 2 37 0 +8 2 16 0 +9 3 4 1 +10 3 35 0 +11 3 13 0 +12 4 5 1 +13 4 33 0 +14 4 10 0 +15 5 31 0 +16 5 7 0 +17 8 6 1 +18 7 8 0 +19 8 24 0 +20 11 9 0 +21 10 11 0 +22 11 25 1 +23 14 12 0 +24 13 14 0 +25 14 26 1 +26 17 15 1 +27 16 17 1 +28 17 27 0 +29 20 18 0 +30 19 20 0 +31 20 28 1 +32 23 21 1 +33 22 23 1 +34 23 29 0 +35 31 30 0 +36 33 32 0 +37 35 34 0 +38 37 36 0 +39 39 38 0 +40 41 40 0 +41 42 43 0 +42 43 0 0 +43 44 45 0 +44 45 2 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections135.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections135.txt new file mode 100644 index 00000000..b3305a7d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections135.txt @@ -0,0 +1,29 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 24 0 +2 1 20 0 +3 7 1 0 +4 2 3 0 +5 2 10 0 +6 2 8 0 +7 3 22 0 +8 4 12 0 +9 4 5 0 +10 4 18 0 +11 9 4 0 +12 5 16 0 +13 5 6 0 +14 6 7 1 +15 8 9 0 +16 10 11 0 +17 12 13 0 +18 14 13 0 +19 15 13 1 +20 16 28 0 +21 18 19 0 +22 20 21 0 +23 22 23 0 +24 24 25 0 +25 26 13 1 +26 17 28 0 +27 27 28 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections136.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections136.txt new file mode 100644 index 00000000..d84cc48f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections136.txt @@ -0,0 +1,34 @@ +switch_id node1 node2 open +0 0 23 0 +1 0 6 1 +2 0 8 0 +3 0 4 1 +4 0 13 1 +5 0 17 0 +6 0 21 0 +7 3 0 0 +8 1 2 0 +9 1 23 1 +10 1 6 0 +11 1 8 1 +12 1 4 0 +13 1 13 0 +14 1 17 1 +15 1 21 1 +16 2 3 1 +17 4 5 0 +18 6 7 0 +19 8 9 0 +20 10 9 0 +21 11 9 1 +22 12 9 0 +23 13 14 0 +24 15 14 0 +25 16 14 0 +26 17 18 0 +27 19 18 0 +28 20 18 0 +29 21 22 0 +30 23 24 0 +31 25 9 1 +32 26 14 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections137.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections137.txt new file mode 100644 index 00000000..c6f2293c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections137.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 5 0 +1 0 18 0 +2 0 1 1 +3 1 2 0 +4 1 7 0 +5 1 16 0 +6 2 3 0 +7 2 12 0 +8 3 4 0 +9 5 6 0 +10 7 8 0 +11 9 8 0 +12 10 8 1 +13 11 8 0 +14 12 13 0 +15 14 13 0 +16 15 13 0 +17 16 17 0 +18 18 19 0 +19 20 8 1 +20 21 13 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections138.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections138.txt new file mode 100644 index 00000000..6671a29c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections138.txt @@ -0,0 +1,38 @@ +switch_id node1 node2 open +0 0 8 1 +1 0 16 1 +2 0 20 0 +3 0 1 0 +4 0 24 1 +5 0 12 1 +6 1 22 1 +7 1 14 0 +8 1 10 0 +9 1 4 1 +10 7 1 0 +11 2 8 0 +12 2 16 0 +13 2 20 1 +14 2 3 1 +15 2 24 0 +16 2 12 0 +17 3 22 0 +18 3 14 1 +19 3 10 1 +20 3 6 0 +21 3 4 0 +22 4 5 0 +23 6 7 0 +24 8 9 0 +25 10 11 0 +26 12 13 0 +27 14 15 0 +28 16 17 0 +29 18 17 0 +30 19 17 1 +31 20 28 0 +32 22 23 0 +33 24 25 0 +34 26 17 1 +35 21 28 0 +36 27 28 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections139.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections139.txt new file mode 100644 index 00000000..b281c8b3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections139.txt @@ -0,0 +1,50 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 10 0 +2 0 26 0 +3 0 34 1 +4 0 32 1 +5 0 30 0 +6 0 20 1 +7 0 1 0 +8 0 8 1 +9 15 0 0 +10 1 28 1 +11 1 22 1 +12 1 16 1 +13 1 6 0 +14 1 18 0 +15 13 1 0 +16 2 4 0 +17 2 10 1 +18 2 26 1 +19 2 34 0 +20 2 32 0 +21 2 30 1 +22 2 20 0 +23 2 3 1 +24 2 8 0 +25 2 14 0 +26 3 28 0 +27 3 22 0 +28 3 16 0 +29 3 12 0 +30 3 6 1 +31 3 18 1 +32 4 5 0 +33 6 7 0 +34 8 9 0 +35 10 11 0 +36 12 13 0 +37 14 15 1 +38 16 17 0 +39 18 19 0 +40 20 21 0 +41 22 23 0 +42 24 23 0 +43 25 23 1 +44 26 27 0 +45 28 29 0 +46 30 31 0 +47 32 33 0 +48 34 35 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections14.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections14.txt new file mode 100644 index 00000000..67e563ff --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections14.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 15 0 +2 0 16 1 +3 0 17 0 +4 1 16 0 +5 1 18 0 +6 0 19 1 +7 0 20 1 +8 1 19 0 +9 0 21 0 +10 0 22 1 +11 1 23 1 +12 0 18 1 +13 1 21 1 +14 0 23 1 +15 24 0 0 +16 0 25 1 +17 1 14 1 +18 1 20 1 +19 1 25 0 +20 1 15 1 +21 0 26 1 +22 1 17 1 +23 1 26 0 +24 1 27 0 +25 1 22 0 +26 25 4 0 +27 16 9 0 +28 23 5 1 +29 21 12 0 +30 22 11 0 +31 15 13 0 +32 14 10 0 +33 18 6 0 +34 17 28 0 +35 19 31 0 +36 27 24 0 +37 26 8 0 +38 20 7 1 +39 3 28 0 +40 2 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections140.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections140.txt new file mode 100644 index 00000000..12ac2727 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections140.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 15 0 +1 0 1 1 +2 0 3 0 +3 0 5 0 +4 1 7 0 +5 1 9 0 +6 1 17 0 +7 1 2 1 +8 2 11 0 +9 2 13 0 +10 2 19 0 +11 3 4 1 +12 5 6 0 +13 7 8 0 +14 9 10 0 +15 11 12 0 +16 13 14 0 +17 15 16 0 +18 17 18 0 +19 19 20 0 +20 21 22 0 +21 22 0 0 +22 23 24 0 +23 24 1 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections141.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections141.txt new file mode 100644 index 00000000..b85d6bff --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections141.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 18 1 +2 0 28 1 +3 0 30 1 +4 0 1 0 +5 1 8 0 +6 1 10 1 +7 1 12 0 +8 1 14 1 +9 1 24 0 +10 1 26 1 +11 1 16 0 +12 1 20 0 +13 1 22 1 +14 7 1 0 +15 2 4 0 +16 2 18 0 +17 2 28 1 +18 2 30 0 +19 2 3 1 +20 3 8 1 +21 3 10 0 +22 3 6 0 +23 3 12 1 +24 3 14 0 +25 3 24 1 +26 3 26 0 +27 3 16 1 +28 3 22 0 +29 3 20 1 +30 4 5 0 +31 6 7 0 +32 8 9 0 +33 10 11 0 +34 12 13 0 +35 14 15 0 +36 16 17 0 +37 18 19 0 +38 20 21 0 +39 22 23 0 +40 24 25 0 +41 26 27 0 +42 28 29 1 +43 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections142.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections142.txt new file mode 100644 index 00000000..c6012ec9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections142.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 6 0 +2 0 8 0 +3 0 10 0 +4 0 16 0 +5 0 18 0 +6 0 12 0 +7 0 14 0 +8 1 2 0 +9 1 4 0 +10 1 20 0 +11 2 3 0 +12 4 5 1 +13 6 7 0 +14 8 9 0 +15 10 11 0 +16 12 13 0 +17 14 15 0 +18 16 17 0 +19 18 19 0 +20 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections143.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections143.txt new file mode 100644 index 00000000..1ac7bcbc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections143.txt @@ -0,0 +1,44 @@ +switch_id node1 node2 open +0 0 30 1 +1 0 1 0 +2 0 14 0 +3 0 18 1 +4 13 0 0 +5 1 22 0 +6 1 2 0 +7 2 24 0 +8 2 3 1 +9 3 4 0 +10 3 32 1 +11 4 28 0 +12 4 5 0 +13 5 26 1 +14 5 16 0 +15 5 20 1 +16 6 12 0 +17 6 30 0 +18 6 7 0 +19 6 14 1 +20 6 18 0 +21 7 22 1 +22 7 8 0 +23 8 24 1 +24 8 9 1 +25 9 10 0 +26 9 32 0 +27 10 28 1 +28 10 11 0 +29 11 26 0 +30 11 16 1 +31 11 20 0 +32 12 13 0 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 20 21 0 +37 22 23 0 +38 24 25 0 +39 26 27 0 +40 28 29 0 +41 30 31 0 +42 32 33 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections144.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections144.txt new file mode 100644 index 00000000..8202e6de --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections144.txt @@ -0,0 +1,80 @@ +switch_id node1 node2 open +0 0 34 1 +1 0 12 0 +2 0 36 0 +3 0 28 1 +4 0 18 1 +5 0 20 1 +6 0 50 1 +7 0 14 1 +8 0 42 1 +9 0 25 0 +10 0 16 0 +11 0 46 1 +12 0 52 0 +13 9 0 0 +14 1 48 1 +15 1 32 1 +16 1 44 1 +17 1 38 0 +18 1 6 0 +19 1 30 0 +20 1 22 1 +21 1 40 1 +22 1 4 0 +23 24 1 0 +24 11 1 0 +25 2 8 0 +26 2 34 0 +27 2 12 1 +28 2 36 1 +29 2 28 0 +30 2 18 0 +31 2 20 0 +32 2 50 0 +33 2 14 0 +34 2 42 0 +35 2 27 0 +36 2 16 1 +37 2 46 0 +38 2 52 1 +39 3 48 0 +40 3 32 0 +41 3 44 0 +42 3 38 1 +43 3 6 1 +44 3 30 1 +45 3 22 0 +46 3 40 0 +47 3 4 1 +48 3 10 0 +49 26 3 0 +50 4 5 0 +51 6 7 0 +52 8 9 1 +53 10 11 1 +54 12 13 0 +55 14 15 0 +56 16 17 0 +57 18 19 0 +58 20 21 0 +59 22 23 0 +60 25 24 0 +61 27 26 0 +62 28 55 0 +63 30 57 0 +64 32 33 0 +65 34 35 0 +66 36 37 0 +67 38 39 0 +68 40 41 0 +69 42 43 0 +70 44 45 0 +71 46 47 0 +72 48 49 0 +73 50 51 0 +74 52 53 0 +75 29 55 0 +76 54 55 1 +77 31 57 0 +78 56 57 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections145.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections145.txt new file mode 100644 index 00000000..df309453 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections145.txt @@ -0,0 +1,54 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 12 1 +2 0 14 1 +3 0 16 0 +4 0 20 0 +5 0 1 0 +6 0 26 0 +7 0 34 0 +8 0 36 1 +9 0 28 1 +10 0 32 1 +11 1 6 1 +12 1 8 0 +13 1 18 0 +14 1 22 1 +15 1 24 1 +16 1 30 0 +17 11 1 0 +18 2 4 1 +19 2 14 0 +20 2 16 1 +21 2 20 1 +22 2 3 0 +23 2 26 1 +24 2 28 0 +25 2 34 1 +26 2 36 0 +27 2 12 0 +28 2 32 0 +29 3 18 1 +30 3 22 0 +31 3 24 0 +32 3 8 1 +33 3 6 0 +34 3 30 1 +35 3 10 0 +36 4 5 0 +37 6 7 0 +38 8 9 0 +39 10 11 1 +40 12 13 0 +41 14 15 0 +42 16 17 0 +43 18 19 0 +44 20 21 0 +45 22 23 0 +46 24 25 0 +47 26 27 0 +48 28 29 0 +49 30 31 0 +50 32 33 0 +51 34 35 0 +52 36 37 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections146.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections146.txt new file mode 100644 index 00000000..4ac61f9e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections146.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 2 0 +2 0 4 0 +3 0 6 0 +4 0 12 0 +5 0 14 0 +6 1 16 0 +7 1 8 0 +8 1 10 0 +9 2 3 0 +10 4 5 0 +11 6 7 0 +12 8 9 0 +13 10 11 0 +14 12 13 0 +15 14 15 0 +16 16 17 0 +17 18 19 0 +18 19 0 0 +19 20 21 0 +20 21 1 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections147.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections147.txt new file mode 100644 index 00000000..9e1ee894 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections147.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 26 0 +1 0 10 0 +2 0 12 1 +3 0 22 0 +4 0 1 0 +5 0 6 0 +6 0 28 1 +7 9 0 0 +8 1 16 0 +9 1 20 1 +10 1 14 0 +11 1 4 1 +12 1 18 1 +13 1 24 1 +14 2 8 0 +15 2 26 1 +16 2 10 1 +17 2 12 0 +18 2 22 1 +19 2 3 0 +20 2 6 1 +21 2 28 0 +22 3 16 1 +23 3 20 0 +24 3 14 1 +25 3 4 0 +26 3 18 0 +27 3 24 0 +28 4 5 1 +29 6 7 1 +30 8 9 1 +31 10 11 0 +32 12 13 0 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 20 21 0 +37 22 23 0 +38 24 25 0 +39 26 27 0 +40 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections148.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections148.txt new file mode 100644 index 00000000..87f9813b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections148.txt @@ -0,0 +1,34 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 8 0 +2 0 12 0 +3 1 2 0 +4 2 18 0 +5 2 26 1 +6 2 28 0 +7 3 4 0 +8 3 10 0 +9 4 5 0 +10 15 4 0 +11 5 16 0 +12 5 26 0 +13 5 28 1 +14 6 7 1 +15 6 24 0 +16 13 6 0 +17 7 20 0 +18 7 14 0 +19 8 9 0 +20 10 11 0 +21 12 13 0 +22 14 15 0 +23 16 17 0 +24 18 19 0 +25 20 21 0 +26 22 21 0 +27 23 21 1 +28 24 25 0 +29 26 27 0 +30 28 29 0 +31 31 21 1 +32 32 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections149.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections149.txt new file mode 100644 index 00000000..7f00697d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections149.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 16 0 +2 0 20 1 +3 0 12 1 +4 0 18 0 +5 0 1 0 +6 9 0 0 +7 1 28 0 +8 1 22 1 +9 1 26 1 +10 1 6 0 +11 1 24 0 +12 1 4 1 +13 11 1 0 +14 2 14 1 +15 2 16 1 +16 2 20 0 +17 2 12 0 +18 2 18 1 +19 2 3 0 +20 2 8 0 +21 3 28 1 +22 3 22 0 +23 3 26 0 +24 3 6 1 +25 3 10 0 +26 3 24 1 +27 3 4 0 +28 4 5 0 +29 6 7 0 +30 8 9 1 +31 10 11 1 +32 12 13 0 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 20 21 0 +37 22 23 0 +38 24 25 0 +39 26 27 0 +40 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections15.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections15.txt new file mode 100644 index 00000000..cb91ac69 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections15.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 10 0 +1 1 11 0 +2 1 12 0 +3 0 13 0 +4 0 14 1 +5 1 10 1 +6 20 21 1 +7 1 15 0 +8 1 14 1 +9 0 11 1 +10 1 13 1 +11 16 0 0 +12 0 12 1 +13 0 17 0 +14 0 18 1 +15 1 19 1 +16 1 17 1 +17 0 19 0 +18 1 18 0 +19 17 20 0 +20 14 3 1 +21 13 7 0 +22 18 5 0 +23 19 21 0 +24 10 2 0 +25 12 8 0 +26 15 16 0 +27 11 4 0 +28 21 9 0 +29 20 6 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections150.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections150.txt new file mode 100644 index 00000000..fec01564 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections150.txt @@ -0,0 +1,58 @@ +switch_id node1 node2 open +0 0 24 1 +1 0 8 0 +2 0 38 1 +3 0 12 0 +4 0 6 0 +5 0 32 1 +6 0 27 0 +7 0 34 0 +8 0 20 1 +9 15 0 0 +10 1 4 1 +11 1 30 0 +12 1 18 0 +13 1 40 0 +14 1 22 0 +15 1 10 1 +16 1 36 1 +17 26 1 0 +18 17 1 0 +19 2 14 0 +20 2 24 0 +21 2 8 1 +22 2 38 0 +23 2 12 1 +24 2 6 1 +25 2 32 0 +26 2 29 0 +27 2 34 1 +28 2 20 0 +29 3 4 0 +30 3 30 1 +31 3 18 1 +32 3 40 1 +33 3 22 1 +34 3 16 0 +35 3 10 0 +36 3 36 0 +37 28 3 0 +38 4 5 0 +39 6 7 0 +40 8 9 0 +41 10 11 0 +42 12 13 0 +43 14 15 0 +44 16 17 0 +45 18 19 0 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 27 26 1 +50 29 28 1 +51 30 31 0 +52 32 33 0 +53 34 35 0 +54 36 37 0 +55 38 39 0 +56 40 41 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections151.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections151.txt new file mode 100644 index 00000000..6d0c778b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections151.txt @@ -0,0 +1,41 @@ +switch_id node1 node2 open +0 0 16 1 +1 0 10 0 +2 0 22 0 +3 0 6 1 +4 0 1 0 +5 1 12 0 +6 1 24 1 +7 1 26 1 +8 1 2 0 +9 2 28 1 +10 2 14 0 +11 2 20 0 +12 2 18 0 +13 9 2 0 +14 3 16 0 +15 3 10 1 +16 3 22 1 +17 3 6 0 +18 3 4 0 +19 4 12 1 +20 4 24 0 +21 4 26 0 +22 4 5 0 +23 5 28 0 +24 5 14 1 +25 5 20 1 +26 5 18 1 +27 5 8 0 +28 6 7 0 +29 8 9 1 +30 10 11 0 +31 12 13 0 +32 14 15 0 +33 16 17 0 +34 18 19 0 +35 20 21 0 +36 22 23 0 +37 24 25 0 +38 26 27 0 +39 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections152.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections152.txt new file mode 100644 index 00000000..1632f1d8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections152.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 16 1 +1 0 8 0 +2 0 18 0 +3 0 1 0 +4 0 12 0 +5 1 20 1 +6 1 22 1 +7 1 10 1 +8 1 6 1 +9 1 15 1 +10 2 16 1 +11 2 8 1 +12 2 18 1 +13 2 3 0 +14 2 12 1 +15 13 2 0 +16 3 20 0 +17 3 22 1 +18 3 10 0 +19 3 6 1 +20 3 15 0 +21 14 3 1 +22 4 16 0 +23 4 8 1 +24 4 18 1 +25 4 5 0 +26 13 4 1 +27 5 20 1 +28 5 22 0 +29 5 10 1 +30 5 6 0 +31 14 5 0 +32 6 7 0 +33 8 9 0 +34 10 11 0 +35 12 13 1 +36 15 14 0 +37 16 17 0 +38 18 19 0 +39 20 21 0 +40 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections153.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections153.txt new file mode 100644 index 00000000..8af5e0bf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections153.txt @@ -0,0 +1,26 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 4 0 +2 0 12 0 +3 1 2 1 +4 1 6 0 +5 1 14 0 +6 2 3 1 +7 2 8 0 +8 2 16 0 +9 3 10 0 +10 3 18 0 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 0 +15 12 13 0 +16 14 15 0 +17 16 17 0 +18 18 19 0 +19 20 21 0 +20 21 0 0 +21 22 23 0 +22 23 1 0 +23 24 25 0 +24 25 3 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections154.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections154.txt new file mode 100644 index 00000000..db2039ac --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections154.txt @@ -0,0 +1,87 @@ +switch_id node1 node2 open +0 0 47 0 +1 0 57 1 +2 0 8 1 +3 0 59 0 +4 0 22 0 +5 0 49 0 +6 0 16 0 +7 0 31 0 +8 0 6 1 +9 0 51 1 +10 0 61 1 +11 0 10 1 +12 13 0 0 +13 1 53 0 +14 1 28 0 +15 1 20 1 +16 1 26 0 +17 1 24 1 +18 1 18 1 +19 1 55 1 +20 1 34 1 +21 1 39 0 +22 1 43 1 +23 1 4 0 +24 30 1 0 +25 15 1 0 +26 2 12 0 +27 2 47 1 +28 2 57 0 +29 2 8 0 +30 2 59 1 +31 2 22 1 +32 2 49 1 +33 2 16 1 +34 2 33 0 +35 2 6 0 +36 2 51 0 +37 2 61 0 +38 2 10 1 +39 3 53 1 +40 3 28 1 +41 3 20 0 +42 3 26 1 +43 3 24 0 +44 3 18 0 +45 3 55 0 +46 3 14 0 +47 3 34 0 +48 3 39 1 +49 3 43 0 +50 3 4 1 +51 32 3 0 +52 4 5 0 +53 6 7 0 +54 8 9 0 +55 10 11 1 +56 27 11 1 +57 12 13 0 +58 14 15 0 +59 16 17 0 +60 18 19 0 +61 20 21 0 +62 22 23 0 +63 24 25 0 +64 26 27 0 +65 28 29 0 +66 31 30 1 +67 33 32 1 +68 34 35 0 +69 36 35 0 +70 37 35 1 +71 38 35 0 +72 39 40 0 +73 41 40 0 +74 42 40 0 +75 43 44 0 +76 45 44 0 +77 46 44 0 +78 47 48 0 +79 49 50 1 +80 51 52 0 +81 53 54 0 +82 55 56 0 +83 57 58 0 +84 59 60 0 +85 61 62 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections155.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections155.txt new file mode 100644 index 00000000..fa7ee78e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections155.txt @@ -0,0 +1,23 @@ +switch_id node1 node2 open +0 0 9 0 +1 0 3 0 +2 0 1 1 +3 1 5 0 +4 1 21 0 +5 1 2 1 +6 2 14 0 +7 2 19 0 +8 3 4 0 +9 5 6 0 +10 7 6 0 +11 8 6 1 +12 9 10 0 +13 11 10 0 +14 12 10 1 +15 13 10 1 +16 14 15 0 +17 16 15 0 +18 17 15 1 +19 18 15 0 +20 19 20 0 +21 21 22 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections156.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections156.txt new file mode 100644 index 00000000..2bcd27bd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections156.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 4 1 +2 0 24 1 +3 0 8 1 +4 0 12 0 +5 0 18 0 +6 0 14 0 +7 0 20 0 +8 0 16 1 +9 0 26 1 +10 0 30 0 +11 0 28 1 +12 0 22 0 +13 3 0 0 +14 1 6 1 +15 1 4 0 +16 1 24 0 +17 1 8 0 +18 1 12 1 +19 1 18 1 +20 1 14 1 +21 1 20 1 +22 1 16 0 +23 1 2 0 +24 1 26 0 +25 1 30 1 +26 1 28 0 +27 1 22 1 +28 2 3 1 +29 4 5 0 +30 6 7 0 +31 8 9 0 +32 10 9 0 +33 11 9 1 +34 12 13 0 +35 14 15 0 +36 16 17 0 +37 18 19 0 +38 20 21 0 +39 22 23 0 +40 24 25 0 +41 26 27 0 +42 28 29 0 +43 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections157.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections157.txt new file mode 100644 index 00000000..f52962a2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections157.txt @@ -0,0 +1,24 @@ +switch_id node1 node2 open +0 0 20 0 +1 0 8 1 +2 0 1 0 +3 1 10 0 +4 1 14 0 +5 2 16 0 +6 2 8 0 +7 2 3 0 +8 3 10 1 +9 3 6 0 +10 4 18 0 +11 4 5 0 +12 9 4 0 +13 5 12 0 +14 11 5 0 +15 6 7 0 +16 8 9 0 +17 10 11 1 +18 12 13 0 +19 14 15 0 +20 16 17 0 +21 18 19 0 +22 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections158.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections158.txt new file mode 100644 index 00000000..073bc186 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections158.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 10 0 +1 0 1 0 +2 1 2 0 +3 1 20 0 +4 2 7 0 +5 2 3 1 +6 3 4 0 +7 3 18 0 +8 4 13 0 +9 4 5 0 +10 5 6 0 +11 5 16 0 +12 6 24 0 +13 7 8 0 +14 8 9 0 +15 10 11 0 +16 11 12 0 +17 13 14 0 +18 14 15 0 +19 16 28 0 +20 18 30 0 +21 20 21 0 +22 22 21 0 +23 23 21 1 +24 24 25 1 +25 25 26 0 +26 17 28 0 +27 27 28 1 +28 19 30 0 +29 29 30 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections159.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections159.txt new file mode 100644 index 00000000..ac824914 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections159.txt @@ -0,0 +1,51 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 14 0 +2 0 22 0 +3 0 32 0 +4 0 20 0 +5 0 4 1 +6 0 26 1 +7 0 1 0 +8 0 6 1 +9 9 0 0 +10 1 10 0 +11 1 18 1 +12 1 16 1 +13 1 28 1 +14 1 30 0 +15 2 8 0 +16 2 12 1 +17 2 14 1 +18 2 22 1 +19 2 32 1 +20 2 20 1 +21 2 4 0 +22 2 26 0 +23 2 3 0 +24 2 6 0 +25 3 10 1 +26 3 18 0 +27 3 16 0 +28 3 28 0 +29 3 30 1 +30 4 5 0 +31 6 7 0 +32 8 9 1 +33 10 11 0 +34 12 13 0 +35 14 15 0 +36 16 17 0 +37 18 35 0 +38 20 37 0 +39 22 23 0 +40 24 23 0 +41 25 23 1 +42 26 27 0 +43 28 29 0 +44 30 31 0 +45 32 33 0 +46 19 35 0 +47 34 35 1 +48 21 37 0 +49 36 37 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections16.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections16.txt new file mode 100644 index 00000000..fd3cf5d6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections16.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 18 17 0 +1 2 3 1 +2 19 15 0 +3 4 5 1 +4 20 13 0 +5 0 1 1 +6 21 16 0 +7 2 10 1 +8 5 11 0 +9 1 8 1 +10 3 9 1 +11 4 7 1 +12 0 6 0 +13 2 19 0 +14 4 14 0 +15 3 20 0 +16 0 21 0 +17 5 12 0 +18 1 18 0 +19 1 2 1 +20 3 4 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections160.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections160.txt new file mode 100644 index 00000000..4f853a51 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections160.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 19 0 +2 0 26 0 +3 0 12 0 +4 0 22 1 +5 0 16 0 +6 0 10 1 +7 9 0 0 +8 1 6 1 +9 1 30 1 +10 1 4 1 +11 1 28 1 +12 18 1 0 +13 2 14 1 +14 2 21 0 +15 2 8 0 +16 2 26 1 +17 2 12 1 +18 2 10 0 +19 2 16 1 +20 2 22 0 +21 3 6 0 +22 3 30 0 +23 3 4 0 +24 3 28 0 +25 20 3 0 +26 4 5 0 +27 6 7 0 +28 8 9 0 +29 10 11 0 +30 12 13 0 +31 14 15 0 +32 16 17 0 +33 19 18 0 +34 21 20 1 +35 22 23 0 +36 24 23 0 +37 25 23 1 +38 26 34 0 +39 28 29 0 +40 30 31 0 +41 32 23 1 +42 27 34 0 +43 33 34 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections161.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections161.txt new file mode 100644 index 00000000..117f4be4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections161.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 15 0 +2 0 19 0 +3 1 8 0 +4 1 13 0 +5 1 17 0 +6 2 9 0 +7 2 3 0 +8 5 2 0 +9 3 11 0 +10 3 4 0 +11 3 21 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections162.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections162.txt new file mode 100644 index 00000000..fb56367c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections162.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 9 0 +1 0 5 0 +2 0 1 1 +3 1 11 0 +4 1 7 0 +5 1 2 1 +6 2 13 0 +7 2 3 0 +8 3 4 0 +9 5 6 0 +10 7 8 0 +11 9 18 0 +12 11 20 0 +13 13 14 0 +14 15 14 0 +15 16 14 0 +16 10 18 0 +17 17 18 1 +18 12 20 0 +19 19 20 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections163.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections163.txt new file mode 100644 index 00000000..2f4fd722 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections163.txt @@ -0,0 +1,26 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 1 0 +2 0 15 0 +3 1 13 1 +4 1 16 0 +5 2 3 0 +6 2 22 0 +7 2 15 1 +8 3 10 0 +9 3 13 0 +10 4 5 0 +11 4 20 0 +12 14 4 0 +13 5 8 0 +14 5 18 0 +15 12 5 0 +16 6 7 0 +17 8 9 0 +18 10 11 0 +19 13 12 0 +20 15 14 1 +21 16 17 0 +22 18 19 0 +23 20 21 0 +24 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections164.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections164.txt new file mode 100644 index 00000000..8794a834 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections164.txt @@ -0,0 +1,52 @@ +switch_id node1 node2 open +0 0 30 0 +1 0 1 0 +2 0 8 1 +3 0 12 1 +4 0 14 0 +5 0 26 1 +6 0 28 1 +7 5 0 0 +8 1 32 1 +9 1 18 1 +10 1 20 1 +11 1 10 0 +12 1 16 0 +13 1 22 1 +14 1 24 1 +15 1 6 0 +16 2 4 0 +17 2 30 1 +18 2 3 0 +19 2 8 0 +20 2 12 0 +21 2 14 1 +22 2 26 0 +23 2 28 1 +24 3 32 0 +25 3 18 0 +26 3 20 0 +27 3 10 1 +28 3 16 1 +29 3 22 0 +30 3 24 0 +31 3 6 1 +32 4 5 1 +33 6 7 0 +34 8 9 0 +35 10 11 0 +36 12 13 0 +37 14 15 0 +38 16 17 0 +39 18 19 0 +40 20 21 0 +41 22 35 0 +42 24 37 0 +43 26 27 0 +44 28 29 1 +45 30 31 0 +46 32 33 0 +47 23 35 0 +48 34 35 1 +49 25 37 0 +50 36 37 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections165.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections165.txt new file mode 100644 index 00000000..9765d560 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections165.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 13 0 +2 0 17 0 +3 1 8 0 +4 1 15 0 +5 1 19 0 +6 2 3 0 +7 2 9 0 +8 5 2 0 +9 3 11 0 +10 3 4 0 +11 3 21 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections166.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections166.txt new file mode 100644 index 00000000..b86c46b8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections166.txt @@ -0,0 +1,32 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 18 0 +2 0 28 0 +3 1 2 1 +4 1 15 0 +5 1 26 0 +6 2 3 1 +7 2 12 0 +8 2 24 0 +9 3 21 0 +10 3 30 0 +11 19 4 0 +12 22 5 0 +13 13 6 0 +14 16 7 0 +15 24 8 0 +16 26 9 0 +17 28 10 0 +18 30 11 0 +19 12 13 0 +20 13 14 0 +21 15 16 0 +22 16 17 0 +23 18 19 0 +24 19 20 0 +25 21 22 0 +26 22 23 0 +27 24 25 0 +28 26 27 0 +29 28 29 0 +30 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections167.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections167.txt new file mode 100644 index 00000000..435205e0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections167.txt @@ -0,0 +1,63 @@ +switch_id node1 node2 open +0 0 28 1 +1 0 6 1 +2 0 22 1 +3 0 30 1 +4 0 10 1 +5 0 32 0 +6 0 42 1 +7 0 40 0 +8 0 1 1 +9 0 20 1 +10 0 34 0 +11 0 26 1 +12 0 36 1 +13 15 0 0 +14 1 24 0 +15 1 38 0 +16 1 12 0 +17 1 18 0 +18 1 4 0 +19 1 8 0 +20 17 1 0 +21 2 14 0 +22 2 28 0 +23 2 6 0 +24 2 22 0 +25 2 30 0 +26 2 10 0 +27 2 32 1 +28 2 42 0 +29 2 40 1 +30 2 3 0 +31 2 20 0 +32 2 34 1 +33 2 26 0 +34 2 36 0 +35 3 24 1 +36 3 38 1 +37 3 12 1 +38 3 18 1 +39 3 4 1 +40 3 16 0 +41 3 8 1 +42 4 5 0 +43 6 7 0 +44 8 9 0 +45 10 11 0 +46 12 13 0 +47 14 15 1 +48 16 17 0 +49 18 19 0 +50 20 21 0 +51 22 23 0 +52 24 25 0 +53 26 27 0 +54 28 29 0 +55 30 31 0 +56 32 33 0 +57 34 35 1 +58 36 37 0 +59 38 39 0 +60 40 41 0 +61 42 43 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections168.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections168.txt new file mode 100644 index 00000000..e08c443b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections168.txt @@ -0,0 +1,55 @@ +switch_id node1 node2 open +0 0 36 1 +1 0 18 0 +2 0 8 0 +3 0 10 0 +4 0 38 0 +5 0 28 0 +6 0 22 0 +7 0 30 0 +8 0 24 0 +9 0 21 0 +10 5 0 0 +11 1 34 1 +12 1 32 1 +13 1 14 1 +14 1 16 1 +15 1 12 1 +16 20 1 0 +17 7 1 0 +18 2 4 0 +19 2 8 1 +20 2 10 1 +21 2 18 1 +22 2 22 1 +23 2 24 1 +24 2 28 1 +25 2 30 1 +26 2 36 0 +27 2 38 1 +28 2 3 1 +29 3 6 0 +30 3 14 0 +31 3 16 0 +32 3 32 0 +33 3 34 0 +34 3 12 0 +35 4 5 0 +36 6 7 1 +37 8 9 0 +38 10 11 0 +39 12 13 0 +40 14 15 0 +41 16 17 0 +42 18 19 0 +43 21 20 0 +44 22 23 0 +45 24 25 0 +46 26 25 0 +47 27 25 1 +48 28 29 0 +49 30 31 1 +50 32 33 0 +51 34 35 0 +52 36 37 0 +53 38 39 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections169.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections169.txt new file mode 100644 index 00000000..6bbf78d1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections169.txt @@ -0,0 +1,57 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 14 1 +2 0 42 0 +3 27 0 0 +4 1 2 0 +5 1 18 1 +6 2 37 1 +7 2 32 0 +8 3 16 0 +9 3 20 1 +10 3 4 0 +11 36 3 1 +12 4 12 1 +13 4 22 0 +14 4 28 0 +15 4 5 0 +16 25 4 0 +17 5 30 1 +18 5 34 1 +19 5 40 0 +20 6 14 0 +21 6 26 0 +22 6 42 1 +23 6 7 0 +24 7 8 0 +25 7 18 0 +26 8 39 1 +27 8 32 1 +28 9 16 1 +29 9 20 0 +30 9 10 0 +31 38 9 1 +32 10 12 0 +33 10 22 1 +34 10 24 0 +35 10 28 1 +36 10 11 0 +37 11 30 0 +38 11 34 0 +39 11 40 1 +40 12 13 0 +41 14 15 0 +42 16 17 0 +43 18 19 0 +44 20 21 0 +45 22 23 0 +46 24 25 0 +47 26 27 0 +48 28 29 0 +49 30 31 0 +50 32 33 0 +51 34 35 0 +52 37 36 1 +53 39 38 1 +54 40 41 0 +55 42 43 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections17.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections17.txt new file mode 100644 index 00000000..63058f85 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections17.txt @@ -0,0 +1,58 @@ +switch_id node1 node2 open +0 3 19 0 +1 3 20 1 +2 1 21 0 +3 1 22 0 +4 23 1 0 +5 2 24 1 +6 3 25 0 +7 0 26 1 +8 0 27 0 +9 3 28 0 +10 1 28 1 +11 2 29 1 +12 2 30 0 +13 31 0 0 +14 1 25 1 +15 2 32 1 +16 2 26 0 +17 0 24 0 +18 2 27 1 +19 2 33 0 +20 3 22 1 +21 1 34 1 +22 3 21 1 +23 35 1 0 +24 0 32 0 +25 0 36 1 +26 37 3 0 +27 0 38 1 +28 0 33 1 +29 2 38 0 +30 2 39 0 +31 1 20 1 +32 3 34 0 +33 2 36 0 +34 1 40 0 +35 0 41 0 +36 0 29 0 +37 3 40 1 +38 36 4 0 +39 38 17 0 +40 20 7 1 +41 24 16 0 +42 25 14 0 +43 39 31 0 +44 40 6 0 +45 19 35 0 +46 32 11 0 +47 29 5 0 +48 30 37 0 +49 27 15 0 +50 22 18 0 +51 21 12 0 +52 26 9 0 +53 33 10 0 +54 28 13 0 +55 41 23 0 +56 34 8 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections170.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections170.txt new file mode 100644 index 00000000..03a9e512 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections170.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 20 0 +1 0 1 0 +2 1 6 1 +3 1 18 0 +4 1 2 0 +5 2 8 0 +6 2 14 1 +7 2 10 1 +8 13 2 0 +9 3 20 1 +10 3 4 0 +11 4 6 0 +12 4 18 1 +13 4 5 0 +14 5 12 0 +15 5 8 1 +16 5 14 0 +17 5 10 0 +18 6 7 0 +19 8 9 0 +20 10 11 0 +21 12 13 1 +22 14 15 0 +23 16 15 0 +24 17 15 1 +25 18 24 0 +26 20 21 0 +27 22 15 1 +28 19 24 0 +29 23 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections171.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections171.txt new file mode 100644 index 00000000..c4e4fcce --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections171.txt @@ -0,0 +1,54 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 32 1 +2 0 30 1 +3 0 24 1 +4 0 26 1 +5 0 12 1 +6 0 28 0 +7 0 8 1 +8 0 10 0 +9 0 2 1 +10 0 18 0 +11 0 22 1 +12 0 14 1 +13 0 34 0 +14 0 16 0 +15 5 0 0 +16 1 4 0 +17 1 6 0 +18 1 32 0 +19 1 30 0 +20 1 24 0 +21 1 26 0 +22 1 12 0 +23 1 28 1 +24 1 8 0 +25 1 10 1 +26 1 2 0 +27 1 18 1 +28 1 22 0 +29 1 14 0 +30 1 34 1 +31 1 16 1 +32 2 3 1 +33 4 5 1 +34 6 7 0 +35 8 9 0 +36 10 11 0 +37 12 13 0 +38 14 15 0 +39 16 17 0 +40 18 19 0 +41 20 19 0 +42 21 19 1 +43 22 38 0 +44 24 25 0 +45 26 27 0 +46 28 29 0 +47 30 31 0 +48 32 33 0 +49 34 35 0 +50 36 19 1 +51 23 38 0 +52 37 38 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections172.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections172.txt new file mode 100644 index 00000000..099e001f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections172.txt @@ -0,0 +1,22 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 10 0 +2 0 12 0 +3 1 2 0 +4 1 18 0 +5 2 3 1 +6 2 14 0 +7 3 16 0 +8 3 7 0 +9 3 20 0 +10 11 4 0 +11 8 5 0 +12 8 6 0 +13 7 8 0 +14 11 9 0 +15 10 11 0 +16 12 13 0 +17 14 15 0 +18 16 17 0 +19 18 19 0 +20 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections173.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections173.txt new file mode 100644 index 00000000..3862c571 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections173.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 9 0 +1 0 3 0 +2 0 1 1 +3 1 13 0 +4 1 5 0 +5 1 2 1 +6 2 7 0 +7 2 17 0 +8 3 4 0 +9 5 6 0 +10 7 8 0 +11 9 10 0 +12 11 10 0 +13 12 10 0 +14 13 14 0 +15 15 14 0 +16 16 14 0 +17 17 18 0 +18 19 18 0 +19 20 18 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections174.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections174.txt new file mode 100644 index 00000000..497c9131 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections174.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 18 1 +1 0 1 0 +2 0 14 1 +3 0 8 1 +4 0 4 0 +5 11 0 0 +6 1 16 1 +7 1 6 1 +8 1 20 1 +9 13 1 0 +10 2 10 0 +11 2 14 0 +12 2 18 1 +13 2 3 1 +14 2 8 0 +15 2 4 1 +16 3 20 0 +17 3 16 0 +18 3 6 0 +19 3 12 0 +20 4 5 0 +21 6 7 0 +22 8 9 0 +23 10 11 0 +24 12 13 1 +25 14 15 0 +26 16 17 0 +27 18 19 1 +28 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections175.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections175.txt new file mode 100644 index 00000000..0b9ea92c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections175.txt @@ -0,0 +1,40 @@ +switch_id node1 node2 open +0 0 26 0 +1 0 10 1 +2 0 20 0 +3 0 24 1 +4 0 14 0 +5 0 16 1 +6 0 6 1 +7 0 18 1 +8 0 2 1 +9 0 4 0 +10 0 22 1 +11 0 12 0 +12 9 0 0 +13 1 26 1 +14 1 10 0 +15 1 20 1 +16 1 24 0 +17 1 14 1 +18 1 16 0 +19 1 8 0 +20 1 6 0 +21 1 18 0 +22 1 2 0 +23 1 4 1 +24 1 22 0 +25 1 12 1 +26 2 3 0 +27 4 5 0 +28 6 7 0 +29 8 9 1 +30 10 11 0 +31 12 13 0 +32 14 15 0 +33 16 17 0 +34 18 19 0 +35 20 21 0 +36 22 23 0 +37 24 25 0 +38 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections176.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections176.txt new file mode 100644 index 00000000..7e868eff --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections176.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 12 0 +2 0 20 0 +3 0 1 1 +4 1 22 0 +5 1 4 1 +6 1 6 1 +7 1 2 1 +8 2 18 0 +9 2 24 0 +10 2 16 0 +11 2 3 1 +12 3 26 0 +13 3 8 1 +14 3 10 1 +15 4 5 1 +16 6 7 1 +17 8 9 1 +18 10 11 1 +19 12 13 0 +20 14 15 0 +21 16 17 0 +22 18 19 0 +23 20 21 0 +24 22 23 0 +25 24 25 0 +26 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections177.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections177.txt new file mode 100644 index 00000000..731d805b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections177.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 0 26 1 +1 0 22 1 +2 0 20 1 +3 0 28 1 +4 0 24 1 +5 0 1 1 +6 0 14 0 +7 0 18 0 +8 0 12 1 +9 17 0 0 +10 1 8 1 +11 1 4 0 +12 1 30 0 +13 1 2 1 +14 2 10 1 +15 2 6 0 +16 2 32 0 +17 3 26 1 +18 3 22 1 +19 3 20 0 +20 3 16 0 +21 3 28 1 +22 3 24 1 +23 3 14 1 +24 3 18 1 +25 3 12 0 +26 4 5 1 +27 6 7 1 +28 8 9 1 +29 10 11 1 +30 12 13 0 +31 14 15 0 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 23 1 +36 24 25 1 +37 26 27 1 +38 28 29 1 +39 30 31 1 +40 32 33 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections178.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections178.txt new file mode 100644 index 00000000..61a0f9d8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections178.txt @@ -0,0 +1,29 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 6 1 +2 0 16 0 +3 0 8 0 +4 0 10 1 +5 0 12 1 +6 0 14 1 +7 3 0 0 +8 1 4 0 +9 1 6 0 +10 1 16 1 +11 1 8 1 +12 1 2 0 +13 1 10 0 +14 1 12 0 +15 1 14 0 +16 2 3 1 +17 4 5 0 +18 6 7 0 +19 8 9 0 +20 10 19 0 +21 12 21 0 +22 14 15 0 +23 16 17 0 +24 11 19 0 +25 18 19 1 +26 13 21 0 +27 20 21 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections179.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections179.txt new file mode 100644 index 00000000..83b24094 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections179.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 1 1 +1 1 16 0 +2 1 2 1 +3 2 20 0 +4 2 10 0 +5 2 9 1 +6 3 18 0 +7 3 4 0 +8 8 3 1 +9 4 5 0 +10 4 14 0 +11 5 6 0 +12 6 7 0 +13 9 8 1 +14 10 11 0 +15 12 11 0 +16 13 11 1 +17 14 24 0 +18 16 17 1 +19 18 19 1 +20 20 21 0 +21 22 11 1 +22 15 24 0 +23 23 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections18.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections18.txt new file mode 100644 index 00000000..87f21020 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections18.txt @@ -0,0 +1,42 @@ +switch_id node1 node2 open +0 32 14 0 +1 34 15 0 +2 33 16 0 +3 31 17 0 +4 0 18 0 +5 0 19 0 +6 0 20 0 +7 2 3 0 +8 0 21 0 +9 5 22 0 +10 3 4 0 +11 4 5 0 +12 18 14 0 +13 21 16 0 +14 20 15 0 +15 22 9 0 +16 19 17 0 +17 24 23 1 +18 26 25 0 +19 27 31 1 +20 28 34 1 +21 29 33 0 +22 30 32 1 +23 0 26 0 +24 35 24 0 +25 1 27 0 +26 1 28 0 +27 1 29 0 +28 1 30 0 +29 33 10 0 +30 31 11 0 +31 3 6 0 +32 2 8 0 +33 2 25 0 +34 4 7 0 +35 34 12 0 +36 5 23 0 +37 32 13 0 +38 37 1 0 +39 36 37 0 +40 35 36 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections180.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections180.txt new file mode 100644 index 00000000..260d7270 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections180.txt @@ -0,0 +1,84 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 42 1 +2 21 0 0 +3 1 2 0 +4 1 28 0 +5 1 18 1 +6 2 39 1 +7 2 31 1 +8 2 50 0 +9 2 56 0 +10 2 36 0 +11 3 14 0 +12 3 44 1 +13 3 4 0 +14 38 3 1 +15 30 3 0 +16 4 16 0 +17 4 46 1 +18 4 5 0 +19 5 26 1 +20 5 34 0 +21 5 52 0 +22 5 6 0 +23 6 24 0 +24 6 54 1 +25 6 48 0 +26 23 6 0 +27 33 6 1 +28 7 8 0 +29 7 20 0 +30 7 42 0 +31 8 9 0 +32 8 28 1 +33 8 18 0 +34 9 41 1 +35 9 31 0 +36 9 50 1 +37 9 56 1 +38 9 36 1 +39 10 11 0 +40 10 14 1 +41 10 44 0 +42 40 10 1 +43 11 12 0 +44 11 16 1 +45 11 46 0 +46 30 11 1 +47 12 13 0 +48 12 26 0 +49 12 34 1 +50 12 52 1 +51 13 22 0 +52 13 24 0 +53 13 54 0 +54 13 48 1 +55 33 13 0 +56 14 15 0 +57 16 17 0 +58 18 19 0 +59 20 21 0 +60 22 23 0 +61 24 25 0 +62 26 27 0 +63 28 29 0 +64 29 30 1 +65 31 32 0 +66 32 33 1 +67 34 35 0 +68 36 37 0 +69 39 38 1 +70 41 40 1 +71 42 43 0 +72 44 59 0 +73 46 61 0 +74 48 49 0 +75 50 51 0 +76 52 53 0 +77 54 55 0 +78 56 57 0 +79 45 59 0 +80 58 59 1 +81 47 61 0 +82 60 61 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections181.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections181.txt new file mode 100644 index 00000000..6d7a6e4c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections181.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 15 0 +1 0 4 0 +2 0 1 1 +3 1 17 0 +4 1 7 0 +5 1 2 1 +6 2 19 0 +7 2 10 0 +8 2 3 1 +9 3 21 0 +10 3 13 0 +11 4 5 0 +12 5 6 0 +13 7 8 0 +14 8 9 0 +15 10 11 0 +16 11 12 0 +17 13 14 1 +18 15 16 0 +19 17 18 0 +20 19 20 0 +21 21 22 0 +22 23 24 0 +23 24 0 0 +24 25 26 0 +25 26 1 0 +26 27 28 0 +27 28 2 0 +28 29 30 0 +29 30 3 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections182.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections182.txt new file mode 100644 index 00000000..40090c31 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections182.txt @@ -0,0 +1,26 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 1 1 +2 0 4 0 +3 1 16 0 +4 1 2 1 +5 1 6 0 +6 2 18 0 +7 2 3 1 +8 2 8 0 +9 3 12 0 +10 3 10 0 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 1 +15 12 13 0 +16 14 15 0 +17 16 17 0 +18 18 19 0 +19 20 21 0 +20 21 0 0 +21 22 23 0 +22 23 2 0 +23 24 25 0 +24 25 3 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections183.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections183.txt new file mode 100644 index 00000000..34cad244 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections183.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 8 0 +1 0 15 0 +2 0 5 0 +3 1 2 0 +4 7 1 0 +5 2 3 0 +6 2 11 0 +7 3 4 0 +8 4 9 0 +9 4 13 0 +10 5 6 0 +11 8 7 1 +12 9 18 1 +13 11 20 0 +14 13 14 0 +15 15 16 0 +16 10 18 1 +17 17 18 0 +18 12 20 0 +19 19 20 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections184.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections184.txt new file mode 100644 index 00000000..3dde68cc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections184.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 0 2 0 +1 0 6 1 +2 0 8 1 +3 0 22 0 +4 0 10 1 +5 0 16 1 +6 0 14 0 +7 0 18 0 +8 0 20 1 +9 5 0 0 +10 1 2 1 +11 1 6 0 +12 1 8 0 +13 1 22 1 +14 1 10 0 +15 1 16 0 +16 1 14 1 +17 1 18 1 +18 1 20 0 +19 1 4 0 +20 2 3 0 +21 4 5 1 +22 6 7 0 +23 8 9 0 +24 10 11 0 +25 12 11 0 +26 13 11 1 +27 14 15 0 +28 16 17 0 +29 18 19 0 +30 20 21 0 +31 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections185.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections185.txt new file mode 100644 index 00000000..76f9fb2f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections185.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 26 0 +2 0 11 1 +3 1 22 1 +4 1 2 0 +5 1 16 0 +6 10 1 1 +7 7 1 0 +8 2 20 1 +9 2 8 0 +10 2 24 0 +11 3 13 1 +12 4 22 0 +13 4 5 0 +14 4 6 0 +15 4 16 1 +16 12 4 1 +17 5 8 1 +18 5 20 0 +19 5 24 1 +20 6 7 0 +21 8 9 0 +22 11 10 1 +23 13 12 1 +24 14 29 0 +25 16 17 0 +26 18 17 0 +27 19 17 1 +28 20 21 0 +29 22 23 0 +30 24 25 0 +31 26 27 0 +32 15 29 0 +33 28 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections186.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections186.txt new file mode 100644 index 00000000..14f0c116 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections186.txt @@ -0,0 +1,54 @@ +switch_id node1 node2 open +0 0 19 0 +1 0 12 1 +2 0 16 1 +3 0 26 0 +4 0 28 1 +5 0 8 0 +6 0 1 1 +7 1 14 0 +8 1 6 1 +9 1 22 1 +10 1 24 1 +11 1 10 0 +12 1 21 0 +13 2 19 1 +14 2 12 1 +15 2 16 1 +16 2 26 1 +17 2 28 0 +18 2 8 1 +19 2 3 0 +20 18 2 0 +21 3 14 1 +22 3 6 1 +23 3 22 1 +24 3 24 0 +25 3 10 1 +26 3 21 1 +27 20 3 1 +28 4 12 0 +29 4 16 0 +30 4 26 1 +31 4 28 1 +32 4 8 1 +33 4 5 0 +34 18 4 1 +35 5 14 1 +36 5 6 0 +37 5 22 0 +38 5 24 1 +39 5 10 1 +40 20 5 0 +41 6 7 0 +42 8 9 0 +43 10 11 0 +44 12 13 0 +45 14 15 0 +46 16 17 0 +47 19 18 0 +48 21 20 0 +49 22 23 0 +50 24 25 0 +51 26 27 0 +52 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections187.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections187.txt new file mode 100644 index 00000000..17f8da11 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections187.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 10 0 +1 0 4 1 +2 0 14 0 +3 0 6 0 +4 0 16 1 +5 0 18 1 +6 0 8 1 +7 3 0 0 +8 1 2 0 +9 1 10 1 +10 1 4 0 +11 1 14 1 +12 1 6 1 +13 1 16 0 +14 1 18 0 +15 1 8 0 +16 2 3 1 +17 4 5 0 +18 6 7 0 +19 8 9 0 +20 10 11 0 +21 12 11 0 +22 13 11 0 +23 14 22 0 +24 16 17 0 +25 18 19 0 +26 20 11 1 +27 15 22 0 +28 21 22 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections188.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections188.txt new file mode 100644 index 00000000..6369926f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections188.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 1 0 +1 0 4 0 +2 0 6 1 +3 0 8 1 +4 1 10 0 +5 1 15 0 +6 1 18 0 +7 2 3 0 +8 2 6 0 +9 2 8 0 +10 3 11 0 +11 3 16 0 +12 3 19 0 +13 4 5 0 +14 6 7 0 +15 8 9 0 +16 10 12 1 +17 11 12 0 +18 13 12 0 +19 14 12 1 +20 15 17 0 +21 16 17 1 +22 18 20 0 +23 19 20 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections189.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections189.txt new file mode 100644 index 00000000..57733c92 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections189.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 0 20 1 +1 0 6 0 +2 0 16 1 +3 0 18 0 +4 0 10 0 +5 0 12 1 +6 0 8 1 +7 0 4 0 +8 3 0 0 +9 1 2 0 +10 1 20 0 +11 1 6 1 +12 1 16 0 +13 1 18 1 +14 1 10 1 +15 1 12 0 +16 1 8 0 +17 1 4 1 +18 2 3 1 +19 4 5 0 +20 6 7 0 +21 8 9 0 +22 10 23 0 +23 12 13 0 +24 14 13 0 +25 15 13 1 +26 16 17 0 +27 18 19 0 +28 20 21 0 +29 11 23 0 +30 22 23 1 +31 24 13 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections19.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections19.txt new file mode 100644 index 00000000..17f56fe7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections19.txt @@ -0,0 +1,79 @@ +switch_id node1 node2 open +0 3 20 1 +1 1 21 1 +2 3 22 1 +3 3 23 0 +4 1 22 1 +5 2 24 1 +6 5 21 1 +7 5 25 1 +8 26 2 1 +9 1 0 1 +10 4 27 1 +11 3 28 1 +12 0 29 0 +13 2 29 1 +14 3 30 1 +15 4 31 1 +16 1 32 0 +17 33 2 0 +18 0 34 1 +19 35 4 1 +20 4 36 1 +21 1 23 1 +22 3 21 0 +23 4 37 1 +24 1 30 0 +25 2 34 1 +26 5 32 1 +27 0 31 0 +28 5 38 1 +29 1 25 0 +30 2 37 0 +31 0 27 1 +32 5 23 1 +33 5 20 1 +34 2 36 0 +35 2 31 1 +36 26 4 1 +37 5 22 1 +38 1 20 0 +39 5 39 1 +40 2 27 0 +41 5 4 0 +42 0 37 1 +43 4 29 1 +44 3 32 1 +45 3 25 1 +46 0 36 1 +47 1 28 0 +48 35 2 0 +49 40 3 0 +50 4 34 1 +51 5 30 1 +52 40 5 1 +53 1 39 1 +54 3 39 0 +55 3 38 1 +56 26 0 0 +57 0 24 0 +58 1 38 0 +59 3 41 0 +60 39 7 0 +61 30 17 0 +62 23 18 0 +63 32 19 0 +64 27 10 0 +65 28 40 0 +66 31 12 0 +67 38 8 0 +68 21 14 0 +69 34 11 1 +70 22 9 1 +71 29 15 0 +72 37 13 0 +73 25 16 0 +74 20 26 0 +75 24 35 0 +76 41 33 0 +77 36 6 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections190.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections190.txt new file mode 100644 index 00000000..94c57f1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections190.txt @@ -0,0 +1,29 @@ +switch_id node1 node2 open +0 0 3 0 +1 0 7 0 +2 0 1 0 +3 1 12 0 +4 1 2 1 +5 2 18 0 +6 2 23 0 +7 2 5 0 +8 3 4 0 +9 5 6 0 +10 7 8 0 +11 9 8 0 +12 10 8 0 +13 11 8 0 +14 12 13 0 +15 14 13 0 +16 15 13 0 +17 16 13 1 +18 17 13 0 +19 18 19 0 +20 20 19 0 +21 21 19 0 +22 22 19 0 +23 23 24 0 +24 25 24 0 +25 26 24 0 +26 27 8 1 +27 28 13 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections191.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections191.txt new file mode 100644 index 00000000..e3029a8a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections191.txt @@ -0,0 +1,26 @@ +switch_id node1 node2 open +0 0 7 0 +1 0 20 0 +2 0 12 0 +3 1 9 0 +4 1 11 0 +5 1 19 0 +6 2 23 0 +7 6 2 0 +8 3 4 0 +9 3 14 0 +10 22 3 0 +11 4 25 0 +12 4 16 0 +13 24 5 0 +14 8 5 0 +15 7 6 0 +16 9 8 0 +17 11 10 0 +18 12 13 0 +19 14 15 0 +20 16 17 0 +21 19 18 0 +22 20 21 0 +23 23 22 0 +24 25 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections192.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections192.txt new file mode 100644 index 00000000..4ea5857f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections192.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 12 1 +2 0 6 1 +3 0 1 0 +4 1 10 1 +5 1 8 1 +6 1 14 1 +7 1 16 1 +8 2 4 0 +9 2 12 0 +10 2 6 0 +11 2 3 0 +12 3 10 0 +13 3 8 0 +14 3 14 0 +15 3 16 0 +16 4 5 0 +17 6 7 0 +18 8 9 0 +19 10 19 0 +20 12 21 0 +21 14 15 0 +22 16 17 0 +23 11 19 0 +24 18 19 1 +25 13 21 0 +26 20 21 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections193.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections193.txt new file mode 100644 index 00000000..9c2b6dcf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections193.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 16 1 +2 0 20 1 +3 0 1 0 +4 0 10 1 +5 9 0 0 +6 1 24 1 +7 1 12 0 +8 1 4 0 +9 1 22 0 +10 1 18 1 +11 2 8 0 +12 2 6 0 +13 2 16 0 +14 2 20 0 +15 2 3 0 +16 2 10 0 +17 3 24 0 +18 3 12 1 +19 3 4 1 +20 3 22 1 +21 3 18 0 +22 4 5 0 +23 6 7 0 +24 8 9 1 +25 10 11 0 +26 12 13 0 +27 14 13 0 +28 15 13 1 +29 16 17 0 +30 18 19 0 +31 20 21 0 +32 22 23 0 +33 24 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections194.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections194.txt new file mode 100644 index 00000000..b3530021 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections194.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 20 0 +1 0 18 1 +2 0 22 1 +3 0 1 0 +4 7 0 0 +5 1 2 0 +6 2 8 1 +7 2 12 0 +8 2 14 1 +9 2 10 0 +10 3 6 0 +11 3 20 1 +12 3 18 0 +13 3 22 0 +14 3 4 0 +15 4 5 0 +16 5 8 0 +17 5 12 1 +18 5 14 0 +19 5 10 1 +20 6 7 1 +21 8 9 1 +22 10 11 0 +23 12 13 0 +24 14 15 0 +25 16 15 0 +26 17 15 1 +27 18 19 0 +28 20 21 0 +29 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections195.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections195.txt new file mode 100644 index 00000000..5cebe938 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections195.txt @@ -0,0 +1,49 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 10 0 +2 0 24 0 +3 0 1 0 +4 0 20 0 +5 0 12 1 +6 9 0 0 +7 1 22 0 +8 1 26 0 +9 1 16 1 +10 1 14 1 +11 1 30 1 +12 1 28 1 +13 1 4 0 +14 7 1 0 +15 2 8 0 +16 2 18 1 +17 2 10 1 +18 2 24 1 +19 2 3 0 +20 2 20 1 +21 2 12 0 +22 3 22 1 +23 3 26 1 +24 3 16 0 +25 3 14 0 +26 3 30 0 +27 3 28 0 +28 3 6 0 +29 3 4 1 +30 4 5 1 +31 6 7 1 +32 8 9 1 +33 10 11 0 +34 12 13 0 +35 14 15 0 +36 16 33 0 +37 18 35 0 +38 20 21 0 +39 22 23 0 +40 24 25 0 +41 26 27 0 +42 28 29 0 +43 30 31 0 +44 17 33 0 +45 32 33 1 +46 19 35 0 +47 34 35 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections196.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections196.txt new file mode 100644 index 00000000..ef9ca821 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections196.txt @@ -0,0 +1,110 @@ +switch_id node1 node2 open +0 0 74 0 +1 0 30 0 +2 0 14 1 +3 0 70 1 +4 0 46 1 +5 0 44 1 +6 0 10 1 +7 0 38 0 +8 0 20 1 +9 0 51 0 +10 0 26 1 +11 0 65 1 +12 25 0 0 +13 1 28 1 +14 1 36 1 +15 1 48 0 +16 1 12 1 +17 1 42 1 +18 1 78 0 +19 1 2 0 +20 50 1 0 +21 2 34 0 +22 2 32 1 +23 2 16 0 +24 2 3 0 +25 2 54 0 +26 3 8 0 +27 3 72 1 +28 3 18 1 +29 3 76 0 +30 3 40 1 +31 3 60 1 +32 23 3 0 +33 4 74 1 +34 4 30 1 +35 4 14 0 +36 4 70 0 +37 4 46 0 +38 4 44 0 +39 4 10 0 +40 4 24 0 +41 4 38 1 +42 4 20 0 +43 4 53 0 +44 4 26 0 +45 4 65 0 +46 5 28 0 +47 5 36 0 +48 5 48 1 +49 5 12 1 +50 5 42 0 +51 5 78 1 +52 5 6 0 +53 52 5 0 +54 6 32 0 +55 6 34 1 +56 6 16 1 +57 6 7 0 +58 6 54 1 +59 7 8 1 +60 7 72 0 +61 7 18 0 +62 7 76 1 +63 7 40 0 +64 7 22 0 +65 7 60 0 +66 8 9 0 +67 10 11 0 +68 12 13 1 +69 14 15 0 +70 16 17 0 +71 18 19 0 +72 20 21 0 +73 22 23 1 +74 24 25 1 +75 26 27 0 +76 28 29 0 +77 30 31 0 +78 32 33 0 +79 34 35 0 +80 36 37 0 +81 38 39 0 +82 40 41 0 +83 42 43 0 +84 44 45 0 +85 46 47 0 +86 48 49 0 +87 51 50 0 +88 53 52 0 +89 54 55 0 +90 56 55 0 +91 57 55 0 +92 58 55 1 +93 59 55 0 +94 60 61 0 +95 62 61 0 +96 63 61 0 +97 64 61 0 +98 65 66 0 +99 67 66 0 +100 68 66 0 +101 69 66 0 +102 70 71 0 +103 72 73 0 +104 74 75 0 +105 76 77 0 +106 78 79 0 +107 80 55 1 +108 81 61 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections197.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections197.txt new file mode 100644 index 00000000..31c6ca56 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections197.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 9 0 +2 0 23 0 +3 1 19 0 +4 1 21 0 +5 1 8 0 +6 2 3 0 +7 2 11 0 +8 5 2 0 +9 3 4 0 +10 3 15 0 +11 3 13 0 +12 4 17 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections198.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections198.txt new file mode 100644 index 00000000..23cbd4f1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections198.txt @@ -0,0 +1,104 @@ +switch_id node1 node2 open +0 0 41 0 +1 0 16 1 +2 0 26 0 +3 0 28 1 +4 0 32 0 +5 0 30 0 +6 0 50 0 +7 0 64 0 +8 11 0 0 +9 1 39 0 +10 1 14 1 +11 1 24 1 +12 1 34 0 +13 1 36 1 +14 1 54 0 +15 1 56 1 +16 1 66 0 +17 1 70 0 +18 1 68 0 +19 40 1 0 +20 2 6 1 +21 2 12 0 +22 2 18 0 +23 2 20 0 +24 2 22 0 +25 2 46 0 +26 2 48 1 +27 2 52 1 +28 2 58 0 +29 2 62 1 +30 2 60 0 +31 38 2 0 +32 9 2 0 +33 3 45 0 +34 3 16 1 +35 3 26 1 +36 3 28 0 +37 3 32 1 +38 3 30 1 +39 3 50 1 +40 3 64 1 +41 3 10 0 +42 4 43 0 +43 4 14 0 +44 4 24 0 +45 4 34 1 +46 4 36 1 +47 4 54 1 +48 4 56 0 +49 4 66 1 +50 4 70 1 +51 4 68 1 +52 44 4 0 +53 5 6 0 +54 5 8 0 +55 5 12 1 +56 5 18 1 +57 5 20 1 +58 5 22 1 +59 5 46 1 +60 5 48 0 +61 5 52 0 +62 5 58 1 +63 5 62 0 +64 5 60 1 +65 42 5 0 +66 6 7 0 +67 8 9 0 +68 10 11 1 +69 12 13 0 +70 14 15 0 +71 16 17 1 +72 18 19 0 +73 20 21 0 +74 22 23 0 +75 24 25 0 +76 26 27 0 +77 28 29 0 +78 30 31 0 +79 32 33 0 +80 34 35 0 +81 36 37 1 +82 39 38 1 +83 41 40 0 +84 43 42 1 +85 45 44 0 +86 46 73 0 +87 48 75 0 +88 50 51 0 +89 52 53 0 +90 54 55 0 +91 56 57 0 +92 58 59 0 +93 60 61 0 +94 62 63 0 +95 64 65 0 +96 66 67 0 +97 68 69 0 +98 70 71 0 +99 47 73 0 +100 72 73 1 +101 49 75 0 +102 74 75 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections199.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections199.txt new file mode 100644 index 00000000..58e46b84 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections199.txt @@ -0,0 +1,66 @@ +switch_id node1 node2 open +0 0 20 1 +1 0 22 1 +2 0 8 0 +3 0 10 1 +4 0 14 0 +5 0 16 1 +6 0 32 0 +7 0 34 0 +8 0 36 1 +9 0 1 0 +10 0 28 1 +11 1 24 1 +12 1 26 0 +13 1 6 0 +14 1 18 1 +15 1 30 1 +16 13 1 0 +17 2 20 1 +18 2 22 0 +19 2 8 1 +20 2 10 1 +21 2 14 1 +22 2 16 0 +23 2 32 1 +24 2 34 1 +25 2 36 1 +26 2 3 0 +27 2 28 1 +28 3 12 0 +29 3 24 1 +30 3 26 1 +31 3 6 1 +32 3 18 0 +33 3 30 0 +34 4 8 1 +35 4 10 1 +36 4 14 1 +37 4 16 1 +38 4 20 1 +39 4 22 1 +40 4 28 0 +41 4 32 1 +42 4 34 1 +43 4 36 1 +44 4 5 0 +45 5 24 1 +46 5 26 1 +47 6 7 0 +48 8 9 0 +49 10 11 1 +50 12 13 0 +51 14 15 0 +52 16 17 0 +53 18 19 0 +54 20 21 1 +55 22 23 0 +56 24 25 1 +57 26 27 0 +58 28 29 1 +59 30 31 0 +60 32 33 0 +61 34 35 0 +62 36 37 1 +63 38 39 0 +64 39 0 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections2.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections2.txt new file mode 100644 index 00000000..9a7e6925 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections2.txt @@ -0,0 +1,70 @@ +switch_id node1 node2 open +0 23 2 0 +1 1 24 1 +2 0 25 0 +3 1 26 1 +4 0 27 0 +5 2 28 0 +6 3 29 1 +7 3 30 1 +8 3 31 0 +9 1 30 0 +10 32 0 0 +11 3 33 1 +12 2 34 0 +13 2 35 0 +14 1 33 1 +15 2 36 1 +16 3 37 0 +17 38 0 0 +18 1 29 0 +19 0 28 1 +20 0 39 1 +21 3 40 0 +22 0 35 1 +23 3 26 0 +24 2 39 0 +25 41 1 0 +26 3 42 1 +27 0 36 0 +28 1 43 0 +29 3 24 0 +30 3 44 1 +31 1 45 1 +32 1 44 0 +33 2 46 1 +34 2 27 1 +35 2 47 0 +36 3 48 0 +37 0 47 1 +38 3 45 1 +39 1 31 1 +40 0 46 1 +41 1 40 1 +42 3 49 1 +43 2 25 1 +44 1 42 0 +45 1 49 0 +46 26 5 0 +47 29 11 0 +48 35 4 1 +49 40 18 0 +50 28 14 0 +51 37 41 0 +52 30 17 0 +53 42 9 0 +54 36 19 0 +55 39 10 0 +56 44 21 1 +57 49 8 0 +58 33 7 1 +59 47 6 0 +60 46 16 1 +61 43 38 0 +62 45 22 1 +63 24 20 0 +64 48 23 0 +65 34 32 0 +66 31 15 1 +67 25 12 1 +68 27 13 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections20.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections20.txt new file mode 100644 index 00000000..cfb63779 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections20.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 4 3 0 +1 3 2 0 +2 12 11 1 +3 13 24 1 +4 14 23 1 +5 15 25 0 +6 16 25 1 +7 18 17 0 +8 19 26 0 +9 20 26 1 +10 21 23 0 +11 22 24 0 +12 4 11 0 +13 2 5 0 +14 2 17 0 +15 27 12 0 +16 1 16 0 +17 1 20 0 +18 1 21 0 +19 1 22 0 +20 0 13 0 +21 0 14 0 +22 0 15 0 +23 0 18 0 +24 0 19 0 +25 25 10 0 +26 24 8 0 +27 3 6 0 +28 26 7 0 +29 23 9 0 +30 28 1 0 +31 27 28 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections200.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections200.txt new file mode 100644 index 00000000..5865aca8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections200.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 0 11 1 +1 0 19 1 +2 0 1 0 +3 0 13 0 +4 1 17 0 +5 1 9 0 +6 1 2 0 +7 2 15 1 +8 3 11 0 +9 3 19 0 +10 3 4 0 +11 3 13 1 +12 14 3 1 +13 4 17 1 +14 4 9 1 +15 4 5 0 +16 5 15 0 +17 16 5 1 +18 6 7 0 +19 6 21 0 +20 14 6 0 +21 7 8 0 +22 7 23 0 +23 16 8 0 +24 9 10 0 +25 11 12 0 +26 13 14 0 +27 15 16 1 +28 17 18 0 +29 19 20 0 +30 21 22 0 +31 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections201.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections201.txt new file mode 100644 index 00000000..d442ca4c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections201.txt @@ -0,0 +1,24 @@ +switch_id node1 node2 open +0 1 9 1 +1 2 15 0 +2 2 3 1 +3 2 5 0 +4 3 19 0 +5 3 4 0 +6 4 21 0 +7 4 11 0 +8 5 6 0 +9 6 8 0 +10 6 7 0 +11 8 14 1 +12 9 10 1 +13 11 12 0 +14 12 13 0 +15 14 12 0 +16 15 16 0 +17 17 16 0 +18 18 16 1 +19 19 20 0 +20 21 22 0 +21 23 16 1 +22 24 19 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections202.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections202.txt new file mode 100644 index 00000000..d866c4a6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections202.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 13 0 +1 0 8 0 +2 0 19 0 +3 1 5 0 +4 1 11 0 +5 1 10 0 +6 2 15 0 +7 2 3 0 +8 7 2 0 +9 3 17 0 +10 3 4 0 +11 9 4 0 +12 5 6 0 +13 8 7 0 +14 10 9 1 +15 11 12 0 +16 13 14 0 +17 15 16 0 +18 17 18 0 +19 19 20 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections203.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections203.txt new file mode 100644 index 00000000..b0496004 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections203.txt @@ -0,0 +1,47 @@ +switch_id node1 node2 open +0 0 22 0 +1 0 30 1 +2 0 24 0 +3 0 1 0 +4 0 8 1 +5 0 12 0 +6 0 20 1 +7 15 0 0 +8 1 28 1 +9 1 2 0 +10 2 26 0 +11 2 16 1 +12 2 32 0 +13 2 18 0 +14 2 6 0 +15 2 10 1 +16 3 14 0 +17 3 22 1 +18 3 30 0 +19 3 24 1 +20 3 4 0 +21 3 12 1 +22 3 8 0 +23 3 20 0 +24 4 28 0 +25 4 5 0 +26 5 26 1 +27 5 16 0 +28 5 32 1 +29 5 18 1 +30 5 6 1 +31 5 10 0 +32 6 7 0 +33 8 9 0 +34 10 11 0 +35 12 13 0 +36 14 15 1 +37 16 17 0 +38 18 19 0 +39 20 21 0 +40 22 23 0 +41 24 25 0 +42 26 27 0 +43 28 29 0 +44 30 31 0 +45 32 33 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections204.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections204.txt new file mode 100644 index 00000000..a1d82226 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections204.txt @@ -0,0 +1,79 @@ +switch_id node1 node2 open +0 0 29 1 +1 0 22 1 +2 0 14 1 +3 0 24 1 +4 0 16 1 +5 0 34 1 +6 0 6 1 +7 0 8 1 +8 0 38 1 +9 0 1 0 +10 0 36 1 +11 1 18 1 +12 1 30 1 +13 1 32 1 +14 1 10 1 +15 1 12 1 +16 1 27 1 +17 1 20 1 +18 39 1 1 +19 2 29 0 +20 2 22 0 +21 2 14 1 +22 2 24 1 +23 2 16 0 +24 2 34 1 +25 2 6 1 +26 2 8 0 +27 2 41 0 +28 2 38 1 +29 2 36 0 +30 28 2 1 +31 3 18 1 +32 3 30 0 +33 3 32 1 +34 3 10 1 +35 3 12 0 +36 3 27 0 +37 3 20 0 +38 40 3 0 +39 26 3 1 +40 39 3 1 +41 4 22 1 +42 4 14 0 +43 4 24 0 +44 4 16 1 +45 4 34 0 +46 4 6 0 +47 4 8 1 +48 4 38 0 +49 4 5 1 +50 4 36 1 +51 28 4 0 +52 5 18 0 +53 5 30 1 +54 5 32 0 +55 5 10 0 +56 5 12 1 +57 5 20 1 +58 26 5 0 +59 39 5 0 +60 6 7 0 +61 8 9 0 +62 10 11 0 +63 12 13 0 +64 14 15 0 +65 16 17 0 +66 18 19 0 +67 20 21 0 +68 22 23 0 +69 24 25 0 +70 27 26 0 +71 29 28 0 +72 30 31 0 +73 32 33 0 +74 34 35 0 +75 36 37 0 +76 38 39 0 +77 41 40 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections205.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections205.txt new file mode 100644 index 00000000..2cc2917f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections205.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 10 1 +1 0 1 0 +2 0 20 1 +3 1 12 1 +4 1 22 0 +5 1 8 1 +6 1 18 1 +7 1 2 0 +8 2 16 1 +9 2 14 0 +10 2 24 0 +11 7 2 0 +12 3 10 0 +13 3 4 0 +14 3 20 0 +15 4 12 0 +16 4 22 1 +17 4 8 0 +18 4 18 0 +19 4 5 0 +20 5 16 0 +21 5 14 1 +22 5 6 0 +23 5 24 1 +24 6 7 1 +25 8 9 0 +26 10 11 0 +27 12 13 0 +28 14 15 0 +29 16 17 0 +30 18 19 0 +31 20 21 0 +32 22 23 0 +33 24 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections206.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections206.txt new file mode 100644 index 00000000..dd4a9b36 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections206.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 22 0 +1 0 17 0 +2 0 6 0 +3 1 2 1 +4 11 1 0 +5 16 1 0 +6 2 8 0 +7 2 20 0 +8 2 12 0 +9 15 2 0 +10 3 6 1 +11 3 22 1 +12 3 19 1 +13 4 10 0 +14 4 5 0 +15 18 4 1 +16 5 14 0 +17 5 8 1 +18 5 20 1 +19 5 12 1 +20 6 7 0 +21 8 9 0 +22 10 11 0 +23 12 13 0 +24 14 15 0 +25 17 16 1 +26 19 18 1 +27 20 21 0 +28 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections207.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections207.txt new file mode 100644 index 00000000..d0338270 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections207.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 14 0 +2 0 10 0 +3 7 0 0 +4 1 2 1 +5 2 16 0 +6 2 12 0 +7 9 2 0 +8 3 18 0 +9 3 6 0 +10 3 4 1 +11 4 5 1 +12 4 20 0 +13 5 22 0 +14 5 8 0 +15 6 7 0 +16 8 9 0 +17 10 11 0 +18 12 13 0 +19 14 15 0 +20 16 17 0 +21 18 19 0 +22 20 21 0 +23 22 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections208.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections208.txt new file mode 100644 index 00000000..c2be6d4f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections208.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 12 1 +1 0 6 0 +2 0 14 1 +3 0 8 1 +4 0 18 0 +5 0 10 0 +6 0 16 0 +7 0 2 0 +8 0 20 1 +9 5 0 0 +10 1 4 0 +11 1 12 0 +12 1 6 1 +13 1 14 0 +14 1 8 0 +15 1 18 1 +16 1 10 1 +17 1 16 1 +18 1 2 1 +19 1 20 0 +20 2 3 0 +21 4 5 1 +22 6 7 0 +23 8 9 1 +24 10 11 0 +25 12 13 0 +26 14 15 0 +27 16 17 0 +28 18 23 0 +29 20 25 0 +30 19 23 0 +31 22 23 1 +32 21 25 0 +33 24 25 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections209.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections209.txt new file mode 100644 index 00000000..7d230fd0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections209.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 20 1 +1 0 18 0 +2 0 2 0 +3 0 4 0 +4 0 6 1 +5 0 8 0 +6 0 10 0 +7 0 12 0 +8 0 14 0 +9 0 16 0 +10 1 20 0 +11 1 18 1 +12 1 2 1 +13 1 4 1 +14 1 6 0 +15 1 8 1 +16 1 10 1 +17 1 12 1 +18 1 14 1 +19 1 16 1 +20 2 3 0 +21 4 5 0 +22 6 7 0 +23 8 9 0 +24 10 11 1 +25 12 13 0 +26 14 15 0 +27 16 17 0 +28 18 19 0 +29 20 21 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections21.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections21.txt new file mode 100644 index 00000000..c5e62e73 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections21.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 1 11 1 +1 0 12 0 +2 0 13 1 +3 1 14 1 +4 0 15 1 +5 1 16 1 +6 17 0 0 +7 0 18 1 +8 1 13 0 +9 0 11 0 +10 1 19 1 +11 1 20 0 +12 1 18 0 +13 0 21 1 +14 1 15 0 +15 0 16 0 +16 1 21 0 +17 0 19 0 +18 1 12 1 +19 0 14 0 +20 21 6 0 +21 19 2 0 +22 11 3 0 +23 16 8 0 +24 13 7 0 +25 20 17 0 +26 15 5 0 +27 14 10 0 +28 18 4 0 +29 12 9 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections210.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections210.txt new file mode 100644 index 00000000..da8be626 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections210.txt @@ -0,0 +1,75 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 6 1 +2 0 8 0 +3 0 10 1 +4 0 16 1 +5 0 18 0 +6 0 20 0 +7 0 24 1 +8 0 26 0 +9 0 28 1 +10 0 30 0 +11 0 34 1 +12 0 36 1 +13 0 40 0 +14 0 42 0 +15 0 44 0 +16 0 46 0 +17 0 1 1 +18 0 22 1 +19 0 38 1 +20 13 0 0 +21 1 2 1 +22 1 48 0 +23 23 1 0 +24 2 14 0 +25 2 50 0 +26 3 4 0 +27 3 6 0 +28 3 8 1 +29 3 10 1 +30 3 12 0 +31 3 16 0 +32 3 18 1 +33 3 20 1 +34 3 24 0 +35 3 26 1 +36 3 28 0 +37 3 30 1 +38 3 34 0 +39 3 36 0 +40 3 40 1 +41 3 42 1 +42 3 44 1 +43 3 46 1 +44 3 22 0 +45 3 38 0 +46 4 5 0 +47 6 7 0 +48 8 9 1 +49 10 11 1 +50 12 13 0 +51 14 15 0 +52 16 17 0 +53 18 19 0 +54 20 21 0 +55 22 23 0 +56 24 25 0 +57 26 27 0 +58 28 55 0 +59 30 31 0 +60 32 31 0 +61 33 31 1 +62 34 35 0 +63 36 37 0 +64 38 39 0 +65 40 41 0 +66 42 43 0 +67 44 45 0 +68 46 47 0 +69 48 49 0 +70 50 51 0 +71 29 55 0 +72 54 55 1 +73 56 31 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections211.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections211.txt new file mode 100644 index 00000000..31688899 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections211.txt @@ -0,0 +1,51 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 20 1 +2 0 24 1 +3 0 1 1 +4 0 8 0 +5 0 6 1 +6 0 30 1 +7 0 32 0 +8 0 28 0 +9 0 26 1 +10 23 0 0 +11 1 10 0 +12 1 2 1 +13 1 34 0 +14 2 12 0 +15 2 3 1 +16 2 36 0 +17 3 4 1 +18 3 14 0 +19 3 38 0 +20 4 16 0 +21 4 40 0 +22 5 22 0 +23 5 18 1 +24 5 20 0 +25 5 24 0 +26 5 6 0 +27 5 8 1 +28 5 30 0 +29 5 32 1 +30 5 28 1 +31 5 26 0 +32 6 7 1 +33 8 9 0 +34 10 11 0 +35 12 13 0 +36 14 15 0 +37 16 17 0 +38 18 19 0 +39 20 21 0 +40 22 23 1 +41 24 25 0 +42 26 27 0 +43 28 29 0 +44 30 31 0 +45 32 33 0 +46 34 35 0 +47 36 37 0 +48 38 39 0 +49 40 41 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections212.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections212.txt new file mode 100644 index 00000000..b997acad --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections212.txt @@ -0,0 +1,32 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 13 0 +2 0 16 0 +3 0 30 0 +4 1 2 1 +5 1 18 0 +6 1 10 0 +7 1 28 0 +8 2 3 1 +9 2 7 0 +10 2 20 0 +11 2 26 0 +12 3 4 0 +13 3 22 0 +14 3 24 0 +15 4 5 0 +16 5 6 0 +17 7 8 0 +18 8 9 0 +19 10 11 0 +20 11 12 1 +21 13 14 0 +22 14 15 1 +23 16 17 0 +24 18 19 0 +25 20 21 0 +26 22 23 0 +27 24 25 0 +28 26 27 0 +29 28 29 0 +30 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections213.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections213.txt new file mode 100644 index 00000000..2913d2db --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections213.txt @@ -0,0 +1,62 @@ +switch_id node1 node2 open +0 0 4 1 +1 0 10 0 +2 0 30 0 +3 0 14 1 +4 0 18 0 +5 0 20 1 +6 0 1 1 +7 0 26 1 +8 0 28 0 +9 0 32 1 +10 13 0 0 +11 1 6 1 +12 1 16 0 +13 1 34 0 +14 1 24 1 +15 1 38 0 +16 1 22 0 +17 1 40 0 +18 1 8 0 +19 2 12 0 +20 2 4 0 +21 2 10 1 +22 2 30 1 +23 2 14 0 +24 2 18 1 +25 2 20 0 +26 2 3 0 +27 2 26 0 +28 2 28 1 +29 2 32 0 +30 3 6 0 +31 3 16 1 +32 3 34 1 +33 3 24 0 +34 3 38 1 +35 3 22 1 +36 3 40 1 +37 3 8 1 +38 4 5 1 +39 6 7 0 +40 8 9 0 +41 10 11 0 +42 12 13 0 +43 14 15 0 +44 16 17 0 +45 18 19 0 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 26 27 0 +50 28 29 0 +51 30 31 0 +52 32 43 0 +53 34 35 0 +54 36 35 0 +55 37 35 1 +56 38 39 0 +57 40 41 0 +58 33 43 0 +59 42 43 1 +60 44 35 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections214.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections214.txt new file mode 100644 index 00000000..f47e5880 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections214.txt @@ -0,0 +1,48 @@ +switch_id node1 node2 open +0 0 36 0 +1 0 1 1 +2 0 26 0 +3 0 24 0 +4 1 2 1 +5 1 34 0 +6 1 20 0 +7 1 22 0 +8 2 3 1 +9 2 40 0 +10 2 10 0 +11 2 12 0 +12 3 4 1 +13 3 38 0 +14 3 8 0 +15 3 28 0 +16 4 5 1 +17 4 32 0 +18 4 18 0 +19 4 16 0 +20 5 30 0 +21 5 6 0 +22 5 14 0 +23 6 7 1 +24 8 9 1 +25 10 11 1 +26 12 13 1 +27 14 15 1 +28 16 17 0 +29 18 19 1 +30 20 21 1 +31 22 23 0 +32 24 25 1 +33 26 27 0 +34 28 29 1 +35 30 31 0 +36 32 33 0 +37 34 35 0 +38 36 37 0 +39 38 39 0 +40 40 41 0 +41 42 43 0 +42 43 0 0 +43 44 45 0 +44 45 1 0 +45 46 47 0 +46 47 4 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections215.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections215.txt new file mode 100644 index 00000000..72cdd23c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections215.txt @@ -0,0 +1,27 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 3 0 +2 0 20 0 +3 0 10 0 +4 0 17 0 +5 1 5 0 +6 1 8 0 +7 1 12 0 +8 1 22 0 +9 1 19 0 +10 2 13 0 +11 2 15 0 +12 9 2 0 +13 11 2 0 +14 3 4 1 +15 5 4 0 +16 6 7 0 +17 8 7 1 +18 10 9 0 +19 12 11 1 +20 13 14 0 +21 15 16 0 +22 17 18 1 +23 19 18 0 +24 20 21 0 +25 22 21 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections216.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections216.txt new file mode 100644 index 00000000..27f7f229 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections216.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 11 0 +2 0 19 0 +3 1 8 0 +4 1 9 0 +5 1 17 0 +6 2 13 0 +7 2 3 0 +8 5 2 0 +9 3 15 0 +10 3 4 0 +11 3 21 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections217.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections217.txt new file mode 100644 index 00000000..0fd8b665 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections217.txt @@ -0,0 +1,40 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 10 0 +2 0 12 0 +3 0 22 1 +4 0 14 1 +5 0 24 1 +6 0 16 0 +7 0 26 0 +8 0 18 0 +9 0 20 0 +10 0 4 1 +11 0 8 0 +12 3 0 0 +13 1 2 0 +14 1 6 0 +15 1 10 1 +16 1 20 1 +17 1 12 1 +18 1 22 0 +19 1 14 0 +20 1 24 0 +21 1 16 1 +22 1 26 1 +23 1 18 1 +24 1 4 0 +25 1 8 1 +26 2 3 1 +27 4 5 0 +28 6 7 0 +29 8 9 0 +30 10 11 0 +31 12 13 0 +32 14 15 0 +33 16 17 0 +34 18 19 0 +35 20 21 0 +36 22 23 0 +37 24 25 0 +38 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections218.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections218.txt new file mode 100644 index 00000000..6d858631 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections218.txt @@ -0,0 +1,45 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 14 0 +2 0 10 0 +3 0 19 1 +4 0 29 0 +5 0 8 0 +6 0 2 0 +7 0 25 1 +8 0 27 0 +9 0 23 0 +10 0 12 1 +11 5 0 0 +12 1 4 0 +13 1 6 0 +14 1 14 1 +15 1 10 1 +16 1 19 0 +17 1 29 1 +18 1 8 1 +19 1 2 1 +20 1 25 0 +21 1 27 1 +22 1 23 1 +23 1 12 0 +24 2 3 0 +25 4 5 1 +26 6 7 0 +27 8 9 0 +28 10 11 0 +29 12 32 0 +30 14 15 0 +31 16 15 0 +32 17 15 1 +33 18 15 0 +34 19 20 0 +35 21 20 0 +36 22 20 0 +37 23 24 0 +38 25 26 0 +39 27 28 0 +40 29 30 0 +41 13 32 0 +42 31 32 1 +43 33 15 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections219.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections219.txt new file mode 100644 index 00000000..8c11ab6b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections219.txt @@ -0,0 +1,59 @@ +switch_id node1 node2 open +0 0 22 1 +1 0 14 0 +2 0 1 0 +3 0 28 0 +4 0 42 1 +5 0 26 0 +6 17 0 1 +7 1 36 1 +8 1 8 1 +9 1 39 0 +10 1 20 1 +11 2 10 0 +12 2 3 0 +13 2 32 0 +14 2 30 1 +15 38 2 0 +16 3 12 1 +17 3 34 1 +18 3 24 0 +19 19 3 0 +20 4 22 1 +21 4 14 1 +22 4 5 1 +23 4 28 1 +24 4 42 1 +25 4 16 1 +26 4 26 1 +27 5 36 0 +28 5 8 0 +29 5 41 0 +30 5 20 0 +31 6 10 1 +32 6 7 0 +33 6 32 1 +34 6 30 0 +35 40 6 0 +36 7 12 0 +37 7 34 0 +38 7 24 1 +39 7 18 0 +40 8 9 0 +41 10 11 0 +42 12 13 0 +43 14 15 0 +44 16 17 1 +45 18 19 1 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 26 27 0 +50 28 29 0 +51 30 31 0 +52 32 33 0 +53 34 35 0 +54 36 37 0 +55 39 38 0 +56 41 40 0 +57 42 43 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections22.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections22.txt new file mode 100644 index 00000000..98d8670c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections22.txt @@ -0,0 +1,46 @@ +switch_id node1 node2 open +0 0 13 1 +1 13 10 1 +2 13 11 1 +3 13 12 0 +4 1 14 1 +5 14 10 1 +6 14 11 0 +7 14 12 1 +8 2 15 0 +9 15 10 0 +10 15 11 1 +11 15 12 1 +12 3 16 0 +13 16 10 1 +14 16 11 0 +15 16 12 1 +16 4 17 0 +17 17 10 1 +18 17 11 0 +19 17 12 1 +20 5 18 0 +21 18 10 0 +22 18 11 1 +23 18 12 1 +24 6 19 0 +25 19 10 0 +26 19 11 1 +27 19 12 1 +28 7 20 0 +29 20 10 1 +30 20 11 0 +31 20 12 1 +32 8 21 0 +33 21 10 0 +34 21 11 1 +35 21 12 1 +36 22 23 0 +37 23 10 0 +38 23 11 1 +39 22 11 0 +40 22 12 1 +41 9 24 0 +42 24 10 1 +43 24 11 0 +44 24 12 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections220.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections220.txt new file mode 100644 index 00000000..f7fb5e9c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections220.txt @@ -0,0 +1,29 @@ +switch_id node1 node2 open +0 0 8 0 +1 0 2 1 +2 0 10 1 +3 0 6 0 +4 0 12 0 +5 0 14 0 +6 0 16 0 +7 5 0 0 +8 1 4 0 +9 1 8 1 +10 1 2 0 +11 1 10 0 +12 1 6 1 +13 1 12 1 +14 1 14 1 +15 1 16 1 +16 2 3 0 +17 4 5 1 +18 6 7 0 +19 8 9 0 +20 10 11 0 +21 12 19 0 +22 14 21 0 +23 16 17 0 +24 13 19 0 +25 18 19 1 +26 15 21 0 +27 20 21 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections221.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections221.txt new file mode 100644 index 00000000..b72d7e79 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections221.txt @@ -0,0 +1,35 @@ +switch_id node1 node2 open +0 0 14 1 +1 0 8 1 +2 0 1 0 +3 0 18 1 +4 0 20 0 +5 1 22 0 +6 1 16 0 +7 1 10 0 +8 1 4 0 +9 7 1 0 +10 2 14 0 +11 2 8 0 +12 2 3 0 +13 2 18 0 +14 2 20 1 +15 3 22 1 +16 3 16 1 +17 3 10 1 +18 3 4 1 +19 3 6 0 +20 4 5 0 +21 6 7 1 +22 8 9 0 +23 10 11 0 +24 12 11 0 +25 13 11 1 +26 14 26 0 +27 16 17 0 +28 18 19 0 +29 20 21 0 +30 22 23 0 +31 24 11 1 +32 15 26 0 +33 25 26 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections23.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections23.txt new file mode 100644 index 00000000..b74983e7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections23.txt @@ -0,0 +1,43 @@ +switch_id node1 node2 open +0 0 15 0 +1 15 13 0 +2 15 14 1 +3 1 16 0 +4 16 13 1 +5 16 14 0 +6 2 17 0 +7 17 13 0 +8 17 14 1 +9 3 18 0 +10 18 13 1 +11 18 14 0 +12 4 19 0 +13 19 13 0 +14 19 14 1 +15 5 20 0 +16 20 13 1 +17 20 14 0 +18 6 21 0 +19 21 13 1 +20 21 14 0 +21 7 22 0 +22 22 13 0 +23 22 14 1 +24 8 23 0 +25 23 13 0 +26 23 14 1 +27 9 24 0 +28 24 13 1 +29 24 14 0 +30 25 26 1 +31 25 13 1 +32 26 14 1 +33 10 27 0 +34 27 13 0 +35 27 14 1 +36 11 28 0 +37 28 13 1 +38 28 14 0 +39 12 29 0 +40 29 13 0 +41 29 14 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections24.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections24.txt new file mode 100644 index 00000000..7c749e8f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections24.txt @@ -0,0 +1,87 @@ +switch_id node1 node2 open +0 0 19 0 +1 19 15 1 +2 19 16 1 +3 19 17 0 +4 0 18 1 +5 1 20 0 +6 20 15 0 +7 20 16 1 +8 20 17 1 +9 1 18 1 +10 2 21 1 +11 21 15 1 +12 21 16 1 +13 21 17 1 +14 2 18 1 +15 3 22 0 +16 22 15 1 +17 22 16 1 +18 22 17 0 +19 3 18 1 +20 4 23 1 +21 23 15 1 +22 23 16 1 +23 23 17 1 +24 4 18 1 +25 5 24 0 +26 24 15 1 +27 24 16 1 +28 24 17 0 +29 5 18 1 +30 6 25 0 +31 25 15 1 +32 25 16 1 +33 25 17 0 +34 6 18 1 +35 7 26 0 +36 26 15 0 +37 26 16 1 +38 26 17 1 +39 7 18 1 +40 8 27 1 +41 27 15 1 +42 27 16 1 +43 27 17 0 +44 8 18 1 +45 9 28 1 +46 28 15 1 +47 28 16 1 +48 28 17 1 +49 9 18 1 +50 29 30 0 +51 29 15 0 +52 29 16 1 +53 30 16 1 +54 30 17 0 +55 31 32 1 +56 32 15 1 +57 32 16 1 +58 31 16 1 +59 32 17 1 +60 31 17 1 +61 31 18 0 +62 10 33 0 +63 33 15 0 +64 33 16 1 +65 33 17 1 +66 11 34 0 +67 34 15 0 +68 34 16 1 +69 34 17 1 +70 11 18 1 +71 12 35 0 +72 35 15 1 +73 35 16 1 +74 35 17 0 +75 12 18 1 +76 13 36 0 +77 36 15 1 +78 36 16 1 +79 36 17 0 +80 13 18 1 +81 14 37 0 +82 37 15 0 +83 37 16 1 +84 37 17 1 +85 14 18 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections25.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections25.txt new file mode 100644 index 00000000..14fa0e23 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections25.txt @@ -0,0 +1,85 @@ +switch_id node1 node2 open +0 0 28 0 +1 28 24 1 +2 28 26 0 +3 1 29 0 +4 29 24 0 +5 29 26 1 +6 2 30 0 +7 30 24 0 +8 30 26 1 +9 3 31 0 +10 31 24 1 +11 31 26 0 +12 4 32 0 +13 32 24 0 +14 32 26 1 +15 5 33 0 +16 33 25 0 +17 33 27 1 +18 6 34 0 +19 34 25 0 +20 34 27 1 +21 7 35 1 +22 35 25 1 +23 35 27 1 +24 8 36 0 +25 36 25 1 +26 36 27 0 +27 9 37 0 +28 37 25 0 +29 37 27 1 +30 10 38 0 +31 38 25 0 +32 38 27 1 +33 11 39 0 +34 39 24 1 +35 39 26 0 +36 12 40 0 +37 40 24 1 +38 40 26 0 +39 13 41 0 +40 41 24 0 +41 41 26 1 +42 14 42 0 +43 42 25 0 +44 42 27 1 +45 15 43 0 +46 43 24 0 +47 43 26 1 +48 16 44 0 +49 44 24 0 +50 44 26 1 +51 17 45 0 +52 45 24 0 +53 45 26 1 +54 18 46 0 +55 46 24 0 +56 46 26 1 +57 19 47 0 +58 47 24 0 +59 47 26 1 +60 20 48 0 +61 48 24 0 +62 48 26 1 +63 49 50 1 +64 50 24 0 +65 49 26 0 +66 51 52 1 +67 52 25 0 +68 51 27 0 +69 21 53 0 +70 53 24 0 +71 53 26 1 +72 22 54 0 +73 54 24 1 +74 54 26 0 +75 23 55 0 +76 55 24 0 +77 55 26 1 +78 56 57 0 +79 57 24 0 +80 56 25 0 +81 58 59 0 +82 59 26 0 +83 58 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections26.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections26.txt new file mode 100644 index 00000000..1b82f17e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections26.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 14 0 +1 14 5 0 +2 14 8 1 +3 1 15 1 +4 15 7 1 +5 15 10 1 +6 2 16 1 +7 16 5 0 +8 16 8 1 +9 3 17 0 +10 17 7 1 +11 17 10 0 +12 4 18 0 +13 18 7 1 +14 18 10 0 +15 4 13 1 +16 19 20 0 +17 20 6 1 +18 19 6 0 +19 20 9 0 +20 19 12 1 +21 6 5 0 +22 9 8 0 +23 12 11 0 +24 7 6 0 +25 10 9 0 +26 13 12 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections27.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections27.txt new file mode 100644 index 00000000..c535237f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections27.txt @@ -0,0 +1,34 @@ +switch_id node1 node2 open +0 0 20 0 +1 0 1 0 +2 22 0 0 +3 1 2 0 +4 15 1 0 +5 2 30 0 +6 23 2 0 +7 3 6 0 +8 3 10 0 +9 3 16 0 +10 3 24 0 +11 3 29 0 +12 4 5 0 +13 4 14 0 +14 28 4 0 +15 5 12 0 +16 5 18 0 +17 5 26 0 +18 5 8 0 +19 6 7 0 +20 8 9 0 +21 10 11 0 +22 12 13 0 +23 14 15 1 +24 16 22 1 +25 16 17 0 +26 18 23 1 +27 18 19 0 +28 20 21 0 +29 24 25 1 +30 26 27 1 +31 29 28 0 +32 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections28.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections28.txt new file mode 100644 index 00000000..ca1fb8ef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections28.txt @@ -0,0 +1,81 @@ +switch_id node1 node2 open +0 0 18 0 +1 18 14 1 +2 18 15 0 +3 18 16 1 +4 0 17 1 +5 1 19 0 +6 19 14 1 +7 19 15 0 +8 19 16 1 +9 1 17 1 +10 2 20 0 +11 20 14 1 +12 20 15 0 +13 20 16 1 +14 3 21 1 +15 21 14 0 +16 21 15 1 +17 21 16 1 +18 4 22 0 +19 22 14 1 +20 22 15 0 +21 22 16 1 +22 4 17 1 +23 5 23 0 +24 23 14 1 +25 23 15 0 +26 23 16 1 +27 5 17 1 +28 6 24 0 +29 24 14 0 +30 24 15 1 +31 24 16 1 +32 6 17 1 +33 7 25 0 +34 25 14 0 +35 25 15 1 +36 25 16 1 +37 7 17 1 +38 8 26 0 +39 26 14 1 +40 26 15 1 +41 26 16 0 +42 8 17 1 +43 9 27 0 +44 27 14 1 +45 27 15 1 +46 27 16 0 +47 10 28 0 +48 28 14 1 +49 28 15 0 +50 28 16 1 +51 29 30 1 +52 29 14 1 +53 30 14 0 +54 29 15 1 +55 30 15 1 +56 29 16 0 +57 30 17 1 +58 31 32 0 +59 31 14 1 +60 32 14 1 +61 31 15 1 +62 32 15 0 +63 31 16 0 +64 32 17 1 +65 11 33 1 +66 33 14 1 +67 33 15 1 +68 33 16 0 +69 11 17 1 +70 12 34 0 +71 34 14 1 +72 34 15 0 +73 34 16 1 +74 12 17 1 +75 13 35 0 +76 35 14 0 +77 35 15 1 +78 35 16 1 +79 13 17 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections29.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections29.txt new file mode 100644 index 00000000..7d707bff --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections29.txt @@ -0,0 +1,50 @@ +switch_id node1 node2 open +0 0 15 0 +1 15 11 0 +2 15 13 1 +3 1 16 0 +4 16 11 1 +5 16 13 0 +6 2 17 0 +7 17 18 0 +8 18 12 0 +9 18 14 1 +10 3 19 0 +11 19 20 0 +12 20 12 1 +13 20 14 0 +14 4 21 0 +15 21 12 1 +16 21 14 0 +17 5 22 0 +18 22 12 0 +19 22 14 1 +20 6 23 0 +21 23 12 1 +22 23 14 0 +23 7 24 0 +24 24 11 0 +25 24 13 1 +26 25 26 0 +27 26 11 0 +28 25 13 0 +29 27 28 0 +30 28 12 0 +31 27 14 0 +32 8 29 0 +33 29 12 1 +34 29 14 0 +35 30 31 1 +36 31 11 1 +37 30 12 1 +38 32 33 1 +39 33 13 1 +40 32 14 1 +41 9 34 0 +42 34 11 0 +43 34 13 1 +44 10 35 0 +45 35 11 1 +46 35 13 0 +47 36 37 0 +48 37 11 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections3.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections3.txt new file mode 100644 index 00000000..452fa1a2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections3.txt @@ -0,0 +1,39 @@ +switch_id node1 node2 open +0 3 14 1 +1 1 15 0 +2 1 0 0 +3 0 16 1 +4 17 1 1 +5 1 18 1 +6 3 19 1 +7 2 20 0 +8 3 21 1 +9 1 14 0 +10 2 22 1 +11 0 23 1 +12 2 24 0 +13 25 0 0 +14 2 23 0 +15 3 15 1 +16 2 26 0 +17 3 27 1 +18 0 22 0 +19 1 21 0 +20 1 19 0 +21 2 16 0 +22 3 18 1 +23 0 26 1 +24 0 24 1 +25 3 2 1 +26 24 9 0 +27 18 7 1 +28 15 11 0 +29 22 13 0 +30 14 4 0 +31 20 25 0 +32 19 6 0 +33 27 17 1 +34 21 8 0 +35 23 5 0 +36 16 10 0 +37 26 12 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections30.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections30.txt new file mode 100644 index 00000000..04f87f2a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections30.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 0 13 0 +1 13 10 1 +2 13 12 0 +3 1 14 0 +4 14 9 0 +5 14 11 1 +6 2 15 0 +7 15 9 0 +8 15 11 1 +9 3 16 0 +10 16 10 1 +11 16 12 0 +12 4 17 0 +13 17 10 0 +14 17 12 1 +15 18 19 1 +16 19 10 0 +17 18 12 0 +18 10 9 0 +19 12 11 0 +20 5 20 0 +21 20 9 0 +22 20 11 1 +23 6 21 0 +24 21 9 1 +25 21 11 0 +26 7 22 0 +27 22 10 0 +28 22 12 1 +29 23 9 1 +30 23 11 0 +31 8 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections31.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections31.txt new file mode 100644 index 00000000..54a79888 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections31.txt @@ -0,0 +1,44 @@ +switch_id node1 node2 open +0 0 13 1 +1 13 10 1 +2 13 11 1 +3 13 12 1 +4 1 14 0 +5 14 10 1 +6 14 11 0 +7 14 12 1 +8 2 15 0 +9 15 10 0 +10 15 11 1 +11 3 16 0 +12 16 11 0 +13 16 12 1 +14 4 17 0 +15 17 10 0 +16 17 11 1 +17 17 12 1 +18 18 19 1 +19 18 10 1 +20 18 11 1 +21 19 11 1 +22 19 12 1 +23 20 10 1 +24 20 11 0 +25 20 12 1 +26 5 20 1 +27 6 21 0 +28 21 10 1 +29 21 11 0 +30 21 12 1 +31 7 22 0 +32 22 10 1 +33 22 11 0 +34 22 12 1 +35 8 23 0 +36 23 10 1 +37 23 11 0 +38 23 12 1 +39 9 24 0 +40 24 10 1 +41 24 11 0 +42 24 12 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections32.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections32.txt new file mode 100644 index 00000000..37177b13 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections32.txt @@ -0,0 +1,38 @@ +switch_id node1 node2 open +0 0 12 0 +1 12 9 0 +2 1 13 1 +3 13 10 0 +4 2 14 0 +5 14 11 0 +6 3 15 0 +7 15 9 0 +8 15 10 1 +9 15 11 1 +10 4 16 0 +11 16 9 1 +12 16 10 0 +13 16 11 1 +14 5 17 0 +15 17 9 1 +16 17 10 0 +17 17 11 1 +18 6 18 0 +19 18 9 0 +20 18 10 1 +21 18 11 1 +22 19 20 1 +23 20 9 0 +24 20 10 1 +25 19 10 0 +26 19 11 1 +27 7 21 0 +28 21 9 0 +29 21 10 1 +30 21 11 1 +31 8 22 0 +32 22 9 1 +33 22 10 0 +34 22 11 1 +35 23 24 0 +36 24 10 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections33.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections33.txt new file mode 100644 index 00000000..80119d79 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections33.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 0 11 0 +1 11 9 1 +2 11 10 0 +3 1 12 0 +4 12 9 0 +5 12 10 1 +6 2 13 0 +7 13 9 0 +8 13 10 1 +9 3 14 0 +10 14 9 1 +11 14 10 0 +12 4 15 0 +13 15 9 1 +14 15 10 0 +15 5 16 0 +16 16 9 0 +17 16 10 1 +18 17 18 1 +19 18 9 0 +20 17 10 0 +21 6 19 0 +22 19 9 0 +23 19 10 1 +24 7 20 0 +25 20 9 1 +26 20 10 0 +27 8 21 0 +28 21 9 1 +29 21 10 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections34.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections34.txt new file mode 100644 index 00000000..2214cbfe --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections34.txt @@ -0,0 +1,43 @@ +switch_id node1 node2 open +0 0 13 0 +1 13 10 0 +2 13 11 1 +3 0 12 1 +4 1 14 0 +5 14 10 0 +6 14 11 1 +7 1 12 1 +8 2 15 0 +9 15 10 1 +10 15 11 0 +11 2 12 1 +12 3 16 0 +13 16 10 1 +14 16 11 0 +15 3 12 1 +16 4 17 0 +17 17 10 0 +18 17 11 1 +19 5 18 0 +20 18 10 0 +21 18 11 1 +22 5 12 1 +23 6 19 0 +24 19 10 1 +25 19 11 0 +26 6 12 1 +27 7 20 0 +28 20 10 1 +29 20 11 0 +30 8 21 0 +31 21 10 0 +32 21 11 1 +33 22 23 1 +34 23 10 1 +35 23 11 1 +36 22 11 1 +37 22 12 1 +38 9 24 0 +39 24 10 1 +40 24 11 0 +41 9 12 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections35.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections35.txt new file mode 100644 index 00000000..b8596a1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections35.txt @@ -0,0 +1,65 @@ +switch_id node1 node2 open +0 0 15 0 +1 15 11 1 +2 15 12 0 +3 15 13 1 +4 0 14 1 +5 1 16 0 +6 16 11 0 +7 16 12 1 +8 16 13 1 +9 1 14 1 +10 2 17 0 +11 17 11 1 +12 17 12 0 +13 17 13 1 +14 2 14 1 +15 3 18 0 +16 18 11 0 +17 18 12 1 +18 18 13 1 +19 3 14 1 +20 4 19 0 +21 19 11 0 +22 19 12 1 +23 19 13 1 +24 4 14 1 +25 5 20 0 +26 20 11 1 +27 20 12 0 +28 20 13 1 +29 5 14 1 +30 6 21 0 +31 21 11 0 +32 21 12 1 +33 21 13 1 +34 6 14 1 +35 7 22 0 +36 22 11 1 +37 22 12 0 +38 22 13 1 +39 7 14 1 +40 8 23 0 +41 23 11 0 +42 23 12 1 +43 23 13 1 +44 8 14 1 +45 9 24 0 +46 24 11 1 +47 24 12 0 +48 24 13 1 +49 9 14 1 +50 25 26 1 +51 26 11 1 +52 25 11 1 +53 26 12 1 +54 25 12 1 +55 26 13 1 +56 25 14 1 +57 10 27 0 +58 27 11 1 +59 27 12 0 +60 27 13 1 +61 10 14 1 +62 28 29 0 +63 29 12 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections36.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections36.txt new file mode 100644 index 00000000..edc10d9b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections36.txt @@ -0,0 +1,37 @@ +switch_id node1 node2 open +0 12 13 0 +1 13 7 0 +2 12 0 1 +3 14 15 0 +4 15 9 0 +5 14 1 0 +6 16 17 0 +7 17 10 0 +8 16 2 0 +9 18 19 0 +10 19 11 0 +11 3 18 1 +12 20 21 0 +13 20 6 0 +14 21 9 0 +15 22 23 0 +16 23 8 0 +17 22 11 0 +18 24 25 0 +19 25 8 0 +20 4 24 0 +21 26 27 0 +22 27 6 0 +23 5 26 0 +24 28 29 1 +25 29 6 1 +26 28 7 1 +27 30 31 1 +28 31 7 1 +29 30 8 1 +30 32 33 0 +31 33 9 0 +32 32 10 0 +33 34 35 0 +34 35 10 0 +35 34 11 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections37.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections37.txt new file mode 100644 index 00000000..e638b731 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections37.txt @@ -0,0 +1,103 @@ +switch_id node1 node2 open +0 0 38 0 +1 38 19 1 +2 38 25 0 +3 38 31 1 +4 0 37 1 +5 1 39 0 +6 39 17 0 +7 39 23 1 +8 39 29 1 +9 1 35 1 +10 2 40 0 +11 40 15 1 +12 40 21 0 +13 40 27 1 +14 2 33 1 +15 3 41 0 +16 41 17 1 +17 41 23 0 +18 41 29 1 +19 3 35 1 +20 4 42 0 +21 42 15 0 +22 42 21 1 +23 42 27 1 +24 5 43 0 +25 43 16 0 +26 43 22 1 +27 43 28 1 +28 5 34 1 +29 6 44 0 +30 44 18 0 +31 44 24 1 +32 44 30 1 +33 6 36 1 +34 7 45 0 +35 45 17 1 +36 45 23 0 +37 45 29 1 +38 8 46 0 +39 46 16 0 +40 46 22 1 +41 46 28 1 +42 9 47 0 +43 47 14 0 +44 47 20 1 +45 47 26 1 +46 9 32 1 +47 10 48 0 +48 48 16 0 +49 48 22 1 +50 48 28 1 +51 10 34 1 +52 11 49 0 +53 49 15 1 +54 49 21 0 +55 49 27 1 +56 12 50 0 +57 50 15 1 +58 50 21 0 +59 50 27 1 +60 51 52 1 +61 52 14 1 +62 52 20 1 +63 51 20 1 +64 51 26 1 +65 53 54 1 +66 54 18 1 +67 54 24 1 +68 53 30 1 +69 55 56 1 +70 55 14 1 +71 55 20 1 +72 55 26 1 +73 56 32 1 +74 15 14 0 +75 21 20 0 +76 27 26 0 +77 16 15 0 +78 22 21 0 +79 28 27 0 +80 17 16 0 +81 23 22 0 +82 29 28 0 +83 30 29 0 +84 13 57 0 +85 57 17 0 +86 57 23 1 +87 57 29 1 +88 18 17 0 +89 19 18 0 +90 24 23 0 +91 25 24 0 +92 31 30 0 +93 33 32 0 +94 34 33 0 +95 35 34 0 +96 36 35 0 +97 37 36 0 +98 58 59 0 +99 59 20 0 +100 60 61 0 +101 61 14 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections38.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections38.txt new file mode 100644 index 00000000..c5cc0e0f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections38.txt @@ -0,0 +1,65 @@ +switch_id node1 node2 open +0 0 22 0 +1 22 17 0 +2 22 19 1 +3 1 23 0 +4 23 17 1 +5 23 19 0 +6 2 24 0 +7 24 16 0 +8 24 18 1 +9 3 25 0 +10 25 16 1 +11 25 18 0 +12 4 26 1 +13 26 17 1 +14 26 19 1 +15 5 27 0 +16 27 17 0 +17 27 19 1 +18 6 28 0 +19 28 17 1 +20 28 19 0 +21 7 29 0 +22 29 17 0 +23 29 19 1 +24 8 30 0 +25 30 16 1 +26 30 18 1 +27 30 20 0 +28 9 31 0 +29 31 16 0 +30 31 18 1 +31 31 20 1 +32 10 32 0 +33 32 16 1 +34 32 18 1 +35 32 20 0 +36 11 33 0 +37 33 16 0 +38 33 18 1 +39 33 20 1 +40 34 35 1 +41 35 16 1 +42 34 18 1 +43 36 37 0 +44 37 16 1 +45 37 18 0 +46 36 18 1 +47 36 20 0 +48 21 20 0 +49 17 16 0 +50 19 18 0 +51 12 38 0 +52 38 17 1 +53 38 19 1 +54 38 21 0 +55 13 39 0 +56 39 17 0 +57 39 19 1 +58 14 40 0 +59 40 17 0 +60 40 19 1 +61 15 41 0 +62 41 17 1 +63 41 19 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections39.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections39.txt new file mode 100644 index 00000000..365ffc17 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections39.txt @@ -0,0 +1,52 @@ +switch_id node1 node2 open +0 0 17 0 +1 17 13 1 +2 17 15 0 +3 1 18 0 +4 18 13 0 +5 18 15 1 +6 2 19 0 +7 19 13 0 +8 19 15 1 +9 3 20 0 +10 20 14 1 +11 20 16 0 +12 4 21 0 +13 21 13 0 +14 21 15 1 +15 5 22 0 +16 22 14 1 +17 22 16 0 +18 23 24 1 +19 24 13 0 +20 23 15 0 +21 25 26 1 +22 25 14 0 +23 26 16 0 +24 6 27 0 +25 27 13 1 +26 27 15 0 +27 7 28 0 +28 28 14 0 +29 28 16 1 +30 29 30 0 +31 30 13 0 +32 29 14 0 +33 31 32 0 +34 32 15 0 +35 31 16 0 +36 8 33 0 +37 33 14 0 +38 33 16 1 +39 9 34 0 +40 34 14 1 +41 34 16 0 +42 10 35 0 +43 35 13 1 +44 35 15 0 +45 11 36 0 +46 36 13 1 +47 36 15 0 +48 12 37 0 +49 37 13 0 +50 37 15 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections4.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections4.txt new file mode 100644 index 00000000..b3328bbd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections4.txt @@ -0,0 +1,51 @@ +switch_id node1 node2 open +0 0 15 1 +1 1 16 0 +2 1 17 1 +3 0 16 1 +4 1 18 1 +5 1 19 1 +6 1 20 0 +7 1 21 1 +8 0 18 0 +9 1 22 0 +10 0 21 0 +11 0 20 1 +12 1 23 0 +13 0 24 0 +14 1 25 0 +15 1 15 0 +16 0 17 0 +17 0 26 1 +18 0 27 1 +19 1 26 0 +20 0 23 1 +21 28 0 0 +22 1 29 1 +23 1 27 0 +24 1 24 1 +25 0 19 0 +26 0 25 1 +27 0 29 0 +28 21 34 0 +29 23 32 0 +30 22 28 0 +31 16 12 0 +32 18 8 0 +33 17 7 0 +34 15 13 0 +35 24 9 0 +36 25 11 0 +37 26 10 0 +38 20 14 0 +39 27 5 0 +40 29 30 0 +41 19 6 0 +42 31 30 0 +43 3 30 0 +44 33 32 0 +45 4 32 0 +46 35 34 0 +47 2 34 0 +48 36 30 0 +49 37 32 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections40.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections40.txt new file mode 100644 index 00000000..eb531350 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections40.txt @@ -0,0 +1,59 @@ +switch_id node1 node2 open +0 0 20 0 +1 20 18 1 +2 20 19 0 +3 1 21 0 +4 21 18 0 +5 21 19 1 +6 2 22 0 +7 22 17 0 +8 22 18 1 +9 3 23 0 +10 23 17 0 +11 23 18 1 +12 4 24 0 +13 24 18 1 +14 24 19 0 +15 5 25 0 +16 25 18 0 +17 25 19 1 +18 6 26 0 +19 26 17 0 +20 26 18 1 +21 7 27 0 +22 27 17 1 +23 27 18 0 +24 8 28 0 +25 28 17 0 +26 28 18 1 +27 9 29 0 +28 29 17 0 +29 29 18 1 +30 10 30 0 +31 30 18 1 +32 30 19 0 +33 11 31 0 +34 31 17 1 +35 31 18 0 +36 12 32 0 +37 32 18 0 +38 32 19 1 +39 13 33 0 +40 33 17 1 +41 33 18 0 +42 34 35 1 +43 35 17 1 +44 35 18 0 +45 34 18 1 +46 34 19 0 +47 36 17 0 +48 36 19 0 +49 14 37 0 +50 37 18 0 +51 37 19 1 +52 15 38 0 +53 38 18 0 +54 38 19 1 +55 16 39 0 +56 39 18 0 +57 39 19 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections41.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections41.txt new file mode 100644 index 00000000..f6390ae7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections41.txt @@ -0,0 +1,37 @@ +switch_id node1 node2 open +0 0 10 0 +1 10 9 1 +2 10 11 0 +3 11 7 1 +4 11 8 0 +5 1 12 0 +6 12 7 1 +7 12 8 0 +8 1 9 1 +9 2 9 1 +10 2 13 0 +11 13 7 1 +12 13 8 0 +13 3 14 0 +14 14 7 0 +15 14 8 1 +16 3 9 1 +17 15 16 1 +18 16 7 1 +19 15 8 1 +20 15 9 0 +21 17 18 0 +22 18 7 0 +23 17 8 0 +24 4 19 0 +25 19 7 1 +26 19 8 0 +27 4 9 1 +28 5 20 0 +29 20 7 0 +30 20 8 1 +31 5 9 1 +32 6 21 0 +33 21 7 0 +34 21 8 1 +35 6 9 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections42.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections42.txt new file mode 100644 index 00000000..53b89cf6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections42.txt @@ -0,0 +1,67 @@ +switch_id node1 node2 open +0 18 19 1 +1 19 10 1 +2 19 12 1 +3 0 18 1 +4 0 16 1 +5 20 21 0 +6 21 10 0 +7 21 12 1 +8 1 20 0 +9 1 16 1 +10 22 23 0 +11 23 11 0 +12 23 13 1 +13 2 22 0 +14 2 15 1 +15 3 24 0 +16 3 16 1 +17 24 25 0 +18 25 10 1 +19 25 12 0 +20 26 27 1 +21 27 11 1 +22 27 13 0 +23 4 26 0 +24 4 17 1 +25 28 29 0 +26 29 10 0 +27 29 12 1 +28 5 28 0 +29 5 16 1 +30 30 31 1 +31 31 11 1 +32 31 13 0 +33 6 30 0 +34 6 17 1 +35 32 33 0 +36 33 10 1 +37 33 12 0 +38 7 32 0 +39 7 14 1 +40 34 35 0 +41 35 10 0 +42 35 12 1 +43 8 34 0 +44 8 14 1 +45 36 37 1 +46 37 11 1 +47 37 13 1 +48 36 15 1 +49 38 39 0 +50 38 10 0 +51 38 12 1 +52 39 16 0 +53 40 11 0 +54 40 15 1 +55 41 12 0 +56 41 16 0 +57 9 42 0 +58 42 10 1 +59 42 12 0 +60 11 10 0 +61 13 12 0 +62 15 14 0 +63 17 16 0 +64 43 44 0 +65 44 10 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections43.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections43.txt new file mode 100644 index 00000000..eb0df5ab --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections43.txt @@ -0,0 +1,48 @@ +switch_id node1 node2 open +0 0 17 0 +1 17 13 0 +2 1 18 0 +3 18 14 0 +4 2 19 0 +5 19 13 0 +6 3 20 0 +7 20 14 0 +8 4 21 0 +9 21 14 0 +10 21 16 1 +11 5 22 0 +12 22 13 0 +13 22 15 1 +14 6 23 1 +15 23 14 1 +16 23 16 1 +17 7 24 0 +18 24 14 0 +19 24 16 1 +20 8 25 1 +21 25 13 0 +22 25 15 1 +23 9 26 1 +24 26 13 0 +25 26 15 1 +26 10 27 1 +27 27 13 0 +28 27 15 1 +29 11 28 1 +30 28 13 0 +31 28 15 1 +32 12 29 1 +33 29 14 0 +34 29 16 1 +35 30 31 1 +36 30 13 0 +37 31 15 1 +38 32 33 1 +39 33 14 0 +40 32 16 0 +41 34 35 0 +42 35 13 0 +43 34 14 0 +44 36 37 0 +45 37 15 0 +46 36 16 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections44.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections44.txt new file mode 100644 index 00000000..3f88675c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections44.txt @@ -0,0 +1,33 @@ +switch_id node1 node2 open +0 0 12 1 +1 12 9 0 +2 0 11 1 +3 1 13 0 +4 13 8 0 +5 1 10 1 +6 2 14 0 +7 14 9 0 +8 2 11 1 +9 3 15 1 +10 15 9 0 +11 3 11 1 +12 4 16 0 +13 16 9 0 +14 4 11 1 +15 5 17 1 +16 17 8 0 +17 5 10 1 +18 6 18 1 +19 18 8 0 +20 6 10 1 +21 7 19 1 +22 19 8 0 +23 7 10 1 +24 20 21 1 +25 20 8 1 +26 20 9 0 +27 21 11 1 +28 11 10 0 +29 22 23 0 +30 23 8 0 +31 22 9 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections45.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections45.txt new file mode 100644 index 00000000..46fa87bf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections45.txt @@ -0,0 +1,58 @@ +switch_id node1 node2 open +0 0 16 0 +1 16 9 0 +2 16 11 1 +3 16 13 1 +4 0 15 1 +5 1 17 0 +6 17 9 1 +7 17 11 0 +8 17 13 1 +9 1 15 1 +10 2 18 0 +11 18 9 1 +12 18 11 0 +13 18 13 1 +14 2 15 1 +15 3 19 0 +16 19 8 0 +17 19 10 1 +18 19 12 1 +19 3 14 1 +20 4 20 0 +21 20 8 0 +22 20 10 1 +23 20 12 1 +24 4 14 1 +25 5 21 0 +26 21 8 1 +27 21 10 0 +28 21 12 1 +29 5 14 1 +30 6 22 0 +31 22 9 0 +32 22 11 1 +33 22 13 1 +34 6 15 1 +35 23 24 1 +36 24 9 1 +37 24 11 1 +38 24 13 1 +39 23 15 0 +40 25 11 1 +41 25 13 1 +42 25 15 0 +43 26 27 0 +44 27 8 0 +45 27 10 1 +46 26 10 0 +47 26 12 1 +48 9 8 0 +49 11 10 0 +50 13 12 0 +51 15 14 0 +52 7 28 0 +53 28 9 1 +54 28 11 0 +55 28 13 1 +56 7 15 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections46.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections46.txt new file mode 100644 index 00000000..ece94611 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections46.txt @@ -0,0 +1,98 @@ +switch_id node1 node2 open +0 0 19 0 +1 19 14 0 +2 19 15 1 +3 19 16 1 +4 19 17 1 +5 0 18 1 +6 1 20 0 +7 20 14 0 +8 20 15 1 +9 20 16 1 +10 20 17 1 +11 1 18 1 +12 2 21 0 +13 21 14 1 +14 21 15 0 +15 21 16 1 +16 21 17 1 +17 2 18 1 +18 3 22 0 +19 22 14 0 +20 22 15 1 +21 22 16 1 +22 22 17 1 +23 3 18 1 +24 4 23 0 +25 23 14 0 +26 23 15 1 +27 23 16 1 +28 23 17 1 +29 4 18 1 +30 5 24 0 +31 24 14 0 +32 24 15 1 +33 24 16 1 +34 24 17 1 +35 5 18 1 +36 6 25 0 +37 25 14 1 +38 25 15 0 +39 25 16 1 +40 25 17 1 +41 6 18 1 +42 7 26 0 +43 26 14 0 +44 26 15 1 +45 26 16 1 +46 26 17 1 +47 7 18 1 +48 8 27 0 +49 27 14 0 +50 27 15 1 +51 27 16 1 +52 27 17 1 +53 8 18 1 +54 9 28 0 +55 28 14 1 +56 28 15 0 +57 28 16 1 +58 28 17 1 +59 9 18 1 +60 29 30 0 +61 29 14 0 +62 29 15 1 +63 30 15 0 +64 30 16 1 +65 29 16 1 +66 30 17 1 +67 31 32 1 +68 31 14 1 +69 31 15 1 +70 31 16 1 +71 32 18 0 +72 31 17 1 +73 10 33 0 +74 33 14 1 +75 33 15 0 +76 33 16 1 +77 33 17 1 +78 10 18 1 +79 11 34 0 +80 34 14 0 +81 34 15 1 +82 34 16 1 +83 34 17 1 +84 11 18 1 +85 12 35 0 +86 35 14 0 +87 35 15 1 +88 35 16 1 +89 35 17 1 +90 12 18 1 +91 13 36 0 +92 36 14 1 +93 36 15 0 +94 36 16 1 +95 36 17 1 +96 13 18 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections47.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections47.txt new file mode 100644 index 00000000..d3ae5ecf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections47.txt @@ -0,0 +1,84 @@ +switch_id node1 node2 open +0 0 21 0 +1 21 13 1 +2 21 16 0 +3 21 19 1 +4 0 13 1 +5 1 22 0 +6 22 13 1 +7 22 16 1 +8 22 19 0 +9 1 13 1 +10 2 23 0 +11 23 14 0 +12 23 17 1 +13 24 25 0 +14 25 13 1 +15 25 16 0 +16 24 16 1 +17 24 19 0 +18 26 27 1 +19 27 13 1 +20 27 16 1 +21 26 16 1 +22 26 19 1 +23 28 29 0 +24 28 12 0 +25 29 14 0 +26 28 15 1 +27 29 17 1 +28 28 18 1 +29 28 20 1 +30 30 31 0 +31 30 12 0 +32 31 14 0 +33 30 15 1 +34 31 17 1 +35 30 18 1 +36 30 20 1 +37 32 33 0 +38 33 12 1 +39 32 13 1 +40 33 15 1 +41 32 16 1 +42 33 18 1 +43 32 19 0 +44 33 20 1 +45 3 34 0 +46 34 14 0 +47 34 17 1 +48 4 35 0 +49 35 13 1 +50 35 16 0 +51 35 19 1 +52 36 19 1 +53 6 19 1 +54 7 37 1 +55 37 13 1 +56 37 16 1 +57 37 19 1 +58 7 13 1 +59 8 38 1 +60 38 14 1 +61 38 17 1 +62 5 39 1 +63 39 13 1 +64 39 16 1 +65 39 19 1 +66 5 13 1 +67 6 36 1 +68 36 13 1 +69 36 16 1 +70 9 40 1 +71 40 14 1 +72 40 17 1 +73 10 41 1 +74 41 12 1 +75 41 15 1 +76 41 18 1 +77 41 20 1 +78 11 42 0 +79 42 13 1 +80 42 16 0 +81 42 19 1 +82 4 13 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections48.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections48.txt new file mode 100644 index 00000000..67fbc760 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections48.txt @@ -0,0 +1,47 @@ +switch_id node1 node2 open +0 0 11 0 +1 11 7 1 +2 11 8 1 +3 11 9 0 +4 0 10 1 +5 1 12 0 +6 12 7 0 +7 12 8 1 +8 12 9 1 +9 1 10 1 +10 13 2 0 +11 13 7 0 +12 13 8 1 +13 13 9 1 +14 2 10 1 +15 3 14 0 +16 14 7 1 +17 14 8 1 +18 14 9 0 +19 3 10 1 +20 15 16 1 +21 16 7 0 +22 16 8 1 +23 15 8 1 +24 15 9 0 +25 17 18 1 +26 18 7 1 +27 18 8 1 +28 18 9 1 +29 17 10 0 +30 19 8 1 +31 19 9 1 +32 19 10 0 +33 4 20 0 +34 20 7 0 +35 20 8 1 +36 20 9 1 +37 4 10 1 +38 5 21 0 +39 21 8 1 +40 21 9 0 +41 6 22 1 +42 22 7 1 +43 22 8 1 +44 22 9 1 +45 6 10 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections49.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections49.txt new file mode 100644 index 00000000..56c76a1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections49.txt @@ -0,0 +1,91 @@ +switch_id node1 node2 open +0 0 20 0 +1 20 16 0 +2 20 17 1 +3 20 18 1 +4 0 19 1 +5 1 21 0 +6 21 16 1 +7 21 17 0 +8 21 18 1 +9 1 19 1 +10 2 22 0 +11 22 16 0 +12 22 17 0 +13 22 18 0 +14 3 23 0 +15 23 16 0 +16 23 17 1 +17 23 18 1 +18 3 19 1 +19 4 24 0 +20 24 16 0 +21 24 17 1 +22 24 18 1 +23 4 19 1 +24 5 25 0 +25 25 16 1 +26 25 17 0 +27 25 18 1 +28 5 19 1 +29 6 26 0 +30 26 16 0 +31 26 17 0 +32 26 18 0 +33 7 27 0 +34 27 16 1 +35 27 17 0 +36 27 18 1 +37 7 19 1 +38 8 28 0 +39 28 16 1 +40 28 17 1 +41 28 18 0 +42 8 19 1 +43 9 29 0 +44 29 16 1 +45 29 17 1 +46 29 18 0 +47 9 19 1 +48 10 30 0 +49 30 16 0 +50 30 17 1 +51 30 18 1 +52 10 19 1 +53 31 32 1 +54 32 16 1 +55 32 17 0 +56 31 17 1 +57 31 18 0 +58 33 34 1 +59 34 16 1 +60 34 17 1 +61 33 17 1 +62 34 18 1 +63 33 18 1 +64 33 19 0 +65 11 35 0 +66 35 16 1 +67 35 17 0 +68 35 18 1 +69 35 19 1 +70 12 36 0 +71 36 16 1 +72 36 17 1 +73 36 18 0 +74 12 19 1 +75 13 37 0 +76 37 16 0 +77 37 17 1 +78 37 18 1 +79 13 19 1 +80 14 38 0 +81 38 16 0 +82 38 17 1 +83 38 18 1 +84 14 19 1 +85 15 39 0 +86 39 16 1 +87 39 17 0 +88 39 18 1 +89 15 19 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections5.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections5.txt new file mode 100644 index 00000000..b2142704 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections5.txt @@ -0,0 +1,40 @@ +switch_id node1 node2 open +0 2 15 1 +1 16 11 0 +2 1 17 1 +3 0 18 1 +4 2 18 0 +5 3 19 1 +6 2 3 0 +7 20 1 0 +8 0 21 0 +9 3 22 0 +10 0 15 0 +11 2 23 1 +12 2 21 1 +13 3 24 0 +14 1 24 1 +15 1 25 0 +16 2 26 1 +17 0 27 1 +18 0 1 0 +19 3 28 0 +20 1 22 1 +21 0 23 0 +22 0 26 0 +23 3 25 1 +24 3 17 0 +25 2 27 0 +26 1 19 0 +27 18 16 0 +28 19 10 0 +29 26 9 0 +30 27 4 0 +31 23 13 0 +32 25 6 0 +33 15 7 0 +34 21 8 0 +35 28 20 0 +36 17 14 0 +37 22 12 0 +38 24 5 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections50.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections50.txt new file mode 100644 index 00000000..cdba24f7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections50.txt @@ -0,0 +1,36 @@ +switch_id node1 node2 open +0 0 20 0 +1 20 7 0 +2 0 15 1 +3 20 19 0 +4 1 21 0 +5 21 10 1 +6 1 14 1 +7 21 18 0 +8 2 22 0 +9 22 4 0 +10 2 12 1 +11 22 16 0 +12 3 23 0 +13 23 9 1 +14 3 13 1 +15 23 17 0 +16 24 25 1 +17 25 7 1 +18 24 15 0 +19 26 11 1 +20 26 15 0 +21 17 16 0 +22 19 18 0 +23 5 4 0 +24 6 5 0 +25 7 6 0 +26 9 8 0 +27 10 9 0 +28 11 10 0 +29 13 12 0 +30 14 13 0 +31 15 14 0 +32 18 17 1 +33 27 28 0 +34 28 4 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections51.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections51.txt new file mode 100644 index 00000000..11bfa12f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections51.txt @@ -0,0 +1,59 @@ +switch_id node1 node2 open +0 0 13 0 +1 13 9 1 +2 13 10 0 +3 13 11 1 +4 0 12 1 +5 1 14 0 +6 14 9 1 +7 14 10 1 +8 14 11 0 +9 1 12 1 +10 2 15 0 +11 15 9 1 +12 15 10 1 +13 15 11 0 +14 2 12 1 +15 3 16 0 +16 16 9 1 +17 16 10 0 +18 16 11 1 +19 3 12 1 +20 4 17 0 +21 17 9 1 +22 17 10 1 +23 17 11 0 +24 4 12 1 +25 5 18 0 +26 18 9 1 +27 18 10 0 +28 18 11 1 +29 5 12 1 +30 6 19 0 +31 19 9 1 +32 19 10 0 +33 19 11 1 +34 6 12 1 +35 20 21 1 +36 21 9 1 +37 21 10 1 +38 20 12 0 +39 21 11 1 +40 22 10 1 +41 22 12 0 +42 22 11 1 +43 23 24 0 +44 23 9 1 +45 23 10 0 +46 24 10 1 +47 24 11 0 +48 7 25 0 +49 25 9 1 +50 25 10 1 +51 25 11 0 +52 7 12 1 +53 8 26 0 +54 26 9 1 +55 26 10 0 +56 26 11 1 +57 8 12 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections52.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections52.txt new file mode 100644 index 00000000..cffff62a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections52.txt @@ -0,0 +1,41 @@ +switch_id node1 node2 open +0 0 14 0 +1 14 10 0 +2 14 12 1 +3 1 15 0 +4 15 11 1 +5 15 13 0 +6 2 16 0 +7 16 10 1 +8 16 12 0 +9 3 17 0 +10 17 11 0 +11 17 13 1 +12 18 19 0 +13 19 11 0 +14 19 13 1 +15 4 18 0 +16 20 21 0 +17 21 10 1 +18 21 12 0 +19 5 20 0 +20 6 4 1 +21 7 5 1 +22 22 23 0 +23 22 10 0 +24 23 12 0 +25 24 25 0 +26 24 11 0 +27 25 13 0 +28 8 26 0 +29 26 10 0 +30 26 12 1 +31 9 27 0 +32 27 11 1 +33 27 13 0 +34 28 29 1 +35 29 10 0 +36 28 11 0 +37 30 31 1 +38 31 12 0 +39 30 13 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections53.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections53.txt new file mode 100644 index 00000000..747570a8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections53.txt @@ -0,0 +1,34 @@ +switch_id node1 node2 open +0 0 14 0 +1 14 5 0 +2 14 8 1 +3 0 11 1 +4 1 15 0 +5 15 7 1 +6 15 10 0 +7 1 13 1 +8 2 16 0 +9 16 5 0 +10 16 8 1 +11 2 11 1 +12 3 17 0 +13 17 7 1 +14 17 10 0 +15 3 13 1 +16 18 19 0 +17 19 6 0 +18 18 6 1 +19 18 9 0 +20 19 12 1 +21 6 5 0 +22 9 8 0 +23 12 11 0 +24 7 6 0 +25 10 9 0 +26 13 12 0 +27 4 20 1 +28 20 5 1 +29 20 8 1 +30 4 11 1 +31 21 22 0 +32 22 5 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections54.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections54.txt new file mode 100644 index 00000000..e891f0a8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections54.txt @@ -0,0 +1,36 @@ +switch_id node1 node2 open +0 0 13 0 +1 13 7 0 +2 0 10 1 +3 1 14 0 +4 14 9 0 +5 1 12 1 +6 2 15 0 +7 15 9 0 +8 2 12 1 +9 3 16 0 +10 16 10 1 +11 16 17 1 +12 17 7 0 +13 4 18 0 +14 18 10 1 +15 18 19 1 +16 19 7 0 +17 5 20 0 +18 20 12 1 +19 20 21 1 +20 21 9 0 +21 6 22 0 +22 22 12 1 +23 22 23 1 +24 23 9 0 +25 24 25 1 +26 25 8 1 +27 24 9 1 +28 24 12 1 +29 8 7 0 +30 11 10 0 +31 12 11 0 +32 9 8 0 +33 26 27 0 +34 27 7 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections55.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections55.txt new file mode 100644 index 00000000..4ba783d8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections55.txt @@ -0,0 +1,39 @@ +switch_id node1 node2 open +0 0 15 0 +1 15 11 0 +2 15 13 1 +3 1 16 0 +4 16 12 1 +5 16 14 0 +6 2 17 0 +7 17 11 1 +8 17 13 0 +9 3 18 0 +10 18 12 0 +11 18 14 1 +12 4 19 0 +13 19 11 0 +14 19 13 1 +15 5 20 0 +16 20 12 1 +17 20 14 0 +18 21 22 1 +19 21 11 0 +20 22 13 0 +21 12 11 0 +22 14 13 0 +23 6 23 0 +24 23 11 1 +25 23 13 0 +26 7 24 0 +27 24 11 1 +28 24 13 0 +29 8 25 0 +30 25 11 0 +31 25 13 1 +32 9 26 0 +33 26 12 0 +34 26 14 1 +35 10 27 0 +36 27 12 1 +37 27 14 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections56.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections56.txt new file mode 100644 index 00000000..a99dd488 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections56.txt @@ -0,0 +1,75 @@ +switch_id node1 node2 open +0 0 26 0 +1 26 20 0 +2 26 23 1 +3 1 27 0 +4 27 21 1 +5 27 24 0 +6 2 28 0 +7 28 20 1 +8 28 23 0 +9 3 29 0 +10 29 20 1 +11 29 23 0 +12 4 30 0 +13 30 21 1 +14 30 24 0 +15 5 31 1 +16 31 22 1 +17 31 25 0 +18 6 32 0 +19 32 22 0 +20 32 25 1 +21 7 33 0 +22 33 21 1 +23 33 24 0 +24 8 34 0 +25 34 22 0 +26 34 25 1 +27 9 35 0 +28 35 21 1 +29 35 24 0 +30 10 36 0 +31 36 22 1 +32 36 25 0 +33 11 37 0 +34 37 20 0 +35 37 23 1 +36 12 38 0 +37 38 21 1 +38 38 24 0 +39 39 40 0 +40 40 20 0 +41 39 23 0 +42 41 42 1 +43 41 22 0 +44 42 25 0 +45 21 20 0 +46 24 23 0 +47 13 43 0 +48 43 20 1 +49 43 23 0 +50 14 44 0 +51 44 20 1 +52 44 23 0 +53 15 45 0 +54 45 21 1 +55 45 24 0 +56 16 46 0 +57 46 21 0 +58 46 24 1 +59 17 47 0 +60 47 20 0 +61 47 23 1 +62 18 48 0 +63 48 22 0 +64 48 25 1 +65 19 49 0 +66 49 20 0 +67 49 23 1 +68 50 51 1 +69 51 21 0 +70 50 22 0 +71 52 53 0 +72 53 24 0 +73 52 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections57.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections57.txt new file mode 100644 index 00000000..236f2c54 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections57.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 7 0 +1 0 17 0 +2 0 1 1 +3 1 9 0 +4 1 19 0 +5 1 2 1 +6 2 5 0 +7 2 15 0 +8 2 3 1 +9 3 4 1 +10 3 23 0 +11 3 13 0 +12 4 11 0 +13 4 21 0 +14 5 6 0 +15 7 8 0 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 1 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections58.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections58.txt new file mode 100644 index 00000000..d4886649 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections58.txt @@ -0,0 +1,78 @@ +switch_id node1 node2 open +0 0 34 0 +1 0 32 1 +2 0 26 0 +3 0 6 0 +4 0 40 1 +5 0 8 1 +6 0 1 1 +7 0 15 0 +8 0 13 1 +9 1 42 1 +10 1 10 0 +11 1 24 1 +12 1 36 0 +13 1 22 1 +14 1 38 1 +15 1 17 0 +16 1 30 0 +17 1 19 1 +18 2 34 1 +19 2 32 1 +20 2 26 1 +21 2 6 1 +22 2 40 0 +23 2 8 1 +24 2 3 0 +25 2 15 1 +26 2 13 0 +27 16 2 1 +28 3 42 0 +29 3 10 1 +30 3 24 0 +31 3 36 1 +32 3 22 0 +33 3 38 1 +34 3 17 1 +35 3 30 1 +36 3 19 1 +37 18 3 1 +38 4 34 1 +39 4 32 0 +40 4 26 1 +41 4 6 1 +42 4 40 1 +43 4 8 0 +44 4 5 1 +45 4 13 1 +46 16 4 0 +47 5 42 1 +48 5 10 1 +49 5 24 1 +50 5 36 1 +51 5 22 1 +52 5 38 0 +53 5 30 1 +54 5 19 0 +55 18 5 0 +56 6 7 0 +57 8 9 0 +58 10 11 0 +59 20 12 0 +60 13 14 1 +61 15 16 0 +62 17 18 0 +63 19 20 0 +64 20 21 0 +65 22 23 0 +66 24 25 0 +67 26 27 0 +68 28 27 0 +69 29 27 1 +70 30 31 0 +71 32 33 0 +72 34 35 0 +73 36 37 0 +74 38 39 0 +75 40 41 0 +76 42 43 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections59.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections59.txt new file mode 100644 index 00000000..679a20ef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections59.txt @@ -0,0 +1,39 @@ +switch_id node1 node2 open +0 0 16 0 +1 0 4 0 +2 0 26 1 +3 0 6 1 +4 0 1 1 +5 0 24 0 +6 15 0 0 +7 1 22 1 +8 1 12 0 +9 1 8 0 +10 1 10 1 +11 1 20 0 +12 1 18 1 +13 2 14 0 +14 2 16 1 +15 2 4 1 +16 2 26 0 +17 2 6 0 +18 2 3 0 +19 2 24 1 +20 3 22 0 +21 3 12 1 +22 3 8 1 +23 3 10 0 +24 3 20 1 +25 3 18 0 +26 4 5 0 +27 6 7 0 +28 8 9 0 +29 10 11 0 +30 12 13 0 +31 14 15 0 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 23 0 +36 24 25 0 +37 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections6.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections6.txt new file mode 100644 index 00000000..65a1c07e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections6.txt @@ -0,0 +1,49 @@ +switch_id node1 node2 open +0 2 16 1 +1 0 17 0 +2 2 18 1 +3 3 19 1 +4 2 20 0 +5 2 21 0 +6 1 19 0 +7 2 22 0 +8 0 20 1 +9 1 23 1 +10 1 24 0 +11 25 1 0 +12 3 23 1 +13 0 22 1 +14 0 18 0 +15 3 24 1 +16 2 17 1 +17 1 26 1 +18 2 27 0 +19 2 28 1 +20 1 29 1 +21 0 30 0 +22 3 29 0 +23 31 0 0 +24 0 28 0 +25 0 32 1 +26 2 32 0 +27 0 16 1 +28 33 3 0 +29 3 34 0 +30 35 1 0 +31 3 26 0 +32 20 12 0 +33 24 10 0 +34 29 6 0 +35 28 13 0 +36 21 31 0 +37 34 25 0 +38 23 14 1 +39 27 33 0 +40 22 15 0 +41 26 7 0 +42 30 35 0 +43 19 9 0 +44 17 11 0 +45 18 4 0 +46 32 5 0 +47 16 8 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections60.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections60.txt new file mode 100644 index 00000000..155ebe1a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections60.txt @@ -0,0 +1,56 @@ +switch_id node1 node2 open +0 0 24 0 +1 0 36 1 +2 0 10 1 +3 0 34 1 +4 0 20 1 +5 0 32 0 +6 0 22 1 +7 0 38 1 +8 0 2 0 +9 0 26 0 +10 0 4 1 +11 0 30 1 +12 0 15 1 +13 0 18 1 +14 0 6 0 +15 0 8 1 +16 14 0 0 +17 1 13 0 +18 1 24 1 +19 1 36 0 +20 1 10 0 +21 1 34 0 +22 1 20 1 +23 1 32 1 +24 1 22 0 +25 1 38 0 +26 1 2 1 +27 1 26 1 +28 1 4 0 +29 1 30 0 +30 1 15 1 +31 1 18 0 +32 1 6 1 +33 1 8 0 +34 2 3 0 +35 4 5 0 +36 6 7 0 +37 8 9 0 +38 10 11 0 +39 16 12 0 +40 13 14 1 +41 15 16 0 +42 16 17 0 +43 18 19 0 +44 20 21 1 +45 22 23 0 +46 24 25 0 +47 26 27 0 +48 28 27 0 +49 29 27 0 +50 30 31 0 +51 32 33 0 +52 34 35 0 +53 36 37 0 +54 38 39 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections61.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections61.txt new file mode 100644 index 00000000..21728b90 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections61.txt @@ -0,0 +1,60 @@ +switch_id node1 node2 open +0 0 2 0 +1 0 37 0 +2 0 39 0 +3 0 20 0 +4 0 18 1 +5 0 31 1 +6 0 41 0 +7 1 0 0 +8 1 10 0 +9 1 8 1 +10 1 35 1 +11 1 6 1 +12 13 1 0 +13 2 33 1 +14 2 14 0 +15 2 22 0 +16 2 26 1 +17 2 16 1 +18 3 37 1 +19 3 39 1 +20 3 20 1 +21 3 18 0 +22 3 31 0 +23 3 41 1 +24 4 3 0 +25 4 6 0 +26 4 12 0 +27 4 10 1 +28 4 8 0 +29 4 35 0 +30 5 4 0 +31 5 33 0 +32 5 22 1 +33 5 26 0 +34 5 14 1 +35 5 16 0 +36 6 7 0 +37 8 9 0 +38 10 11 0 +39 12 13 1 +40 14 15 0 +41 16 17 0 +42 18 19 0 +43 20 21 0 +44 22 23 0 +45 24 23 0 +46 25 23 0 +47 26 27 0 +48 28 27 0 +49 29 27 1 +50 30 27 0 +51 31 32 0 +52 33 34 0 +53 35 36 0 +54 37 38 0 +55 39 40 0 +56 41 42 0 +57 43 23 1 +58 44 27 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections62.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections62.txt new file mode 100644 index 00000000..5e7c10a4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections62.txt @@ -0,0 +1,67 @@ +switch_id node1 node2 open +0 0 40 1 +1 0 42 1 +2 0 30 0 +3 0 34 1 +4 0 18 1 +5 0 8 0 +6 0 37 0 +7 0 24 0 +8 15 0 0 +9 1 44 0 +10 1 28 1 +11 1 26 0 +12 1 6 1 +13 1 32 0 +14 1 16 1 +15 1 4 0 +16 1 22 0 +17 1 46 1 +18 1 20 1 +19 1 10 1 +20 13 1 0 +21 36 1 0 +22 2 14 0 +23 2 40 0 +24 2 42 0 +25 2 30 1 +26 2 34 0 +27 2 18 0 +28 2 8 1 +29 2 39 0 +30 2 24 1 +31 3 44 1 +32 3 28 0 +33 3 26 1 +34 3 6 0 +35 3 32 1 +36 3 16 0 +37 3 4 1 +38 3 22 1 +39 3 46 0 +40 3 12 0 +41 3 20 0 +42 3 10 0 +43 38 3 0 +44 4 5 0 +45 6 7 0 +46 8 9 0 +47 10 11 0 +48 12 13 1 +49 14 15 1 +50 16 17 0 +51 18 19 0 +52 20 21 0 +53 22 23 0 +54 24 25 0 +55 26 27 0 +56 28 29 0 +57 30 31 0 +58 32 33 0 +59 34 35 0 +60 37 36 1 +61 39 38 1 +62 40 41 0 +63 42 43 0 +64 44 45 0 +65 46 47 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections63.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections63.txt new file mode 100644 index 00000000..4f984472 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections63.txt @@ -0,0 +1,121 @@ +switch_id node1 node2 open +0 0 21 1 +1 0 34 1 +2 0 6 1 +3 0 8 1 +4 0 24 1 +5 0 12 1 +6 0 56 0 +7 0 36 0 +8 0 1 1 +9 0 54 1 +10 0 32 1 +11 0 38 1 +12 0 50 1 +13 0 40 0 +14 0 48 1 +15 1 10 0 +16 1 52 1 +17 1 58 1 +18 1 28 1 +19 1 42 1 +20 1 14 0 +21 1 44 0 +22 1 26 1 +23 1 46 1 +24 1 30 1 +25 1 23 0 +26 1 16 1 +27 1 18 1 +28 1 60 0 +29 33 1 1 +30 2 21 0 +31 2 34 0 +32 2 6 1 +33 2 8 0 +34 2 24 0 +35 2 12 1 +36 2 56 1 +37 2 36 1 +38 2 3 0 +39 2 54 1 +40 2 32 0 +41 2 38 0 +42 2 50 1 +43 2 40 1 +44 2 48 1 +45 20 2 1 +46 3 10 1 +47 3 52 0 +48 3 58 1 +49 3 28 1 +50 3 42 1 +51 3 14 1 +52 3 44 1 +53 3 26 0 +54 3 46 0 +55 3 30 1 +56 3 23 1 +57 3 16 1 +58 3 18 0 +59 3 60 1 +60 22 3 0 +61 33 3 1 +62 4 34 1 +63 4 6 1 +64 4 8 1 +65 4 24 1 +66 4 12 0 +67 4 56 1 +68 4 36 1 +69 4 5 1 +70 4 54 0 +71 4 32 1 +72 4 38 1 +73 4 50 0 +74 4 40 1 +75 4 48 0 +76 20 4 0 +77 5 10 1 +78 5 52 1 +79 5 58 0 +80 5 28 0 +81 5 42 0 +82 5 14 1 +83 5 44 1 +84 5 26 1 +85 5 46 1 +86 5 30 0 +87 5 16 0 +88 5 18 1 +89 5 60 1 +90 22 5 1 +91 33 5 0 +92 6 7 1 +93 8 9 0 +94 10 11 0 +95 12 13 0 +96 14 15 0 +97 16 17 1 +98 18 19 1 +99 21 20 0 +100 23 22 0 +101 24 25 0 +102 26 27 0 +103 28 29 0 +104 30 31 0 +105 32 33 1 +106 34 35 0 +107 36 37 0 +108 38 39 0 +109 40 41 0 +110 42 43 0 +111 44 45 0 +112 46 47 0 +113 48 49 0 +114 50 51 0 +115 52 53 0 +116 54 55 0 +117 56 57 0 +118 58 59 0 +119 60 61 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections64.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections64.txt new file mode 100644 index 00000000..e38cb097 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections64.txt @@ -0,0 +1,59 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 24 1 +2 0 34 1 +3 0 28 1 +4 0 32 1 +5 0 8 0 +6 0 6 1 +7 0 12 0 +8 0 22 0 +9 0 38 1 +10 17 0 0 +11 1 2 0 +12 2 26 0 +13 2 20 0 +14 2 14 0 +15 2 36 0 +16 2 30 0 +17 2 10 0 +18 2 40 1 +19 19 2 0 +20 3 4 0 +21 3 16 0 +22 3 24 0 +23 3 34 0 +24 3 28 0 +25 3 32 0 +26 3 8 1 +27 3 6 0 +28 3 12 1 +29 3 22 1 +30 3 38 0 +31 4 5 0 +32 5 18 0 +33 5 26 1 +34 5 20 1 +35 5 14 1 +36 5 36 1 +37 5 30 1 +38 5 10 1 +39 5 40 0 +40 6 7 0 +41 8 9 0 +42 10 11 0 +43 12 13 0 +44 14 15 0 +45 16 17 1 +46 18 19 0 +47 20 21 0 +48 22 23 0 +49 24 25 0 +50 26 27 0 +51 28 29 0 +52 30 31 0 +53 32 33 1 +54 34 35 0 +55 36 37 0 +56 38 39 0 +57 40 41 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections65.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections65.txt new file mode 100644 index 00000000..cfba7f1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections65.txt @@ -0,0 +1,46 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 10 0 +2 0 16 1 +3 0 27 0 +4 0 29 1 +5 0 24 1 +6 0 20 0 +7 0 12 1 +8 0 1 0 +9 0 30 0 +10 15 0 0 +11 1 18 0 +12 1 22 1 +13 1 8 1 +14 1 6 1 +15 2 14 0 +16 2 4 1 +17 2 10 1 +18 2 16 0 +19 2 27 1 +20 2 29 0 +21 2 24 0 +22 2 20 1 +23 2 12 0 +24 2 3 0 +25 2 30 1 +26 3 18 1 +27 3 22 0 +28 3 8 0 +29 3 6 0 +30 4 5 0 +31 6 7 0 +32 8 9 0 +33 10 11 0 +34 12 13 0 +35 14 15 1 +36 16 17 0 +37 18 19 0 +38 20 21 0 +39 22 23 0 +40 24 25 0 +41 26 28 1 +42 27 26 0 +43 29 28 0 +44 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections66.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections66.txt new file mode 100644 index 00000000..c78e1cc7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections66.txt @@ -0,0 +1,46 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 8 1 +2 0 28 0 +3 0 31 0 +4 0 24 1 +5 0 6 0 +6 17 0 0 +7 1 10 1 +8 1 26 1 +9 1 20 1 +10 1 4 1 +11 1 12 0 +12 1 22 0 +13 30 1 0 +14 15 1 0 +15 2 16 0 +16 2 18 1 +17 2 8 0 +18 2 28 1 +19 2 33 0 +20 2 24 0 +21 2 6 1 +22 3 10 1 +23 3 26 0 +24 3 20 0 +25 3 4 0 +26 3 12 1 +27 3 14 0 +28 3 22 1 +29 32 3 0 +30 4 5 0 +31 6 7 0 +32 8 9 0 +33 10 11 1 +34 12 13 0 +35 14 15 1 +36 16 17 0 +37 18 19 0 +38 20 21 0 +39 22 23 0 +40 24 25 0 +41 26 27 0 +42 28 29 0 +43 31 30 1 +44 33 32 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections67.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections67.txt new file mode 100644 index 00000000..215c5597 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections67.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 5 0 +2 0 15 0 +3 1 2 1 +4 1 9 0 +5 1 19 0 +6 2 3 1 +7 2 11 0 +8 2 21 0 +9 3 13 0 +10 3 23 0 +11 3 4 1 +12 4 7 0 +13 4 17 0 +14 5 6 0 +15 7 8 0 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections68.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections68.txt new file mode 100644 index 00000000..e26f4f0a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections68.txt @@ -0,0 +1,23 @@ +switch_id node1 node2 open +0 0 16 0 +1 0 17 0 +2 0 12 0 +3 1 2 1 +4 1 21 0 +5 1 9 0 +6 15 1 0 +7 2 19 0 +8 2 3 0 +9 3 4 0 +10 5 6 0 +11 10 5 0 +12 7 8 0 +13 13 7 0 +14 9 10 0 +15 10 11 0 +16 12 13 0 +17 13 14 0 +18 16 15 1 +19 17 18 0 +20 19 20 0 +21 21 22 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections69.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections69.txt new file mode 100644 index 00000000..1a3e2bc2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections69.txt @@ -0,0 +1,61 @@ +switch_id node1 node2 open +0 0 16 1 +1 0 4 1 +2 0 18 0 +3 0 6 0 +4 0 37 0 +5 0 35 1 +6 0 1 0 +7 1 28 1 +8 1 39 0 +9 1 33 1 +10 1 20 0 +11 1 24 0 +12 1 41 1 +13 1 14 0 +14 1 22 1 +15 1 8 1 +16 1 10 1 +17 13 1 0 +18 2 4 0 +19 2 6 1 +20 2 16 0 +21 2 18 1 +22 2 35 0 +23 2 37 1 +24 2 3 0 +25 3 28 0 +26 3 39 1 +27 3 20 1 +28 3 22 0 +29 3 41 0 +30 3 10 0 +31 3 12 0 +32 3 8 0 +33 3 14 1 +34 3 24 1 +35 3 33 0 +36 4 5 0 +37 6 7 0 +38 8 9 0 +39 10 11 0 +40 12 13 1 +41 14 15 0 +42 16 17 0 +43 18 19 0 +44 20 21 0 +45 22 23 0 +46 24 25 0 +47 26 25 0 +48 27 25 0 +49 28 29 0 +50 30 29 0 +51 31 29 1 +52 32 29 0 +53 33 34 0 +54 35 36 0 +55 37 38 0 +56 39 40 0 +57 41 42 0 +58 43 25 1 +59 44 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections7.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections7.txt new file mode 100644 index 00000000..b48cb987 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections7.txt @@ -0,0 +1,31 @@ +switch_id node1 node2 open +0 1 11 0 +1 1 12 0 +2 1 13 0 +3 0 14 1 +4 1 15 0 +5 1 16 0 +6 1 17 1 +7 1 18 1 +8 1 14 0 +9 19 0 0 +10 0 15 1 +11 0 16 1 +12 0 20 0 +13 0 17 0 +14 0 21 0 +15 0 18 0 +16 1 21 1 +17 0 11 1 +18 1 20 1 +19 0 12 1 +20 18 5 0 +21 16 7 0 +22 21 4 0 +23 20 6 0 +24 14 3 0 +25 11 8 0 +26 15 9 0 +27 13 19 0 +28 12 2 0 +29 17 10 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections70.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections70.txt new file mode 100644 index 00000000..83586707 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections70.txt @@ -0,0 +1,43 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 21 0 +2 0 24 0 +3 1 16 0 +4 1 12 0 +5 1 8 1 +6 1 10 0 +7 1 4 0 +8 1 30 0 +9 1 26 1 +10 1 28 1 +11 1 18 1 +12 1 22 0 +13 1 24 1 +14 7 1 0 +15 20 1 0 +16 2 3 0 +17 3 4 1 +18 3 6 0 +19 3 8 0 +20 3 10 1 +21 3 12 1 +22 3 16 1 +23 3 26 0 +24 3 30 1 +25 3 28 0 +26 3 18 0 +27 3 22 1 +28 4 5 0 +29 6 7 0 +30 8 9 0 +31 10 11 0 +32 12 13 0 +33 14 15 0 +34 16 17 0 +35 18 19 0 +36 21 20 1 +37 22 23 0 +38 24 25 0 +39 26 27 0 +40 28 29 0 +41 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections71.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections71.txt new file mode 100644 index 00000000..ffc2f3aa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections71.txt @@ -0,0 +1,47 @@ +switch_id node1 node2 open +0 0 26 1 +1 0 16 0 +2 0 12 0 +3 0 24 1 +4 0 18 1 +5 0 20 0 +6 0 6 0 +7 0 28 0 +8 0 22 1 +9 0 14 1 +10 0 8 1 +11 0 10 1 +12 0 4 1 +13 3 0 0 +14 1 2 0 +15 1 26 0 +16 1 16 1 +17 1 12 1 +18 1 24 0 +19 1 18 0 +20 1 20 1 +21 1 6 1 +22 1 28 1 +23 1 22 0 +24 1 14 0 +25 1 8 0 +26 1 10 0 +27 1 4 0 +28 2 3 1 +29 4 5 0 +30 6 7 0 +31 8 9 0 +32 10 11 0 +33 12 13 0 +34 14 15 0 +35 16 31 0 +36 18 33 0 +37 20 21 0 +38 22 23 0 +39 24 25 0 +40 26 27 0 +41 28 29 0 +42 17 31 0 +43 30 31 1 +44 19 33 0 +45 32 33 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections72.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections72.txt new file mode 100644 index 00000000..0459d612 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections72.txt @@ -0,0 +1,39 @@ +switch_id node1 node2 open +0 0 10 0 +1 0 12 1 +2 0 16 1 +3 0 24 1 +4 0 2 0 +5 0 18 0 +6 0 4 0 +7 0 6 1 +8 0 20 0 +9 0 22 1 +10 0 26 1 +11 9 0 0 +12 1 8 0 +13 1 10 1 +14 1 12 0 +15 1 16 0 +16 1 24 0 +17 1 2 1 +18 1 18 1 +19 1 20 1 +20 1 4 1 +21 1 6 0 +22 1 22 0 +23 1 26 0 +24 2 3 0 +25 4 5 0 +26 6 7 0 +27 8 9 1 +28 10 11 0 +29 12 13 0 +30 14 13 0 +31 15 13 1 +32 16 17 0 +33 18 19 0 +34 20 21 0 +35 22 23 0 +36 24 25 0 +37 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections73.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections73.txt new file mode 100644 index 00000000..51c39d4f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections73.txt @@ -0,0 +1,52 @@ +switch_id node1 node2 open +0 0 32 0 +1 0 12 0 +2 0 1 0 +3 17 0 0 +4 1 6 0 +5 1 10 1 +6 1 20 0 +7 1 22 1 +8 1 2 1 +9 2 24 0 +10 2 8 0 +11 2 28 0 +12 2 26 0 +13 2 34 1 +14 2 14 0 +15 2 30 1 +16 19 2 0 +17 3 16 0 +18 3 32 1 +19 3 12 1 +20 3 4 0 +21 4 6 1 +22 4 10 0 +23 4 20 1 +24 4 22 0 +25 4 5 0 +26 5 24 1 +27 5 8 1 +28 5 28 1 +29 5 18 0 +30 5 26 1 +31 5 34 0 +32 5 14 1 +33 5 30 0 +34 6 7 0 +35 8 9 0 +36 10 11 0 +37 12 13 0 +38 14 15 1 +39 16 17 1 +40 18 19 0 +41 20 21 0 +42 22 23 0 +43 24 25 0 +44 26 27 0 +45 28 29 0 +46 30 31 0 +47 32 33 0 +48 34 35 0 +49 36 37 0 +50 37 2 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections74.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections74.txt new file mode 100644 index 00000000..b1824d12 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections74.txt @@ -0,0 +1,60 @@ +switch_id node1 node2 open +0 0 10 0 +1 0 16 0 +2 0 18 0 +3 0 22 0 +4 0 27 0 +5 0 24 1 +6 0 34 1 +7 1 12 0 +8 1 6 1 +9 1 8 1 +10 1 14 0 +11 1 32 1 +12 1 20 0 +13 26 1 0 +14 2 10 1 +15 2 16 1 +16 2 18 1 +17 2 22 1 +18 2 29 0 +19 2 24 0 +20 2 34 0 +21 17 2 0 +22 3 12 1 +23 3 6 0 +24 3 8 0 +25 3 14 1 +26 3 32 0 +27 3 20 1 +28 15 3 0 +29 28 3 0 +30 4 10 1 +31 4 18 1 +32 4 22 1 +33 4 31 0 +34 4 24 1 +35 4 34 1 +36 17 4 1 +37 5 12 1 +38 5 6 1 +39 5 8 1 +40 5 32 1 +41 5 20 1 +42 15 5 1 +43 30 5 0 +44 6 7 0 +45 8 9 0 +46 10 11 0 +47 12 13 0 +48 14 15 0 +49 16 17 0 +50 18 19 1 +51 20 21 0 +52 22 23 0 +53 24 25 0 +54 27 26 0 +55 29 28 0 +56 31 30 0 +57 32 33 0 +58 34 35 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections75.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections75.txt new file mode 100644 index 00000000..6a12971f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections75.txt @@ -0,0 +1,72 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 1 0 +2 21 0 0 +3 1 2 0 +4 19 1 0 +5 2 3 0 +6 17 3 0 +7 4 12 0 +8 4 5 1 +9 4 20 0 +10 4 43 0 +11 4 46 0 +12 4 49 0 +13 4 52 0 +14 4 55 0 +15 5 6 0 +16 5 18 0 +17 5 22 0 +18 5 25 0 +19 5 28 0 +20 5 64 0 +21 6 10 0 +22 6 7 1 +23 6 31 0 +24 6 34 0 +25 6 37 0 +26 6 67 0 +27 7 16 0 +28 7 8 0 +29 7 40 0 +30 7 58 0 +31 7 61 0 +32 8 9 0 +33 10 11 0 +34 12 13 0 +35 14 15 0 +36 16 17 1 +37 18 19 1 +38 20 21 1 +39 22 23 0 +40 23 24 1 +41 25 26 0 +42 26 27 1 +43 28 29 0 +44 29 30 0 +45 31 32 0 +46 32 33 0 +47 34 35 0 +48 35 36 0 +49 37 38 0 +50 38 39 0 +51 40 41 0 +52 41 42 0 +53 43 44 0 +54 44 45 0 +55 46 47 0 +56 47 48 0 +57 49 50 0 +58 50 51 0 +59 52 53 0 +60 53 54 0 +61 55 56 0 +62 56 57 0 +63 58 59 0 +64 59 60 0 +65 61 62 0 +66 62 63 0 +67 64 65 0 +68 65 66 0 +69 67 68 0 +70 68 69 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections76.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections76.txt new file mode 100644 index 00000000..50fbb4e1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections76.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 13 0 +2 0 17 0 +3 1 16 0 +4 1 20 0 +5 1 8 0 +6 2 9 0 +7 2 3 0 +8 5 2 0 +9 3 11 0 +10 3 21 0 +11 3 4 0 +12 4 23 0 +13 7 4 0 +14 6 5 0 +15 8 7 1 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 16 15 0 +20 17 18 0 +21 20 19 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections77.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections77.txt new file mode 100644 index 00000000..e0217324 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections77.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 3 0 +1 0 5 0 +2 0 15 0 +3 0 1 1 +4 1 7 0 +5 1 9 0 +6 1 17 0 +7 1 2 1 +8 2 11 0 +9 2 13 0 +10 2 19 0 +11 3 4 0 +12 5 6 0 +13 7 8 0 +14 9 10 0 +15 11 12 0 +16 13 14 0 +17 15 16 0 +18 17 18 0 +19 19 20 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections78.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections78.txt new file mode 100644 index 00000000..b2583b14 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections78.txt @@ -0,0 +1,54 @@ +switch_id node1 node2 open +0 0 16 1 +1 0 26 1 +2 0 22 0 +3 0 34 1 +4 0 24 1 +5 0 1 0 +6 0 28 0 +7 0 12 0 +8 1 36 0 +9 1 14 0 +10 1 32 0 +11 1 18 0 +12 1 4 0 +13 1 20 1 +14 1 6 1 +15 1 8 0 +16 1 30 1 +17 11 1 0 +18 2 16 0 +19 2 26 0 +20 2 22 1 +21 2 34 0 +22 2 24 0 +23 2 3 0 +24 2 28 1 +25 2 12 1 +26 3 36 1 +27 3 14 1 +28 3 32 1 +29 3 18 1 +30 3 4 1 +31 3 20 0 +32 3 6 0 +33 3 10 0 +34 3 8 1 +35 3 30 0 +36 4 5 0 +37 6 7 0 +38 8 9 0 +39 10 11 1 +40 12 13 0 +41 14 15 0 +42 16 17 0 +43 18 19 0 +44 20 21 0 +45 22 23 0 +46 24 25 0 +47 26 27 0 +48 28 29 0 +49 30 31 0 +50 32 33 0 +51 34 35 0 +52 36 37 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections79.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections79.txt new file mode 100644 index 00000000..8a5b2fef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections79.txt @@ -0,0 +1,55 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 36 1 +2 0 12 1 +3 0 26 0 +4 0 28 0 +5 0 10 0 +6 0 20 1 +7 0 33 0 +8 5 0 0 +9 1 22 0 +10 1 8 0 +11 1 24 1 +12 1 30 1 +13 1 14 1 +14 1 38 0 +15 1 16 1 +16 32 1 0 +17 7 1 0 +18 2 4 0 +19 2 18 1 +20 2 36 0 +21 2 12 0 +22 2 26 1 +23 2 28 1 +24 2 10 1 +25 2 20 0 +26 2 35 0 +27 3 22 1 +28 3 8 1 +29 3 24 0 +30 3 30 0 +31 3 14 0 +32 3 38 1 +33 3 16 0 +34 3 6 0 +35 34 3 0 +36 4 5 0 +37 6 7 0 +38 8 9 0 +39 10 11 0 +40 12 13 0 +41 14 15 0 +42 16 17 0 +43 18 19 0 +44 20 21 0 +45 22 23 0 +46 24 25 0 +47 26 27 0 +48 28 29 0 +49 30 31 0 +50 33 32 1 +51 35 34 1 +52 36 37 0 +53 38 39 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections8.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections8.txt new file mode 100644 index 00000000..8392afd9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections8.txt @@ -0,0 +1,23 @@ +switch_id node1 node2 open +0 3 4 0 +1 2 3 0 +2 14 13 0 +3 16 15 1 +4 17 10 0 +5 18 9 0 +6 19 12 0 +7 20 11 0 +8 21 16 0 +9 1 18 0 +10 1 20 0 +11 4 7 0 +12 4 15 0 +13 3 6 0 +14 3 8 0 +15 2 5 0 +16 2 13 0 +17 0 14 0 +18 0 17 0 +19 0 19 0 +20 22 1 0 +21 21 22 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections80.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections80.txt new file mode 100644 index 00000000..5afa2c7e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections80.txt @@ -0,0 +1,57 @@ +switch_id node1 node2 open +0 0 18 1 +1 0 6 0 +2 0 12 1 +3 0 14 0 +4 0 34 0 +5 0 32 1 +6 0 1 0 +7 1 16 1 +8 1 36 0 +9 1 30 0 +10 1 20 0 +11 1 28 1 +12 1 4 1 +13 1 38 0 +14 1 24 1 +15 1 10 1 +16 9 1 0 +17 2 18 0 +18 2 6 1 +19 2 12 0 +20 2 14 1 +21 2 34 1 +22 2 32 0 +23 2 3 1 +24 3 16 0 +25 3 36 1 +26 3 30 1 +27 3 20 1 +28 3 28 0 +29 3 4 0 +30 3 38 1 +31 3 24 0 +32 3 10 0 +33 3 8 0 +34 4 5 0 +35 6 7 0 +36 8 9 1 +37 10 11 0 +38 12 13 0 +39 14 15 0 +40 16 17 0 +41 18 19 0 +42 20 21 0 +43 22 21 0 +44 23 21 1 +45 24 25 0 +46 26 25 0 +47 27 25 0 +48 28 29 0 +49 30 31 0 +50 32 33 0 +51 34 35 0 +52 36 37 0 +53 38 39 0 +54 40 21 1 +55 41 25 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections81.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections81.txt new file mode 100644 index 00000000..b928632b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections81.txt @@ -0,0 +1,50 @@ +switch_id node1 node2 open +0 0 6 1 +1 0 12 0 +2 0 16 0 +3 0 26 1 +4 0 28 0 +5 0 32 1 +6 0 1 0 +7 1 8 0 +8 1 10 0 +9 1 14 0 +10 1 18 1 +11 1 20 1 +12 1 22 0 +13 1 30 0 +14 5 1 0 +15 2 6 0 +16 2 12 1 +17 2 16 1 +18 2 26 0 +19 2 28 1 +20 2 32 0 +21 2 3 0 +22 3 4 0 +23 3 8 1 +24 3 10 1 +25 3 14 1 +26 3 18 0 +27 3 20 0 +28 3 22 1 +29 3 30 1 +30 4 5 1 +31 6 7 0 +32 8 9 0 +33 10 11 0 +34 12 13 0 +35 14 15 0 +36 16 17 0 +37 18 19 0 +38 20 35 0 +39 22 23 1 +40 24 23 0 +41 25 23 1 +42 26 27 0 +43 28 29 0 +44 30 31 0 +45 32 33 0 +46 21 35 0 +47 34 35 1 +48 36 23 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections82.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections82.txt new file mode 100644 index 00000000..4fc1e43f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections82.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 18 0 +1 0 26 0 +2 0 1 1 +3 0 10 0 +4 1 16 0 +5 1 24 0 +6 1 2 1 +7 1 8 0 +8 2 14 0 +9 2 22 0 +10 2 3 1 +11 2 6 0 +12 3 12 0 +13 3 20 0 +14 3 4 0 +15 4 5 0 +16 6 7 0 +17 8 9 0 +18 10 11 0 +19 12 13 0 +20 14 15 0 +21 16 17 0 +22 18 19 0 +23 20 21 0 +24 22 23 0 +25 24 25 0 +26 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections83.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections83.txt new file mode 100644 index 00000000..4240ec1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections83.txt @@ -0,0 +1,43 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 14 0 +2 0 10 1 +3 0 16 0 +4 0 28 1 +5 0 22 0 +6 0 2 0 +7 0 24 0 +8 0 4 0 +9 0 20 0 +10 0 6 1 +11 0 18 1 +12 0 26 1 +13 9 0 0 +14 1 8 0 +15 1 12 1 +16 1 14 1 +17 1 10 0 +18 1 16 1 +19 1 28 0 +20 1 22 1 +21 1 2 1 +22 1 24 1 +23 1 4 1 +24 1 20 1 +25 1 6 0 +26 1 18 0 +27 1 26 0 +28 2 3 0 +29 4 5 0 +30 6 7 0 +31 8 9 1 +32 10 11 0 +33 12 13 0 +34 14 15 0 +35 16 17 0 +36 18 19 0 +37 20 21 0 +38 22 23 0 +39 24 25 0 +40 26 27 0 +41 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections84.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections84.txt new file mode 100644 index 00000000..fe580765 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections84.txt @@ -0,0 +1,72 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 1 0 +2 0 38 1 +3 0 48 0 +4 0 50 1 +5 0 42 1 +6 0 34 0 +7 0 36 0 +8 7 0 0 +9 1 10 1 +10 1 12 1 +11 1 40 0 +12 1 44 0 +13 1 52 1 +14 2 22 0 +15 2 25 1 +16 2 28 1 +17 2 31 1 +18 2 19 1 +19 2 16 0 +20 9 2 0 +21 45 2 0 +22 3 6 0 +23 3 14 1 +24 3 4 1 +25 3 38 0 +26 3 48 1 +27 3 50 0 +28 3 42 0 +29 3 34 1 +30 3 36 1 +31 4 10 0 +32 4 12 0 +33 4 40 1 +34 4 46 0 +35 4 52 0 +36 5 8 0 +37 5 22 1 +38 5 25 0 +39 5 28 1 +40 5 31 0 +41 5 19 0 +42 5 16 1 +43 47 5 0 +44 6 7 1 +45 8 9 0 +46 10 11 0 +47 12 13 0 +48 14 15 0 +49 16 17 0 +50 17 18 0 +51 19 20 0 +52 20 21 0 +53 22 23 0 +54 23 24 0 +55 25 26 0 +56 26 27 0 +57 28 29 1 +58 29 30 1 +59 31 32 0 +60 32 33 0 +61 34 35 0 +62 36 37 0 +63 38 39 0 +64 40 41 0 +65 42 43 0 +66 44 45 0 +67 46 47 0 +68 48 49 0 +69 50 51 0 +70 52 53 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections85.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections85.txt new file mode 100644 index 00000000..7842bebe --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections85.txt @@ -0,0 +1,38 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 1 0 +2 0 26 0 +3 0 8 1 +4 1 17 0 +5 2 14 0 +6 2 20 1 +7 2 24 0 +8 2 6 1 +9 16 2 0 +10 11 2 0 +11 3 12 1 +12 3 26 1 +13 3 4 0 +14 3 8 0 +15 4 19 0 +16 5 10 0 +17 5 14 1 +18 5 20 0 +19 5 24 1 +20 5 6 0 +21 18 5 0 +22 6 7 0 +23 8 9 0 +24 10 11 1 +25 12 13 0 +26 14 15 0 +27 17 16 0 +28 19 18 0 +29 20 21 0 +30 22 21 0 +31 23 21 1 +32 24 30 0 +33 26 27 0 +34 28 21 1 +35 25 30 0 +36 29 30 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections86.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections86.txt new file mode 100644 index 00000000..236e5caf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections86.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 1 1 +2 0 18 0 +3 1 2 1 +4 1 8 0 +5 1 20 0 +6 2 3 1 +7 2 10 0 +8 2 22 0 +9 3 4 1 +10 3 12 0 +11 3 24 0 +12 4 5 1 +13 4 14 0 +14 4 26 0 +15 5 16 0 +16 5 28 0 +17 6 7 0 +18 8 9 0 +19 10 11 0 +20 12 13 0 +21 14 15 0 +22 16 17 0 +23 18 19 0 +24 20 21 0 +25 22 23 0 +26 24 25 0 +27 26 27 0 +28 28 29 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections87.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections87.txt new file mode 100644 index 00000000..6b03a8e4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections87.txt @@ -0,0 +1,28 @@ +switch_id node1 node2 open +0 0 4 0 +1 0 12 0 +2 0 1 1 +3 0 20 0 +4 1 6 0 +5 1 14 0 +6 1 2 1 +7 1 22 0 +8 2 8 0 +9 2 16 0 +10 2 3 1 +11 2 24 0 +12 3 10 0 +13 3 18 0 +14 3 26 0 +15 4 5 0 +16 6 7 0 +17 8 9 0 +18 10 11 1 +19 12 13 0 +20 14 15 0 +21 16 17 0 +22 18 19 0 +23 20 21 0 +24 22 23 0 +25 24 25 0 +26 26 27 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections88.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections88.txt new file mode 100644 index 00000000..f1943247 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections88.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 11 0 +2 0 13 0 +3 0 19 0 +4 1 2 1 +5 1 7 0 +6 1 9 0 +7 1 17 0 +8 2 3 0 +9 2 5 0 +10 2 15 0 +11 3 4 0 +12 5 6 0 +13 7 8 0 +14 9 10 0 +15 11 12 0 +16 13 14 0 +17 15 16 0 +18 17 18 0 +19 19 20 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections89.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections89.txt new file mode 100644 index 00000000..0bc56945 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections89.txt @@ -0,0 +1,65 @@ +switch_id node1 node2 open +0 0 12 1 +1 0 28 1 +2 0 14 1 +3 0 38 1 +4 0 18 1 +5 0 1 0 +6 7 0 0 +7 1 10 1 +8 1 32 0 +9 1 40 0 +10 1 20 0 +11 1 44 1 +12 1 16 0 +13 1 2 0 +14 2 36 1 +15 2 22 1 +16 2 24 0 +17 2 26 1 +18 2 42 1 +19 9 2 0 +20 3 6 0 +21 3 12 0 +22 3 28 0 +23 3 14 0 +24 3 38 0 +25 3 18 0 +26 3 4 1 +27 4 10 0 +28 4 32 1 +29 4 40 1 +30 4 20 1 +31 4 44 0 +32 4 16 1 +33 4 5 0 +34 5 36 0 +35 5 22 0 +36 5 24 1 +37 5 26 0 +38 5 42 0 +39 5 8 0 +40 6 7 0 +41 8 9 1 +42 10 11 0 +43 12 13 0 +44 14 15 0 +45 16 17 0 +46 18 19 0 +47 20 21 0 +48 22 23 0 +49 24 25 0 +50 26 27 0 +51 28 29 0 +52 30 29 0 +53 31 29 0 +54 32 33 0 +55 34 33 0 +56 35 33 0 +57 36 37 0 +58 38 39 0 +59 40 41 0 +60 42 43 0 +61 44 45 1 +62 46 29 1 +63 47 33 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections9.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections9.txt new file mode 100644 index 00000000..70628698 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections9.txt @@ -0,0 +1,37 @@ +switch_id node1 node2 open +0 2 12 0 +1 1 13 1 +2 2 14 1 +3 2 15 0 +4 0 16 0 +5 1 17 1 +6 3 13 0 +7 3 18 0 +8 19 1 0 +9 3 20 0 +10 3 17 0 +11 0 21 0 +12 0 22 0 +13 1 20 1 +14 3 23 0 +15 24 1 0 +16 0 25 0 +17 26 3 0 +18 2 25 1 +19 0 14 0 +20 27 0 0 +21 2 22 1 +22 2 21 1 +23 1 23 1 +24 25 11 0 +25 21 10 0 +26 15 26 0 +27 16 19 0 +28 12 27 0 +29 20 4 0 +30 13 6 0 +31 14 9 0 +32 22 5 0 +33 17 8 0 +34 18 24 0 +35 23 7 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections90.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections90.txt new file mode 100644 index 00000000..811c00fb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections90.txt @@ -0,0 +1,30 @@ +switch_id node1 node2 open +0 0 9 0 +1 0 24 0 +2 0 12 1 +3 1 5 0 +4 1 15 0 +5 1 14 1 +6 11 1 1 +7 2 3 0 +8 2 7 0 +9 2 20 0 +10 13 2 1 +11 3 4 0 +12 5 6 0 +13 7 8 0 +14 9 10 0 +15 12 11 1 +16 14 13 1 +17 15 16 0 +18 17 16 0 +19 18 16 1 +20 19 16 0 +21 20 21 0 +22 22 21 0 +23 23 21 0 +24 24 25 0 +25 26 25 0 +26 27 25 0 +27 28 16 1 +28 29 21 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections91.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections91.txt new file mode 100644 index 00000000..4aebcdb7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections91.txt @@ -0,0 +1,21 @@ +switch_id node1 node2 open +0 0 1 1 +1 0 3 0 +2 0 15 0 +3 0 5 0 +4 1 2 1 +5 1 7 0 +6 1 9 0 +7 1 17 0 +8 2 11 0 +9 2 13 0 +10 2 19 0 +11 3 4 1 +12 5 6 0 +13 7 8 1 +14 9 10 0 +15 11 12 0 +16 13 14 1 +17 15 16 0 +18 17 18 0 +19 19 20 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections92.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections92.txt new file mode 100644 index 00000000..ac103150 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections92.txt @@ -0,0 +1,77 @@ +switch_id node1 node2 open +0 0 1 0 +1 1 2 0 +2 2 14 1 +3 2 3 0 +4 2 20 0 +5 25 2 0 +6 3 31 1 +7 4 18 0 +8 4 5 0 +9 4 42 1 +10 4 16 0 +11 4 12 0 +12 4 48 1 +13 4 38 1 +14 4 40 0 +15 4 52 0 +16 23 4 0 +17 30 4 1 +18 5 54 0 +19 5 46 1 +20 5 44 0 +21 5 26 1 +22 5 34 1 +23 5 28 0 +24 5 50 0 +25 6 7 0 +26 7 8 0 +27 8 14 0 +28 8 24 0 +29 8 9 0 +30 8 20 1 +31 9 33 1 +32 10 18 1 +33 10 22 0 +34 10 11 0 +35 10 42 0 +36 10 16 1 +37 10 12 1 +38 10 48 0 +39 10 38 0 +40 10 40 1 +41 10 52 1 +42 32 10 1 +43 11 54 1 +44 11 46 0 +45 11 44 1 +46 11 26 0 +47 11 34 0 +48 11 28 1 +49 11 50 1 +50 12 13 0 +51 14 15 0 +52 16 17 0 +53 18 19 0 +54 20 21 0 +55 22 23 1 +56 24 25 0 +57 26 27 0 +58 28 29 0 +59 31 30 1 +60 33 32 1 +61 34 35 0 +62 36 35 0 +63 37 35 1 +64 38 58 0 +65 40 41 0 +66 42 43 0 +67 44 45 0 +68 46 47 0 +69 48 49 0 +70 50 51 0 +71 52 53 1 +72 54 55 0 +73 56 35 1 +74 39 58 0 +75 57 58 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections93.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections93.txt new file mode 100644 index 00000000..4b89c394 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections93.txt @@ -0,0 +1,44 @@ +switch_id node1 node2 open +0 0 24 1 +1 0 20 1 +2 0 14 1 +3 0 1 0 +4 0 30 1 +5 1 18 1 +6 1 16 1 +7 1 2 0 +8 1 26 1 +9 1 8 0 +10 2 28 0 +11 2 12 0 +12 2 22 0 +13 2 10 1 +14 7 2 0 +15 3 24 0 +16 3 20 0 +17 3 14 0 +18 3 4 1 +19 3 30 0 +20 4 18 0 +21 4 16 0 +22 4 5 0 +23 4 26 0 +24 4 8 1 +25 5 28 1 +26 5 6 0 +27 5 12 1 +28 5 22 1 +29 5 10 0 +30 6 7 0 +31 8 9 0 +32 10 11 0 +33 12 13 0 +34 14 15 0 +35 16 17 0 +36 18 19 0 +37 20 21 0 +38 22 23 0 +39 24 25 0 +40 26 27 0 +41 28 29 0 +42 30 31 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections94.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections94.txt new file mode 100644 index 00000000..eacb405f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections94.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 14 0 +2 0 1 0 +3 1 2 0 +4 1 18 0 +5 2 20 0 +6 2 4 0 +7 2 10 0 +8 2 3 1 +9 3 12 0 +10 3 8 0 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 1 +15 12 13 0 +16 14 15 0 +17 16 15 0 +18 17 15 1 +19 18 24 0 +20 20 21 0 +21 22 15 1 +22 19 24 0 +23 23 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections95.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections95.txt new file mode 100644 index 00000000..fbb81f30 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections95.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 13 0 +2 0 19 0 +3 1 15 0 +4 1 17 0 +5 1 8 0 +6 2 9 0 +7 2 3 0 +8 5 2 0 +9 3 11 0 +10 3 4 0 +11 3 21 0 +12 4 23 0 +13 7 4 0 +14 6 5 1 +15 8 7 0 +16 9 10 0 +17 11 12 0 +18 13 14 0 +19 15 16 0 +20 17 18 0 +21 19 20 0 +22 21 22 0 +23 23 24 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections96.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections96.txt new file mode 100644 index 00000000..2b0760a6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections96.txt @@ -0,0 +1,36 @@ +switch_id node1 node2 open +0 0 12 0 +1 0 20 0 +2 0 24 0 +3 0 16 1 +4 0 18 0 +5 0 6 1 +6 0 1 0 +7 5 0 0 +8 1 22 1 +9 1 14 1 +10 1 8 0 +11 1 10 0 +12 2 4 0 +13 2 12 1 +14 2 20 1 +15 2 24 1 +16 2 16 0 +17 2 18 1 +18 2 6 0 +19 2 3 0 +20 3 22 0 +21 3 14 0 +22 3 8 1 +23 3 10 1 +24 4 5 1 +25 6 7 0 +26 8 9 0 +27 10 11 0 +28 12 13 0 +29 14 15 0 +30 16 17 0 +31 18 19 0 +32 20 21 0 +33 22 23 0 +34 24 25 0 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections97.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections97.txt new file mode 100644 index 00000000..5aafd7be --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections97.txt @@ -0,0 +1,63 @@ +switch_id node1 node2 open +0 0 14 0 +1 0 35 0 +2 0 41 0 +3 0 33 0 +4 0 22 1 +5 0 16 1 +6 0 24 0 +7 0 28 1 +8 0 1 0 +9 0 8 0 +10 13 0 0 +11 1 26 0 +12 1 39 1 +13 1 4 0 +14 1 37 1 +15 1 18 0 +16 1 6 1 +17 1 20 1 +18 11 1 0 +19 2 12 0 +20 2 14 1 +21 2 35 1 +22 2 41 1 +23 2 33 1 +24 2 22 0 +25 2 16 0 +26 2 24 1 +27 2 28 0 +28 2 3 0 +29 2 8 1 +30 3 26 1 +31 3 39 0 +32 3 4 1 +33 3 37 0 +34 3 18 1 +35 3 6 0 +36 3 10 0 +37 3 20 0 +38 4 5 0 +39 6 7 0 +40 8 9 0 +41 10 11 1 +42 12 13 1 +43 14 15 0 +44 16 17 0 +45 18 19 0 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 26 27 0 +50 28 29 0 +51 30 29 0 +52 31 29 1 +53 32 29 0 +54 33 45 0 +55 35 36 0 +56 37 38 0 +57 39 40 0 +58 41 42 0 +59 43 29 1 +60 34 45 0 +61 44 45 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections98.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections98.txt new file mode 100644 index 00000000..373a0b3f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections98.txt @@ -0,0 +1,63 @@ +switch_id node1 node2 open +0 0 14 1 +1 0 12 0 +2 0 10 0 +3 0 28 0 +4 0 35 0 +5 0 1 0 +6 0 20 1 +7 0 18 0 +8 0 4 0 +9 0 6 0 +10 17 0 0 +11 1 24 0 +12 1 26 1 +13 1 37 1 +14 1 22 0 +15 1 33 0 +16 1 8 1 +17 1 39 1 +18 1 41 1 +19 2 14 0 +20 2 12 1 +21 2 10 1 +22 2 28 1 +23 2 35 1 +24 2 16 0 +25 2 3 0 +26 2 20 0 +27 2 18 1 +28 2 4 1 +29 2 6 1 +30 3 24 1 +31 3 26 0 +32 3 37 0 +33 3 22 1 +34 3 33 1 +35 3 8 0 +36 3 39 0 +37 3 41 0 +38 4 5 0 +39 6 7 0 +40 8 9 0 +41 10 11 0 +42 12 13 0 +43 14 15 0 +44 16 17 1 +45 18 19 0 +46 20 21 0 +47 22 23 0 +48 24 25 0 +49 26 44 0 +50 28 29 0 +51 30 29 0 +52 31 29 1 +53 32 29 0 +54 33 34 0 +55 35 36 0 +56 37 38 0 +57 39 40 0 +58 41 42 0 +59 27 44 0 +60 43 44 1 +61 45 29 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_connections99.txt b/grid2op/data_test/test_detailed_topo/test_topo_connections99.txt new file mode 100644 index 00000000..1b86130d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_connections99.txt @@ -0,0 +1,25 @@ +switch_id node1 node2 open +0 0 6 0 +1 0 1 1 +2 0 14 0 +3 1 10 0 +4 1 20 0 +5 2 12 0 +6 2 3 1 +7 2 4 0 +8 3 8 0 +9 3 18 0 +10 3 14 1 +11 4 5 0 +12 6 7 0 +13 8 9 0 +14 10 11 0 +15 12 13 1 +16 14 15 0 +17 16 15 0 +18 17 15 1 +19 18 24 0 +20 20 21 0 +21 22 15 1 +22 19 24 0 +23 23 24 1 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements1.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements1.txt new file mode 100644 index 00000000..771f9d1a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements1.txt @@ -0,0 +1,44 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 '' +5 'el' +6 '' +7 'el' +8 '' +9 'el' +10 '' +11 'el' +12 '' +13 'el' +14 '' +15 'el' +16 '' +17 'el' +18 '' +19 'el' +20 '' +21 '' +22 '' +23 '' +24 '' +25 'el' +26 '' +27 'el' +28 '' +29 'el' +30 '' +31 'el' +32 '' +33 'el' +34 '' +35 'el' +36 '' +37 'el' +38 '' +39 '' +40 '' +41 '' + diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements10.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements10.txt new file mode 100644 index 00000000..e2de724e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements10.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements100.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements100.txt new file mode 100644 index 00000000..0e5eb9f0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements100.txt @@ -0,0 +1,28 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 'el' +19 'el' +20 +21 'el' +22 +23 'el' +24 'el' +25 'el' +26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements101.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements101.txt new file mode 100644 index 00000000..e4bca308 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements101.txt @@ -0,0 +1,97 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 'bbs' +21 'bbs' +22 'bbs' +23 'bbs' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 'el' +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 'el' +88 +89 +90 +91 +92 +93 +94 +95 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements102.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements102.txt new file mode 100644 index 00000000..738237ac --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements102.txt @@ -0,0 +1,71 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 +10 'el' +11 +12 +13 +14 +15 +16 +17 'el' +18 +19 +20 'el' +21 +22 +23 'el' +24 +25 +26 'el' +27 +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 +55 +56 'el' +57 +58 +59 'el' +60 +61 +62 'el' +63 +64 +65 +66 +67 +68 +69 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements103.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements103.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements103.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements104.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements104.txt new file mode 100644 index 00000000..49f69893 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements104.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements105.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements105.txt new file mode 100644 index 00000000..ac06efde --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements105.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements106.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements106.txt new file mode 100644 index 00000000..5cb4df7a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements106.txt @@ -0,0 +1,46 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' +25 +26 'el' +27 +28 'el' +29 +30 'el' +31 +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 'el' +42 +43 'el' +44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements107.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements107.txt new file mode 100644 index 00000000..5b47bc1f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements107.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 'el' +17 'el' +18 +19 +20 'el' +21 'el' +22 +23 +24 'el' +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 'el' +35 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements108.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements108.txt new file mode 100644 index 00000000..24188401 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements108.txt @@ -0,0 +1,44 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 'el' +25 +26 'el' +27 +28 'el' +29 +30 'el' +31 +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements109.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements109.txt new file mode 100644 index 00000000..4f613b9a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements109.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements11.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements11.txt new file mode 100644 index 00000000..320362d2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements11.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements110.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements110.txt new file mode 100644 index 00000000..07352231 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements110.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements111.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements111.txt new file mode 100644 index 00000000..3862c2f1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements111.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements112.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements112.txt new file mode 100644 index 00000000..9763b4a7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements112.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements113.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements113.txt new file mode 100644 index 00000000..00171f4e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements113.txt @@ -0,0 +1,38 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 +20 'el' +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 'el' +35 'el' +36 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements114.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements114.txt new file mode 100644 index 00000000..b1940db5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements114.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 +16 'el' +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements115.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements115.txt new file mode 100644 index 00000000..43849c7b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements115.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 +22 'el' +23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements116.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements116.txt new file mode 100644 index 00000000..63465e4f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements116.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements117.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements117.txt new file mode 100644 index 00000000..6b23eca0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements117.txt @@ -0,0 +1,42 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 +21 +22 'el' +23 'el' +24 'el' +25 +26 +27 'el' +28 'el' +29 +30 'el' +31 +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 'el' +40 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements118.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements118.txt new file mode 100644 index 00000000..ba59a5ac --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements118.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 +8 'el' +9 +10 +11 'el' +12 +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' +25 +26 'el' +27 +28 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements119.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements119.txt new file mode 100644 index 00000000..ca0f122c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements119.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements12.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements12.txt new file mode 100644 index 00000000..3ba43801 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements12.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements120.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements120.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements120.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements121.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements121.txt new file mode 100644 index 00000000..d55d2aac --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements121.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 +18 'el' +19 'el' +20 'el' +21 +22 'el' +23 +24 'el' +25 +26 'el' +27 'el' +28 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements122.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements122.txt new file mode 100644 index 00000000..df20f872 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements122.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 'el' +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements123.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements123.txt new file mode 100644 index 00000000..e303eb95 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements123.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 +7 +8 +9 'el' +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements124.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements124.txt new file mode 100644 index 00000000..43d004c8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements124.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' +25 +26 'el' +27 +28 +29 +30 'el' +31 +32 +33 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements125.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements125.txt new file mode 100644 index 00000000..47470782 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements125.txt @@ -0,0 +1,41 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements126.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements126.txt new file mode 100644 index 00000000..eba5509f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements126.txt @@ -0,0 +1,45 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 +34 +35 +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements127.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements127.txt new file mode 100644 index 00000000..4b01cdd7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements127.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements128.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements128.txt new file mode 100644 index 00000000..9ac31186 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements128.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements129.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements129.txt new file mode 100644 index 00000000..aaaf5561 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements129.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 'el' +12 +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 'el' +20 +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements13.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements13.txt new file mode 100644 index 00000000..9e8a004e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements13.txt @@ -0,0 +1,40 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +38 +42 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements130.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements130.txt new file mode 100644 index 00000000..988c0d39 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements130.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 +7 'el' +8 +9 +10 'el' +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements131.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements131.txt new file mode 100644 index 00000000..9491dbaf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements131.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 +30 +31 +32 +33 'el' +34 +35 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements132.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements132.txt new file mode 100644 index 00000000..96cff59d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements132.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 +21 +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 +32 +33 +34 +35 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements133.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements133.txt new file mode 100644 index 00000000..d864074e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements133.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 +26 +27 +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements134.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements134.txt new file mode 100644 index 00000000..cf0c1bd1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements134.txt @@ -0,0 +1,47 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'el' +7 +8 +9 'el' +10 +11 +12 'el' +13 +14 +15 'el' +16 +17 +18 'el' +19 +20 +21 'el' +22 +23 +24 'el' +25 'el' +26 'el' +27 'el' +28 'el' +29 'el' +30 'el' +31 +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' +43 +44 'el' +45 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements135.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements135.txt new file mode 100644 index 00000000..70d5a326 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements135.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 'el' +27 'el' +28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements136.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements136.txt new file mode 100644 index 00000000..5018851e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements136.txt @@ -0,0 +1,28 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 +10 'el' +11 'el' +12 'el' +13 +14 +15 'el' +16 'el' +17 +18 +19 'el' +20 'el' +21 +22 'el' +23 +24 'el' +25 'el' +26 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements137.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements137.txt new file mode 100644 index 00000000..808424fd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements137.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 +9 'el' +10 'el' +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements138.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements138.txt new file mode 100644 index 00000000..b2a39b08 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements138.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 'el' +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 'el' +27 'el' +28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements139.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements139.txt new file mode 100644 index 00000000..cd393a3d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements139.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 'el' +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements14.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements14.txt new file mode 100644 index 00000000..f28a6d17 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements14.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements140.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements140.txt new file mode 100644 index 00000000..a7f9f45a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements140.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 'el' +22 +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements141.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements141.txt new file mode 100644 index 00000000..7e3df403 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements141.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements142.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements142.txt new file mode 100644 index 00000000..ceadcfaa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements142.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements143.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements143.txt new file mode 100644 index 00000000..49dd90e0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements143.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements144.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements144.txt new file mode 100644 index 00000000..5652b5df --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements144.txt @@ -0,0 +1,59 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 +26 +27 +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 'el' +55 +56 'el' +57 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements145.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements145.txt new file mode 100644 index 00000000..73d0ec8d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements145.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements146.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements146.txt new file mode 100644 index 00000000..cd29a4d5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements146.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 'el' +19 +20 'el' +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements147.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements147.txt new file mode 100644 index 00000000..0574cc0f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements147.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements148.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements148.txt new file mode 100644 index 00000000..7a234ae8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements148.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +31 'el' +32 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements149.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements149.txt new file mode 100644 index 00000000..0b9ff2c1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements149.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements15.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements15.txt new file mode 100644 index 00000000..196b5994 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements15.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements150.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements150.txt new file mode 100644 index 00000000..d6a36ff9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements150.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 +28 +29 +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements151.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements151.txt new file mode 100644 index 00000000..4aac10dc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements151.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements152.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements152.txt new file mode 100644 index 00000000..acc3b030 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements152.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements153.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements153.txt new file mode 100644 index 00000000..0ea1dd43 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements153.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 +22 'el' +23 +24 'el' +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements154.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements154.txt new file mode 100644 index 00000000..fb4b8e7d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements154.txt @@ -0,0 +1,64 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 +32 +33 +34 +35 +36 'el' +37 'el' +38 'el' +39 +40 +41 'el' +42 'el' +43 +44 +45 'el' +46 'el' +47 +48 'el' +49 +50 'el' +51 +52 'el' +53 +54 'el' +55 +56 'el' +57 +58 'el' +59 +60 'el' +61 +62 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements155.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements155.txt new file mode 100644 index 00000000..0f1b6c45 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements155.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 +7 'el' +8 'el' +9 +10 +11 'el' +12 'el' +13 'el' +14 +15 +16 'el' +17 'el' +18 'el' +19 +20 'el' +21 +22 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements156.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements156.txt new file mode 100644 index 00000000..91ed4356 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements156.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 +10 'el' +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements157.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements157.txt new file mode 100644 index 00000000..82d68569 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements157.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements158.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements158.txt new file mode 100644 index 00000000..8a734770 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements158.txt @@ -0,0 +1,32 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 +8 +9 'el' +10 +11 +12 'el' +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 +26 'el' +27 'el' +28 +29 'el' +30 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements159.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements159.txt new file mode 100644 index 00000000..15660cdb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements159.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 'el' +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 'el' +35 +36 'el' +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements16.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements16.txt new file mode 100644 index 00000000..311d51e5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements16.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements160.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements160.txt new file mode 100644 index 00000000..2c77cb43 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements160.txt @@ -0,0 +1,36 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 +21 +22 +23 +24 'el' +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 'el' +33 'el' +34 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements161.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements161.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements161.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements162.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements162.txt new file mode 100644 index 00000000..8e4264a4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements162.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 +15 'el' +16 'el' +17 'el' +18 +19 'el' +20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements163.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements163.txt new file mode 100644 index 00000000..acc3b030 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements163.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements164.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements164.txt new file mode 100644 index 00000000..75f7c99c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements164.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 'el' +35 +36 'el' +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements165.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements165.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements165.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements166.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements166.txt new file mode 100644 index 00000000..cdc8ab44 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements166.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 +13 +14 'el' +15 +16 +17 'el' +18 +19 +20 'el' +21 +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements167.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements167.txt new file mode 100644 index 00000000..663185c7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements167.txt @@ -0,0 +1,45 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements168.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements168.txt new file mode 100644 index 00000000..6ba411c0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements168.txt @@ -0,0 +1,41 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 +23 'el' +24 +25 +26 'el' +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements169.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements169.txt new file mode 100644 index 00000000..6eebffe6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements169.txt @@ -0,0 +1,45 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 +26 +27 +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 +38 +39 +40 +41 'el' +42 +43 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements17.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements17.txt new file mode 100644 index 00000000..6a90956f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements17.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 'el' +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements170.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements170.txt new file mode 100644 index 00000000..cc3084eb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements170.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 'el' +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements171.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements171.txt new file mode 100644 index 00000000..f11bd6c7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements171.txt @@ -0,0 +1,40 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 'el' +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 'el' +37 'el' +38 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements172.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements172.txt new file mode 100644 index 00000000..cfa3dc45 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements172.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 +8 +9 'el' +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements173.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements173.txt new file mode 100644 index 00000000..d59fbbe3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements173.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 +11 'el' +12 'el' +13 +14 +15 'el' +16 'el' +17 +18 +19 'el' +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements174.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements174.txt new file mode 100644 index 00000000..87cd7d35 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements174.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements175.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements175.txt new file mode 100644 index 00000000..6f17a7be --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements175.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements176.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements176.txt new file mode 100644 index 00000000..ac06efde --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements176.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements177.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements177.txt new file mode 100644 index 00000000..2180e719 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements177.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements178.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements178.txt new file mode 100644 index 00000000..aaa8097b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements178.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 'el' +19 +20 'el' +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements179.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements179.txt new file mode 100644 index 00000000..b5bfef13 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements179.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 +10 +11 +12 'el' +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements18.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements18.txt new file mode 100644 index 00000000..111eda77 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements18.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 'bbs' +36 'bbs' +37 'bbs' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements180.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements180.txt new file mode 100644 index 00000000..fef7ac9b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements180.txt @@ -0,0 +1,63 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 +23 +24 +25 'el' +26 +27 'el' +28 +29 +30 +31 +32 +33 +34 +35 'el' +36 +37 'el' +38 +39 +40 +41 +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 +55 'el' +56 +57 'el' +58 'el' +59 +60 'el' +61 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements181.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements181.txt new file mode 100644 index 00000000..9034d7f3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements181.txt @@ -0,0 +1,32 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 'el' +7 +8 +9 'el' +10 +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements182.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements182.txt new file mode 100644 index 00000000..0ea1dd43 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements182.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 +22 'el' +23 +24 'el' +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements183.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements183.txt new file mode 100644 index 00000000..b78db958 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements183.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 'el' +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 'el' +18 +19 'el' +20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements184.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements184.txt new file mode 100644 index 00000000..03c30e92 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements184.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 +12 'el' +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements185.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements185.txt new file mode 100644 index 00000000..ba5274d7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements185.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 +18 'el' +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 'el' +29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements186.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements186.txt new file mode 100644 index 00000000..88bec71e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements186.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 +20 +21 +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements187.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements187.txt new file mode 100644 index 00000000..3ce9a69c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements187.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 'el' +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 'el' +21 'el' +22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements188.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements188.txt new file mode 100644 index 00000000..98a59457 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements188.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 'el' +14 'el' +15 +16 +17 'el' +18 +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements189.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements189.txt new file mode 100644 index 00000000..35e66011 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements189.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements19.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements19.txt new file mode 100644 index 00000000..37408eed --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements19.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 'el' +19 'el' +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements190.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements190.txt new file mode 100644 index 00000000..b43f7f4f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements190.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 +9 'el' +10 'el' +11 'el' +12 +13 +14 'el' +15 'el' +16 'el' +17 'el' +18 +19 +20 'el' +21 'el' +22 'el' +23 +24 +25 'el' +26 'el' +27 'el' +28 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements191.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements191.txt new file mode 100644 index 00000000..8934c02e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements191.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 'el' +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 'el' +19 +20 +21 'el' +22 +23 +24 +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements192.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements192.txt new file mode 100644 index 00000000..aeed9ee0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements192.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 'el' +19 +20 'el' +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements193.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements193.txt new file mode 100644 index 00000000..7d60d54d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements193.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements194.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements194.txt new file mode 100644 index 00000000..cbec4a0d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements194.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 'el' +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements195.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements195.txt new file mode 100644 index 00000000..81bdd814 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements195.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 'el' +33 +34 'el' +35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements196.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements196.txt new file mode 100644 index 00000000..4424bf2a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements196.txt @@ -0,0 +1,83 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 +25 +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 +52 +53 +54 +55 +56 'el' +57 'el' +58 'el' +59 'el' +60 +61 +62 'el' +63 'el' +64 'el' +65 +66 +67 'el' +68 'el' +69 'el' +70 +71 'el' +72 +73 'el' +74 +75 'el' +76 +77 'el' +78 +79 'el' +80 'el' +81 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements197.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements197.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements197.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements198.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements198.txt new file mode 100644 index 00000000..42bcea19 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements198.txt @@ -0,0 +1,77 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 +55 'el' +56 +57 'el' +58 +59 'el' +60 +61 'el' +62 +63 'el' +64 +65 'el' +66 +67 'el' +68 +69 'el' +70 +71 'el' +72 'el' +73 +74 'el' +75 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements199.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements199.txt new file mode 100644 index 00000000..f2252a4d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements199.txt @@ -0,0 +1,41 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 'el' +39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements2.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements2.txt new file mode 100644 index 00000000..f7dacc03 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements2.txt @@ -0,0 +1,51 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 'el' +19 'el' +20 'el' +21 'el' +22 'el' +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements20.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements20.txt new file mode 100644 index 00000000..fbf6befb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements20.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 'bbs' +28 'bbs' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements200.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements200.txt new file mode 100644 index 00000000..18e70f9b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements200.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 +10 'el' +11 +12 'el' +13 +14 +15 +16 +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements201.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements201.txt new file mode 100644 index 00000000..bd4c19ee --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements201.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 'el' +8 +9 +10 'el' +11 +12 +13 'el' +14 +15 +16 +17 'el' +18 'el' +19 +20 'el' +21 +22 'el' +23 'el' +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements202.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements202.txt new file mode 100644 index 00000000..f9aa1fb8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements202.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 'el' +7 +8 +9 +10 +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements203.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements203.txt new file mode 100644 index 00000000..8979402e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements203.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements204.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements204.txt new file mode 100644 index 00000000..02bd0cf8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements204.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 +28 +29 +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 +40 +41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements205.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements205.txt new file mode 100644 index 00000000..a2191afa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements205.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements206.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements206.txt new file mode 100644 index 00000000..2624a54f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements206.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 'el' +14 +15 +16 +17 +18 +19 +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements207.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements207.txt new file mode 100644 index 00000000..27d7e61f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements207.txt @@ -0,0 +1,25 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements208.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements208.txt new file mode 100644 index 00000000..9a1f25d3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements208.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 +24 'el' +25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements209.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements209.txt new file mode 100644 index 00000000..ceadcfaa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements209.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements21.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements21.txt new file mode 100644 index 00000000..4c5763db --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements21.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements210.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements210.txt new file mode 100644 index 00000000..0477249d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements210.txt @@ -0,0 +1,56 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 +32 'el' +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +54 'el' +55 +56 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements211.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements211.txt new file mode 100644 index 00000000..6a78efd0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements211.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements212.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements212.txt new file mode 100644 index 00000000..142b56e1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements212.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 'el' +7 +8 +9 'el' +10 +11 +12 'el' +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements213.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements213.txt new file mode 100644 index 00000000..7bd21fda --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements213.txt @@ -0,0 +1,46 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 +36 'el' +37 'el' +38 +39 'el' +40 +41 'el' +42 'el' +43 +44 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements214.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements214.txt new file mode 100644 index 00000000..3530215c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements214.txt @@ -0,0 +1,49 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 'el' +43 +44 'el' +45 +46 'el' +47 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements215.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements215.txt new file mode 100644 index 00000000..42294da9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements215.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 +7 'el' +8 +9 +10 +11 +12 +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 +21 'el' +22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements216.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements216.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements216.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements217.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements217.txt new file mode 100644 index 00000000..fede3601 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements217.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements218.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements218.txt new file mode 100644 index 00000000..67a807b7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements218.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 'el' +17 'el' +18 'el' +19 +20 +21 'el' +22 'el' +23 +24 'el' +25 +26 'el' +27 +28 'el' +29 +30 'el' +31 'el' +32 +33 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements219.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements219.txt new file mode 100644 index 00000000..eb72784c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements219.txt @@ -0,0 +1,45 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 +40 +41 +42 +43 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements22.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements22.txt new file mode 100644 index 00000000..55f6d5d0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements22.txt @@ -0,0 +1,26 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements220.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements220.txt new file mode 100644 index 00000000..ed7c6c85 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements220.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 'el' +19 +20 'el' +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements221.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements221.txt new file mode 100644 index 00000000..4580ad6e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements221.txt @@ -0,0 +1,28 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 +12 'el' +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 'el' +25 'el' +26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements23.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements23.txt new file mode 100644 index 00000000..412b44e9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements23.txt @@ -0,0 +1,31 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'bbs' +14 'bbs' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements24.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements24.txt new file mode 100644 index 00000000..c7c0ffd1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements24.txt @@ -0,0 +1,39 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements25.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements25.txt new file mode 100644 index 00000000..07cfa750 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements25.txt @@ -0,0 +1,61 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 'el' +19 'el' +20 'el' +21 'el' +22 'el' +23 'el' +24 'bbs' +25 'bbs' +26 'bbs' +27 'bbs' +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements26.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements26.txt new file mode 100644 index 00000000..5cd53d78 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements26.txt @@ -0,0 +1,22 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 +15 +16 +17 +18 +19 +20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements27.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements27.txt new file mode 100644 index 00000000..94e60fea --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements27.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 +25 'el' +26 +27 'el' +28 +29 +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements28.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements28.txt new file mode 100644 index 00000000..43ed58bf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements28.txt @@ -0,0 +1,37 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements29.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements29.txt new file mode 100644 index 00000000..9cb015c3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements29.txt @@ -0,0 +1,39 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 'el' +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements3.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements3.txt new file mode 100644 index 00000000..0c6c7db6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements3.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements30.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements30.txt new file mode 100644 index 00000000..1f5331d6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements30.txt @@ -0,0 +1,25 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements31.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements31.txt new file mode 100644 index 00000000..55f6d5d0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements31.txt @@ -0,0 +1,26 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements32.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements32.txt new file mode 100644 index 00000000..eec24f59 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements32.txt @@ -0,0 +1,26 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements33.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements33.txt new file mode 100644 index 00000000..b10043aa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements33.txt @@ -0,0 +1,23 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'bbs' +10 'bbs' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements34.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements34.txt new file mode 100644 index 00000000..55f6d5d0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements34.txt @@ -0,0 +1,26 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements35.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements35.txt new file mode 100644 index 00000000..a1c77e2b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements35.txt @@ -0,0 +1,31 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 'el' +29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements36.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements36.txt new file mode 100644 index 00000000..5bf3e5a4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements36.txt @@ -0,0 +1,37 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements37.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements37.txt new file mode 100644 index 00000000..07a9b805 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements37.txt @@ -0,0 +1,63 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 'bbs' +21 'bbs' +22 'bbs' +23 'bbs' +24 'bbs' +25 'bbs' +26 'bbs' +27 'bbs' +28 'bbs' +29 'bbs' +30 'bbs' +31 'bbs' +32 'bbs' +33 'bbs' +34 'bbs' +35 'bbs' +36 'bbs' +37 'bbs' +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 'el' +59 +60 'el' +61 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements38.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements38.txt new file mode 100644 index 00000000..77efb19f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements38.txt @@ -0,0 +1,43 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 'bbs' +21 'bbs' +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements39.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements39.txt new file mode 100644 index 00000000..0050ed1a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements39.txt @@ -0,0 +1,39 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements4.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements4.txt new file mode 100644 index 00000000..d3fb427c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements4.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 'el' +37 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements40.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements40.txt new file mode 100644 index 00000000..95a5f6a5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements40.txt @@ -0,0 +1,41 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'bbs' +18 'bbs' +19 'bbs' +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements41.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements41.txt new file mode 100644 index 00000000..d5bb2f6e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements41.txt @@ -0,0 +1,23 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'bbs' +8 'bbs' +9 'bbs' +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements42.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements42.txt new file mode 100644 index 00000000..1c5c0c87 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements42.txt @@ -0,0 +1,46 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 'el' +44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements43.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements43.txt new file mode 100644 index 00000000..0050ed1a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements43.txt @@ -0,0 +1,39 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements44.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements44.txt new file mode 100644 index 00000000..2df587cd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements44.txt @@ -0,0 +1,25 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements45.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements45.txt new file mode 100644 index 00000000..048a1146 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements45.txt @@ -0,0 +1,30 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 'bbs' +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements46.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements46.txt new file mode 100644 index 00000000..db60d30f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements46.txt @@ -0,0 +1,38 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements47.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements47.txt new file mode 100644 index 00000000..e2e8b181 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements47.txt @@ -0,0 +1,44 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'bbs' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 'bbs' +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements48.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements48.txt new file mode 100644 index 00000000..248cab7f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements48.txt @@ -0,0 +1,24 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements49.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements49.txt new file mode 100644 index 00000000..84306585 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements49.txt @@ -0,0 +1,41 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements5.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements5.txt new file mode 100644 index 00000000..61938ab5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements5.txt @@ -0,0 +1,30 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements50.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements50.txt new file mode 100644 index 00000000..a08466aa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements50.txt @@ -0,0 +1,30 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 'bbs' +16 'bbs' +17 'bbs' +18 'bbs' +19 'bbs' +20 +21 +22 +23 +24 +25 +26 +27 'el' +28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements51.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements51.txt new file mode 100644 index 00000000..750190df --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements51.txt @@ -0,0 +1,28 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements52.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements52.txt new file mode 100644 index 00000000..d3ee8f47 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements52.txt @@ -0,0 +1,33 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements53.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements53.txt new file mode 100644 index 00000000..fef5c7ef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements53.txt @@ -0,0 +1,24 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 'bbs' +14 +15 +16 +17 +18 +19 +20 +21 'el' +22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements54.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements54.txt new file mode 100644 index 00000000..92c453a6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements54.txt @@ -0,0 +1,29 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 'bbs' +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 'el' +27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements55.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements55.txt new file mode 100644 index 00000000..be5cf1a4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements55.txt @@ -0,0 +1,29 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'bbs' +12 'bbs' +13 'bbs' +14 'bbs' +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements56.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements56.txt new file mode 100644 index 00000000..8106dc48 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements56.txt @@ -0,0 +1,55 @@ +node element_id +0 'el' +1 'el' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 'el' +17 'el' +18 'el' +19 'el' +20 'bbs' +21 'bbs' +22 'bbs' +23 'bbs' +24 'bbs' +25 'bbs' +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements57.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements57.txt new file mode 100644 index 00000000..dece867d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements57.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements58.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements58.txt new file mode 100644 index 00000000..c117708d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements58.txt @@ -0,0 +1,45 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 'el' +13 +14 'el' +15 +16 +17 +18 +19 +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 +28 'el' +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements59.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements59.txt new file mode 100644 index 00000000..8876683c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements59.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements6.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements6.txt new file mode 100644 index 00000000..2753d40c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements6.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 'el' +14 'el' +15 'el' +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements60.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements60.txt new file mode 100644 index 00000000..cffc374f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements60.txt @@ -0,0 +1,41 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 'el' +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 +28 'el' +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements61.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements61.txt new file mode 100644 index 00000000..3e201415 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements61.txt @@ -0,0 +1,46 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 'el' +25 'el' +26 +27 +28 'el' +29 'el' +30 'el' +31 +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' +43 'el' +44 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements62.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements62.txt new file mode 100644 index 00000000..2992b977 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements62.txt @@ -0,0 +1,49 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 +38 +39 +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements63.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements63.txt new file mode 100644 index 00000000..19fdeafd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements63.txt @@ -0,0 +1,63 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 +23 +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 +55 'el' +56 +57 'el' +58 +59 'el' +60 +61 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements64.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements64.txt new file mode 100644 index 00000000..badb4c80 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements64.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements65.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements65.txt new file mode 100644 index 00000000..5d3a7ef7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements65.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 'el' +27 +28 'el' +29 +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements66.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements66.txt new file mode 100644 index 00000000..e25c2e1f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements66.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 +32 +33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements67.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements67.txt new file mode 100644 index 00000000..dece867d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements67.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements68.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements68.txt new file mode 100644 index 00000000..3b3393ba --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements68.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 +11 'el' +12 +13 +14 'el' +15 +16 +17 +18 'el' +19 +20 'el' +21 +22 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements69.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements69.txt new file mode 100644 index 00000000..719de708 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements69.txt @@ -0,0 +1,46 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 +26 'el' +27 'el' +28 +29 +30 'el' +31 'el' +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' +43 'el' +44 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements7.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements7.txt new file mode 100644 index 00000000..4c5763db --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements7.txt @@ -0,0 +1,23 @@ +node element_id +0 'bbs' +1 'bbs' +2 'el' +3 'el' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements70.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements70.txt new file mode 100644 index 00000000..3fe23e7f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements70.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements71.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements71.txt new file mode 100644 index 00000000..3fa3fb74 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements71.txt @@ -0,0 +1,35 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 'el' +31 +32 'el' +33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements72.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements72.txt new file mode 100644 index 00000000..b78e1017 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements72.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 +14 'el' +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements73.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements73.txt new file mode 100644 index 00000000..c7d4c77b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements73.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 'el' +37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements74.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements74.txt new file mode 100644 index 00000000..d04157b8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements74.txt @@ -0,0 +1,37 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 +28 +29 +30 +31 +32 +33 'el' +34 +35 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements75.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements75.txt new file mode 100644 index 00000000..d3feae62 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements75.txt @@ -0,0 +1,71 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 +20 +21 +22 +23 +24 'el' +25 +26 +27 'el' +28 +29 +30 'el' +31 +32 +33 'el' +34 +35 +36 'el' +37 +38 +39 'el' +40 +41 +42 'el' +43 +44 +45 'el' +46 +47 +48 'el' +49 +50 +51 'el' +52 +53 +54 'el' +55 +56 +57 'el' +58 +59 +60 'el' +61 +62 +63 'el' +64 +65 +66 'el' +67 +68 +69 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements76.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements76.txt new file mode 100644 index 00000000..440cdf3a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements76.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 'el' +16 +17 +18 'el' +19 'el' +20 +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements77.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements77.txt new file mode 100644 index 00000000..9ac31186 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements77.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements78.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements78.txt new file mode 100644 index 00000000..73d0ec8d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements78.txt @@ -0,0 +1,39 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements79.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements79.txt new file mode 100644 index 00000000..d20bcec5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements79.txt @@ -0,0 +1,41 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 +34 +35 +36 +37 'el' +38 +39 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements8.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements8.txt new file mode 100644 index 00000000..bf36506c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements8.txt @@ -0,0 +1,24 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 'el' +13 +14 +15 +16 +17 +18 +19 +20 +21 'bbs' +22 'bbs' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements80.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements80.txt new file mode 100644 index 00000000..c3775097 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements80.txt @@ -0,0 +1,43 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 +26 'el' +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 'el' +41 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements81.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements81.txt new file mode 100644 index 00000000..6cee4ea6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements81.txt @@ -0,0 +1,38 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 'el' +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' +32 +33 'el' +34 'el' +35 +36 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements82.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements82.txt new file mode 100644 index 00000000..ac06efde --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements82.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements83.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements83.txt new file mode 100644 index 00000000..c1d60db9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements83.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 +3 'el' +4 +5 'el' +6 +7 'el' +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements84.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements84.txt new file mode 100644 index 00000000..83266a73 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements84.txt @@ -0,0 +1,55 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 'el' +19 +20 +21 'el' +22 +23 +24 'el' +25 +26 +27 'el' +28 +29 +30 'el' +31 +32 +33 'el' +34 +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 +46 +47 +48 +49 'el' +50 +51 'el' +52 +53 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements85.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements85.txt new file mode 100644 index 00000000..21cb7fdb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements85.txt @@ -0,0 +1,32 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 +20 +21 +22 'el' +23 'el' +24 +25 'el' +26 +27 'el' +28 'el' +29 'el' +30 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements86.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements86.txt new file mode 100644 index 00000000..4b01cdd7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements86.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements87.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements87.txt new file mode 100644 index 00000000..ac06efde --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements87.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements88.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements88.txt new file mode 100644 index 00000000..9ac31186 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements88.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements89.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements89.txt new file mode 100644 index 00000000..46deda66 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements89.txt @@ -0,0 +1,49 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 +30 'el' +31 'el' +32 +33 +34 'el' +35 'el' +36 +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 'el' +47 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements9.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements9.txt new file mode 100644 index 00000000..76667ce9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements9.txt @@ -0,0 +1,29 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'el' +5 'el' +6 'el' +7 'el' +8 'el' +9 'el' +10 'el' +11 'el' +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements90.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements90.txt new file mode 100644 index 00000000..1fa10006 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements90.txt @@ -0,0 +1,31 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 +13 +14 +15 +16 +17 'el' +18 'el' +19 'el' +20 +21 +22 'el' +23 'el' +24 +25 +26 'el' +27 'el' +28 'el' +29 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements91.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements91.txt new file mode 100644 index 00000000..9ac31186 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements91.txt @@ -0,0 +1,22 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 +4 'el' +5 +6 'el' +7 +8 'el' +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements92.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements92.txt new file mode 100644 index 00000000..6b2c9395 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements92.txt @@ -0,0 +1,60 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 'bbs' +7 'bbs' +8 'bbs' +9 'bbs' +10 'bbs' +11 'bbs' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 +24 +25 +26 +27 'el' +28 +29 'el' +30 +31 +32 +33 +34 +35 +36 'el' +37 'el' +38 +39 'el' +40 +41 'el' +42 +43 'el' +44 +45 'el' +46 +47 'el' +48 +49 'el' +50 +51 'el' +52 +53 'el' +54 +55 'el' +56 'el' +57 'el' +58 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements93.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements93.txt new file mode 100644 index 00000000..9c6c8f31 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements93.txt @@ -0,0 +1,33 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 'bbs' +6 +7 +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 'el' +30 +31 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements94.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements94.txt new file mode 100644 index 00000000..4bb88057 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements94.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 'el' +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements95.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements95.txt new file mode 100644 index 00000000..c73f5d93 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements95.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 'bbs' +5 +6 +7 +8 +9 +10 'el' +11 +12 'el' +13 +14 'el' +15 +16 'el' +17 +18 'el' +19 +20 'el' +21 +22 'el' +23 +24 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements96.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements96.txt new file mode 100644 index 00000000..5b99c921 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements96.txt @@ -0,0 +1,27 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements97.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements97.txt new file mode 100644 index 00000000..b2e78540 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements97.txt @@ -0,0 +1,47 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 +12 +13 +14 +15 'el' +16 +17 'el' +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 +30 'el' +31 'el' +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' +43 'el' +44 'el' +45 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements98.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements98.txt new file mode 100644 index 00000000..8fc1c217 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements98.txt @@ -0,0 +1,47 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 'el' +16 +17 +18 +19 'el' +20 +21 'el' +22 +23 'el' +24 +25 'el' +26 +27 'el' +28 +29 +30 'el' +31 'el' +32 'el' +33 +34 'el' +35 +36 'el' +37 +38 'el' +39 +40 'el' +41 +42 'el' +43 'el' +44 +45 'el' diff --git a/grid2op/data_test/test_detailed_topo/test_topo_elements99.txt b/grid2op/data_test/test_detailed_topo/test_topo_elements99.txt new file mode 100644 index 00000000..4bb88057 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_elements99.txt @@ -0,0 +1,26 @@ +node element_id +0 'bbs' +1 'bbs' +2 'bbs' +3 'bbs' +4 +5 'el' +6 +7 'el' +8 +9 'el' +10 +11 'el' +12 +13 'el' +14 +15 +16 'el' +17 'el' +18 +19 'el' +20 +21 'el' +22 'el' +23 'el' +24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid1.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid1.txt new file mode 100644 index 00000000..5d02eefd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid1.txt @@ -0,0 +1,44 @@ +topo_id bus_id node +0 0 0 +0 0 39 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 21 +0 0 26 +0 0 27 +0 1 1 +0 1 38 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 23 +0 1 24 +0 1 25 +0 2 2 +0 2 3 +0 2 4 +0 2 5 +0 2 6 +0 2 7 +0 2 14 +0 2 15 +0 2 16 +0 2 17 +0 2 20 +0 2 22 +0 2 28 +0 2 29 +0 2 30 +0 2 31 +0 2 32 +0 2 33 +0 2 34 +0 2 35 +0 2 36 +0 2 37 +0 2 40 +0 2 41 + diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid10.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid10.txt new file mode 100644 index 00000000..f60c6613 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid10.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 -1 4 +0 -1 9 +0 -1 10 +0 -1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid100.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid100.txt new file mode 100644 index 00000000..48db7020 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid100.txt @@ -0,0 +1,28 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 5 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 22 +0 0 23 +0 1 1 +0 1 2 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 26 +0 -1 24 +0 -1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid101.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid101.txt new file mode 100644 index 00000000..a31449f8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid101.txt @@ -0,0 +1,97 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 52 +0 0 53 +0 0 56 +0 0 57 +0 0 60 +0 0 61 +0 0 62 +0 0 63 +0 0 64 +0 0 65 +0 0 66 +0 0 67 +0 0 76 +0 0 77 +0 0 78 +0 0 79 +0 0 80 +0 0 81 +0 0 83 +0 0 85 +0 0 93 +0 0 95 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 26 +0 1 40 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 50 +0 1 54 +0 1 55 +0 1 58 +0 1 59 +0 1 68 +0 1 69 +0 1 70 +0 1 71 +0 1 72 +0 1 73 +0 1 74 +0 1 75 +0 1 82 +0 1 84 +0 1 86 +0 1 87 +0 1 88 +0 1 89 +0 1 90 +0 1 91 +0 1 92 +0 1 94 +0 -1 25 +0 -1 27 +0 -1 51 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid102.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid102.txt new file mode 100644 index 00000000..a51538d2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid102.txt @@ -0,0 +1,71 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 0 42 +0 0 43 +0 0 44 +0 0 45 +0 0 46 +0 0 47 +0 0 48 +0 0 49 +0 0 50 +0 0 51 +0 0 52 +0 0 53 +0 0 54 +0 0 55 +0 0 56 +0 0 57 +0 0 58 +0 0 59 +0 0 60 +0 0 61 +0 0 62 +0 0 63 +0 0 64 +0 0 65 +0 0 66 +0 0 67 +0 1 5 +0 1 4 +0 1 69 +0 1 68 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid103.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid103.txt new file mode 100644 index 00000000..c77843d9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid103.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 15 +0 1 16 +0 1 19 +0 1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid104.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid104.txt new file mode 100644 index 00000000..9d126967 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid104.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 34 +0 0 35 +0 0 5 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 2 +0 1 3 +0 1 4 +0 1 6 +0 1 8 +0 1 9 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 26 +0 1 27 +0 1 32 +0 1 33 +0 1 36 +0 1 37 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid105.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid105.txt new file mode 100644 index 00000000..d9bbd9d9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid105.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 12 +0 0 13 +0 0 20 +0 0 21 +0 1 1 +0 1 8 +0 1 9 +0 1 16 +0 1 17 +0 1 24 +0 1 25 +0 2 2 +0 2 10 +0 2 11 +0 2 18 +0 2 19 +0 2 26 +0 2 27 +0 3 3 +0 3 6 +0 3 7 +0 3 14 +0 3 22 +0 3 23 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid106.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid106.txt new file mode 100644 index 00000000..5c938a18 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid106.txt @@ -0,0 +1,46 @@ +topo_id bus_id node +0 0 0 +0 0 33 +0 0 34 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 39 +0 0 9 +0 0 8 +0 0 11 +0 0 10 +0 0 12 +0 1 32 +0 1 1 +0 1 35 +0 1 36 +0 1 41 +0 1 42 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 2 2 +0 2 37 +0 2 38 +0 2 43 +0 2 44 +0 2 17 +0 2 18 +0 2 19 +0 2 20 +0 2 21 +0 2 22 +0 2 23 +0 2 24 +0 2 25 +0 2 26 +0 -1 40 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid107.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid107.txt new file mode 100644 index 00000000..4da854d8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid107.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 33 +0 0 4 +0 0 5 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 26 +0 0 27 +0 1 1 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 -1 12 +0 -1 13 +0 -1 34 +0 -1 35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid108.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid108.txt new file mode 100644 index 00000000..c50c60a4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid108.txt @@ -0,0 +1,44 @@ +topo_id bus_id node +0 0 0 +0 0 33 +0 0 34 +0 0 41 +0 0 9 +0 0 42 +0 0 14 +0 0 15 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 32 +0 1 35 +0 1 36 +0 1 37 +0 1 38 +0 1 39 +0 1 40 +0 -1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid109.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid109.txt new file mode 100644 index 00000000..db0df438 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid109.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 4 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 28 +0 1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid11.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid11.txt new file mode 100644 index 00000000..5f9055c7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid11.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 -1 8 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid110.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid110.txt new file mode 100644 index 00000000..16866986 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid110.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 10 +0 0 11 +0 0 13 +0 0 18 +0 0 19 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid111.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid111.txt new file mode 100644 index 00000000..091e7b71 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid111.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 1 3 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 28 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid112.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid112.txt new file mode 100644 index 00000000..452f5016 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid112.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 7 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 1 1 +0 1 2 +0 1 3 +0 1 6 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 24 +0 1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid113.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid113.txt new file mode 100644 index 00000000..4686471b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid113.txt @@ -0,0 +1,38 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 36 +0 0 10 +0 0 11 +0 0 13 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 32 +0 1 33 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 26 +0 1 27 +0 -1 21 +0 -1 34 +0 -1 35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid114.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid114.txt new file mode 100644 index 00000000..b4d0f180 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid114.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 14 +0 0 15 +0 0 16 +0 0 18 +0 0 19 +0 1 1 +0 1 2 +0 1 3 +0 1 8 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid115.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid115.txt new file mode 100644 index 00000000..07bf6773 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid115.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 12 +0 0 13 +0 0 20 +0 0 21 +0 1 1 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 2 2 +0 2 8 +0 2 9 +0 2 16 +0 2 17 +0 3 3 +0 3 10 +0 3 18 +0 3 19 +0 3 22 +0 3 23 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid116.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid116.txt new file mode 100644 index 00000000..db4c7cee --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid116.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 12 +0 0 13 +0 1 1 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 2 2 +0 2 8 +0 2 9 +0 2 16 +0 2 17 +0 3 3 +0 3 10 +0 3 11 +0 3 18 +0 3 19 +0 3 20 +0 3 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid117.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid117.txt new file mode 100644 index 00000000..2cf10f6f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid117.txt @@ -0,0 +1,42 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 18 +0 0 20 +0 0 21 +0 0 22 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 1 32 +0 1 1 +0 1 4 +0 1 37 +0 1 5 +0 1 38 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 19 +0 1 31 +0 -1 3 +0 -1 23 +0 -1 39 +0 -1 40 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid118.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid118.txt new file mode 100644 index 00000000..8e7804b4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid118.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 12 +0 0 13 +0 0 19 +0 0 20 +0 0 25 +0 0 26 +0 1 1 +0 1 4 +0 1 7 +0 1 8 +0 1 15 +0 1 16 +0 2 2 +0 2 5 +0 2 9 +0 2 10 +0 2 11 +0 2 17 +0 2 18 +0 2 27 +0 2 28 +0 3 3 +0 3 21 +0 3 22 +0 3 23 +0 3 24 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid119.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid119.txt new file mode 100644 index 00000000..d6f13f81 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid119.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 36 +0 0 37 +0 0 7 +0 0 10 +0 0 11 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 1 +0 1 4 +0 1 6 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 26 +0 1 27 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 -1 3 +0 -1 5 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid12.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid12.txt new file mode 100644 index 00000000..a031a2c3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid12.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid120.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid120.txt new file mode 100644 index 00000000..f91cc2be --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid120.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 15 +0 0 16 +0 0 19 +0 0 20 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 13 +0 1 14 +0 1 17 +0 1 18 +0 2 4 +0 2 21 +0 2 22 +0 2 7 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid121.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid121.txt new file mode 100644 index 00000000..c76bb9e9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid121.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 16 +0 0 17 +0 0 18 +0 0 20 +0 0 23 +0 0 24 +0 1 1 +0 1 2 +0 1 3 +0 1 6 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 21 +0 1 22 +0 1 25 +0 1 26 +0 -1 19 +0 -1 27 +0 -1 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid122.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid122.txt new file mode 100644 index 00000000..5128e5bd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid122.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 7 +0 0 8 +0 0 9 +0 0 14 +0 0 15 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 1 1 +0 1 2 +0 1 3 +0 1 6 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 28 +0 1 29 +0 -1 10 +0 -1 11 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid123.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid123.txt new file mode 100644 index 00000000..b1bee4b7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid123.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 15 +0 0 16 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 7 +0 1 8 +0 1 9 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 17 +0 1 18 +0 -1 10 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid124.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid124.txt new file mode 100644 index 00000000..4a32d05d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid124.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 6 +0 0 8 +0 0 10 +0 0 13 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 32 +0 1 33 +0 1 2 +0 1 3 +0 1 4 +0 -1 11 +0 -1 12 +0 -1 5 +0 -1 7 +0 -1 9 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid125.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid125.txt new file mode 100644 index 00000000..b80afaa3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid125.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 8 +0 0 9 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 18 +0 1 19 +0 1 24 +0 1 25 +0 1 26 +0 1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid126.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid126.txt new file mode 100644 index 00000000..e3f97d20 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid126.txt @@ -0,0 +1,45 @@ +topo_id bus_id node +0 0 0 +0 0 33 +0 0 32 +0 0 1 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 40 +0 0 42 +0 0 43 +0 0 11 +0 0 13 +0 0 9 +0 0 41 +0 0 22 +0 0 23 +0 1 2 +0 1 3 +0 1 10 +0 1 12 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 34 +0 1 35 +0 1 36 +0 1 37 +0 1 38 +0 1 39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid127.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid127.txt new file mode 100644 index 00000000..d111be0a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid127.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 7 +0 0 18 +0 0 19 +0 1 1 +0 1 12 +0 1 13 +0 1 24 +0 1 25 +0 2 2 +0 2 3 +0 2 8 +0 2 10 +0 2 11 +0 2 20 +0 2 21 +0 2 22 +0 2 23 +0 3 4 +0 3 5 +0 3 14 +0 3 15 +0 3 16 +0 3 17 +0 3 26 +0 3 27 +0 3 28 +0 -1 9 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid128.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid128.txt new file mode 100644 index 00000000..bc5e2074 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid128.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 1 1 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 17 +0 1 18 +0 2 2 +0 2 11 +0 2 12 +0 2 13 +0 2 14 +0 2 19 +0 2 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid129.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid129.txt new file mode 100644 index 00000000..c9ff2126 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid129.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 5 +0 0 6 +0 0 9 +0 0 10 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 1 1 +0 1 8 +0 1 11 +0 1 12 +0 1 19 +0 1 20 +0 2 3 +0 2 15 +0 2 16 +0 2 21 +0 2 22 +0 3 24 +0 3 4 +0 3 23 +0 3 7 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid13.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid13.txt new file mode 100644 index 00000000..92fc53af --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid13.txt @@ -0,0 +1,40 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 38 +0 0 42 +0 -1 3 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid130.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid130.txt new file mode 100644 index 00000000..88b1c693 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid130.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 1 2 +0 1 9 +0 1 10 +0 1 11 +0 1 16 +0 1 20 +0 1 21 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid131.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid131.txt new file mode 100644 index 00000000..231c63f8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid131.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 11 +0 0 14 +0 0 15 +0 0 29 +0 1 32 +0 1 1 +0 1 33 +0 1 3 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 30 +0 2 2 +0 2 34 +0 2 35 +0 2 10 +0 2 16 +0 2 17 +0 2 18 +0 2 19 +0 2 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid132.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid132.txt new file mode 100644 index 00000000..9befd9fe --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid132.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 6 +0 0 7 +0 0 10 +0 0 14 +0 0 16 +0 0 19 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 0 34 +0 0 35 +0 1 32 +0 1 33 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 18 +0 1 20 +0 1 28 +0 1 29 +0 -1 11 +0 -1 15 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid133.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid133.txt new file mode 100644 index 00000000..4be6fe51 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid133.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 28 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 12 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 26 +0 1 27 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid134.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid134.txt new file mode 100644 index 00000000..2f8681b0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid134.txt @@ -0,0 +1,47 @@ +topo_id bus_id node +0 0 0 +0 0 40 +0 0 41 +0 0 42 +0 0 43 +0 0 22 +0 1 1 +0 1 38 +0 1 39 +0 1 18 +0 1 19 +0 1 20 +0 2 2 +0 2 36 +0 2 37 +0 2 44 +0 2 45 +0 2 16 +0 3 34 +0 3 35 +0 3 3 +0 3 12 +0 3 13 +0 3 14 +0 4 32 +0 4 33 +0 4 4 +0 4 9 +0 4 10 +0 4 11 +0 5 5 +0 5 7 +0 5 8 +0 5 24 +0 5 30 +0 5 31 +0 -1 6 +0 -1 15 +0 -1 17 +0 -1 27 +0 -1 21 +0 -1 29 +0 -1 23 +0 -1 25 +0 -1 26 +0 -1 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid135.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid135.txt new file mode 100644 index 00000000..1838f91f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid135.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 7 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 28 +0 -1 15 +0 -1 26 +0 -1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid136.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid136.txt new file mode 100644 index 00000000..9d7c81ec --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid136.txt @@ -0,0 +1,28 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 8 +0 0 9 +0 0 10 +0 0 12 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 -1 11 +0 -1 25 +0 -1 26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid137.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid137.txt new file mode 100644 index 00000000..74b4c0cc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid137.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 5 +0 0 6 +0 0 18 +0 0 19 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 7 +0 1 8 +0 1 9 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 -1 10 +0 -1 20 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid138.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid138.txt new file mode 100644 index 00000000..98e3767c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid138.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 28 +0 1 2 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 24 +0 1 25 +0 -1 19 +0 -1 26 +0 -1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid139.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid139.txt new file mode 100644 index 00000000..1983236d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid139.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 24 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 32 +0 1 33 +0 1 2 +0 1 34 +0 1 4 +0 1 35 +0 1 5 +0 1 8 +0 1 9 +0 1 14 +0 1 20 +0 1 21 +0 -1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid14.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid14.txt new file mode 100644 index 00000000..0217b2f3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid14.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 6 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 21 +0 0 22 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 31 +0 -1 5 +0 -1 7 +0 -1 20 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid140.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid140.txt new file mode 100644 index 00000000..dd6e1210 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid140.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 0 21 +0 0 22 +0 1 1 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 17 +0 1 18 +0 1 23 +0 1 24 +0 2 2 +0 2 11 +0 2 12 +0 2 13 +0 2 14 +0 2 19 +0 2 20 +0 -1 4 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid141.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid141.txt new file mode 100644 index 00000000..f2ae1f19 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid141.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 2 +0 1 4 +0 1 5 +0 1 18 +0 1 19 +0 1 30 +0 1 31 +0 -1 28 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid142.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid142.txt new file mode 100644 index 00000000..af8cc2fc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid142.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 20 +0 1 21 +0 -1 5 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid143.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid143.txt new file mode 100644 index 00000000..979ccce1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid143.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 6 +0 0 7 +0 0 8 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 30 +0 0 31 +0 1 3 +0 1 4 +0 1 5 +0 1 16 +0 1 17 +0 1 28 +0 1 29 +0 2 32 +0 2 33 +0 2 9 +0 2 10 +0 2 11 +0 2 20 +0 2 21 +0 2 26 +0 2 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid144.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid144.txt new file mode 100644 index 00000000..6e26c745 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid144.txt @@ -0,0 +1,59 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 11 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 24 +0 0 25 +0 0 30 +0 0 31 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 52 +0 0 53 +0 0 57 +0 1 2 +0 1 3 +0 1 8 +0 1 10 +0 1 14 +0 1 15 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 1 40 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 50 +0 1 51 +0 1 55 +0 -1 54 +0 -1 56 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid145.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid145.txt new file mode 100644 index 00000000..3ef12528 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid145.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 11 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 0 34 +0 0 35 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 10 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 28 +0 1 29 +0 1 32 +0 1 33 +0 1 36 +0 1 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid146.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid146.txt new file mode 100644 index 00000000..14c06151 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid146.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 1 1 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 16 +0 1 17 +0 1 20 +0 1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid147.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid147.txt new file mode 100644 index 00000000..679e11d1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid147.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 6 +0 0 9 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 1 2 +0 1 3 +0 1 4 +0 1 8 +0 1 12 +0 1 13 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 28 +0 1 29 +0 -1 5 +0 -1 7 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid148.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid148.txt new file mode 100644 index 00000000..7f4b0d76 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid148.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 6 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 1 3 +0 1 4 +0 1 5 +0 1 7 +0 1 10 +0 1 11 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 26 +0 1 27 +0 -1 23 +0 -1 31 +0 -1 32 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid149.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid149.txt new file mode 100644 index 00000000..c691cce7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid149.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 6 +0 0 7 +0 0 9 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 10 +0 1 12 +0 1 13 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 26 +0 1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid15.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid15.txt new file mode 100644 index 00000000..15752e1f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid15.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 -1 3 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid150.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid150.txt new file mode 100644 index 00000000..1d749e69 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid150.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 0 27 +0 0 29 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 38 +0 0 39 +0 1 1 +0 1 3 +0 1 4 +0 1 5 +0 1 10 +0 1 11 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 26 +0 1 28 +0 1 30 +0 1 31 +0 1 36 +0 1 37 +0 1 40 +0 1 41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid151.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid151.txt new file mode 100644 index 00000000..9e34d7ee --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid151.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 16 +0 1 17 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid152.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid152.txt new file mode 100644 index 00000000..4bbbcea4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid152.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 8 +0 0 9 +0 0 12 +0 0 18 +0 0 19 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid153.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid153.txt new file mode 100644 index 00000000..e0edc917 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid153.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 12 +0 0 13 +0 0 20 +0 0 21 +0 1 1 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 1 22 +0 1 23 +0 2 2 +0 2 8 +0 2 9 +0 2 16 +0 2 17 +0 3 3 +0 3 10 +0 3 11 +0 3 18 +0 3 19 +0 3 24 +0 3 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid154.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid154.txt new file mode 100644 index 00000000..ba4cde1e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid154.txt @@ -0,0 +1,64 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 22 +0 0 23 +0 0 31 +0 0 33 +0 0 47 +0 0 48 +0 0 49 +0 0 51 +0 0 52 +0 0 57 +0 0 58 +0 0 59 +0 0 60 +0 0 61 +0 0 62 +0 1 1 +0 1 3 +0 1 4 +0 1 5 +0 1 14 +0 1 15 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 32 +0 1 34 +0 1 35 +0 1 36 +0 1 38 +0 1 39 +0 1 40 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 53 +0 1 54 +0 1 55 +0 1 56 +0 -1 10 +0 -1 11 +0 -1 37 +0 -1 50 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid155.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid155.txt new file mode 100644 index 00000000..ae5580aa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid155.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 9 +0 0 10 +0 0 11 +0 1 1 +0 1 5 +0 1 6 +0 1 7 +0 1 21 +0 1 22 +0 2 2 +0 2 14 +0 2 15 +0 2 16 +0 2 18 +0 2 19 +0 2 20 +0 -1 8 +0 -1 12 +0 -1 13 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid156.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid156.txt new file mode 100644 index 00000000..03da0117 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid156.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 30 +0 0 31 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 16 +0 1 17 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid157.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid157.txt new file mode 100644 index 00000000..f3eeb4f2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid157.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 10 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid158.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid158.txt new file mode 100644 index 00000000..c6fedc96 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid158.txt @@ -0,0 +1,32 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 20 +0 0 21 +0 0 22 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 24 +0 1 28 +0 1 30 +0 -1 23 +0 -1 25 +0 -1 26 +0 -1 27 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid159.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid159.txt new file mode 100644 index 00000000..db0b5f1c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid159.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 37 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 35 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 -1 25 +0 -1 34 +0 -1 36 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid16.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid16.txt new file mode 100644 index 00000000..d4c84a9e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid16.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 16 +0 0 21 +0 0 6 +0 1 1 +0 1 18 +0 1 17 +0 2 2 +0 2 19 +0 2 15 +0 3 3 +0 3 20 +0 3 13 +0 4 4 +0 4 14 +0 5 11 +0 5 12 +0 5 5 +0 -1 7 +0 -1 8 +0 -1 9 +0 -1 10 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid160.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid160.txt new file mode 100644 index 00000000..b4e12e4b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid160.txt @@ -0,0 +1,36 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 26 +0 0 27 +0 0 34 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 20 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 -1 25 +0 -1 32 +0 -1 33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid161.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid161.txt new file mode 100644 index 00000000..912a1488 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid161.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 15 +0 0 16 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 13 +0 1 14 +0 1 17 +0 1 18 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid162.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid162.txt new file mode 100644 index 00000000..3e59f312 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid162.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 5 +0 0 6 +0 0 9 +0 0 10 +0 0 18 +0 1 1 +0 1 7 +0 1 8 +0 1 11 +0 1 12 +0 1 20 +0 2 2 +0 2 3 +0 2 4 +0 2 13 +0 2 14 +0 2 15 +0 2 16 +0 -1 17 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid163.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid163.txt new file mode 100644 index 00000000..d4bfc3ec --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid163.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 6 +0 0 7 +0 0 15 +0 0 16 +0 0 17 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid164.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid164.txt new file mode 100644 index 00000000..49eec4cf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid164.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 30 +0 0 31 +0 1 2 +0 1 3 +0 1 4 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 32 +0 1 33 +0 1 35 +0 1 37 +0 -1 28 +0 -1 29 +0 -1 34 +0 -1 36 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid165.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid165.txt new file mode 100644 index 00000000..c77843d9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid165.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 15 +0 1 16 +0 1 19 +0 1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid166.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid166.txt new file mode 100644 index 00000000..208fb73b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid166.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 10 +0 0 18 +0 0 19 +0 0 20 +0 0 28 +0 0 29 +0 1 1 +0 1 7 +0 1 9 +0 1 15 +0 1 16 +0 1 17 +0 1 26 +0 1 27 +0 2 2 +0 2 6 +0 2 8 +0 2 12 +0 2 13 +0 2 14 +0 2 24 +0 2 25 +0 3 3 +0 3 5 +0 3 11 +0 3 21 +0 3 22 +0 3 23 +0 3 30 +0 3 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid167.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid167.txt new file mode 100644 index 00000000..5cc23d78 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid167.txt @@ -0,0 +1,45 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 34 +0 0 33 +0 0 40 +0 0 41 +0 0 15 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 36 +0 1 37 +0 1 38 +0 1 39 +0 1 42 +0 1 43 +0 -1 35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid168.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid168.txt new file mode 100644 index 00000000..27058eaf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid168.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 28 +0 0 29 +0 0 30 +0 0 36 +0 0 37 +0 0 38 +0 1 32 +0 1 33 +0 1 34 +0 1 3 +0 1 35 +0 1 6 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 -1 27 +0 -1 31 +0 -1 39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid169.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid169.txt new file mode 100644 index 00000000..eca1355b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid169.txt @@ -0,0 +1,45 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 32 +0 0 33 +0 0 6 +0 0 7 +0 0 8 +0 0 42 +0 0 43 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 26 +0 0 27 +0 1 3 +0 1 4 +0 1 5 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 34 +0 1 35 +0 1 40 +0 1 41 +0 -1 36 +0 -1 37 +0 -1 38 +0 -1 39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid17.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid17.txt new file mode 100644 index 00000000..d13f49e7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid17.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 -1 7 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid170.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid170.txt new file mode 100644 index 00000000..8f5d29fd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid170.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 8 +0 0 9 +0 0 13 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 12 +0 1 14 +0 1 15 +0 1 16 +0 -1 17 +0 -1 22 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid171.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid171.txt new file mode 100644 index 00000000..1ebf2bb8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid171.txt @@ -0,0 +1,40 @@ +topo_id bus_id node +0 0 0 +0 0 34 +0 0 35 +0 0 5 +0 0 10 +0 0 11 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 28 +0 0 29 +0 1 1 +0 1 2 +0 1 4 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 30 +0 1 31 +0 1 32 +0 1 33 +0 1 38 +0 -1 3 +0 -1 21 +0 -1 36 +0 -1 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid172.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid172.txt new file mode 100644 index 00000000..2d4e0747 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid172.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 1 3 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 16 +0 1 17 +0 1 20 +0 1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid173.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid173.txt new file mode 100644 index 00000000..2206251e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid173.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 1 1 +0 1 5 +0 1 6 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 2 2 +0 2 7 +0 2 8 +0 2 17 +0 2 18 +0 2 19 +0 2 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid174.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid174.txt new file mode 100644 index 00000000..e80e476d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid174.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 1 3 +0 1 6 +0 1 7 +0 1 12 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 -1 18 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid175.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid175.txt new file mode 100644 index 00000000..73727724 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid175.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 1 1 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 10 +0 1 11 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 24 +0 1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid176.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid176.txt new file mode 100644 index 00000000..4c43778b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid176.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 1 1 +0 1 22 +0 1 23 +0 2 2 +0 2 16 +0 2 17 +0 2 18 +0 2 19 +0 2 24 +0 2 25 +0 3 27 +0 3 26 +0 3 3 +0 -1 4 +0 -1 5 +0 -1 6 +0 -1 7 +0 -1 8 +0 -1 9 +0 -1 10 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid177.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid177.txt new file mode 100644 index 00000000..9cf4d9b9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid177.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 1 1 +0 1 4 +0 1 30 +0 2 32 +0 2 2 +0 2 6 +0 -1 5 +0 -1 7 +0 -1 8 +0 -1 9 +0 -1 10 +0 -1 11 +0 -1 22 +0 -1 23 +0 -1 24 +0 -1 25 +0 -1 26 +0 -1 27 +0 -1 28 +0 -1 29 +0 -1 31 +0 -1 33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid178.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid178.txt new file mode 100644 index 00000000..1c35ecee --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid178.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 8 +0 0 9 +0 0 16 +0 0 17 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 19 +0 1 21 +0 -1 18 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid179.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid179.txt new file mode 100644 index 00000000..908f426a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid179.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 -1 0 +0 1 16 +0 1 1 +0 2 2 +0 2 10 +0 2 11 +0 2 12 +0 2 20 +0 2 21 +0 3 3 +0 3 4 +0 3 5 +0 3 6 +0 3 7 +0 3 14 +0 3 15 +0 3 18 +0 3 24 +0 -1 8 +0 -1 9 +0 -1 13 +0 -1 17 +0 -1 19 +0 -1 22 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid18.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid18.txt new file mode 100644 index 00000000..1e323e74 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid18.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid180.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid180.txt new file mode 100644 index 00000000..0b7a05d4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid180.txt @@ -0,0 +1,63 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 7 +0 0 8 +0 0 9 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 28 +0 0 29 +0 0 31 +0 0 32 +0 0 36 +0 0 37 +0 0 42 +0 0 43 +0 0 50 +0 0 51 +0 0 56 +0 0 57 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 30 +0 1 33 +0 1 34 +0 1 35 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 52 +0 1 53 +0 1 54 +0 1 55 +0 1 59 +0 1 61 +0 -1 38 +0 -1 39 +0 -1 40 +0 -1 41 +0 -1 58 +0 -1 60 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid181.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid181.txt new file mode 100644 index 00000000..baf09ce0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid181.txt @@ -0,0 +1,32 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 0 23 +0 0 24 +0 1 1 +0 1 7 +0 1 8 +0 1 9 +0 1 17 +0 1 18 +0 1 25 +0 1 26 +0 2 2 +0 2 10 +0 2 11 +0 2 12 +0 2 19 +0 2 20 +0 2 27 +0 2 28 +0 3 3 +0 3 13 +0 3 21 +0 3 22 +0 3 29 +0 3 30 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid182.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid182.txt new file mode 100644 index 00000000..393122de --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid182.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 1 1 +0 1 6 +0 1 7 +0 1 16 +0 1 17 +0 2 2 +0 2 8 +0 2 9 +0 2 18 +0 2 19 +0 2 22 +0 2 23 +0 3 3 +0 3 10 +0 3 12 +0 3 13 +0 3 24 +0 3 25 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid183.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid183.txt new file mode 100644 index 00000000..6aa03e74 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid183.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 5 +0 0 6 +0 0 8 +0 0 15 +0 0 16 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 7 +0 1 9 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 20 +0 -1 10 +0 -1 17 +0 -1 18 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid184.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid184.txt new file mode 100644 index 00000000..227a29b5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid184.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 5 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 1 1 +0 1 4 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 -1 13 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid185.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid185.txt new file mode 100644 index 00000000..376814b6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid185.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 14 +0 0 15 +0 0 26 +0 0 27 +0 0 29 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 16 +0 1 17 +0 1 18 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 -1 3 +0 -1 10 +0 -1 11 +0 -1 12 +0 -1 13 +0 -1 19 +0 -1 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid186.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid186.txt new file mode 100644 index 00000000..06069391 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid186.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 8 +0 0 9 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 1 1 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid187.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid187.txt new file mode 100644 index 00000000..795265be --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid187.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 22 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 -1 20 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid188.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid188.txt new file mode 100644 index 00000000..ef52a3d9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid188.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 10 +0 0 15 +0 0 17 +0 0 18 +0 0 20 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 19 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid189.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid189.txt new file mode 100644 index 00000000..511f472d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid189.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 23 +0 1 1 +0 1 2 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 -1 15 +0 -1 22 +0 -1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid19.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid19.txt new file mode 100644 index 00000000..0f7a58f9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid19.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 10 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 1 4 +0 1 5 +0 -1 9 +0 -1 11 +0 -1 22 +0 -1 34 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid190.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid190.txt new file mode 100644 index 00000000..cb04844c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid190.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 4 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 17 +0 1 2 +0 1 5 +0 1 6 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 -1 16 +0 -1 27 +0 -1 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid191.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid191.txt new file mode 100644 index 00000000..a3c4f6fc --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid191.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 25 +0 1 1 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 18 +0 1 19 +0 1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid192.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid192.txt new file mode 100644 index 00000000..effe8223 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid192.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 19 +0 1 21 +0 -1 18 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid193.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid193.txt new file mode 100644 index 00000000..8f4a74fe --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid193.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 22 +0 0 23 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 10 +0 1 11 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid194.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid194.txt new file mode 100644 index 00000000..7bcf0218 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid194.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 20 +0 0 21 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 14 +0 1 15 +0 1 16 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 -1 9 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid195.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid195.txt new file mode 100644 index 00000000..f003f5f1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid195.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 35 +0 0 4 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 33 +0 1 2 +0 1 3 +0 1 6 +0 1 8 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 -1 5 +0 -1 32 +0 -1 34 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid196.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid196.txt new file mode 100644 index 00000000..92d7cb68 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid196.txt @@ -0,0 +1,83 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 8 +0 0 9 +0 0 16 +0 0 17 +0 0 23 +0 0 25 +0 0 30 +0 0 31 +0 0 34 +0 0 35 +0 0 38 +0 0 39 +0 0 48 +0 0 49 +0 0 50 +0 0 51 +0 0 54 +0 0 55 +0 0 56 +0 0 57 +0 0 59 +0 0 74 +0 0 75 +0 0 76 +0 0 77 +0 0 78 +0 0 79 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 14 +0 1 15 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 24 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 32 +0 1 33 +0 1 36 +0 1 37 +0 1 40 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 52 +0 1 53 +0 1 60 +0 1 61 +0 1 62 +0 1 63 +0 1 64 +0 1 65 +0 1 66 +0 1 67 +0 1 68 +0 1 69 +0 1 70 +0 1 71 +0 1 72 +0 1 73 +0 -1 12 +0 -1 13 +0 -1 58 +0 -1 80 +0 -1 81 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid197.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid197.txt new file mode 100644 index 00000000..5fb0f547 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid197.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 19 +0 1 20 +0 1 21 +0 1 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid198.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid198.txt new file mode 100644 index 00000000..c279f01f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid198.txt @@ -0,0 +1,77 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 11 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 39 +0 0 40 +0 0 41 +0 0 50 +0 0 51 +0 0 54 +0 0 55 +0 0 64 +0 0 65 +0 0 66 +0 0 67 +0 0 68 +0 0 69 +0 0 70 +0 0 71 +0 1 2 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 38 +0 1 42 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 52 +0 1 53 +0 1 58 +0 1 59 +0 1 60 +0 1 61 +0 1 62 +0 1 63 +0 1 73 +0 1 75 +0 2 3 +0 2 4 +0 2 10 +0 2 43 +0 2 44 +0 2 45 +0 2 14 +0 2 15 +0 2 24 +0 2 25 +0 2 56 +0 2 28 +0 2 29 +0 2 57 +0 -1 16 +0 -1 17 +0 -1 36 +0 -1 37 +0 -1 72 +0 -1 74 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid199.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid199.txt new file mode 100644 index 00000000..131c32cd --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid199.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 38 +0 0 39 +0 1 5 +0 1 4 +0 1 28 +0 -1 10 +0 -1 11 +0 -1 20 +0 -1 21 +0 -1 24 +0 -1 25 +0 -1 29 +0 -1 36 +0 -1 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid2.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid2.txt new file mode 100644 index 00000000..85ca4b23 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid2.txt @@ -0,0 +1,51 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 0 42 +0 0 43 +0 0 44 +0 0 47 +0 0 48 +0 0 49 +0 -1 4 +0 -1 7 +0 -1 12 +0 -1 15 +0 -1 16 +0 -1 21 +0 -1 22 +0 -1 33 +0 -1 45 +0 -1 46 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid20.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid20.txt new file mode 100644 index 00000000..b75d9b34 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid20.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 17 +0 0 18 +0 0 19 +0 0 25 +0 0 26 +0 1 1 +0 1 8 +0 1 9 +0 1 12 +0 1 16 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 27 +0 1 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid200.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid200.txt new file mode 100644 index 00000000..bc204087 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid200.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 13 +0 0 14 +0 0 16 +0 0 17 +0 0 18 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 3 +0 1 4 +0 1 5 +0 1 11 +0 1 12 +0 1 15 +0 1 19 +0 1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid201.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid201.txt new file mode 100644 index 00000000..3949c474 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid201.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 -1 0 +0 -1 1 +0 2 2 +0 2 5 +0 2 6 +0 2 7 +0 2 8 +0 2 15 +0 2 16 +0 2 17 +0 3 3 +0 3 4 +0 3 11 +0 3 12 +0 3 13 +0 3 14 +0 3 19 +0 3 20 +0 3 21 +0 3 22 +0 -1 9 +0 -1 10 +0 -1 18 +0 -1 23 +0 -1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid202.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid202.txt new file mode 100644 index 00000000..075d67cf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid202.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 7 +0 0 8 +0 0 9 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 1 1 +0 1 5 +0 1 6 +0 1 10 +0 1 11 +0 1 12 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid203.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid203.txt new file mode 100644 index 00000000..cce10da5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid203.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 32 +0 0 33 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 15 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 14 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 28 +0 1 29 +0 1 30 +0 1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid204.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid204.txt new file mode 100644 index 00000000..f78577c5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid204.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 1 36 +0 1 37 +0 1 38 +0 1 39 +0 1 40 +0 1 41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid205.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid205.txt new file mode 100644 index 00000000..723f2a20 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid205.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 7 +0 0 14 +0 0 15 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid206.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid206.txt new file mode 100644 index 00000000..68e0f298 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid206.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 7 +0 0 17 +0 0 22 +0 0 23 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 20 +0 1 21 +0 -1 3 +0 -1 18 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid207.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid207.txt new file mode 100644 index 00000000..cacbcdff --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid207.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 -1 1 +0 2 2 +0 2 5 +0 2 8 +0 2 9 +0 2 12 +0 2 13 +0 2 16 +0 2 17 +0 2 22 +0 2 23 +0 3 21 +0 3 4 +0 3 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid208.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid208.txt new file mode 100644 index 00000000..1438c081 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid208.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 23 +0 1 1 +0 1 4 +0 1 8 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 20 +0 1 21 +0 1 25 +0 -1 9 +0 -1 22 +0 -1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid209.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid209.txt new file mode 100644 index 00000000..e12107aa --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid209.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 1 1 +0 1 6 +0 1 7 +0 1 20 +0 1 21 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid21.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid21.txt new file mode 100644 index 00000000..4dd2841d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid21.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid210.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid210.txt new file mode 100644 index 00000000..609ddcec --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid210.txt @@ -0,0 +1,56 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 0 42 +0 0 43 +0 0 44 +0 0 45 +0 0 46 +0 0 47 +0 0 48 +0 0 49 +0 0 55 +0 1 2 +0 1 14 +0 1 15 +0 1 50 +0 1 51 +0 -1 9 +0 -1 10 +0 -1 11 +0 -1 33 +0 -1 54 +0 -1 56 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid211.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid211.txt new file mode 100644 index 00000000..9503fc10 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid211.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 33 +0 0 8 +0 0 9 +0 0 18 +0 0 19 +0 0 23 +0 0 28 +0 0 29 +0 1 1 +0 1 34 +0 1 35 +0 1 10 +0 1 11 +0 2 2 +0 2 36 +0 2 37 +0 2 12 +0 2 13 +0 3 3 +0 3 38 +0 3 39 +0 3 14 +0 3 15 +0 4 4 +0 4 40 +0 4 41 +0 4 16 +0 4 17 +0 5 5 +0 5 6 +0 5 20 +0 5 21 +0 5 22 +0 5 24 +0 5 25 +0 5 26 +0 5 27 +0 5 30 +0 5 31 +0 -1 7 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid212.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid212.txt new file mode 100644 index 00000000..189d1fef --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid212.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 13 +0 0 14 +0 0 16 +0 0 17 +0 0 30 +0 0 31 +0 1 1 +0 1 10 +0 1 11 +0 1 18 +0 1 19 +0 1 28 +0 1 29 +0 2 2 +0 2 7 +0 2 8 +0 2 9 +0 2 20 +0 2 21 +0 2 26 +0 2 27 +0 3 3 +0 3 4 +0 3 5 +0 3 6 +0 3 22 +0 3 23 +0 3 24 +0 3 25 +0 -1 12 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid213.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid213.txt new file mode 100644 index 00000000..42c331fe --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid213.txt @@ -0,0 +1,46 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 43 +0 1 1 +0 1 34 +0 1 35 +0 1 36 +0 1 38 +0 1 39 +0 1 40 +0 1 8 +0 1 41 +0 1 9 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 -1 5 +0 -1 37 +0 -1 42 +0 -1 44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid214.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid214.txt new file mode 100644 index 00000000..c07704f3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid214.txt @@ -0,0 +1,49 @@ +topo_id bus_id node +0 0 0 +0 0 36 +0 0 37 +0 0 42 +0 0 43 +0 0 24 +0 0 26 +0 0 27 +0 1 1 +0 1 34 +0 1 35 +0 1 44 +0 1 45 +0 1 20 +0 1 22 +0 1 23 +0 2 2 +0 2 40 +0 2 41 +0 2 10 +0 2 12 +0 3 3 +0 3 38 +0 3 39 +0 3 8 +0 3 28 +0 4 32 +0 4 33 +0 4 4 +0 4 46 +0 4 47 +0 4 16 +0 4 17 +0 4 18 +0 5 5 +0 5 6 +0 5 14 +0 5 30 +0 5 31 +0 -1 7 +0 -1 9 +0 -1 11 +0 -1 13 +0 -1 15 +0 -1 19 +0 -1 21 +0 -1 25 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid215.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid215.txt new file mode 100644 index 00000000..a6a0acee --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid215.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 1 1 +0 1 4 +0 1 5 +0 1 8 +0 1 12 +0 1 18 +0 1 19 +0 1 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid216.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid216.txt new file mode 100644 index 00000000..3c0a5874 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid216.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 9 +0 1 10 +0 1 17 +0 1 18 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid217.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid217.txt new file mode 100644 index 00000000..d8df789b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid217.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 1 22 +0 1 23 +0 1 24 +0 1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid218.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid218.txt new file mode 100644 index 00000000..ac036f60 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid218.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 18 +0 0 23 +0 0 24 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 1 32 +0 1 1 +0 1 4 +0 1 6 +0 1 7 +0 1 12 +0 1 13 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 25 +0 1 26 +0 -1 17 +0 -1 31 +0 -1 33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid219.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid219.txt new file mode 100644 index 00000000..1c23e894 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid219.txt @@ -0,0 +1,45 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 19 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 32 +0 0 33 +0 0 38 +0 0 39 +0 -1 4 +0 2 34 +0 2 35 +0 2 36 +0 2 5 +0 2 37 +0 2 6 +0 2 8 +0 2 41 +0 2 40 +0 2 9 +0 2 7 +0 2 12 +0 2 13 +0 2 18 +0 2 20 +0 2 21 +0 2 30 +0 2 31 +0 -1 16 +0 -1 17 +0 -1 22 +0 -1 23 +0 -1 42 +0 -1 43 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid22.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid22.txt new file mode 100644 index 00000000..cb2665e0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid22.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 -1 0 +0 -1 1 +0 2 2 +0 2 3 +0 2 4 +0 2 5 +0 2 6 +0 2 7 +0 2 8 +0 2 9 +0 2 10 +0 2 11 +0 2 14 +0 2 15 +0 2 16 +0 2 17 +0 2 18 +0 2 19 +0 2 20 +0 2 21 +0 2 22 +0 2 23 +0 2 24 +0 3 12 +0 3 13 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid220.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid220.txt new file mode 100644 index 00000000..0e2edf4b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid220.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 19 +0 0 21 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 10 +0 1 11 +0 -1 18 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid221.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid221.txt new file mode 100644 index 00000000..ef168096 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid221.txt @@ -0,0 +1,28 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 1 2 +0 1 3 +0 1 6 +0 1 8 +0 1 9 +0 1 14 +0 1 15 +0 1 18 +0 1 19 +0 1 26 +0 -1 13 +0 -1 24 +0 -1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid23.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid23.txt new file mode 100644 index 00000000..6de9cda4 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid23.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 4 +0 0 7 +0 0 8 +0 0 10 +0 0 12 +0 0 13 +0 0 15 +0 0 17 +0 0 19 +0 0 22 +0 0 23 +0 0 27 +0 0 29 +0 1 1 +0 1 3 +0 1 5 +0 1 6 +0 1 9 +0 1 11 +0 1 14 +0 1 16 +0 1 18 +0 1 20 +0 1 21 +0 1 24 +0 1 28 +0 -1 25 +0 -1 26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid24.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid24.txt new file mode 100644 index 00000000..7ad79e80 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid24.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 3 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 17 +0 0 19 +0 0 20 +0 0 22 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 29 +0 0 30 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 -1 2 +0 -1 4 +0 -1 8 +0 -1 9 +0 -1 16 +0 6 18 +0 6 31 +0 -1 21 +0 -1 23 +0 -1 28 +0 -1 32 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid25.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid25.txt new file mode 100644 index 00000000..3bbdc051 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid25.txt @@ -0,0 +1,61 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 58 +0 0 36 +0 0 39 +0 0 40 +0 0 27 +0 0 8 +0 0 11 +0 0 12 +0 0 49 +0 0 51 +0 0 54 +0 0 22 +0 0 26 +0 0 59 +0 0 28 +0 0 31 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 9 +0 1 10 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 23 +0 1 24 +0 1 25 +0 1 29 +0 1 30 +0 1 32 +0 1 33 +0 1 34 +0 1 37 +0 1 38 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 50 +0 1 52 +0 1 53 +0 1 55 +0 1 56 +0 1 57 +0 -1 7 +0 -1 35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid26.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid26.txt new file mode 100644 index 00000000..e4d39e5b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid26.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 14 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 -1 1 +0 -1 2 +0 3 11 +0 3 12 +0 3 13 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid27.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid27.txt new file mode 100644 index 00000000..abf96e4e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid27.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 15 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 30 +0 0 31 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 24 +0 1 26 +0 1 28 +0 1 29 +0 -1 25 +0 -1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid28.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid28.txt new file mode 100644 index 00000000..1b49f48e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid28.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 12 +0 0 15 +0 0 16 +0 0 18 +0 0 19 +0 0 20 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 -1 3 +0 2 35 +0 2 6 +0 2 7 +0 2 13 +0 2 14 +0 2 21 +0 2 24 +0 2 25 +0 2 30 +0 -1 11 +0 -1 17 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid29.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid29.txt new file mode 100644 index 00000000..bc60bece --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid29.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 13 +0 0 15 +0 0 16 +0 0 24 +0 0 25 +0 0 26 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 12 +0 1 14 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 27 +0 1 28 +0 1 29 +0 -1 30 +0 -1 31 +0 -1 32 +0 -1 33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid3.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid3.txt new file mode 100644 index 00000000..5f944f6d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid3.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 -1 3 +0 -1 7 +0 -1 17 +0 -1 18 +0 -1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid30.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid30.txt new file mode 100644 index 00000000..451e2f48 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid30.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 8 +0 0 11 +0 0 12 +0 0 13 +0 0 16 +0 0 18 +0 0 21 +0 0 23 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 7 +0 1 9 +0 1 10 +0 1 14 +0 1 15 +0 1 17 +0 1 19 +0 1 20 +0 1 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid31.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid31.txt new file mode 100644 index 00000000..fb5e565e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid31.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 -1 0 +0 1 1 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 11 +0 1 14 +0 1 16 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 2 2 +0 2 4 +0 2 10 +0 2 15 +0 2 17 +0 -1 5 +0 -1 12 +0 -1 13 +0 -1 18 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid32.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid32.txt new file mode 100644 index 00000000..d5190ab8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid32.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 7 +0 0 9 +0 0 12 +0 0 15 +0 0 18 +0 0 20 +0 0 21 +0 -1 1 +0 2 2 +0 2 11 +0 2 14 +0 3 4 +0 3 5 +0 3 8 +0 3 10 +0 3 13 +0 3 16 +0 3 17 +0 3 19 +0 3 22 +0 3 23 +0 3 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid33.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid33.txt new file mode 100644 index 00000000..79fab5cf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid33.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 7 +0 0 8 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 17 +0 0 20 +0 0 21 +0 1 1 +0 1 2 +0 1 5 +0 1 6 +0 1 9 +0 1 12 +0 1 13 +0 1 16 +0 1 18 +0 1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid34.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid34.txt new file mode 100644 index 00000000..37675e87 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid34.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 8 +0 0 10 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 21 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 9 +0 1 11 +0 1 15 +0 1 16 +0 1 19 +0 1 20 +0 1 24 +0 -1 12 +0 -1 22 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid35.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid35.txt new file mode 100644 index 00000000..59a9b0f8 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid35.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 5 +0 0 7 +0 0 9 +0 0 10 +0 0 12 +0 0 15 +0 0 17 +0 0 20 +0 0 22 +0 0 24 +0 0 27 +0 0 28 +0 0 29 +0 1 1 +0 1 3 +0 1 4 +0 1 6 +0 1 8 +0 1 11 +0 1 16 +0 1 18 +0 1 19 +0 1 21 +0 1 23 +0 -1 13 +0 -1 14 +0 -1 25 +0 -1 26 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid36.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid36.txt new file mode 100644 index 00000000..639382f5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid36.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 -1 0 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 -1 3 +0 3 12 +0 3 13 +0 3 7 +0 -1 28 +0 -1 29 +0 -1 30 +0 -1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid37.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid37.txt new file mode 100644 index 00000000..5cede33d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid37.txt @@ -0,0 +1,63 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 7 +0 0 11 +0 0 12 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 38 +0 0 40 +0 0 41 +0 0 45 +0 0 49 +0 0 50 +0 0 58 +0 0 59 +0 1 1 +0 1 4 +0 1 5 +0 1 6 +0 1 8 +0 1 9 +0 1 10 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 39 +0 1 42 +0 1 43 +0 1 44 +0 1 46 +0 1 47 +0 1 48 +0 1 57 +0 1 60 +0 1 61 +0 2 26 +0 2 27 +0 2 28 +0 2 29 +0 2 30 +0 2 31 +0 3 32 +0 3 33 +0 3 34 +0 3 35 +0 3 36 +0 3 37 +0 -1 51 +0 -1 52 +0 -1 53 +0 -1 54 +0 -1 55 +0 -1 56 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid38.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid38.txt new file mode 100644 index 00000000..cb347a46 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid38.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 33 +0 0 2 +0 0 5 +0 0 39 +0 0 40 +0 0 7 +0 0 9 +0 0 11 +0 0 13 +0 0 14 +0 0 16 +0 0 17 +0 0 22 +0 0 24 +0 0 27 +0 0 29 +0 0 31 +0 1 1 +0 1 3 +0 1 6 +0 1 8 +0 1 10 +0 1 12 +0 1 15 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 23 +0 1 25 +0 1 28 +0 1 30 +0 1 32 +0 1 36 +0 1 37 +0 1 38 +0 1 41 +0 -1 4 +0 -1 26 +0 -1 34 +0 -1 35 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid39.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid39.txt new file mode 100644 index 00000000..7732a7b5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid39.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 5 +0 0 6 +0 0 9 +0 0 10 +0 0 11 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 0 31 +0 0 32 +0 0 34 +0 0 35 +0 0 36 +0 1 1 +0 1 2 +0 1 33 +0 1 4 +0 1 37 +0 1 7 +0 1 8 +0 1 12 +0 1 13 +0 1 14 +0 1 18 +0 1 19 +0 1 21 +0 1 24 +0 1 25 +0 1 28 +0 1 29 +0 1 30 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid4.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid4.txt new file mode 100644 index 00000000..1e323e74 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid4.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid40.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid40.txt new file mode 100644 index 00000000..c8bc78d6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid40.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 6 +0 0 8 +0 0 9 +0 0 10 +0 0 17 +0 0 19 +0 0 20 +0 0 22 +0 0 23 +0 0 24 +0 0 26 +0 0 28 +0 0 29 +0 0 30 +0 0 34 +0 0 36 +0 1 1 +0 1 5 +0 1 7 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 18 +0 1 21 +0 1 25 +0 1 27 +0 1 31 +0 1 32 +0 1 33 +0 1 35 +0 1 37 +0 1 38 +0 1 39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid41.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid41.txt new file mode 100644 index 00000000..1deb0fd9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid41.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 1 9 +0 1 15 +0 -1 16 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid42.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid42.txt new file mode 100644 index 00000000..92e1e107 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid42.txt @@ -0,0 +1,46 @@ +topo_id bus_id node +0 -1 0 +0 1 1 +0 1 2 +0 1 3 +0 1 5 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 27 +0 1 28 +0 1 29 +0 1 31 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 1 38 +0 1 39 +0 1 40 +0 1 41 +0 1 42 +0 1 43 +0 1 44 +0 -1 26 +0 -1 4 +0 -1 6 +0 -1 30 +0 4 14 +0 4 15 +0 -1 18 +0 -1 19 +0 -1 36 +0 -1 37 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid43.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid43.txt new file mode 100644 index 00000000..d94c441a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid43.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 7 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 33 +0 0 34 +0 0 35 +0 -1 6 +0 -1 8 +0 -1 9 +0 -1 10 +0 -1 11 +0 -1 12 +0 7 32 +0 7 36 +0 7 37 +0 7 15 +0 7 16 +0 -1 23 +0 -1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid44.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid44.txt new file mode 100644 index 00000000..fede94e0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid44.txt @@ -0,0 +1,25 @@ +topo_id bus_id node +0 -1 0 +0 1 1 +0 1 2 +0 1 4 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 22 +0 1 23 +0 -1 3 +0 -1 5 +0 -1 6 +0 -1 7 +0 6 10 +0 6 11 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid45.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid45.txt new file mode 100644 index 00000000..6d340835 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid45.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 26 +0 0 27 +0 0 28 +0 1 12 +0 1 13 +0 2 25 +0 2 23 +0 2 14 +0 2 15 +0 -1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid46.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid46.txt new file mode 100644 index 00000000..5567f958 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid46.txt @@ -0,0 +1,38 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 -1 16 +0 -1 17 +0 3 32 +0 3 18 +0 -1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid47.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid47.txt new file mode 100644 index 00000000..9661ae1d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid47.txt @@ -0,0 +1,44 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 33 +0 0 35 +0 0 4 +0 0 1 +0 0 42 +0 0 11 +0 0 16 +0 0 19 +0 0 21 +0 0 22 +0 0 24 +0 0 25 +0 1 2 +0 1 34 +0 1 3 +0 1 12 +0 1 14 +0 1 23 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 -1 5 +0 -1 6 +0 -1 7 +0 -1 8 +0 -1 9 +0 -1 10 +0 -1 13 +0 -1 15 +0 -1 17 +0 -1 18 +0 -1 20 +0 -1 26 +0 -1 27 +0 -1 36 +0 -1 37 +0 -1 38 +0 -1 39 +0 -1 40 +0 -1 41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid48.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid48.txt new file mode 100644 index 00000000..1c8e48b2 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid48.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 5 +0 0 9 +0 0 11 +0 0 14 +0 0 15 +0 0 21 +0 1 1 +0 1 2 +0 1 4 +0 1 7 +0 1 12 +0 1 13 +0 1 16 +0 1 20 +0 -1 6 +0 -1 8 +0 4 17 +0 4 10 +0 4 19 +0 -1 18 +0 -1 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid49.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid49.txt new file mode 100644 index 00000000..c28d3f25 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid49.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 1 33 +0 1 19 +0 -1 34 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid5.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid5.txt new file mode 100644 index 00000000..56849195 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid5.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid50.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid50.txt new file mode 100644 index 00000000..408eb4cf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid50.txt @@ -0,0 +1,30 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 27 +0 0 28 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 2 12 +0 2 13 +0 2 14 +0 2 15 +0 2 24 +0 2 26 +0 -1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid51.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid51.txt new file mode 100644 index 00000000..93e8381c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid51.txt @@ -0,0 +1,28 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 -1 9 +0 2 12 +0 2 20 +0 2 22 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid52.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid52.txt new file mode 100644 index 00000000..d9a20e6e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid52.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 5 +0 0 8 +0 0 10 +0 0 12 +0 0 14 +0 0 16 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 26 +0 0 29 +0 0 31 +0 1 1 +0 1 3 +0 1 4 +0 1 9 +0 1 11 +0 1 13 +0 1 15 +0 1 17 +0 1 18 +0 1 19 +0 1 24 +0 1 25 +0 1 27 +0 1 28 +0 1 30 +0 -1 6 +0 -1 7 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid53.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid53.txt new file mode 100644 index 00000000..a4297bdf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid53.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 21 +0 0 22 +0 -1 4 +0 2 11 +0 2 12 +0 2 13 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid54.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid54.txt new file mode 100644 index 00000000..fa30136b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid54.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 7 +0 0 8 +0 0 9 +0 0 13 +0 0 14 +0 0 15 +0 0 17 +0 0 19 +0 0 21 +0 0 23 +0 0 26 +0 0 27 +0 -1 16 +0 -1 3 +0 -1 18 +0 -1 4 +0 -1 20 +0 -1 5 +0 -1 6 +0 -1 22 +0 5 10 +0 5 11 +0 5 12 +0 -1 24 +0 -1 25 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid55.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid55.txt new file mode 100644 index 00000000..ec752601 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid55.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 8 +0 0 9 +0 0 11 +0 0 12 +0 0 15 +0 0 18 +0 0 19 +0 0 21 +0 0 25 +0 0 26 +0 1 1 +0 1 2 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 20 +0 1 22 +0 1 23 +0 1 24 +0 1 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid56.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid56.txt new file mode 100644 index 00000000..914b0125 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid56.txt @@ -0,0 +1,55 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 19 +0 0 20 +0 0 21 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 33 +0 0 35 +0 0 36 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 42 +0 0 43 +0 0 44 +0 0 45 +0 0 46 +0 0 47 +0 0 49 +0 0 51 +0 0 52 +0 0 53 +0 -1 5 +0 2 32 +0 2 34 +0 2 6 +0 2 8 +0 2 41 +0 2 48 +0 2 50 +0 2 18 +0 2 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid57.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid57.txt new file mode 100644 index 00000000..d76c8123 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid57.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 7 +0 0 8 +0 0 17 +0 0 18 +0 1 1 +0 1 10 +0 1 19 +0 1 9 +0 2 2 +0 2 5 +0 2 6 +0 2 15 +0 2 16 +0 3 3 +0 3 13 +0 3 14 +0 3 23 +0 3 24 +0 4 4 +0 4 11 +0 4 12 +0 4 21 +0 4 22 +0 -1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid58.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid58.txt new file mode 100644 index 00000000..bbf3855d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid58.txt @@ -0,0 +1,45 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 34 +0 0 35 +0 0 4 +0 0 33 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 15 +0 0 16 +0 0 26 +0 0 27 +0 0 28 +0 1 1 +0 1 36 +0 1 37 +0 1 5 +0 1 38 +0 1 39 +0 1 10 +0 1 11 +0 1 12 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 30 +0 1 31 +0 2 2 +0 2 3 +0 2 40 +0 2 41 +0 2 42 +0 2 43 +0 2 13 +0 2 22 +0 2 23 +0 2 24 +0 2 25 +0 -1 14 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid59.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid59.txt new file mode 100644 index 00000000..79a9292b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid59.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 1 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 20 +0 1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid6.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid6.txt new file mode 100644 index 00000000..e8310d76 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid6.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 15 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 -1 8 +0 -1 14 +0 -1 16 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid60.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid60.txt new file mode 100644 index 00000000..5d1a892c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid60.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 32 +0 0 2 +0 0 33 +0 0 3 +0 0 6 +0 0 7 +0 0 14 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 1 1 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 13 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 30 +0 1 31 +0 1 34 +0 1 35 +0 1 36 +0 1 37 +0 1 38 +0 1 39 +0 -1 16 +0 -1 17 +0 -1 12 +0 -1 15 +0 -1 20 +0 -1 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid61.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid61.txt new file mode 100644 index 00000000..18db5ab3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid61.txt @@ -0,0 +1,46 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 10 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 0 42 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 26 +0 1 27 +0 1 28 +0 1 30 +0 1 31 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 1 36 +0 -1 29 +0 -1 43 +0 -1 44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid62.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid62.txt new file mode 100644 index 00000000..f8b81408 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid62.txt @@ -0,0 +1,49 @@ +topo_id bus_id node +0 0 0 +0 0 37 +0 0 8 +0 0 9 +0 0 15 +0 0 24 +0 0 25 +0 0 30 +0 0 31 +0 1 32 +0 1 1 +0 1 33 +0 1 4 +0 1 36 +0 1 5 +0 1 44 +0 1 13 +0 1 45 +0 1 22 +0 1 23 +0 1 26 +0 1 27 +0 2 2 +0 2 34 +0 2 35 +0 2 39 +0 2 40 +0 2 41 +0 2 42 +0 2 43 +0 2 14 +0 2 18 +0 2 19 +0 3 3 +0 3 38 +0 3 6 +0 3 7 +0 3 10 +0 3 11 +0 3 12 +0 3 46 +0 3 47 +0 3 16 +0 3 17 +0 3 20 +0 3 21 +0 3 28 +0 3 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid63.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid63.txt new file mode 100644 index 00000000..912113bf --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid63.txt @@ -0,0 +1,63 @@ +topo_id bus_id node +0 0 0 +0 0 36 +0 0 37 +0 0 40 +0 0 41 +0 0 56 +0 0 57 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 14 +0 1 15 +0 1 18 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 32 +0 1 34 +0 1 35 +0 1 38 +0 1 39 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 50 +0 1 51 +0 1 52 +0 1 53 +0 1 54 +0 1 55 +0 1 60 +0 1 61 +0 2 33 +0 2 5 +0 2 42 +0 2 43 +0 2 16 +0 2 58 +0 2 59 +0 2 28 +0 2 29 +0 2 30 +0 2 31 +0 -1 6 +0 -1 7 +0 -1 17 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid64.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid64.txt new file mode 100644 index 00000000..d182c67a --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid64.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 8 +0 0 9 +0 0 12 +0 0 13 +0 0 17 +0 0 22 +0 0 23 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 10 +0 1 11 +0 1 14 +0 1 15 +0 1 16 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 32 +0 1 34 +0 1 35 +0 1 36 +0 1 37 +0 1 38 +0 1 39 +0 1 40 +0 1 41 +0 -1 33 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid65.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid65.txt new file mode 100644 index 00000000..b787c4d7 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid65.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 10 +0 0 11 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 0 30 +0 0 31 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 28 +0 1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid66.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid66.txt new file mode 100644 index 00000000..0915fff3 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid66.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 14 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 31 +0 0 32 +0 0 33 +0 1 1 +0 1 12 +0 1 13 +0 1 15 +0 1 22 +0 1 23 +0 1 30 +0 -1 10 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid67.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid67.txt new file mode 100644 index 00000000..20e75107 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid67.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 1 1 +0 1 9 +0 1 10 +0 1 19 +0 1 20 +0 2 2 +0 2 11 +0 2 12 +0 2 21 +0 2 22 +0 3 3 +0 3 13 +0 3 14 +0 3 23 +0 3 24 +0 4 4 +0 4 7 +0 4 8 +0 4 17 +0 4 18 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid68.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid68.txt new file mode 100644 index 00000000..bea43721 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid68.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 7 +0 0 8 +0 0 12 +0 0 13 +0 0 14 +0 0 16 +0 0 17 +0 0 18 +0 1 1 +0 1 5 +0 1 6 +0 1 9 +0 1 10 +0 1 11 +0 1 15 +0 1 21 +0 1 22 +0 2 2 +0 2 3 +0 2 4 +0 2 19 +0 2 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid69.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid69.txt new file mode 100644 index 00000000..c3b4dc5b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid69.txt @@ -0,0 +1,46 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 6 +0 0 7 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 37 +0 0 38 +0 0 39 +0 0 40 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 28 +0 1 29 +0 1 30 +0 1 32 +0 1 33 +0 1 34 +0 1 35 +0 1 36 +0 1 41 +0 1 42 +0 -1 31 +0 -1 43 +0 -1 44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid7.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid7.txt new file mode 100644 index 00000000..4dd2841d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid7.txt @@ -0,0 +1,23 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid70.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid70.txt new file mode 100644 index 00000000..a93daa90 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid70.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 14 +0 0 15 +0 0 21 +0 0 24 +0 0 25 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 20 +0 1 22 +0 1 23 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid71.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid71.txt new file mode 100644 index 00000000..499e9d48 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid71.txt @@ -0,0 +1,35 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 28 +0 0 29 +0 0 31 +0 1 1 +0 1 2 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 14 +0 1 15 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 33 +0 -1 30 +0 -1 32 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid72.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid72.txt new file mode 100644 index 00000000..4f7c3399 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid72.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 9 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 1 1 +0 1 6 +0 1 7 +0 1 8 +0 1 12 +0 1 13 +0 1 14 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid73.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid73.txt new file mode 100644 index 00000000..b6be42a0 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid73.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 32 +0 0 33 +0 0 6 +0 0 7 +0 0 12 +0 0 13 +0 0 17 +0 0 20 +0 0 21 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 14 +0 1 16 +0 1 18 +0 1 19 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 28 +0 1 29 +0 1 30 +0 1 31 +0 1 34 +0 1 35 +0 1 36 +0 1 37 +0 -1 15 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid74.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid74.txt new file mode 100644 index 00000000..dd61c408 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid74.txt @@ -0,0 +1,37 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 1 4 +0 1 5 +0 1 30 +0 1 31 +0 -1 19 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid75.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid75.txt new file mode 100644 index 00000000..b607d1fb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid75.txt @@ -0,0 +1,71 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 14 +0 0 15 +0 0 17 +0 0 19 +0 0 21 +0 1 4 +0 1 12 +0 1 13 +0 1 20 +0 1 43 +0 1 44 +0 1 45 +0 1 46 +0 1 47 +0 1 48 +0 1 49 +0 1 50 +0 1 51 +0 1 52 +0 1 53 +0 1 54 +0 1 55 +0 1 56 +0 1 57 +0 2 5 +0 2 6 +0 2 10 +0 2 11 +0 2 18 +0 2 22 +0 2 23 +0 2 25 +0 2 26 +0 2 28 +0 2 29 +0 2 30 +0 2 31 +0 2 32 +0 2 33 +0 2 34 +0 2 35 +0 2 36 +0 2 37 +0 2 38 +0 2 39 +0 2 64 +0 2 65 +0 2 66 +0 2 67 +0 2 68 +0 3 7 +0 3 8 +0 3 40 +0 3 9 +0 3 41 +0 3 42 +0 3 16 +0 3 58 +0 3 59 +0 3 60 +0 3 61 +0 3 62 +0 3 63 +0 -1 24 +0 -1 27 +0 -1 69 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid76.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid76.txt new file mode 100644 index 00000000..c77843d9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid76.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 17 +0 0 18 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 1 1 +0 1 8 +0 1 15 +0 1 16 +0 1 19 +0 1 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid77.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid77.txt new file mode 100644 index 00000000..bc5e2074 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid77.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 1 1 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 17 +0 1 18 +0 2 2 +0 2 11 +0 2 12 +0 2 13 +0 2 14 +0 2 19 +0 2 20 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid78.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid78.txt new file mode 100644 index 00000000..5530e139 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid78.txt @@ -0,0 +1,39 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 28 +0 0 29 +0 0 32 +0 0 33 +0 0 36 +0 0 37 +0 1 2 +0 1 3 +0 1 34 +0 1 35 +0 1 6 +0 1 7 +0 1 10 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 26 +0 1 27 +0 1 30 +0 1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid79.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid79.txt new file mode 100644 index 00000000..f9e1da5d --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid79.txt @@ -0,0 +1,41 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 4 +0 0 5 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 0 33 +0 0 35 +0 0 36 +0 0 37 +0 1 1 +0 1 3 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 22 +0 1 23 +0 1 24 +0 1 25 +0 1 30 +0 1 31 +0 1 32 +0 1 34 +0 1 38 +0 1 39 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid8.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid8.txt new file mode 100644 index 00000000..2f56d74c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid8.txt @@ -0,0 +1,24 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 10 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 17 +0 0 19 +0 1 1 +0 1 9 +0 1 11 +0 1 16 +0 1 18 +0 1 20 +0 1 21 +0 1 22 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid80.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid80.txt new file mode 100644 index 00000000..29674648 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid80.txt @@ -0,0 +1,43 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 6 +0 0 38 +0 0 7 +0 0 9 +0 0 39 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 22 +0 0 30 +0 0 31 +0 1 32 +0 1 33 +0 1 2 +0 1 12 +0 1 13 +0 1 18 +0 1 19 +0 2 3 +0 2 4 +0 2 5 +0 2 8 +0 2 10 +0 2 11 +0 2 16 +0 2 17 +0 2 24 +0 2 25 +0 2 26 +0 2 27 +0 2 28 +0 2 29 +0 -1 23 +0 -1 40 +0 -1 41 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid81.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid81.txt new file mode 100644 index 00000000..50b54bc1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid81.txt @@ -0,0 +1,38 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 22 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 1 32 +0 1 33 +0 1 2 +0 1 3 +0 1 4 +0 1 35 +0 1 6 +0 1 7 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 26 +0 1 27 +0 -1 24 +0 -1 36 +0 -1 23 +0 -1 25 +0 -1 34 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid82.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid82.txt new file mode 100644 index 00000000..afd93bc6 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid82.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 10 +0 0 11 +0 0 18 +0 0 19 +0 0 26 +0 0 27 +0 1 1 +0 1 8 +0 1 9 +0 1 16 +0 1 17 +0 1 24 +0 1 25 +0 2 2 +0 2 6 +0 2 7 +0 2 14 +0 2 15 +0 2 22 +0 2 23 +0 3 3 +0 3 4 +0 3 5 +0 3 12 +0 3 13 +0 3 20 +0 3 21 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid83.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid83.txt new file mode 100644 index 00000000..3bb08f48 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid83.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 1 1 +0 1 6 +0 1 7 +0 1 8 +0 1 10 +0 1 11 +0 1 18 +0 1 19 +0 1 26 +0 1 27 +0 1 28 +0 1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid84.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid84.txt new file mode 100644 index 00000000..21cca55e --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid84.txt @@ -0,0 +1,55 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 37 +0 0 40 +0 0 41 +0 0 44 +0 0 45 +0 0 46 +0 0 47 +0 0 48 +0 0 49 +0 0 52 +0 0 53 +0 1 3 +0 1 38 +0 1 6 +0 1 39 +0 1 42 +0 1 43 +0 1 50 +0 1 51 +0 -1 28 +0 -1 29 +0 -1 30 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid85.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid85.txt new file mode 100644 index 00000000..eecc94c5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid85.txt @@ -0,0 +1,32 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 30 +0 1 3 +0 1 4 +0 1 5 +0 1 6 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 18 +0 1 19 +0 1 20 +0 1 21 +0 1 22 +0 -1 23 +0 -1 28 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid86.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid86.txt new file mode 100644 index 00000000..8e3f5918 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid86.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 7 +0 0 18 +0 0 19 +0 1 1 +0 1 8 +0 1 9 +0 1 20 +0 1 21 +0 2 2 +0 2 10 +0 2 11 +0 2 22 +0 2 23 +0 3 3 +0 3 12 +0 3 13 +0 3 24 +0 3 25 +0 4 4 +0 4 14 +0 4 15 +0 4 26 +0 4 27 +0 5 5 +0 5 16 +0 5 17 +0 5 28 +0 5 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid87.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid87.txt new file mode 100644 index 00000000..eddafcc9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid87.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 4 +0 0 5 +0 0 12 +0 0 13 +0 0 20 +0 0 21 +0 1 1 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 1 22 +0 1 23 +0 2 2 +0 2 8 +0 2 9 +0 2 16 +0 2 17 +0 2 24 +0 2 25 +0 3 3 +0 3 10 +0 3 18 +0 3 19 +0 3 26 +0 3 27 +0 -1 11 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid88.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid88.txt new file mode 100644 index 00000000..e375402b --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid88.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 19 +0 0 20 +0 1 1 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 17 +0 1 18 +0 2 2 +0 2 3 +0 2 4 +0 2 5 +0 2 6 +0 2 15 +0 2 16 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid89.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid89.txt new file mode 100644 index 00000000..89e0af05 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid89.txt @@ -0,0 +1,49 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 9 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 0 30 +0 0 31 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 38 +0 0 39 +0 0 40 +0 0 41 +0 1 4 +0 1 5 +0 1 36 +0 1 37 +0 1 8 +0 1 10 +0 1 42 +0 1 44 +0 1 11 +0 1 43 +0 1 22 +0 1 23 +0 1 26 +0 1 27 +0 -1 45 +0 -1 46 +0 -1 47 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid9.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid9.txt new file mode 100644 index 00000000..74aa0311 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid9.txt @@ -0,0 +1,29 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 14 +0 0 15 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 26 +0 0 27 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid90.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid90.txt new file mode 100644 index 00000000..0abf73c9 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid90.txt @@ -0,0 +1,31 @@ +topo_id bus_id node +0 0 0 +0 0 9 +0 0 10 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 1 1 +0 1 5 +0 1 6 +0 1 15 +0 1 16 +0 1 17 +0 1 19 +0 2 2 +0 2 3 +0 2 4 +0 2 7 +0 2 8 +0 2 20 +0 2 21 +0 2 22 +0 2 23 +0 -1 11 +0 -1 12 +0 -1 13 +0 -1 14 +0 -1 18 +0 -1 28 +0 -1 29 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid91.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid91.txt new file mode 100644 index 00000000..a61bebcb --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid91.txt @@ -0,0 +1,22 @@ +topo_id bus_id node +0 0 0 +0 0 3 +0 0 5 +0 0 6 +0 0 15 +0 0 16 +0 1 1 +0 1 7 +0 1 9 +0 1 10 +0 1 17 +0 1 18 +0 2 2 +0 2 11 +0 2 12 +0 2 13 +0 2 19 +0 2 20 +0 -1 4 +0 -1 8 +0 -1 14 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid92.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid92.txt new file mode 100644 index 00000000..618c2602 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid92.txt @@ -0,0 +1,60 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 3 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 14 +0 0 15 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 1 4 +0 1 5 +0 1 12 +0 1 13 +0 1 16 +0 1 17 +0 1 18 +0 1 19 +0 1 23 +0 1 28 +0 1 29 +0 1 40 +0 1 41 +0 1 44 +0 1 45 +0 1 50 +0 1 51 +0 1 52 +0 1 54 +0 1 55 +0 2 34 +0 2 26 +0 2 35 +0 2 36 +0 2 38 +0 2 39 +0 2 10 +0 2 11 +0 2 42 +0 2 43 +0 2 46 +0 2 47 +0 2 48 +0 2 49 +0 2 22 +0 2 58 +0 2 27 +0 -1 30 +0 -1 31 +0 -1 32 +0 -1 33 +0 -1 37 +0 -1 53 +0 -1 56 +0 -1 57 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid93.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid93.txt new file mode 100644 index 00000000..52591d6c --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid93.txt @@ -0,0 +1,33 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 16 +0 0 17 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 26 +0 0 27 +0 0 28 +0 0 29 +0 1 3 +0 1 14 +0 1 15 +0 1 20 +0 1 21 +0 1 24 +0 1 25 +0 1 30 +0 1 31 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid94.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid94.txt new file mode 100644 index 00000000..19d40007 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid94.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 2 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 14 +0 0 15 +0 0 16 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 1 3 +0 1 8 +0 1 9 +0 1 12 +0 1 13 +0 -1 11 +0 -1 17 +0 -1 22 +0 -1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid95.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid95.txt new file mode 100644 index 00000000..fd2015e5 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid95.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 13 +0 0 14 +0 0 19 +0 0 20 +0 1 1 +0 1 2 +0 1 3 +0 1 4 +0 1 5 +0 1 7 +0 1 8 +0 1 9 +0 1 10 +0 1 11 +0 1 12 +0 1 15 +0 1 16 +0 1 17 +0 1 18 +0 1 21 +0 1 22 +0 1 23 +0 1 24 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid96.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid96.txt new file mode 100644 index 00000000..bdd30518 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid96.txt @@ -0,0 +1,27 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 5 +0 0 8 +0 0 9 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 18 +0 0 19 +0 0 20 +0 0 21 +0 0 24 +0 0 25 +0 1 2 +0 1 3 +0 1 4 +0 1 6 +0 1 7 +0 1 14 +0 1 15 +0 1 16 +0 1 17 +0 1 22 +0 1 23 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid97.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid97.txt new file mode 100644 index 00000000..65d123b1 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid97.txt @@ -0,0 +1,47 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 8 +0 0 9 +0 0 11 +0 0 13 +0 0 14 +0 0 15 +0 0 18 +0 0 19 +0 0 24 +0 0 25 +0 0 26 +0 0 27 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 0 41 +0 0 42 +0 0 45 +0 1 2 +0 1 3 +0 1 6 +0 1 7 +0 1 10 +0 1 12 +0 1 16 +0 1 17 +0 1 20 +0 1 21 +0 1 22 +0 1 23 +0 1 28 +0 1 29 +0 1 30 +0 1 32 +0 1 37 +0 1 38 +0 1 39 +0 1 40 +0 -1 31 +0 -1 43 +0 -1 44 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid98.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid98.txt new file mode 100644 index 00000000..f9c1674f --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid98.txt @@ -0,0 +1,47 @@ +topo_id bus_id node +0 0 0 +0 0 1 +0 0 4 +0 0 5 +0 0 6 +0 0 7 +0 0 10 +0 0 11 +0 0 12 +0 0 13 +0 0 17 +0 0 18 +0 0 19 +0 0 22 +0 0 23 +0 0 24 +0 0 25 +0 0 28 +0 0 29 +0 0 30 +0 0 32 +0 0 33 +0 0 34 +0 0 35 +0 0 36 +0 1 2 +0 1 3 +0 1 37 +0 1 38 +0 1 39 +0 1 8 +0 1 41 +0 1 40 +0 1 9 +0 1 42 +0 1 44 +0 1 14 +0 1 15 +0 1 16 +0 1 20 +0 1 21 +0 1 26 +0 1 27 +0 -1 31 +0 -1 43 +0 -1 45 diff --git a/grid2op/data_test/test_detailed_topo/test_topo_valid99.txt b/grid2op/data_test/test_detailed_topo/test_topo_valid99.txt new file mode 100644 index 00000000..087ccf85 --- /dev/null +++ b/grid2op/data_test/test_detailed_topo/test_topo_valid99.txt @@ -0,0 +1,26 @@ +topo_id bus_id node +0 0 0 +0 0 6 +0 0 7 +0 0 14 +0 0 15 +0 0 16 +0 1 1 +0 1 10 +0 1 11 +0 1 20 +0 1 21 +0 2 2 +0 2 5 +0 2 12 +0 2 4 +0 3 3 +0 3 8 +0 3 9 +0 3 18 +0 3 19 +0 3 24 +0 -1 13 +0 -1 17 +0 -1 22 +0 -1 23 diff --git a/grid2op/gym_compat/gym_act_space.py b/grid2op/gym_compat/gym_act_space.py index 768d2951..4cd646ef 100644 --- a/grid2op/gym_compat/gym_act_space.py +++ b/grid2op/gym_compat/gym_act_space.py @@ -301,8 +301,11 @@ def _fill_dict_act_space(self, dict_, dict_variables): # storage power low = -1.0 * act_cls.storage_max_p_prod high = 1.0 * act_cls.storage_max_p_absorb - my_type = SpaceType(low=low, high=high, shape=shape, dtype=dt) - + try: + my_type = SpaceType(low=low, high=high, shape=shape, dtype=dt) + except ValueError: + import pdb + pdb.set_trace() if my_type is None: # if nothing has been found in the specific cases above my_type = self._generic_gym_space(dt, sh) diff --git a/grid2op/gym_compat/multidiscrete_gym_actspace.py b/grid2op/gym_compat/multidiscrete_gym_actspace.py index dfda6f52..96b3339f 100644 --- a/grid2op/gym_compat/multidiscrete_gym_actspace.py +++ b/grid2op/gym_compat/multidiscrete_gym_actspace.py @@ -193,6 +193,8 @@ def __init__(self, Literal["curtail_mw"], Literal["one_line_set"], Literal["one_line_change"], + Literal["raise_alert"], + Literal["raise_alarm"], ]]=ALL_ATTR, nb_bins: Dict[Literal["redispatch", "set_storage", "curtail", "curtail_mw"], int]=None ): @@ -297,8 +299,14 @@ def __init__(self, type(self).ATTR_NEEDBUILD, ), # dimension will be computed on the fly, if the kwarg is used } + prop_continuous = ["redispatch", "set_storage", "curtail", "curtail_mw"] + self.dict_properties = {k: v + for k, v in self.dict_properties.items() + if v[1] > 0} + self._attr_to_keep = sorted([el for el in self._attr_to_keep + if el in self.dict_properties.keys() | set(prop_continuous)]) self._nb_bins = nb_bins - for el in ["redispatch", "set_storage", "curtail", "curtail_mw"]: + for el in prop_continuous: self._aux_check_continuous_elements(el, attr_to_keep, nb_bins, act_sp) self._dims = None @@ -533,7 +541,11 @@ def _handle_attribute(self, res, gym_act_this, attr_nm, funct, type_): ------- """ - vect = 1 * gym_act_this + if gym_act_this.size == 0 : + # nothing to do if vector empty + return + + vect = gym_act_this.copy() if type_ == type(self).ATTR_NEEDBUILD: funct(res, attr_nm, vect) else: diff --git a/grid2op/tests/automatic_classes.py b/grid2op/tests/automatic_classes.py index 8a4986c9..b214af71 100644 --- a/grid2op/tests/automatic_classes.py +++ b/grid2op/tests/automatic_classes.py @@ -48,6 +48,8 @@ # TODO test backend converters # TODO test all type of backend in the observation space, including the deactivate forecast, reactivate forecast, the different backend etc. +# TODO detailed topo + class _ThisAgentTest(BaseAgent): def __init__(self, action_space: ActionSpace, @@ -671,6 +673,7 @@ def test_gym_multidiscrete(self): def test_asynch_fork(self): if _IS_WINDOWS: self.skipTest("no fork on windows") + GymEnv(self.env) async_vect_env = AsyncVectorEnv((lambda: GymEnv(self.env), lambda: GymEnv(self.env)), context="fork") obs = async_vect_env.reset() diff --git a/grid2op/tests/fromChronix2grid.py b/grid2op/tests/fromChronix2grid.py index 5e459cab..0bc415c3 100644 --- a/grid2op/tests/fromChronix2grid.py +++ b/grid2op/tests/fromChronix2grid.py @@ -6,7 +6,6 @@ # 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 pdb import warnings import os import grid2op diff --git a/grid2op/tests/indep_test_detailed_topo_extended.py b/grid2op/tests/indep_test_detailed_topo_extended.py new file mode 100644 index 00000000..7b51236a --- /dev/null +++ b/grid2op/tests/indep_test_detailed_topo_extended.py @@ -0,0 +1,89 @@ +# Copyright (c) 2024, 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 os +import cProfile +import unittest +import numpy as np +from grid2op.tests.helper_path_test import * + +from grid2op.tests.test_compute_switch_pos import AuxTestComputeSwitchPos + + +CPROF = False + + +dir_out = "test_topo_ampl" +dir_out = "test_topo_ampl2" + +# TODO detailed topo: test detachment +# TODO detailed topo: test "env_prev_state" + +class TestComputeSwitchPosExt(unittest.TestCase): + def debug_test_one_case(self): + # el = 25 + # el = 35 + # el = 22 + # el = 37 # really long, does not work + # el = 42 + # el = 65 + # el = 57 + # el = 148 + el = 201 # bug in the data + el = 109 + el = 110 + el = 38 + el = 37 + tmp = AuxTestComputeSwitchPos._aux_read_case(f"{el}", dir=".", nm_dir=dir_out) + if tmp is None: + print(f"error for {el}: some elements (or busbar) not controlled by any switch") + return + dtd, target, result = tmp + print(target) + AuxTestComputeSwitchPos._aux_test_switch_topo(dtd, target, result) + print("test done") + dtd._aux_compute_busbars_sections() + if CPROF: + cp = cProfile.Profile() + cp.enable() + switches = dtd.compute_switches_position(target)[0] + if CPROF: + cp.disable() + nm_f, ext = os.path.splitext(__file__) + nm_out = f"{nm_f}_{el}.prof" + cp.dump_stats(nm_out) + print("You can view profiling results with:\n\tsnakeviz {}".format(nm_out)) + AuxTestComputeSwitchPos._aux_test_switch_topo(dtd, target, switches) + + def test_cases(self): + # for el in range(2, 22): + for el in range(1, 222): + print(f"test {el}") + if el == 37: + # too long (all night) + continue + elif el == 63: + # too long (a few minutes) + continue + elif el == 201: + # error when reading the case + continue + # tmp = self._aux_read_case(f"{el}", dir=".", nm_dir=dir_out) + tmp = AuxTestComputeSwitchPos._aux_read_case(f"{el}") + if tmp is None: + raise RuntimeError(f"Impossible to read case {el}") + dtd, target, result = tmp + AuxTestComputeSwitchPos._aux_test_switch_topo(dtd, target, result) + dtd._aux_compute_busbars_sections() + switches = dtd.compute_switches_position(target)[0] + AuxTestComputeSwitchPos._aux_test_switch_topo(dtd, target, switches) + + +if __name__ == "__main__": + unittest.main() + \ No newline at end of file diff --git a/grid2op/tests/test_ActionProperties.py b/grid2op/tests/test_ActionProperties.py index 92bb887a..487b7054 100644 --- a/grid2op/tests/test_ActionProperties.py +++ b/grid2op/tests/test_ActionProperties.py @@ -81,7 +81,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp[:-1] assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # array too big with self.assertRaises(AmbiguousAction): @@ -90,7 +90,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp2 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # float vect with self.assertRaises(AmbiguousAction): @@ -99,7 +99,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp3 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the value too small with self.assertRaises(AmbiguousAction): @@ -109,7 +109,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp4 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the value too large with self.assertRaises(AmbiguousAction): @@ -119,7 +119,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp5 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type with self.assertRaises(AmbiguousAction): @@ -129,7 +129,7 @@ def test_load_set_bus_array(self): act.load_set_bus = tmp6 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_set_bus_tuple(self): # second set of tests, with tuple @@ -143,7 +143,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (3.0, 1) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -151,7 +151,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (False, 1) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -159,7 +159,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = ("toto", 1) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -167,7 +167,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (1, "toto") assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -175,7 +175,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (11, 1) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -183,7 +183,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (-1, 1) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -191,7 +191,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (1,) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -199,7 +199,7 @@ def test_load_set_bus_tuple(self): act.load_set_bus = (1, 2, 3) assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_set_bus_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -219,7 +219,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp0 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -228,7 +228,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp1 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -236,7 +236,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp3 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -245,7 +245,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp4 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -254,7 +254,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp5 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -263,7 +263,7 @@ def test_load_set_bus_list_asarray(self): act.load_set_bus = tmp6 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_set_bus_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -280,7 +280,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp3 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -289,7 +289,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp4 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -298,7 +298,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp5 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -307,7 +307,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp6 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -316,7 +316,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp7 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -325,7 +325,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp8 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -334,7 +334,7 @@ def test_load_set_bus_list_oftuple(self): act.load_set_bus = tmp9 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # last test, when we give a list of tuple of exactly the right size act = self.helper_action() @@ -356,7 +356,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp3 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -365,7 +365,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp4 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -374,7 +374,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp5 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -383,7 +383,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp6 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -392,7 +392,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp7 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -401,7 +401,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp8 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -410,7 +410,7 @@ def test_load_set_bus_dict_with_id(self): act.load_set_bus = tmp9 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_set_bus_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -427,7 +427,7 @@ def test_load_set_bus_dict_with_name(self): act.load_set_bus = tmp6 assert np.all( act.load_set_bus == 0 - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_gen_set_bus_array(self): li_orig = [1, 2, -1, 2, 1] # because i have 5 gens @@ -444,7 +444,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp[:-1] assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # array too big with self.assertRaises(AmbiguousAction): @@ -453,7 +453,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp2 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # float vect with self.assertRaises(AmbiguousAction): @@ -462,7 +462,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp3 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the value too small with self.assertRaises(AmbiguousAction): @@ -472,7 +472,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp4 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the value too large with self.assertRaises(AmbiguousAction): @@ -482,7 +482,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp5 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type with self.assertRaises(AmbiguousAction): @@ -492,7 +492,7 @@ def test_gen_set_bus_array(self): act.gen_set_bus = tmp6 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" def test_gen_set_bus_tuple(self): # second set of tests, with tuple @@ -506,7 +506,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (3.0, 1) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -514,7 +514,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (False, 1) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -522,7 +522,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = ("toto", 1) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -530,7 +530,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (1, "toto") assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -538,7 +538,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (6, 1) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -546,7 +546,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (-1, 1) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -554,7 +554,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (1,) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -562,7 +562,7 @@ def test_gen_set_bus_tuple(self): act.gen_set_bus = (1, 2, 3) assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" def test_gen_set_bus_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -582,7 +582,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp0 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -591,7 +591,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp1 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -599,7 +599,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp3 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -608,7 +608,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp4 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -617,7 +617,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp5 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -626,7 +626,7 @@ def test_gen_set_bus_list_asarray(self): act.gen_set_bus = tmp6 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" def test_gen_set_bus_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -643,7 +643,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp3 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -652,7 +652,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp4 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -661,7 +661,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp5 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -670,7 +670,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp6 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -679,7 +679,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp7 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -688,7 +688,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp8 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -697,7 +697,7 @@ def test_gen_set_bus_list_oftuple(self): act.gen_set_bus = tmp9 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # when the list has exactly the same size act = self.helper_action() @@ -719,7 +719,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp3 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -728,7 +728,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp4 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -737,7 +737,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp5 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -746,7 +746,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp6 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -755,7 +755,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp7 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -764,7 +764,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp8 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -773,7 +773,7 @@ def test_gen_set_bus_dict_with_id(self): act.gen_set_bus = tmp9 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" def test_gen_set_bus_dict_with_name(self): """test the set attribute when dict are given with key = names""" @@ -790,7 +790,7 @@ def test_gen_set_bus_dict_with_name(self): act.gen_set_bus = tmp6 assert np.all( act.gen_set_bus == 0 - ), "a gen has been modified by an illegal action" + ), "a gen has been modified by an ambiguous action" def test_storage_set_bus_array(self): li_orig = [1, 2] # because i have 2 loads @@ -808,7 +808,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp[0] assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # array too big act = self.helper_action() @@ -817,7 +817,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp2 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # float vect act = self.helper_action() @@ -826,7 +826,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp3 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() @@ -836,7 +836,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp4 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() @@ -846,7 +846,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp5 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -856,7 +856,7 @@ def test_storage_set_bus_array(self): act.storage_set_bus = tmp6 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" def test_storage_set_bus_tuple(self): # second set of tests, with tuple @@ -870,7 +870,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (1.0, 1) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -878,7 +878,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (False, 1) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -886,7 +886,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = ("toto", 1) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -894,7 +894,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (1, "toto") assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -902,7 +902,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (11, 1) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -910,7 +910,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (-1, 1) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -918,7 +918,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (1,) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -926,7 +926,7 @@ def test_storage_set_bus_tuple(self): act.storage_set_bus = (1, 2, 3) assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" def test_storage_set_bus_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -946,7 +946,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp0 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -955,7 +955,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp1 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -963,7 +963,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp3 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -972,7 +972,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp4 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -981,7 +981,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp5 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -990,7 +990,7 @@ def test_storage_set_bus_list_asarray(self): act.storage_set_bus = tmp6 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" def test_storage_set_bus_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -1007,7 +1007,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp3 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1016,7 +1016,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp4 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1025,7 +1025,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp5 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1034,7 +1034,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp6 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1043,7 +1043,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp7 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1052,7 +1052,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp8 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1061,7 +1061,7 @@ def test_storage_set_bus_list_oftuple(self): act.storage_set_bus = tmp9 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # last test, when we give a list of tuple of exactly the right size act = self.helper_action() @@ -1083,7 +1083,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp3 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1092,7 +1092,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp4 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1101,7 +1101,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp5 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1110,7 +1110,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp6 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1119,7 +1119,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp7 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1128,7 +1128,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp8 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1137,7 +1137,7 @@ def test_storage_set_bus_dict_with_id(self): act.storage_set_bus = tmp9 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" def test_storage_set_bus_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -1154,7 +1154,7 @@ def test_storage_set_bus_dict_with_name(self): act.storage_set_bus = tmp6 assert np.all( act.storage_set_bus == 0 - ), "a storage unit has been modified by an illegal action" + ), "a storage unit has been modified by an ambiguous action" def test_line_or_set_bus_array(self): li_orig = [ @@ -1193,7 +1193,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp[0] assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # array too big act = self.helper_action() @@ -1202,7 +1202,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp2 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # float vect act = self.helper_action() @@ -1211,7 +1211,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp3 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() @@ -1221,7 +1221,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp4 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() @@ -1231,7 +1231,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp5 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1241,7 +1241,7 @@ def test_line_or_set_bus_array(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_line_or_set_bus_tuple(self): # second set of tests, with tuple @@ -1255,7 +1255,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (1.0, 1) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1263,7 +1263,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (False, 1) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1271,7 +1271,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = ("toto", 1) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1279,7 +1279,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (1, "toto") assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -1287,7 +1287,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (21, 1) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -1295,7 +1295,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (-1, 1) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -1303,7 +1303,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (1,) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -1311,7 +1311,7 @@ def test_line_or_set_bus_tuple(self): act.line_or_set_bus = (1, 2, 3) assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_line_or_set_bus_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -1331,7 +1331,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp0 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1340,7 +1340,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp1 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1348,7 +1348,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp3 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1357,7 +1357,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp4 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1366,7 +1366,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp5 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1375,7 +1375,7 @@ def test_line_or_set_bus_list_asarray(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_line_or_set_bus_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -1392,7 +1392,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp3 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1401,7 +1401,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp4 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1410,7 +1410,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp5 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1419,7 +1419,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1428,7 +1428,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp7 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1437,7 +1437,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp8 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1446,7 +1446,7 @@ def test_line_or_set_bus_list_oftuple(self): act.line_or_set_bus = tmp9 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # last test, when we give a list of tuple of exactly the right size act = self.helper_action() @@ -1468,7 +1468,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp3 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1477,7 +1477,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp4 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1486,7 +1486,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp5 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1495,7 +1495,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1504,7 +1504,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp7 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1513,7 +1513,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp8 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1522,7 +1522,7 @@ def test_line_or_set_bus_dict_with_id(self): act.line_or_set_bus = tmp9 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_line_or_set_bus_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -1539,7 +1539,7 @@ def test_line_or_set_bus_dict_with_name(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_line_ex_set_bus_array(self): li_orig = [ @@ -1578,7 +1578,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp[0] assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" # array too big act = self.helper_action() @@ -1587,7 +1587,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp2 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" # float vect act = self.helper_action() @@ -1596,7 +1596,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp3 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() @@ -1606,7 +1606,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp4 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() @@ -1616,7 +1616,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp5 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1626,7 +1626,7 @@ def test_line_ex_set_bus_array(self): act.line_ex_set_bus = tmp6 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ext) unit has been modified by an illegal action" + ), "a line (ext) unit has been modified by an ambiguous action" def test_line_ex_set_bus_tuple(self): # second set of tests, with tuple @@ -1640,7 +1640,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (1.0, 1) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1648,7 +1648,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (False, 1) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1656,7 +1656,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = ("toto", 1) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -1664,7 +1664,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (1, "toto") assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -1672,7 +1672,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (21, 1) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -1680,7 +1680,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (-1, 1) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -1688,7 +1688,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (1,) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -1696,7 +1696,7 @@ def test_line_ex_set_bus_tuple(self): act.line_ex_set_bus = (1, 2, 3) assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" def test_line_ex_set_bus_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -1716,7 +1716,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp0 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1725,7 +1725,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp1 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1733,7 +1733,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp3 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1742,7 +1742,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp4 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1751,7 +1751,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp5 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1760,7 +1760,7 @@ def test_line_ex_set_bus_list_asarray(self): act.line_ex_set_bus = tmp6 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" def test_line_ex_set_bus_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -1777,7 +1777,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp3 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1786,7 +1786,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp4 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1795,7 +1795,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp5 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1804,7 +1804,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp6 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1813,7 +1813,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp7 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1822,7 +1822,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp8 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1831,7 +1831,7 @@ def test_line_ex_set_bus_list_oftuple(self): act.line_ex_set_bus = tmp9 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # last test, when we give a list of tuple of exactly the right size act = self.helper_action() @@ -1853,7 +1853,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp3 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1862,7 +1862,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp4 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1871,7 +1871,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp5 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1880,7 +1880,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp6 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1889,7 +1889,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp7 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1898,7 +1898,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp8 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -1907,7 +1907,7 @@ def test_line_ex_set_bus_dict_with_id(self): act.line_ex_set_bus = tmp9 assert np.all( act.line_ex_set_bus == 0 - ), "a line (ex) unit has been modified by an illegal action" + ), "a line (ex) unit has been modified by an ambiguous action" def test_line_ex_set_bus_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -1924,7 +1924,7 @@ def test_line_ex_set_bus_dict_with_name(self): act.line_or_set_bus = tmp6 assert np.all( act.line_or_set_bus == 0 - ), "a line (origin) unit has been modified by an illegal action" + ), "a line (origin) unit has been modified by an ambiguous action" def test_set_by_sub(self): # TODO more thorough testing !!! @@ -2071,7 +2071,7 @@ def test_line_set_status_array(self): act.line_set_status = tmp[0] assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # array too big act = self.helper_action() @@ -2080,7 +2080,7 @@ def test_line_set_status_array(self): act.line_set_status = tmp2 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # float vect act = self.helper_action() @@ -2089,7 +2089,7 @@ def test_line_set_status_array(self): act.line_set_status = tmp3 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the value too small act = self.helper_action() @@ -2099,7 +2099,7 @@ def test_line_set_status_array(self): act.line_set_status = tmp4 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the value too large act = self.helper_action() @@ -2109,17 +2109,17 @@ def test_line_set_status_array(self): act.line_set_status = tmp5 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type act = self.helper_action() - with self.assertRaises(IllegalAction): + with self.assertRaises(AmbiguousAction): tmp6 = np.array(li_orig).astype(str) tmp6[1] = "toto" - act.line_ex_set_bus = tmp6 + act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" def test_line_set_status_tuple(self): # second set of tests, with tuple @@ -2133,7 +2133,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (1.0, 1) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2141,7 +2141,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (False, 1) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2149,7 +2149,7 @@ def test_line_set_status_tuple(self): act.line_set_status = ("toto", 1) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2157,7 +2157,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (1, "toto") assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -2165,7 +2165,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (21, 1) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -2173,7 +2173,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (-1, 1) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # not enough element in the tuple act = self.helper_action() @@ -2181,7 +2181,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (1,) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # too much element in the tuple act = self.helper_action() @@ -2189,7 +2189,7 @@ def test_line_set_status_tuple(self): act.line_set_status = (1, 2, 3) assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" def test_line_set_status_list_asarray(self): """test the set attribute when list are given (list convertible to array)""" @@ -2209,7 +2209,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp0 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # list too big act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2218,7 +2218,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp1 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # list of float act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2226,7 +2226,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp3 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2235,7 +2235,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp4 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2244,7 +2244,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp5 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2253,7 +2253,7 @@ def test_line_set_status_list_asarray(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" def test_line_set_status_list_oftuple(self): """test the set attribute when list are given (list of tuple)""" @@ -2270,7 +2270,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp3 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2279,7 +2279,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp4 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2288,7 +2288,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp5 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2297,7 +2297,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2306,7 +2306,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp7 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2315,7 +2315,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp8 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2324,7 +2324,7 @@ def test_line_set_status_list_oftuple(self): act.line_set_status = tmp9 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # last test, when we give a list of tuple of exactly the right size act = self.helper_action() @@ -2346,7 +2346,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp3 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2355,7 +2355,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp4 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2364,7 +2364,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp5 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2373,7 +2373,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2382,7 +2382,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp7 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2391,7 +2391,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp8 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -2400,7 +2400,7 @@ def test_line_set_status_dict_with_id(self): act.line_set_status = tmp9 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" def test_line_set_status_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -2417,7 +2417,7 @@ def test_line_set_status_dict_with_name(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" class TestChangeBus(unittest.TestCase): @@ -2473,7 +2473,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, 3.0) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2481,7 +2481,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, False) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2489,7 +2489,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, "toto") assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2497,7 +2497,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, (1, "toto")) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -2505,7 +2505,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, nb_el + 1) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -2513,7 +2513,7 @@ def _aux_change_bus_int(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, -1) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" def test_load_change_bus_int(self): self._aux_change_bus_int("load", self.helper_action.n_load) @@ -2543,19 +2543,19 @@ def _aux_change_bus_tuple(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, (1,)) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" act = self.helper_action() with self.assertRaises(AmbiguousAction): setattr(act, prop_name, (1, False)) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" act = self.helper_action() with self.assertRaises(AmbiguousAction): setattr(act, prop_name, (1, False, 3)) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" def test_load_change_bus_tuple(self): self._aux_change_bus_tuple("load", self.helper_action.n_load) @@ -2609,7 +2609,7 @@ def _aux_change_bus_arraybool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp[:-1]) assert np.all( ~getattr(act, prop_name) - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # list too big act = self.helper_action() @@ -2618,7 +2618,7 @@ def _aux_change_bus_arraybool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp_1) assert np.all( ~getattr(act, prop_name) - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_change_bus_arraybool(self): self._aux_change_bus_arraybool("load", self.helper_action.n_load) @@ -2673,7 +2673,7 @@ def _aux_change_bus_arrayint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp2) assert np.all( ~getattr(act, prop_name) - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" # one id too high act = self.helper_action() @@ -2682,7 +2682,7 @@ def _aux_change_bus_arrayint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp3) assert np.all( ~getattr(act, prop_name) - ), "a load has been modified by an illegal action" + ), "a load has been modified by an ambiguous action" def test_load_change_bus_arrayint(self): self._aux_change_bus_arrayint("load", self.helper_action.n_load) @@ -2718,7 +2718,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_orig) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # list too short act = self.helper_action() @@ -2726,7 +2726,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_orig[:-1]) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # list too big act = self.helper_action() @@ -2736,7 +2736,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_2) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # list mixed types (str) act = self.helper_action() @@ -2746,7 +2746,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_3) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # list mixed types (float) act = self.helper_action() @@ -2756,7 +2756,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_4) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # list mixed types (int) act = self.helper_action() @@ -2766,7 +2766,7 @@ def _aux_change_bus_listbool(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, li_5) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" def test_load_change_bus_listbool(self): self._aux_change_bus_listbool("load", nb_el=self.helper_action.n_load) @@ -2808,7 +2808,7 @@ def _aux_change_bus_listint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp2) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # one id too high act = self.helper_action() @@ -2818,7 +2818,7 @@ def _aux_change_bus_listint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp3) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # one string act = self.helper_action() @@ -2828,7 +2828,7 @@ def _aux_change_bus_listint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp4) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # one float act = self.helper_action() @@ -2838,7 +2838,7 @@ def _aux_change_bus_listint(self, name_el, nb_el, prop="change_bus"): setattr(act, prop_name, tmp5) assert np.all( ~getattr(act, prop_name) - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # test it revert back to proper thing act = self.helper_action() @@ -2944,7 +2944,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (3.0, 1.0)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2952,7 +2952,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (False, 1.0)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2960,7 +2960,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, ("toto", 1.0)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2968,7 +2968,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (1, "toto")) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # wrong type act = self.helper_action() @@ -2976,7 +2976,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (1, False)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # id too large act = self.helper_action() @@ -2984,7 +2984,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (nb_el + 1, 1.0)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # id too low act = self.helper_action() @@ -2992,7 +2992,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (-1, 1.0)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # tuple wrong size act = self.helper_action() @@ -3000,7 +3000,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (1,)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # tuple wrong size act = self.helper_action() @@ -3008,7 +3008,7 @@ def _aux_change_val_tuple(self, name_el, nb_el, prop_name): setattr(act, prop_name, (1, 1.0, 1)) assert np.all( getattr(act, prop_name) == this_zero - ), f"a {name_el} has been modified by an illegal action" + ), f"a {name_el} has been modified by an ambiguous action" # test correct canceling act = self.helper_action() @@ -3226,7 +3226,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp3 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too small act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3235,7 +3235,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp4 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # one of the bus value too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3244,7 +3244,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp5 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (element id) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3253,7 +3253,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # wrong type (bus value) act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3262,7 +3262,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp7 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too large act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3271,7 +3271,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp8 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" # el_id too low act = self.helper_action() with self.assertRaises(AmbiguousAction): @@ -3280,7 +3280,7 @@ def todo_line_set_status_dict_with_id(self): act.line_set_status = tmp9 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" def todo_line_set_status_dict_with_name(self): """test the set attribute when list are given (list of tuple)""" @@ -3297,7 +3297,7 @@ def todo_line_set_status_dict_with_name(self): act.line_set_status = tmp6 assert np.all( act.line_set_status == 0 - ), "a line status has been modified by an illegal action" + ), "a line status has been modified by an ambiguous action" if __name__ == "__main__": diff --git a/grid2op/tests/test_AlarmFeature.py b/grid2op/tests/test_AlarmFeature.py index fdc9286b..7f93737d 100644 --- a/grid2op/tests/test_AlarmFeature.py +++ b/grid2op/tests/test_AlarmFeature.py @@ -210,21 +210,21 @@ def test_alarm_obs_whenalarm(self): act.raise_alarm = [0] obs, reward, done, info = self.env.step(act) nb_th = 2 - assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6 - assert abs(obs.attention_budget - nb_th) <= 1e-6 + assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6, f"{self.env._attention_budget._current_budget } vs {nb_th}" + assert abs(obs.attention_budget - nb_th) <= 1e-6, f"{obs.attention_budget} vs {nb_th}" assert obs.time_since_last_alarm == 0 assert np.all(obs.last_alarm == [1, -1, -1]) obs, reward, done, info = self.env.step(self.env.action_space()) nb_th += 1.0 / (12.0 * 8.0) - assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6 - assert abs(obs.attention_budget - nb_th) <= 1e-6 + assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6, f"{self.env._attention_budget._current_budget } vs {nb_th}" + assert abs(obs.attention_budget - nb_th) <= 1e-6, f"{obs.attention_budget} vs {nb_th}" assert obs.time_since_last_alarm == 1 assert np.all(obs.last_alarm == [1, -1, -1]) obs = self.env.reset() nb_th = 3 - assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6 + assert abs(self.env._attention_budget._current_budget - nb_th) <= 1e-6, f"{self.env._attention_budget._current_budget } vs {nb_th}" assert abs(obs.attention_budget - nb_th) <= 1e-6, f"{obs.attention_budget} vs {nb_th}" assert obs.time_since_last_alarm == -1 assert np.all(obs.last_alarm == [-1, -1, -1]) diff --git a/grid2op/tests/test_Environment.py b/grid2op/tests/test_Environment.py index 7dbb0f75..48265daa 100644 --- a/grid2op/tests/test_Environment.py +++ b/grid2op/tests/test_Environment.py @@ -651,16 +651,17 @@ def test_change_reconnect(self): switch_action = self.env.action_space({"change_line_status": switch_status}) obs, r, d, _ = self.env.step(bus_action) - assert d is False + assert d is False, f"{d} vs False" assert obs.topo_vect[line_ex_topo] == 2 - assert obs.line_status[LINE_ID] == True + assert obs.line_status[LINE_ID] + print("here here here") obs, r, d, info = self.env.step(switch_action) - assert d is False - assert obs.line_status[LINE_ID] == False + assert d is False, f"{d} vs False" + assert not obs.line_status[LINE_ID] obs, r, d, info = self.env.step(switch_action) assert d is False, "Diverged powerflow on reconnection" - assert info["is_illegal"] == False, "Reconnecting should be legal" - assert obs.line_status[LINE_ID] == True, "Line is not reconnected" + assert not info["is_illegal"], "Reconnecting should be legal" + assert obs.line_status[LINE_ID], "Line is not reconnected" # Its reconnected to bus 2, without specifying it assert obs.topo_vect[line_ex_topo] == 2, "Line ex should be on bus 2" diff --git a/grid2op/tests/test_bug_shunt_dc.py b/grid2op/tests/test_bug_shunt_dc.py index 1755d993..23dcaf42 100644 --- a/grid2op/tests/test_bug_shunt_dc.py +++ b/grid2op/tests/test_bug_shunt_dc.py @@ -12,9 +12,7 @@ from grid2op.Action import CompleteAction from grid2op.Backend import PandaPowerBackend from lightsim2grid import LightSimBackend -import pandapower as pp import numpy as np -import pdb class AuxTestBugShuntDC: diff --git a/grid2op/tests/test_compute_switch_pos.py b/grid2op/tests/test_compute_switch_pos.py new file mode 100644 index 00000000..ed960085 --- /dev/null +++ b/grid2op/tests/test_compute_switch_pos.py @@ -0,0 +1,392 @@ +# 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 unittest +import pandas as pd +import os +import numpy as np +import networkx as nx +import warnings + +from grid2op.tests.helper_path_test import * +import grid2op + +from grid2op.Action import CompleteAction +from grid2op.Backend import PandaPowerBackend +from grid2op.Space import DetailedTopoDescription, AddDetailedTopoIEEE +from grid2op.Exceptions import ImpossibleTopology +import pdb + + +class _PPBkForTestDetTopo(AddDetailedTopoIEEE, PandaPowerBackend): + """pretend that it's not from IEEE""" + def load_grid(self, path=None, filename=None): + super().load_grid(path, filename) + self.detailed_topo_desc._from_ieee_grid = False + + +class AuxTestComputeSwitchPos: + + # TODO detailed topo: test the "from_switch" with these data too! + @staticmethod + def _aux_read_case(case_id, dir=PATH_DATA_TEST, nm_dir="test_detailed_topo"): + path_data = os.path.join(dir, nm_dir) + switches = pd.read_csv(os.path.join(path_data, f"test_topo_connections{case_id}.txt"), + sep=" ") + elements = pd.read_csv(os.path.join(path_data, f"test_topo_elements{case_id}.txt"), + sep=" ") + target_bus = pd.read_csv(os.path.join(path_data, f"test_topo_valid{case_id}.txt"), + sep=" ") + dtd = DetailedTopoDescription() + dtd._n_sub = 1 + all_nodes = np.unique(np.concatenate((switches["node1"].values, switches["node2"].values))) + all_node_cont = np.zeros(max(all_nodes) + 1, dtype=int) -1 + all_node_cont[all_nodes] = np.arange(len(all_nodes)) + if (~np.isin(elements.loc[elements["element_id"] == "'bbs'", "node"].values, all_nodes)).any(): + # some busbar is not connected to any switch + return None + if (~np.isin(elements.loc[elements["element_id"] == "'el'", "node"].values, all_nodes)).any(): + # some element is not connected to any switch + return None + + nb_switch = switches.shape[0] + dtd.conn_node_name = np.array([None for _ in all_nodes], dtype=str) + dtd.conn_node_to_subid = np.zeros(len(all_nodes), dtype=int) + dtd.switches = np.zeros((nb_switch, 3), dtype=int) + dtd.switches[:, 0] = 0 + dtd.switches[:, 1] = all_node_cont[switches["node1"].values] + dtd.switches[:, 2] = all_node_cont[switches["node2"].values] + # fill the elements + # we do as if everything is a line here + dtd.load_to_conn_node_id = np.array([], dtype=int) + dtd.gen_to_conn_node_id = np.array([], dtype=int) + dtd.line_ex_to_conn_node_id = np.array([], dtype=int) + dtd.storage_to_conn_node_id = np.array([], dtype=int) + dtd.shunt_to_conn_node_id = np.array([], dtype=int) + # now fill the line part + mask_el = elements["element_id"] == "'el'" + dtd.line_or_to_conn_node_id = all_node_cont[elements["node"].loc[mask_el].values] + # assign the topo vect infoconn_node_to_shunt_id + dtd.conn_node_to_topovect_id = np.zeros(len(all_nodes), dtype=int) - 1 + dtd.conn_node_to_topovect_id[dtd.line_or_to_conn_node_id] = np.arange(dtd.line_or_to_conn_node_id.shape[0]) + dtd.conn_node_to_shunt_id = np.array([]) + + # fill the busbars + mask_el = elements["element_id"] == "'bbs'" + dtd.busbar_section_to_conn_node_id = all_node_cont[elements["node"].loc[mask_el].values] + dtd.busbar_section_to_subid = np.zeros(dtd.busbar_section_to_conn_node_id.shape[0], dtype=int) + dtd._from_ieee_grid = False + + # now get the target + small_df = target_bus.loc[np.isin(all_node_cont[target_bus["node"]], dtd.line_or_to_conn_node_id)] + target = np.zeros(dtd.line_or_to_conn_node_id.shape[0], dtype=int) -1 + for line_id in range(dtd.line_or_to_conn_node_id.shape[0]): + target[line_id] = small_df.loc[all_node_cont[small_df["node"]] == dtd.line_or_to_conn_node_id[line_id], "bus_id"].values[0] + target[target >= 0] += 1 # encoding starts at 0 for input data + + # specific because it's not checked + dtd._dim_topo = dtd.line_or_to_conn_node_id.shape[0] + dtd._n_shunt = 0 + dtd._n_sub = 1 + + # results + result = ~switches["open"].sort_index().values.astype(bool) + return dtd, target, result + + def setUp(self): + super().setUp() + + @staticmethod + def _aux_test_switch_topo(dtd, results, switches, extra_str=""): + graph = nx.Graph() + graph.add_edges_from([(el[1], el[2], {"id": switch_id}) for switch_id, el in enumerate(dtd.switches) if switches[switch_id]]) + tmp = list(nx.connected_components(graph)) + tmp = [el for el in tmp if np.any(np.isin(dtd.line_or_to_conn_node_id, list(el)))] + tmp = [el for el in tmp if np.any(np.isin(dtd.busbar_section_to_conn_node_id, list(el)))] + expected_buses = np.unique(results[results != -1]) + assert len(tmp) == expected_buses.shape[0], f"found {len(tmp)} buses when asking for {expected_buses.shape[0]}" + # check that element in results connected together are connected together + # and check that the elements that are not connected together are not + for el_1 in range(results.shape[0]): + th_bus_1 = results[el_1] + conn_bus_1 = dtd.line_or_to_conn_node_id[el_1] + conn_comp1 = np.array([conn_bus_1 in el for el in tmp]).nonzero()[0] + if th_bus_1 == -1: + assert conn_comp1.shape[0] == 0, f"Error for element {el_1}: it should be disconnected but does not appear to be" + continue + for el_2 in range(el_1 + 1, results.shape[0]): + th_bus_2 = results[el_2] + conn_bus_2 = dtd.line_or_to_conn_node_id[el_2] + conn_comp2 = np.array([conn_bus_2 in el for el in tmp]).nonzero()[0] + if th_bus_2 == -1: + assert conn_comp2.shape[0] == 0, f"Error for element {el_2}: it should be disconnected but does not appear to be" + elif th_bus_1 == th_bus_2: + # disconnected element should not be together + assert conn_comp1 == conn_comp2, f"Error for elements: {el_1} and {el_2}: they should be on the same bus but are not, {extra_str}" + else: + assert conn_comp1 != conn_comp2, f"Error for elements: {el_1} and {el_2}: they should NOT be on the same bus but they are, {extra_str}" + + def test_case1_standard(self): + """test I can compute this for the reference test case""" + dtd, target, result = self._aux_read_case("1") + dtd._aux_compute_busbars_sections() + switches = dtd.compute_switches_position(target)[0] + self._aux_test_switch_topo(dtd, target, switches) + + def test_case1_all_samebus(self): + """test I can connect every element to the same bus, even if the said bus is not 1""" + dtd, target, result = self._aux_read_case("1") + dtd._aux_compute_busbars_sections() + for bus in range(dtd.busbar_section_to_subid.shape[0]): + target[:] = bus + 1 + switches = dtd.compute_switches_position(target)[0] + self._aux_test_switch_topo(dtd, target, switches) + + def test_case1_impossible_toomuch_buses(self): + """test that when someone ask to connect something to a bus too high (too many buses) then it does not work""" + dtd, target, result = self._aux_read_case("1") + dtd._aux_compute_busbars_sections() + bus_id_too_high = dtd.busbar_section_to_subid.shape[0] + 1 + for el_id in range(len(target)): + els = np.array(list(dtd._conn_node_to_bbs_conn_node_id[dtd.line_or_to_conn_node_id[el_id]])) + target[el_id] = (dtd.busbar_section_to_conn_node_id == els[el_id % len(els)]).nonzero()[0][0] + 1 + # test that it works in general case with all possible buses + switches = dtd.compute_switches_position(target)[0] + self._aux_test_switch_topo(dtd, target, switches) + + # now test that it breaks if the index of a bus it too high + for el_id in range(len(target)): + tmp = 1 * target + tmp[el_id] = bus_id_too_high + with self.assertRaises(ImpossibleTopology): + switches = dtd.compute_switches_position(tmp)[0] + + def test_case1_impossible_connectivity(self): + """test for some more cases where it would be impossible (forced to connect busbar breaker + for some elements but not for others)""" + dtd, target, result = self._aux_read_case("1") + dtd._aux_compute_busbars_sections() + target[0] = 1 # to force busbar sec 0 + target[1] = 2 # to force busbar sec 1 + target[2] = 3 # to force busbar sec 3 + target[3] = 4 # to force busbar sec 4 + target[4] = 2 # is directly connected to busbar sec 1 or 3, in this first example I force it to 1 + + # now i force every element to a busbar to which it is directly connected + # so as to make sure it works + for el_id in range(4, len(target)): + els = np.array(list(dtd._conn_node_to_bbs_conn_node_id[dtd.line_or_to_conn_node_id[el_id]])) + target[el_id] = (dtd.busbar_section_to_conn_node_id == els[0]).nonzero()[0][0] + 1 + # should work + switches = dtd.compute_switches_position(target)[0] + self._aux_test_switch_topo(dtd, target, switches) + + # here I force to connect bbs 1 or 3 to bbs 0 + # which contradicts the 4 other constraints above + target[4] = 1 + with self.assertRaises(ImpossibleTopology): + switches = dtd.compute_switches_position(target)[0] + + def test_case1_with_disconnected_element(self): + dtd, target, result = self._aux_read_case("1") + dtd._aux_compute_busbars_sections() + # disconnect element one by one and check it works + for el_id in range(len(target)): + tmp = 1 * target + tmp[el_id] = -1 + switches = dtd.compute_switches_position(tmp)[0] + self._aux_test_switch_topo(dtd, tmp, switches, f"when disconnecting element {el_id}") + + +class TestComputeSwitchPos(unittest.TestCase): + pass + +class TestComputeSwitchPos_AddDetailedTopoIEEE(unittest.TestCase): + def _aux_n_bb_per_sub(self): + return 2 + + @staticmethod + def _aux_get_vect(gridobj_cls, dtd, el): + got = gridobj_cls.grid_objects_types + if el < got.shape[0]: + # this is a regular element + row = got[el, :] + vect = None + el_type_id = None + for col_id, vect in zip( + [gridobj_cls.LOA_COL, gridobj_cls.GEN_COL, + gridobj_cls.LOR_COL, gridobj_cls.LEX_COL, + gridobj_cls.STORAGE_COL], + [dtd.load_to_conn_node_id, + dtd.gen_to_conn_node_id, + dtd.line_or_to_conn_node_id, + dtd.line_ex_to_conn_node_id, + dtd.storage_to_conn_node_id, + ] + ): + if row[col_id] != -1: + el_type_id = row[col_id] + sub_id = row[gridobj_cls.SUB_COL] + break + return vect[el_type_id], sub_id + else: + # this is a shunt + sh_id = el - got.shape[0] + return dtd.shunt_to_conn_node_id[sh_id], gridobj_cls.shunt_to_subid[sh_id] + + @staticmethod + def _aux_test_switch_topo(gridobj_cls, dtd, topo_vect, shunt_bus, switches, extra_str=""): + graph = nx.Graph() + graph.add_edges_from([(el[1], el[2], {"id": switch_id}) for switch_id, el in enumerate(dtd.switches) if switches[switch_id]]) + tmp = list(nx.connected_components(graph)) + # check that element in results connected together are connected together + # and check that the elements that are not connected together are not + for el_1 in range(topo_vect.shape[0]): + th_bus_1 = topo_vect[el_1] + conn_bus_1, subid1 = TestComputeSwitchPos_AddDetailedTopoIEEE._aux_get_vect(gridobj_cls, dtd, el_1) + conn_comp1 = np.array([conn_bus_1 in el for el in tmp]).nonzero()[0] + if th_bus_1 == -1: + assert conn_comp1.shape[0] == 0, f"Error for element {el_1}: it should be disconnected but does not appear to be" + continue + for el_2 in range(el_1 + 1, topo_vect.shape[0]): + th_bus_2 = topo_vect[el_2] + conn_bus_2, subid2 = TestComputeSwitchPos_AddDetailedTopoIEEE._aux_get_vect(gridobj_cls, dtd, el_2) + conn_comp2 = np.array([conn_bus_2 in el for el in tmp]).nonzero()[0] + if th_bus_2 == -1: + assert conn_comp2.shape[0] == 0, f"Error for element {el_2}: it should be disconnected but does not appear to be" + elif subid1 == subid2 and th_bus_1 == th_bus_2: + # disconnected element should not be together + assert conn_comp1 == conn_comp2, f"Error for elements: {el_1} and {el_2}: they should be on the same bus but are not, {extra_str}" + else: + assert conn_comp1 != conn_comp2, f"Error for elements: {el_1} and {el_2}: they should NOT be on the same bus but they are, {extra_str}" + + + def setUp(self) -> None: + n_bb_per_sub = self._aux_n_bb_per_sub() + with warnings.catch_warnings(): + warnings.filterwarnings("ignore") + self.env = grid2op.make( + "educ_case14_storage", + n_busbar=n_bb_per_sub, + test=True, + backend=_PPBkForTestDetTopo(), + action_class=CompleteAction, + _add_to_name=f"{type(self).__name__}_{n_bb_per_sub}", + ) + assert not type(self.env).detailed_topo_desc._from_ieee_grid, "topo should be registered as 'from IEEE'" + assert not type(self.env.get_obs()).detailed_topo_desc._from_ieee_grid, "topo should be registered as 'from IEEE'" + + def test_compute_switches_position(self): + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + gridobj_cls = type(self.env) + + obs = self.env.reset() + dtd = type(obs).detailed_topo_desc + switches_state = dtd.compute_switches_position(obs.topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, obs.topo_vect, obs._shunt_bus, switches_state) + + # move everything to bus 2 + topo_vect = np.full(obs.topo_vect.shape, fill_value=2) + shunt_bus = np.full(obs._shunt_bus.shape, fill_value=2) + switches_state = dtd.compute_switches_position(topo_vect, shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, shunt_bus, switches_state) + + # now check some disconnected elements (*eg* line id 0) + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).line_or_pos_topo_vect[0]] = -1 + topo_vect[type(obs).line_ex_pos_topo_vect[0]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # and now elements per elements + # load 3 to bus 2 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).load_pos_topo_vect[3]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # gen 1 to bus 2 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).gen_pos_topo_vect[1]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # line or 6 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 6 + topo_vect[type(obs).line_or_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # line ex 9 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 9 + topo_vect[type(obs).line_ex_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # storage 0 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 0 + topo_vect[type(obs).storage_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + + # shunt 0 to bus 2 + shunt_bus = 1 * obs._shunt_bus + el_id = 0 + shunt_bus[el_id] = 2 + switches_state = dtd.compute_switches_position(obs.topo_vect, shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, obs.topo_vect, shunt_bus, switches_state) + + # and now elements per elements (disco) + # load 3 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).load_pos_topo_vect[3]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + # gen 1 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).gen_pos_topo_vect[1]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + # line or 6 + topo_vect = 1 * obs.topo_vect + el_id = 6 + topo_vect[type(obs).line_or_pos_topo_vect[el_id]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + # line ex 9 + topo_vect = 1 * obs.topo_vect + el_id = 9 + topo_vect[type(obs).line_ex_pos_topo_vect[el_id]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + # storage 0 + topo_vect = 1 * obs.topo_vect + el_id = 0 + topo_vect[type(obs).storage_pos_topo_vect[el_id]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, topo_vect, obs._shunt_bus, switches_state) + # shunt 0 + shunt_bus = 1 * obs._shunt_bus + el_id = 0 + shunt_bus[el_id] = -1 + switches_state = dtd.compute_switches_position(obs.topo_vect, shunt_bus)[0] + self._aux_test_switch_topo(gridobj_cls, dtd, obs.topo_vect, shunt_bus, switches_state) + + +class TestComputeSwitchPos_AddDetailedTopoIEEE_3bb(TestComputeSwitchPos_AddDetailedTopoIEEE): + def _aux_n_bb_per_sub(self): + return 3 + + +if __name__ == "__main__": + unittest.main() + \ No newline at end of file diff --git a/grid2op/tests/test_detailed_topo.py b/grid2op/tests/test_detailed_topo.py new file mode 100644 index 00000000..360af13c --- /dev/null +++ b/grid2op/tests/test_detailed_topo.py @@ -0,0 +1,1029 @@ +# Copyright (c) 2023-2025, 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 unittest +import warnings +import numpy as np +import hashlib + +import grid2op +from grid2op.dtypes import dt_bool +from grid2op.Action import BaseAction, CompleteAction +from grid2op.Action._BackendAction import _BackendAction +from grid2op.Observation import BaseObservation +from grid2op.Runner import Runner +from grid2op.Backend import PandaPowerBackend +from grid2op.Space import AddDetailedTopoIEEE, DetailedTopoDescription +from grid2op.Agent import BaseAgent +from grid2op.Exceptions import AmbiguousAction +import pdb +REF_HASH = 'e5ccf7cbe54cb567eec33bfd738052f81dc5ac9a1ea2cd391d98f95f804a1273d0efac3d4e00aed9a43abf6ce8bf3fc3487a6c870bd6386dd7a84c3fa8344d99' + + +def _aux_test_correct(detailed_topo_desc : DetailedTopoDescription, gridobj, nb_bb_per_sub): + if nb_bb_per_sub == 2: + assert detailed_topo_desc is not None + assert (detailed_topo_desc.load_to_conn_node_id == np.array([28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38], dtype=np.int32)).all() + assert (detailed_topo_desc.gen_to_conn_node_id == np.array([39, 40, 41, 42, 43, 44], dtype=np.int32)).all() + assert (detailed_topo_desc.line_or_to_conn_node_id == np.array([45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 56, 57, 58, 59, 60, 61, 62, 63, 64], dtype=np.int32)).all() + + # test the switches (but i don't want to copy this huge data here) + assert (detailed_topo_desc.switches.sum(axis=0) == np.array([1159, 17732, 8730])).all() + ref_1 = np.array([ 1, 6, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61, + 66, 117, 91, 92, 120, 95, 96, 123, 99, 100, 126, 103, 104, + 129, 107, 108, 134, 117, 118, 137, 121, 122, 140, 125, 126, 143, + 129, 130, 146, 133, 134, 149, 137, 138, 139, 102, 103, 142, 106, + 107, 147, 116, 117, 149, 117, 118, 153, 124, 125, 148, 104, 105, + 150, 105, 106, 152, 106, 107, 155, 110, 111, 157, 111, 112, 159, + 112, 113, 162, 116, 117, 165, 120, 121, 169, 127, 128, 171, 128, + 129, 173, 129, 130, 178, 139, 140, 180, 140, 141, 183, 144, 145, + 187, 151, 152, 190, 155, 156, 183, 129, 130, 185, 130, 131, 188, + 134, 135, 192, 141, 142, 196, 148, 149, 191, 128, 129, 196, 138, + 139, 196, 133, 134, 199, 137, 138, 202, 141, 142, 203, 139, 140, + 206, 143, 144, 214, 162, 163, 217, 166, 167, 220, 170, 171, 219, + 162, 163, 225, 175, 176, 224, 167, 168, 228, 174, 175, 231, 178, + 179, 226, 158, 159, 230, 165, 166, 229, 157, 158, 233, 164, 165, + 234, 162, 163, 235, 160, 161, 239, 167, 168, 242, 171, 172]) + assert (detailed_topo_desc.switches.sum(axis=1) == ref_1).all() + hash_ = hashlib.blake2b((detailed_topo_desc.switches.tobytes())).hexdigest() + assert hash_ == REF_HASH, f"{hash_}" + + assert detailed_topo_desc.switches.shape[0] == (nb_bb_per_sub + 1) * (gridobj.dim_topo + gridobj.n_shunt) + gridobj.n_sub * (nb_bb_per_sub * (nb_bb_per_sub - 1) // 2) + + # test the names + cls = type(detailed_topo_desc) + dtd = detailed_topo_desc + n_bb_per_sub = nb_bb_per_sub + + el_nm = "load" + nb_el = gridobj.n_load + prev_el = gridobj.n_sub * (nb_bb_per_sub * (nb_bb_per_sub - 1) // 2) + for el_nm, nb_el in zip(["load", "gen", "line_or", "line_ex", "storage", "shunt"], + [gridobj.n_load, gridobj.n_gen, gridobj.n_line, gridobj.n_line, gridobj.n_storage, gridobj.n_shunt]): + next_el = prev_el + nb_el * (1 + n_bb_per_sub) + for i, el in enumerate(dtd.conn_node_name[dtd.switches[prev_el : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_1_ID_COL]]): + assert f"conn_node_{el_nm}_{i}" in el, f"error for what should be the switch connecting conn node to {el_nm} {i} to its conn node breaker" + for i, el in enumerate(dtd.conn_node_name[dtd.switches[prev_el : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_2_ID_COL]]): + assert f"conn_node_breaker_{el_nm}_{i}" in el, f"error for what should be the switch connecting conn node to {el_nm} {i} to its conn node breaker" + + for bb_i in range(1, n_bb_per_sub + 1): + assert (dtd.conn_node_name[dtd.switches[prev_el : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_2_ID_COL]] == + dtd.conn_node_name[dtd.switches[(prev_el + bb_i) : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_1_ID_COL]]).all(), ( + f"Error for what should connect a {el_nm} breaker connection node to busbar {bb_i}") + + for i, el in enumerate(dtd.conn_node_name[dtd.switches[(prev_el + bb_i) : next_el : (1 + n_bb_per_sub), cls.CONN_NODE_2_ID_COL]]): + assert f"busbar_{bb_i-1}" in el, f"error for what should be the switch connecting conn node {el_nm} {i} (its breaker) to busbar {bb_i}" + prev_el = next_el + + # siwtches to pos topo vect + # TODO detailed topo + # ref_switches_pos_topo_vect = np.array([ 2, 2, 0, 0, 1, 1, 8, 8, 7, 7, 4, 4, 5, 5, 6, 6, 3, + # 3, 12, 12, 11, 11, 10, 10, 9, 9, 18, 18, 15, 15, 16, 16, 17, 17, + # 13, 13, 14, 14, 23, 23, 22, 22, 19, 19, 20, 20, 21, 21, 30, 30, 28, + # 28, 29, 29, 24, 24, 25, 25, 26, 26, 27, 27, 31, 31, 33, 33, 32, 32, + # 34, 34, 36, 36, 35, 35, 37, 37, 42, 42, 38, 38, 39, 39, 41, 41, 40, + # 40, -1, -1, 45, 45, 44, 44, 43, 43, 48, 48, 46, 46, 47, 47, 51, 51, + # 50, 50, 49, 49, 55, 55, 54, 54, 52, 52, 53, 53, 58, 58, 56, 56, 57, + # 57], dtype=np.int32) + # for i in range(-1, dim_topo): + # assert np.sum(ref_switches_pos_topo_vect == i).sum() == 2, f"error for topo_vect_id = {i}" + # assert np.all(detailed_topo_desc.switches_to_topovect_id == ref_switches_pos_topo_vect) + + +class _PPBkForTestDetTopo(AddDetailedTopoIEEE, PandaPowerBackend): + pass + + +class TestDTDAgent(BaseAgent): + def act(self, observation: BaseObservation, reward: float, done: bool = False) -> BaseAction: + _aux_test_correct(type(observation).detailed_topo_desc, type(observation), type(observation).n_busbar_per_sub) + return super().act(observation, reward, done) + + +class DetailedTopoTester(unittest.TestCase): + def _aux_n_bb_per_sub(self): + return 2 + + def setUp(self) -> None: + n_bb_per_sub = self._aux_n_bb_per_sub() + with warnings.catch_warnings(): + warnings.filterwarnings("ignore") + self.env = grid2op.make( + "educ_case14_storage", + n_busbar=n_bb_per_sub, + test=True, + backend=_PPBkForTestDetTopo(), + action_class=CompleteAction, + _add_to_name=f"{type(self).__name__}_{n_bb_per_sub}", + ) + assert type(self.env).detailed_topo_desc is not None + act = self.env.action_space() + assert type(act).detailed_topo_desc is not None + if isinstance(self, DetailedTopoTester): + # weird hack I am doing: I reuse the same method + # from another class + # to initialize the same env, but by doing so, I cannot + # "super" + return super().setUp() + + def tearDown(self) -> None: + self.env.close() + return super().tearDown() + + def test_init_ok(self): + obs = self.env.reset() + _aux_test_correct(type(obs).detailed_topo_desc, type(obs), self._aux_n_bb_per_sub()) + + def test_work_simulate(self): + obs = self.env.reset() + _aux_test_correct(type(obs).detailed_topo_desc, type(obs), self._aux_n_bb_per_sub()) + sim_o, *_ = obs.simulate(self.env.action_space()) + _aux_test_correct(type(sim_o).detailed_topo_desc, type(sim_o), self._aux_n_bb_per_sub()) + + def test_runner_seq(self): + obs = self.env.reset() + runner = Runner(**self.env.get_params_for_runner(), agentClass=TestDTDAgent) + runner.run(nb_episode=1, max_iter=10) + runner.run(nb_episode=1, max_iter=10, add_detailed_output=True) + + def test_runner_par(self): + obs = self.env.reset() + runner = Runner(**self.env.get_params_for_runner(), agentClass=TestDTDAgent) + runner.run(nb_episode=2, max_iter=10, nb_process=2) + runner.run(nb_episode=2, max_iter=10, add_detailed_output=True, nb_process=2) + + def test_env_cpy(self): + obs = self.env.reset() + env_cpy = self.env.copy() + obs_cpy = env_cpy.reset() + _aux_test_correct(type(obs_cpy).detailed_topo_desc, type(obs_cpy), self._aux_n_bb_per_sub()) + + def test_compute_switches_position(self): + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + obs = self.env.reset() + dtd = type(obs).detailed_topo_desc + switches_state = dtd.compute_switches_position(obs.topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].all() # all connected + assert switches_state[(start_id + 1)::(nb_busbar + 1)].all() # all on bus 1 + assert (~switches_state[(start_id + 2)::(nb_busbar + 1)]).all() # nothing on busbar 2 + + # move everything to bus 2 + switches_state = dtd.compute_switches_position(np.full(obs.topo_vect.shape, fill_value=2), + np.full(obs._shunt_bus.shape, fill_value=2))[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].all() # all connected + assert switches_state[(start_id + 2)::(nb_busbar + 1)].all() # all on busbar 2 + assert (~switches_state[(start_id + 1)::(nb_busbar + 1)]).all() # nothing on busbar 1 + + # now check some disconnected elements (*eg* line id 0) + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).line_or_pos_topo_vect[0]] = -1 + topo_vect[type(obs).line_ex_pos_topo_vect[0]] = -1 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + # quickly check other elements + assert switches_state.sum() == 116 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 58 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 58 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 + id_switch_or = dtd.get_switch_id_ieee(dtd.line_or_to_conn_node_id[0]) + id_switch_ex = dtd.get_switch_id_ieee(dtd.line_ex_to_conn_node_id[0]) + assert (~switches_state[id_switch_or:(id_switch_or + nb_busbar + 1)]).all() + assert (~switches_state[id_switch_ex:(id_switch_ex + nb_busbar + 1)]).all() + + # and now elements per elements + # load 3 to bus 2 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).load_pos_topo_vect[3]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.load_to_conn_node_id[3]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # gen 1 to bus 2 + topo_vect = 1 * obs.topo_vect + topo_vect[type(obs).gen_pos_topo_vect[1]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.gen_to_conn_node_id[1]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # line or 6 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 6 + topo_vect[type(obs).line_or_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.line_or_to_conn_node_id[el_id]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # line ex 9 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 9 + topo_vect[type(obs).line_ex_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.line_ex_to_conn_node_id[el_id]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # storage 0 to bus 2 + topo_vect = 1 * obs.topo_vect + el_id = 0 + topo_vect[type(obs).storage_pos_topo_vect[el_id]] = 2 + switches_state = dtd.compute_switches_position(topo_vect, obs._shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.storage_to_conn_node_id[el_id]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # shunt 0 to bus 2 + shunt_bus = 1 * obs._shunt_bus + el_id = 0 + shunt_bus[el_id] = 2 + switches_state = dtd.compute_switches_position(obs.topo_vect, shunt_bus)[0] + assert switches_state.sum() == 120 + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.shunt_to_conn_node_id[el_id]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + def test_get_all_switches(self): + """test I can use bkact.get_all_switches""" + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + obs = self.env.reset() + bk_act = self.env._backend_action + dtd = type(obs).detailed_topo_desc + + # nothing modified + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 120, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].all() # all connected + assert switches_state[(start_id + 1)::(nb_busbar + 1)].all() # all on bus 1 + assert (~switches_state[(start_id + 2)::(nb_busbar + 1)]).all() # nothing on busbar 2 + + # I modified the position of a "regular" element load 1 for the sake of the example + bk_act += self.env.action_space({"set_bus": {"loads_id": [(1, 2)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 120, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59, f"{switches_state[(start_id + 1)::(nb_busbar + 1)].sum()}" # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.load_to_conn_node_id[1]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # I disconnect it + bk_act += self.env.action_space({"set_bus": {"loads_id": [(1, -1)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 118, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 59 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.load_to_conn_node_id[1]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 0 # only 2 switches closed + bk_act += self.env.action_space({"set_bus": {"loads_id": [(1, 1)]}}) + + # I modify the position of a shunt (a bit special) + bk_act += self.env.action_space({"shunt": {"set_bus": [(0, 2)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 120, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 59 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 1 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.shunt_to_conn_node_id[0]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 2] # busbar 2 + + # set back it back to its original position + bk_act += self.env.action_space({"shunt": {"set_bus": [(0, 1)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 120, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 60 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.shunt_to_conn_node_id[0]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 1] # busbar 1 + + # I disconnect it + bk_act += self.env.action_space({"shunt": {"set_bus": [(0, -1)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 119, f"{switches_state.sum()} vs 119" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 59 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 60 # busbar 1 (shunt was on busbar 2) + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 (shunt was on busbar 2) + id_switch = dtd.get_switch_id_ieee(dtd.shunt_to_conn_node_id[0]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 1 # only switch in direct control of shunts switched off + + # set back it back to its original position + bk_act += self.env.action_space({"shunt": {"set_bus": [(0, 1)]}}) + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 120, f"{switches_state.sum()} vs 120" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 60 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 60 # busbar 1 + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 + id_switch = dtd.get_switch_id_ieee(dtd.shunt_to_conn_node_id[0]) + assert switches_state[id_switch:(id_switch + nb_busbar + 1)].sum() == 2 # only 2 switches closed + assert switches_state[id_switch + 1] # busbar 1 + + # then I disconnect a powerline (check that both ends are disconnected) + line_id = 3 + act = self.env.action_space({"set_bus": {"lines_or_id": [(line_id, -1)]}}) + _ = act.get_topological_impact(obs.line_status, _store_in_cache=True, _read_from_cache=False) + bk_act += act + switches_state = bk_act.get_all_switches() + assert switches_state.sum() == 118, f"{switches_state.sum()} vs 118" + assert switches_state[start_id::(nb_busbar + 1)].sum() == 58 + assert switches_state[(start_id + 1)::(nb_busbar + 1)].sum() == 60 # busbar 1 (lines are still connected there) + assert switches_state[(start_id + 2)::(nb_busbar + 1)].sum() == 0 # busbar 2 + id_switch_or = dtd.get_switch_id_ieee(dtd.line_or_to_conn_node_id[line_id]) + id_switch_ex = dtd.get_switch_id_ieee(dtd.line_ex_to_conn_node_id[line_id]) + assert (switches_state[id_switch_or:(id_switch_or + nb_busbar + 1)]).sum() == 1 # switch to busbar 1 still connected + assert (switches_state[id_switch_ex:(id_switch_ex + nb_busbar + 1)]).sum() == 1 # switch to busbar 1 still connected + + def test_from_switches_position_basic(self): + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + dtd = type(self.env).detailed_topo_desc + + # all connected + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert (topo_vect == 1).all() + assert (shunt_bus == 1).all() + + # connect all to bus 1 + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + switches_state[:start_id] = False + for bb_id in range(1, nb_busbar + 1): + if bb_id == 1: + # busbar 1 + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = True + else: + # busbar 2 or more + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert (topo_vect == 1).all() + assert (shunt_bus == 1).all() + + # connect all to bus 2 + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + switches_state[:start_id] = False + for bb_id in range(1, nb_busbar + 1): + if bb_id == 2: + # busbar 2 + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = True + else: + # other busbars + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert (topo_vect == 2).all() + assert (shunt_bus == 2).all() + + # connect all el to busbar 2, but connect all busbar together + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + switches_state[:start_id] = True # connect all busbars together + for bb_id in range(1, nb_busbar + 1): + if bb_id == 2: + # busbar 2 + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = True + else: + # other busbars + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert (topo_vect == 1).all() + assert (shunt_bus == 1).all() + + # connect all el to busbar 1, but disconnect the element with their breaker + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + switches_state[:start_id] = True # connect all busbars together + switches_state[(start_id)::(nb_busbar + 1)] = False # breaker + for bb_id in range(1, nb_busbar + 1): + if bb_id == 2: + # busbar 2 + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = True + else: + # other busbars + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert (topo_vect == -1).all() + assert (shunt_bus == -1).all() + + def test_from_switches_position_more_advanced(self): + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + dtd = type(self.env).detailed_topo_desc + + # if you change the env it will change... + sub_id = 1 + mask_el_this = type(self.env).grid_objects_types[:,0] == sub_id + load_this = [0] + gen_this = [0] + line_or_this = [2] # , 3, 4] + line_ex_this = [0] + + bbs_switch_bb1_bb2 = sub_id * (nb_busbar * (nb_busbar - 1) // 2) # switch between busbar 1 and busbar 2 at this substation + load_id_switch = dtd.get_switch_id_ieee(dtd.load_to_conn_node_id[load_this[0]]) + gen_id_switch = dtd.get_switch_id_ieee(dtd.gen_to_conn_node_id[gen_this[0]]) + lor_id_switch = dtd.get_switch_id_ieee(dtd.line_or_to_conn_node_id[line_or_this[0]]) + lex_id_switch = dtd.get_switch_id_ieee(dtd.line_ex_to_conn_node_id[line_ex_this[0]]) + + el_id_switch = load_id_switch + el_this = load_this + vect_topo_vect = type(self.env).load_pos_topo_vect + for el_id_switch, el_this, vect_topo_vect, tag in zip([load_id_switch, gen_id_switch, lor_id_switch, lex_id_switch], + [load_this, gen_this, line_or_this, line_ex_this], + [type(self.env).load_pos_topo_vect, + type(self.env).gen_pos_topo_vect, + type(self.env).line_or_pos_topo_vect, + type(self.env).line_ex_pos_topo_vect], + ["load", "gen", "lor", "lex"]): + # all connected + switches_state = np.ones(dtd.switches.shape[0], dtype=dt_bool) + switches_state[:start_id] = False # deactivate all busbar coupler + # assign all element to busbar 1 + for bb_id in range(1, nb_busbar + 1): + if bb_id == 1: + # busbar 1 + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = True + else: + # other busbars + switches_state[(start_id + bb_id)::(nb_busbar + 1)] = False + + # disconnect the load with the breaker + switches_state[el_id_switch] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == 58, f"error for {tag}" + switches_state[el_id_switch] = True + + # disconnect the load by disconnecting it of all the busbars + switches_state[(el_id_switch + 1):(el_id_switch + nb_busbar +1)] = False + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == 58, f"error for {tag}" + switches_state[(el_id_switch + 1)] = True # busbar 1 + + # now connect the load to busbar 2 + switches_state[(el_id_switch + 1)] = False # busbar 1 + switches_state[(el_id_switch + 2)] = True # busbar 2 + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert topo_vect[vect_topo_vect[el_this]] == 2, f"error for {tag}" + assert (topo_vect == 1).sum() == 58, f"error for {tag}" + + # load still on busbar 2, but disconnected + switches_state[(el_id_switch)] = False # busbar 1 + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == 58, f"error for {tag}" + # reset to orig state + switches_state[(el_id_switch)] = True # busbar 1 + switches_state[(el_id_switch + 1)] = True # busbar 1 + switches_state[(el_id_switch + 2)] = False # busbar 2 + + # load on busbar 2, but busbars connected + switches_state[(el_id_switch + 1)] = False # busbar 1 + switches_state[(el_id_switch + 2)] = True # busbar 2 + switches_state[bbs_switch_bb1_bb2] = True # switch between busbars + topo_vect, shunt_bus = dtd.from_switches_position(switches_state) + assert topo_vect[vect_topo_vect[el_this]] == 1, f"error for {tag}" + assert (topo_vect == 1).sum() == 59, f"error for {tag}" + + # TODO detailed topo : test_from_switches_position_more_advanced_shunt (shunts not tested above) + # TODO detailed topo add more tests + + +class DetailedTopoTester_3bb(DetailedTopoTester): + def _aux_n_bb_per_sub(self): + return 3 + + +class DetailedTopoTester_Action(unittest.TestCase): + def _aux_n_bb_per_sub(self): + return 2 + + def setUp(self) -> None: + DetailedTopoTester.setUp(self) + self.li_flag_nm = [ + "_modif_inj", + "_modif_set_bus", + "_modif_change_bus", + "_modif_set_status", + "_modif_change_status", + "_modif_redispatch", + "_modif_storage", + "_modif_curtailment", + "_modif_alarm", + "_modif_alert", + "_modif_set_switch", + "_modif_change_switch", + ] + type(self.env.action_space._template_obj).ISSUE_WARNING_SWITCH_SET_CHANGE = "never" + return super().setUp() + + def test_can_do_set(self): + act = self.env.action_space({"set_switch": [(0, 1)]}) + assert act._modif_set_switch + for flag_nm in self.li_flag_nm: + if flag_nm == "_modif_set_switch": + continue + assert not getattr(act, flag_nm) + assert act._set_switch_status[0] == 1 + assert (act._set_switch_status[1:] == 0).all() + + act = self.env.action_space({"set_switch": [(1, -1)]}) + assert act._modif_set_switch + assert act._set_switch_status[1] == -1 + assert (act._set_switch_status[0] == 0).all() + assert (act._set_switch_status[2:] == 0).all() + + # with the property + act = self.env.action_space() + act.set_switch = [(0, 1)] + assert act._modif_set_switch + for flag_nm in self.li_flag_nm: + if flag_nm == "_modif_set_switch": + continue + assert not getattr(act, flag_nm) + assert act._set_switch_status[0] == 1 + assert (act._set_switch_status[1:] == 0).all() + + act = self.env.action_space() + act.set_switch = [(1, -1)] + assert act._modif_set_switch + assert act._set_switch_status[1] == -1 + assert (act._set_switch_status[0] == 0).all() + assert (act._set_switch_status[2:] == 0).all() + + def test_can_do_change(self): + act = self.env.action_space({"change_switch": [0]}) + assert act._modif_change_switch + for flag_nm in self.li_flag_nm: + if flag_nm == "_modif_change_switch": + continue + assert not getattr(act, flag_nm) + assert act._change_switch_status[0] + assert (~act._change_switch_status[1:]).all() + # with the property + act = self.env.action_space() + act.change_switch = [0] + assert act._modif_change_switch + for flag_nm in self.li_flag_nm: + if flag_nm == "_modif_change_switch": + continue + assert not getattr(act, flag_nm) + assert act._change_switch_status[0] + assert (~act._change_switch_status[1:]).all() + + def test_ambiguous_set_switch(self): + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"set_switch": [(-1, 1)]}) + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"set_switch": [(type(self.env).detailed_topo_desc.switches.shape[0], 1)]}) + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"set_switch": [(0, -2)]}) + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"set_switch": [(0, 2)]}) + + # same sub with set_bus and set switch + act = self.env.action_space() + nb_bb = self._aux_n_bb_per_sub() + act.set_switch = [ (nb_bb * (nb_bb - 1) // 2, + 1)] + act.load_set_bus = [(0, 1)] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + # same sub with change_bus and set switch + act = self.env.action_space() + nb_bb = self._aux_n_bb_per_sub() + act.set_switch = [ (nb_bb * (nb_bb - 1) // 2, + 1)] + act.load_change_bus = [0] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + # set switch and change switch + act = self.env.action_space() + act.set_switch = [(0, 1)] + act.change_switch = [0] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + def test_ambiguous_change_switch(self): + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"change_switch": [-1]}) + with self.assertRaises(AmbiguousAction): + act = self.env.action_space({"change_switch": [type(self.env).detailed_topo_desc.switches.shape[0]]}) + + # same sub with set_bus and set switch + act = self.env.action_space() + nb_bb = self._aux_n_bb_per_sub() + act.change_switch = [nb_bb * (nb_bb - 1) // 2] + act.load_set_bus = [(0, 1)] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + # same sub with change_bus and set switch + act = self.env.action_space() + nb_bb = self._aux_n_bb_per_sub() + act.change_switch = [nb_bb * (nb_bb - 1) // 2] + act.load_change_bus = [0] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + # set switch and change switch + act = self.env.action_space() + act.set_switch = [(0, 1)] + act.change_switch = [0] + with self.assertRaises(AmbiguousAction): + act._check_for_ambiguity() + + def test_backend_action_set_switch(self): + nb_busbar = self._aux_n_bb_per_sub() + dtd = type(self.env).detailed_topo_desc + + # if you change the env it will change... + sub_id = 1 + load_this = [0] + gen_this = [0] + line_or_this = [2] + line_ex_this = [0] + + bbs_switch_bb1_bb2 = sub_id * (nb_busbar * (nb_busbar - 1) // 2) # switch between busbar 1 and busbar 2 at this substation + load_id_switch = dtd.get_switch_id_ieee(dtd.load_to_conn_node_id[load_this[0]]) + gen_id_switch = dtd.get_switch_id_ieee(dtd.gen_to_conn_node_id[gen_this[0]]) + lor_id_switch = dtd.get_switch_id_ieee(dtd.line_or_to_conn_node_id[line_or_this[0]]) + lex_id_switch = dtd.get_switch_id_ieee(dtd.line_ex_to_conn_node_id[line_ex_this[0]]) + + el_id_switch = load_id_switch + el_this = load_this + vect_topo_vect = type(self.env).load_pos_topo_vect + for el_id_switch, el_this, vect_topo_vect, tag in zip([load_id_switch, gen_id_switch, lor_id_switch, lex_id_switch], + [load_this, gen_this, line_or_this, line_ex_this], + [type(self.env).load_pos_topo_vect, + type(self.env).gen_pos_topo_vect, + type(self.env).line_or_pos_topo_vect, + type(self.env).line_ex_pos_topo_vect], + ["load", "gen", "lor", "lex"]): + nb_when_disco = 58 # number of unaffected element + if tag == "lor" or tag == "lex": + # the other extremity is impacted in case I disconnect a line + nb_when_disco = 57 + # disconnect the load with the breaker + act = self.env.action_space({"set_switch": [(el_id_switch, -1)]}) + bk_act = self.env.backend.my_bk_act_class() + bk_act += act + topo_vect = bk_act()[2].values + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == nb_when_disco, f"error for {tag} : {(topo_vect == 1).sum()} vs {nb_when_disco}" + + # disconnect the load by disconnecting it of all the busbars + act = self.env.action_space({"set_switch": [(el, -1) + for el in range(el_id_switch + 1, el_id_switch + nb_busbar +1)] + }) + bk_act = self.env.backend.my_bk_act_class() + bk_act += act + topo_vect = bk_act()[2].values + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == nb_when_disco, f"error for {tag} : {(topo_vect == 1).sum()} vs {nb_when_disco}" + + # now connect the load to busbar 2 + act = self.env.action_space({"set_switch": [(el, -1 if el != el_id_switch + 2 else 1) + for el in range(el_id_switch + 1, el_id_switch + nb_busbar +1)] + }) + bk_act = self.env.backend.my_bk_act_class() + bk_act += act + topo_vect = bk_act()[2].values + assert topo_vect[vect_topo_vect[el_this]] == 2, f"error for {tag}" + assert (topo_vect == 1).sum() == 58, f"error for {tag} : {(topo_vect == 1).sum()} vs 58" + + # load still on busbar 2, but disconnected + act = self.env.action_space({"set_switch": ([(el, -1 if el != el_id_switch + 2 else 1) + for el in range(el_id_switch + 1, el_id_switch + nb_busbar +1)]+ + [(el_id_switch, -1)]) + }) + bk_act = self.env.backend.my_bk_act_class() + bk_act += act + topo_vect = bk_act()[2].values + assert topo_vect[vect_topo_vect[el_this]] == -1, f"error for {tag}" + assert (topo_vect == 1).sum() == nb_when_disco, f"error for {tag} : {(topo_vect == 1).sum()} vs {nb_when_disco}" + + # load on busbar 2, but busbars connected + act = self.env.action_space({"set_switch": ([(el, -1 if el != el_id_switch + 2 else 1) + for el in range(el_id_switch + 1, el_id_switch + nb_busbar +1)] + + [(bbs_switch_bb1_bb2, 1)]) + }) + bk_act = self.env.backend.my_bk_act_class() + bk_act += act + topo_vect = bk_act()[2].values + assert topo_vect[vect_topo_vect[el_this]] == 1, f"error for {tag}" + assert (topo_vect == 1).sum() == 59, f"error for {tag} : {(topo_vect == 1).sum()} vs 59" + + # TODO detailed topo test print + # TODO detailed topo test to_dict + # TODO detailed topo test as_serializable_dict + # TODO detailed topo test from_dict + # TODO detailed topo test from_json (? does it exists) + + # then detailed topo + # TODO detailed topo test from_switches_position when there is a mask in the substation + # TODO detailed topo test env.step only switch + # TODO detailed topo test env.step switch and set_bus + +class TestActAndBkAct(unittest.TestCase): + def _aux_n_bb_per_sub(self): + return 2 + + def setUp(self) -> None: + DetailedTopoTester.setUp(self) + + def test_no_switch_action(self): + # TODO detailed topo: speed it up by + # not using the routine to/ from switch ! + obs = self.env.reset() + + # agent does that + act : BaseAction = self.env.action_space() + + # env does that + bk_act : _BackendAction = self.env._backend_action + bk_act += act + + # backend does that + ( + active_bus, # TODO detailed topo does not compute that + (prod_p, prod_v, load_p, load_q, storage), + topo__, # TODO detailed topo does not compute that + shunts__, # TODO detailed topo does not compute shunt_bus there + ) = bk_act() + switch_pos = bk_act.get_all_switches() + tgt_switch = np.array([False, False, False, False, False, False, False, False, False, + False, False, False, False, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + assert (switch_pos == tgt_switch).all() + + # env does that again + bk_act.reset() + + def _aux_test_bk_act(self, act, tgt_switch): + + # env does that + bk_act : _BackendAction = self.env._backend_action + bk_act += act + # backend does that + ( + active_bus, # TODO detailed topo does not compute that + (prod_p, prod_v, load_p, load_q, storage), + topo__, # TODO detailed topo does not compute that + shunts__, # TODO detailed topo does not compute shunt_bus there + ) = bk_act() + switch_pos = bk_act.get_all_switches() + assert (switch_pos == tgt_switch).all(), f"check switches {(switch_pos != tgt_switch).nonzero()[0]}" + + # env does that again + bk_act.reset() + + def test_switch_bbs_action(self): + """do an action of closing switches between busbars + (which has no impact on topo)""" + # TODO detailed topo: speed it up by + # not using the routine to/ from switch ! + _ = self.env.reset() + assert "set_switch" in self.env.action_space.subtype.authorized_keys + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(0, 1)]}) + assert act._set_switch_status[0] == 1 + tgt_switch = np.array([True, False, False, False, False, False, False, False, False, + False, False, False, False, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + self._aux_test_bk_act(act, tgt_switch) + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(0, 1), (15, -1)]}) + tgt_switch = np.array([True, False, False, False, False, False, False, False, False, + False, False, False, False, False, True, False, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + self._aux_test_bk_act(act, tgt_switch) + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(0, 1), (15, -1), (7, 1), (8, 1)]}) + tgt_switch = np.array([True, False, False, False, False, False, False, True, True, + False, False, False, False, False, True, False, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + self._aux_test_bk_act(act, tgt_switch) + + def test_switch_bbs_and_topo_act(self): + """do an action of closing switches between busbars + and a topological action with set_bus""" + # TODO detailed topo: speed it up by + # not using the routine to/ from switch ! + obs = self.env.reset() + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(1, 1)]}) # switch on sub 1 + act += self.env.action_space({"set_bus": {"topo_vect_id": [(0, 1), (1, 1)]}}) # set_bus on sub 0 + tgt_switch = np.array([False, True, False, False, False, False, False, False, False, + False, False, False, False, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + self._aux_test_bk_act(act, tgt_switch) + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(1, 1)]}) # switch on sub 1 + act += self.env.action_space({"set_bus": {"topo_vect_id": [(0, 2), (1, 1)]}}) # set_bus on sub 0 + tgt_switch = np.array([False, True, False, False, False, False, False, False, False, + False, False, False, False, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + tgt_switch[66] = False + tgt_switch[67] = True + self._aux_test_bk_act(act, tgt_switch) + + # agent does that + act : BaseAction = self.env.action_space({"set_switch": [(1, 1)]}) # switch on sub 1 + act += self.env.action_space({"set_bus": {"topo_vect_id": [(0, 2), (1, 1), (9, 2)]}}) # set_bus on sub 0 and 2 + tgt_switch = np.array([False, True, False, False, False, False, False, False, False, + False, False, False, False, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False, True, True, False, True, + True, False, True, True, False]) + tgt_switch[66] = False + tgt_switch[67] = True + tgt_switch[132] = False + tgt_switch[133] = True + self._aux_test_bk_act(act, tgt_switch) + + # TODO test with shunts + # TODO test with line status ! + +# TODO detailed topo test no shunt too +# TODO detailed topo test "_get_full_cls_str"(experimental_read_from_local_dir) +# TODO detailed topo test with different n_busbar_per_sub +# TODO detailed topo test action +# TODO detailed topo test observation +# TODO detailed topo test agent that do both actions on switches and with set_bus / change_bus +# TODO detailed topo test agent that act on switches but with an opponent that disconnect lines + +if __name__ == "__main__": + unittest.main() + \ No newline at end of file diff --git a/grid2op/tests/test_detailed_topo_disconnection.py b/grid2op/tests/test_detailed_topo_disconnection.py new file mode 100644 index 00000000..37ce111f --- /dev/null +++ b/grid2op/tests/test_detailed_topo_disconnection.py @@ -0,0 +1,165 @@ +# Copyright (c) 2025, 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 unittest +import warnings + +import grid2op +from grid2op.Action import CompleteAction +from grid2op.Backend import PandaPowerBackend +from grid2op.Space import AddDetailedTopoIEEE + + +class _PPBkForTestDetTopo(AddDetailedTopoIEEE, PandaPowerBackend): + pass + + +class DetailedTopoDiscoTester_NoDetach(unittest.TestCase): + def _aux_n_bb_per_sub(self): + return 2 + + def _aux_detach_is_allowed(self): + return False + + def setUp(self) -> None: + n_bb_per_sub = self._aux_n_bb_per_sub() + with warnings.catch_warnings(): + warnings.filterwarnings("ignore") + self.env = grid2op.make( + "educ_case14_storage", + allow_detachment=self._aux_detach_is_allowed(), + n_busbar=n_bb_per_sub, + test=True, + backend=_PPBkForTestDetTopo(), + action_class=CompleteAction, + _add_to_name=f"{type(self).__name__}_{n_bb_per_sub}", + ) + params = self.env.parameters + params.STOP_EP_IF_GEN_BREAK_CONSTRAINTS = False + self.env.change_parameters(params) + _ = self.env.reset(seed=0, options={"time serie id": 0}) + + def tearDown(self) -> None: + self.env.close() + return super().tearDown() + + def test_disco_load_with_switch(self): + # order of switches are: + # - load + # - gen + # - line or + # - line ex + # - storage + # - shunt + + # before that there are + # the switch controlling the busbars + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + # and for each element, the order is: + # global switch (on / off for the element) + # and then on switch per busbar + load_id = 0 + load_0_deco_switch_id = start_id + load_id * (1 + nb_busbar) + act = self.env.action_space({"set_switch": [(load_0_deco_switch_id, -1)]}) + obs, reward, done, info = self.env.step(act) + if not self._aux_detach_is_allowed(): + assert done + else: + assert not done + assert obs.load_bus[load_id] == -1 + + def test_disco_gen_with_switch(self): + # order of switches are: + # - load + # - gen + # - line or + # - line ex + # - storage + # - shunt + + # before that there are + # the switch controlling the busbars + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + # and for each element, the order is: + # global switch (on / off for the element) + # and then on switch per busbar + nb_load = type(self.env).n_load + gen_id = 2 # gen id = 0 breaks + gen_0_deco_switch_id = start_id + nb_load * (1 + nb_busbar) + gen_id * (1 + nb_busbar) + act = self.env.action_space({"set_switch": [(gen_0_deco_switch_id, -1)]}) + obs, reward, done, info = self.env.step(act) + if not self._aux_detach_is_allowed(): + assert done + else: + assert not done + assert obs.gen_bus[gen_id] == -1 + + def test_disco_line_or_with_switch(self): + # order of switches are: + # - load + # - gen + # - line or + # - line ex + # - storage + # - shunt + + # before that there are + # the switch controlling the busbars + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + # and for each element, the order is: + # global switch (on / off for the element) + # and then on switch per busbar + nb_load = type(self.env).n_load + nb_gen = type(self.env).n_gen + line_id = 2 # gen id = 0 breaks + lor2_deco_switch_id = start_id + (nb_load + nb_gen) * (1 + nb_busbar) + line_id * (1 + nb_busbar) + act = self.env.action_space({"set_switch": [(lor2_deco_switch_id, -1)]}) + obs, reward, done, info = self.env.step(act) + assert not obs.line_status[line_id] + assert obs.line_or_bus[line_id] == -1 + assert obs.line_ex_bus[line_id] == -1 + + def test_disco_line_ex_with_switch(self): + # order of switches are: + # - load + # - gen + # - line or + # - line ex + # - storage + # - shunt + + # before that there are + # the switch controlling the busbars + nb_busbar = self._aux_n_bb_per_sub() + start_id = (nb_busbar * (nb_busbar - 1) // 2) * type(self.env).n_sub + + # and for each element, the order is: + # global switch (on / off for the element) + # and then on switch per busbar + nb_load = type(self.env).n_load + nb_gen = type(self.env).n_gen + nb_line = type(self.env).n_line + line_id = 3 # gen id = 0 breaks + lex3_deco_switch_id = start_id + (nb_load + nb_gen + nb_line) * (1 + nb_busbar) + line_id * (1 + nb_busbar) + act = self.env.action_space({"set_switch": [(lex3_deco_switch_id, -1)]}) + obs, reward, done, info = self.env.step(act) + assert not obs.line_status[line_id] + assert obs.line_or_bus[line_id] == -1 + assert obs.line_ex_bus[line_id] == -1 + + +class DetailedTopoDiscoTester_Detach(DetailedTopoDiscoTester_NoDetach): + def _aux_detach_is_allowed(self): + return True + \ No newline at end of file diff --git a/grid2op/tests/test_shedding.py b/grid2op/tests/test_shedding.py index cd6e878c..13666d72 100644 --- a/grid2op/tests/test_shedding.py +++ b/grid2op/tests/test_shedding.py @@ -363,10 +363,10 @@ def test_no_shedding(self): def test_shedding_load_step(self): # NB warning this test does not pass if STOP_EP_IF_GEN_BREAK_CONSTRAINTS (slack breaks its rampdown !) + print("here here here") obs, reward, done, info = self.env.step(self.env.action_space({"detach_load": 0})) # env converged assert not done, info["exception"] - # load properly disconnected assert obs.topo_vect[obs.load_pos_topo_vect[0]] == -1 # 0 in the observation for this load