Skip to content

Commit

Permalink
Merge pull request #671 from PowerGridModel/bugfix/fix-empty-transfor…
Browse files Browse the repository at this point in the history
…mer-validation

fix also support empty trafo list in validation
  • Loading branch information
mgovers authored Jul 9, 2024
2 parents 4dd45b0 + 9f79b43 commit 782deca
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
4 changes: 4 additions & 0 deletions src/power_grid_model/validation/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -196,12 +196,16 @@ def get_indexer(source: np.ndarray, target: np.ndarray, default_value: Optional[
Raises:
IndexError: if default_value is None and there were values in target that were not in source
"""

permutation_sort = np.argsort(source) # complexity O(N_input * logN_input)
indices = np.searchsorted(source, target, sorter=permutation_sort) # complexity O(N_update * logN_input)

if default_value is None:
return permutation_sort[indices]

if len(source) == 0:
return np.full_like(target, fill_value=default_value)

clipped_indices = np.take(permutation_sort, indices, mode="clip")
return np.where(source[clipped_indices] == target, permutation_sort[clipped_indices], default_value)

Expand Down
3 changes: 2 additions & 1 deletion tests/unit/validation/test_rules.py
Original file line number Diff line number Diff line change
Expand Up @@ -553,14 +553,15 @@ def test_supported_tap_control_side():
valid = {
"foo": np.array([(0, 4)], dtype=[("id", "i4"), ("foofoo", "i1")]),
"bar": np.array([(1, 5)], dtype=[("id", "i4"), ("barbar", "i1")]),
"baz": np.array([], dtype=[("id", "i4"), ("bazbaz", "i1")]),
"regulator": np.array([(2, 0, 6), (3, 1, 7)], dtype=[("id", "i4"), ("regulated", "i4"), ("control", "i1")]),
}
errors = all_supported_tap_control_side(
valid,
"regulator",
"control",
"regulated",
[("foo", "foofoo"), ("bar", "barbar"), ("baz", "bazbaz")],
[("foo", "foofoo"), ("bar", "barbar"), ("baz", "bazbaz"), ("bla", "blabla")],
)
assert not errors

Expand Down

0 comments on commit 782deca

Please sign in to comment.