Skip to content

Commit 6a0ba2c

Browse files
fixed the validation
Signed-off-by: Jerry Guo <Jerry.Jinfeng.Guo@alliander.com>
1 parent 8631f22 commit 6a0ba2c

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

src/power_grid_model/validation/_validation.py

+14
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
)
2525
from power_grid_model.data_types import BatchDataset, Dataset, SingleDataset
2626
from power_grid_model.enum import (
27+
AngleMeasurementType,
2728
Branch3Side,
2829
BranchSide,
2930
CalculationType,
@@ -378,12 +379,22 @@ def validate_required_values(
378379
# Sensors
379380
required["sensor"] = required["base"] + ["measured_object"]
380381
required["voltage_sensor"] = required["sensor"].copy()
382+
required["current_sensor"] = required["sensor"] + [
383+
"measured_terminal_type",
384+
"angle_measurement_type",
385+
"i_sigma",
386+
"i_angle_sigma",
387+
]
381388
required["power_sensor"] = required["sensor"] + ["measured_terminal_type"]
382389
if calculation_type is None or calculation_type == CalculationType.state_estimation:
383390
required["voltage_sensor"] += ["u_sigma", "u_measured"]
391+
required["current_sensor"] += ["i_measured", "i_angle_measured"]
384392
required["power_sensor"] += ["power_sigma", "p_measured", "q_measured"]
385393
required["sym_voltage_sensor"] = required["voltage_sensor"].copy()
386394
required["asym_voltage_sensor"] = required["voltage_sensor"].copy()
395+
required["sym_current_sensor"] = required["current_sensor"].copy()
396+
required["asym_current_sensor"] = required["current_sensor"].copy()
397+
387398
# Different requirements for individual sensors. Avoid shallow copy.
388399
for sensor_type in ("sym_power_sensor", "asym_power_sensor"):
389400
required[sensor_type] = required["power_sensor"].copy()
@@ -458,6 +469,8 @@ def validate_values(data: SingleDataset, calculation_type: CalculationType | Non
458469
ComponentType.asym_power_sensor: ["power_sigma"],
459470
ComponentType.sym_voltage_sensor: ["u_sigma"],
460471
ComponentType.asym_voltage_sensor: ["u_sigma"],
472+
ComponentType.sym_current_sensor: ["i_sigma", "i_angle_sigma"],
473+
ComponentType.asym_current_sensor: ["i_sigma", "i_angle_sigma"],
461474
},
462475
)
463476
)
@@ -972,6 +985,7 @@ def validate_generic_current_sensor(data: SingleDataset, component: ComponentTyp
972985
errors += _all_greater_than_zero(data, component, "i_sigma")
973986
errors += _all_greater_than_zero(data, component, "i_angle_sigma")
974987
errors += _all_valid_enum_values(data, component, "measured_terminal_type", MeasuredTerminalType)
988+
errors += _all_valid_enum_values(data, component, "angle_measurement_type", AngleMeasurementType)
975989
errors += _all_valid_ids(
976990
data,
977991
component,

tests/unit/validation/test_validation_functions.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -395,23 +395,23 @@ def test_validate_required_values_sym_calculation(calculation_type, symmetric):
395395
assert MissingValueError("sym_current_sensor", "measured_object", [NaN]) in required_values_errors
396396
assert MissingValueError("sym_current_sensor", "measured_terminal_type", [NaN]) in required_values_errors
397397
assert MissingValueError("sym_current_sensor", "angle_measurement_type", [NaN]) in required_values_errors
398+
assert MissingValueError("sym_current_sensor", "i_sigma", [NaN]) in required_values_errors
399+
assert MissingValueError("sym_current_sensor", "i_angle_sigma", [NaN]) in required_values_errors
398400
assert (MissingValueError("sym_current_sensor", "i_measured", [NaN]) in required_values_errors) == se_dependent
399401
assert (
400402
MissingValueError("sym_current_sensor", "i_angle_measured", [NaN]) in required_values_errors
401403
) == se_dependent
402-
assert (MissingValueError("sym_current_sensor", "i_sigma", [NaN]) in required_values_errors) == se_dependent
403-
assert (MissingValueError("sym_current_sensor", "i_angle_sigma", [NaN]) in required_values_errors) == se_dependent
404404

405405
assert MissingValueError("asym_current_sensor", "id", [NaN]) in required_values_errors
406406
assert MissingValueError("asym_current_sensor", "measured_object", [NaN]) in required_values_errors
407407
assert MissingValueError("asym_current_sensor", "measured_terminal_type", [NaN]) in required_values_errors
408408
assert MissingValueError("asym_current_sensor", "angle_measurement_type", [NaN]) in required_values_errors
409+
assert MissingValueError("asym_current_sensor", "i_sigma", [NaN]) in required_values_errors
410+
assert MissingValueError("asym_current_sensor", "i_angle_sigma", [NaN]) in required_values_errors
409411
assert (MissingValueError("asym_current_sensor", "i_measured", [NaN]) in required_values_errors) == se_dependent
410412
assert (
411413
MissingValueError("asym_current_sensor", "i_angle_measured", [NaN]) in required_values_errors
412414
) == se_dependent
413-
assert (MissingValueError("asym_current_sensor", "i_sigma", [NaN]) in required_values_errors) == se_dependent
414-
assert (MissingValueError("asym_current_sensor ", "i_angle_sigma", [NaN]) in required_values_errors) == se_dependent
415415

416416
assert MissingValueError("fault", "id", [NaN]) in required_values_errors
417417
assert (MissingValueError("fault", "status", [NaN]) in required_values_errors) == sc_dependent

0 commit comments

Comments
 (0)