diff --git a/action-ial/action-ial-dsl/src/main/java/com/powsybl/action/ial/dsl/modification/ScriptNetworkModification.java b/action-ial/action-ial-dsl/src/main/java/com/powsybl/action/ial/dsl/modification/ScriptNetworkModification.java index c03eddfeb94..242619847d0 100644 --- a/action-ial/action-ial-dsl/src/main/java/com/powsybl/action/ial/dsl/modification/ScriptNetworkModification.java +++ b/action-ial/action-ial-dsl/src/main/java/com/powsybl/action/ial/dsl/modification/ScriptNetworkModification.java @@ -27,6 +27,11 @@ public ScriptNetworkModification(Closure script) { this.script = Objects.requireNonNull(script); } + @Override + public String getName() { + return "ScriptNetworkModification"; + } + public Closure getScript() { return script; } diff --git a/iidm/iidm-modification/pom.xml b/iidm/iidm-modification/pom.xml index 6c68f63b5b9..6e84c871715 100644 --- a/iidm/iidm-modification/pom.xml +++ b/iidm/iidm-modification/pom.xml @@ -49,6 +49,10 @@ ${project.groupId} powsybl-iidm-extensions + + ${project.groupId} + powsybl-iidm-serde + ${project.groupId} powsybl-loadflow-api @@ -95,11 +99,6 @@ powsybl-iidm-test test - - ${project.groupId} - powsybl-iidm-serde - test - diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/AbstractNetworkModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/AbstractNetworkModification.java index 4eb3f8c657a..4f4eb85766f 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/AbstractNetworkModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/AbstractNetworkModification.java @@ -8,11 +8,14 @@ package com.powsybl.iidm.modification; import com.powsybl.commons.PowsyblException; +import com.powsybl.commons.io.TreeDataFormat; import com.powsybl.commons.report.ReportNode; +import com.powsybl.commons.report.TypedValue; import com.powsybl.computation.ComputationManager; import com.powsybl.computation.local.LocalComputationManager; import com.powsybl.iidm.modification.topology.DefaultNamingStrategy; import com.powsybl.iidm.modification.topology.NamingStrategy; +import com.powsybl.iidm.serde.NetworkSerDe; import com.powsybl.iidm.network.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -33,56 +36,135 @@ public void apply(Network network) { apply(network, new DefaultNamingStrategy(), false, LocalComputationManager.getDefault(), ReportNode.NO_OP); } + @Override + public boolean apply(Network network, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), false, LocalComputationManager.getDefault(), ReportNode.NO_OP, dryRun); + } + @Override public void apply(Network network, ComputationManager computationManager) { apply(network, new DefaultNamingStrategy(), false, computationManager, ReportNode.NO_OP); } + @Override + public boolean apply(Network network, ComputationManager computationManager, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), false, computationManager, ReportNode.NO_OP, dryRun); + } + @Override public void apply(Network network, ComputationManager computationManager, ReportNode reportNode) { apply(network, new DefaultNamingStrategy(), false, computationManager, reportNode); } + @Override + public boolean apply(Network network, ComputationManager computationManager, ReportNode reportNode, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), false, computationManager, reportNode, dryRun); + } + @Override public void apply(Network network, ReportNode reportNode) { apply(network, new DefaultNamingStrategy(), false, LocalComputationManager.getDefault(), reportNode); } + @Override + public boolean apply(Network network, ReportNode reportNode, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), false, LocalComputationManager.getDefault(), reportNode, dryRun); + } + @Override public void apply(Network network, boolean throwException, ReportNode reportNode) { apply(network, new DefaultNamingStrategy(), throwException, LocalComputationManager.getDefault(), reportNode); } + @Override + public boolean apply(Network network, boolean throwException, ReportNode reportNode, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), throwException, LocalComputationManager.getDefault(), reportNode, dryRun); + } + @Override public void apply(Network network, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { apply(network, new DefaultNamingStrategy(), throwException, computationManager, reportNode); } + @Override + public boolean apply(Network network, boolean throwException, ComputationManager computationManager, ReportNode reportNode, boolean dryRun) { + return apply(network, new DefaultNamingStrategy(), throwException, computationManager, reportNode, dryRun); + } + @Override public void apply(Network network, NamingStrategy namingStrategy) { apply(network, namingStrategy, false, LocalComputationManager.getDefault(), ReportNode.NO_OP); } + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, boolean dryRun) { + return apply(network, namingStrategy, false, LocalComputationManager.getDefault(), ReportNode.NO_OP, dryRun); + } + @Override public void apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager) { apply(network, namingStrategy, false, computationManager, ReportNode.NO_OP); } + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, boolean dryRun) { + return apply(network, namingStrategy, false, computationManager, ReportNode.NO_OP, dryRun); + } + @Override public void apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, ReportNode reportNode) { apply(network, namingStrategy, false, computationManager, reportNode); } + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, ReportNode reportNode, boolean dryRun) { + return apply(network, namingStrategy, false, computationManager, reportNode, dryRun); + } + @Override public void apply(Network network, NamingStrategy namingStrategy, ReportNode reportNode) { apply(network, namingStrategy, false, LocalComputationManager.getDefault(), reportNode); } + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, ReportNode reportNode, boolean dryRun) { + return apply(network, namingStrategy, false, LocalComputationManager.getDefault(), reportNode, dryRun); + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ReportNode reportNode) { apply(network, namingStrategy, throwException, LocalComputationManager.getDefault(), reportNode); } + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, boolean throwException, ReportNode reportNode, boolean dryRun) { + return apply(network, namingStrategy, throwException, LocalComputationManager.getDefault(), reportNode, dryRun); + } + + @Override + public boolean apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode, boolean dryRun) { + if (dryRun) { + ReportNode dryRunReportNode = reportOnDryRunStart(network, reportNode); + try { + //TODO The following copy performs a JSON export/import. It will be more performant to change it to the BIN format. + Network dryRunNetwork = NetworkSerDe.copy(network, TreeDataFormat.JSON); + dryRunNetwork.setName(network.getNameOrId() + "_Dry-run"); + apply(dryRunNetwork, namingStrategy, true, computationManager, dryRunReportNode); + } catch (PowsyblException powsyblException) { + reportOnInconclusiveDryRun(dryRunReportNode, powsyblException.getMessage()); + return false; + } + dryRunReportNode.newReportNode() + .withMessageTemplate("networkModificationDryRun-success", + "Dry-run: Network modifications can successfully be applied on network '${networkNameOrId}'") + .withSeverity(TypedValue.INFO_SEVERITY) + .add(); + } else { + apply(network, namingStrategy, throwException, computationManager, reportNode); + } + return true; + } + /** * Utility during apply functions, logs or throw the message. * @@ -96,6 +178,32 @@ protected void logOrThrow(boolean throwException, String message) { } } + /** + * Returns the name of the network modification. That name corresponds to the type of network modification + * @return the name of the network modification + */ + public abstract String getName(); + + protected ReportNode reportOnDryRunStart(Network network, ReportNode reportNode) { + String templateKey = "networkModificationDryRun"; + String messageTemplate = "Dry-run: Checking if network modification ${networkModification} can be applied on network '${networkNameOrId}'"; + return reportNode.newReportNode() + .withMessageTemplate(templateKey, messageTemplate) + .withUntypedValue("networkModification", getName()) + .withUntypedValue("networkNameOrId", network.getNameOrId()) + .withSeverity(TypedValue.INFO_SEVERITY) + .add(); + } + + protected void reportOnInconclusiveDryRun(ReportNode reportNode, String cause) { + reportNode.newReportNode() + .withMessageTemplate("networkModificationDryRun-failure", + "Dry-run failed for ${networkModification}. The issue is: ${dryRunError}") + .withUntypedValue("dryRunError", cause) + .withUntypedValue("networkModification", getName()) + .add(); + } + @Override public NetworkModificationImpact hasImpactOnNetwork(Network network) { return DEFAULT_IMPACT; diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/BatteryModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/BatteryModification.java index bc13b2aa75e..44da2520717 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/BatteryModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/BatteryModification.java @@ -32,6 +32,11 @@ public BatteryModification(String batteryId, Double targetP, Double targetQ) { this.targetQ = targetQ; } + @Override + public String getName() { + return "BatteryModification"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/CloseSwitch.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/CloseSwitch.java index 3699373f819..403f7c4662c 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/CloseSwitch.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/CloseSwitch.java @@ -26,6 +26,11 @@ public CloseSwitch(String switchId) { this.switchId = Objects.requireNonNull(switchId); } + @Override + public String getName() { + return "CloseSwitch"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectGenerator.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectGenerator.java index ff965b921bd..0cd6e5e3738 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectGenerator.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectGenerator.java @@ -27,6 +27,11 @@ public ConnectGenerator(String generatorId) { this.generatorId = generatorId; } + @Override + public String getName() { + return "ConnectGenerator"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectableConnection.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectableConnection.java index 148213af208..c84d57c7313 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectableConnection.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ConnectableConnection.java @@ -57,6 +57,11 @@ public class ConnectableConnection extends AbstractConnectDisconnectModification this.isTypeSwitchToOperate = predicate; } + @Override + public String getName() { + return "ConnectableConnection"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { // Get the connectable diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/DanglingLineModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/DanglingLineModification.java index 6d84b4da3b9..06c4604e3b2 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/DanglingLineModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/DanglingLineModification.java @@ -39,6 +39,11 @@ public DanglingLineModification(String danglingLineId, Double targetP0, Double t this(danglingLineId, false, targetP0, targetQ0); } + @Override + public String getName() { + return "DanglingLineModification"; + } + public String getDanglingLineId() { return danglingLineId; } diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/GeneratorModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/GeneratorModification.java index a250f4e5361..e57fb6bcdda 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/GeneratorModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/GeneratorModification.java @@ -30,6 +30,11 @@ public GeneratorModification(String generatorId, Modifs modifs) { this.modifs = modifs; } + @Override + public String getName() { + return "GeneratorModification"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/HvdcLineModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/HvdcLineModification.java index 75efb95aa0a..1e7150b1fb2 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/HvdcLineModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/HvdcLineModification.java @@ -44,6 +44,11 @@ public HvdcLineModification(String hvdcId, Boolean acEmulationEnabled, Double ac this.relativeValue = relativeValue; } + @Override + public String getName() { + return "HvdcLineModification"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/LoadModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/LoadModification.java index d1a17adc9b3..61026123d60 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/LoadModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/LoadModification.java @@ -39,6 +39,11 @@ public LoadModification(String loadId, Double targetP0, Double targetQ0) { this(loadId, false, targetP0, targetQ0); } + @Override + public String getName() { + return "LoadModification"; + } + public String getLoadId() { return loadId; } diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModification.java index ccd3057ead4..d26236cb4e3 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModification.java @@ -19,48 +19,88 @@ public interface NetworkModification { void apply(Network network); + boolean apply(Network network, boolean dryRun); + void apply(Network network, ComputationManager computationManager); + boolean apply(Network network, ComputationManager computationManager, boolean dryRun); + void apply(Network network, ComputationManager computationManager, ReportNode reportNode); + boolean apply(Network network, ComputationManager computationManager, ReportNode reportNode, boolean dryRun); + void apply(Network network, ReportNode reportNode); + boolean apply(Network network, ReportNode reportNode, boolean dryRun); + /** - * Applies the modification to the given network. If throwException is set to true, then in case of error, an + * Applies the modification to the given network. If throwException is set to true, then in case of error, an * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network * in case of error. */ void apply(Network network, boolean throwException, ReportNode reportNode); + boolean apply(Network network, boolean throwException, ReportNode reportNode, boolean dryRun); + /** - * Applies the modification to the given network. If throwException is set to true, then in case of error, an + * Applies the modification to the given network. If throwException is set to true, then in case of error, an * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network * in case of error. */ void apply(Network network, boolean throwException, ComputationManager computationManager, ReportNode reportNode); + boolean apply(Network network, boolean throwException, ComputationManager computationManager, ReportNode reportNode, boolean dryRun); + void apply(Network network, NamingStrategy namingStrategy); + boolean apply(Network network, NamingStrategy namingStrategy, boolean dryRun); + void apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager); + boolean apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, boolean dryRun); + void apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, ReportNode reportNode); + boolean apply(Network network, NamingStrategy namingStrategy, ComputationManager computationManager, ReportNode reportNode, boolean dryRun); + void apply(Network network, NamingStrategy namingStrategy, ReportNode reportNode); + boolean apply(Network network, NamingStrategy namingStrategy, ReportNode reportNode, boolean dryRun); + /** - * Applies the modification to the given network. If throwException is set to true, then in case of error, an + * Applies the modification to the given network. If throwException is set to true, then in case of error, an * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network * in case of error. */ void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ReportNode reportNode); /** - * Applies the modification to the given network. If throwException is set to true, then in case of error, an + *

Applies the modification to the given network. If throwException is set to true, then in case of error, an + * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network + * in case of error.

+ *

When dryRun is set to true, the modification is applied on a copy of the network and + * no exception is thrown if an application error is encountered. Instead, the error is logged in reportNode + * and the method returns false. If no application error is encountered, the method returns true.

+ */ + boolean apply(Network network, NamingStrategy namingStrategy, boolean throwException, ReportNode reportNode, boolean dryRun); + + /** + * Applies the modification to the given network. If throwException is set to true, then in case of error, an * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network * in case of error. */ void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode); + /** + *

Applies the modification to the given network. If throwException is set to true, then in case of error, an + * exception will be thrown. Otherwise, computation will continue but the injection will not be added to the network + * in case of error.

+ *

When dryRun is set to true, the modification is applied on a copy of the network and + * no exception is thrown if an application error is encountered. Instead, the error is logged in reportNode + * and the method returns false. If no application error is encountered, the method returns true.

+ */ + boolean apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode, boolean dryRun); + /** * States if the network modification would change the current state of the network. It has no impact on the network. * @param network Network that serves as reference for the impact. diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModificationList.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModificationList.java index f4d7e2715a2..d153322dd26 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModificationList.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/NetworkModificationList.java @@ -33,6 +33,11 @@ public NetworkModificationList(NetworkModification... modificationList) { this(Arrays.asList(modificationList)); } + @Override + public String getName() { + return "NetworkModificationList"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/OpenSwitch.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/OpenSwitch.java index ebfe431c25c..b7add3b3ed5 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/OpenSwitch.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/OpenSwitch.java @@ -27,6 +27,11 @@ public OpenSwitch(String switchId) { this.switchId = Objects.requireNonNull(switchId); } + @Override + public String getName() { + return "OpenSwitch"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterOptimizeTap.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterOptimizeTap.java index 513934f5036..381bffdf1bd 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterOptimizeTap.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterOptimizeTap.java @@ -25,6 +25,11 @@ public PhaseShifterOptimizeTap(String phaseShifterId) { this.phaseShifterId = Objects.requireNonNull(phaseShifterId); } + @Override + public String getName() { + return "PhaseShifterOptimizeTap"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterSetAsFixedTap.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterSetAsFixedTap.java index cb128907b8e..16e990d34ec 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterSetAsFixedTap.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterSetAsFixedTap.java @@ -27,6 +27,11 @@ public PhaseShifterSetAsFixedTap(String phaseShifterId, int tapPosition) { this.tapPosition = tapPosition; } + @Override + public String getName() { + return "PhaseShifterSetAsFixedTap"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterShiftTap.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterShiftTap.java index 296240082cc..0a4c893fd9c 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterShiftTap.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PhaseShifterShiftTap.java @@ -30,6 +30,11 @@ public PhaseShifterShiftTap(String phaseShifterId, int tapDelta) { this.tapDelta = tapDelta; } + @Override + public String getName() { + return "PhaseShifterShiftTap"; + } + public int getTapDelta() { return tapDelta; } diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PlannedDisconnection.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PlannedDisconnection.java index bf9e6c1d2e0..e564f1b8a4a 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PlannedDisconnection.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/PlannedDisconnection.java @@ -36,6 +36,11 @@ public class PlannedDisconnection extends AbstractDisconnection { SwitchPredicates.IS_OPEN.negate().and(SwitchPredicates.IS_NONFICTIONAL), side); } + @Override + public String getName() { + return "PlannedDisconnection"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ReplaceTieLinesByLines.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ReplaceTieLinesByLines.java index a563b278323..ad4edbdc31e 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ReplaceTieLinesByLines.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ReplaceTieLinesByLines.java @@ -33,6 +33,11 @@ public class ReplaceTieLinesByLines extends AbstractNetworkModification { private static final Logger LOG = LoggerFactory.getLogger(ReplaceTieLinesByLines.class); + @Override + public String getName() { + return "ReplaceTieLinesByLines"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { for (TieLine tl : network.getTieLineStream().toList()) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ShuntCompensatorModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ShuntCompensatorModification.java index cc6ccf33e25..e33cd708012 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ShuntCompensatorModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ShuntCompensatorModification.java @@ -32,6 +32,11 @@ public ShuntCompensatorModification(String shuntCompensatorId, Boolean connect, this.sectionCount = sectionCount; } + @Override + public String getName() { + return "ShuntCompensatorModification"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/StaticVarCompensatorModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/StaticVarCompensatorModification.java index b0b21776225..874f73c8e5a 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/StaticVarCompensatorModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/StaticVarCompensatorModification.java @@ -21,6 +21,11 @@ public StaticVarCompensatorModification(String elementId, Double voltageSetpoint super(elementId, voltageSetpoint, reactivePowerSetpoint); } + @Override + public String getName() { + return "StaticVarCompensatorModification"; + } + @Override public String getElementName() { return "StaticVarCompensator"; diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ThreeWindingsTransformerModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ThreeWindingsTransformerModification.java index 51f4475ac0b..5ff9e969ced 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ThreeWindingsTransformerModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/ThreeWindingsTransformerModification.java @@ -29,6 +29,11 @@ public ThreeWindingsTransformerModification(String transformerId, double ratedU0 this.ratedU0 = ratedU0; } + @Override + public String getName() { + return "ThreeWindingsTransformerModification"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/UnplannedDisconnection.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/UnplannedDisconnection.java index 1390cc8053a..acebbac0983 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/UnplannedDisconnection.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/UnplannedDisconnection.java @@ -36,6 +36,11 @@ public class UnplannedDisconnection extends AbstractDisconnection { SwitchPredicates.IS_OPEN.negate().and(SwitchPredicates.IS_BREAKER).and(SwitchPredicates.IS_NONFICTIONAL), side); } + @Override + public String getName() { + return "UnplannedDisconnection"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/VscConverterStationModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/VscConverterStationModification.java index e2e970ee745..2f9bf08171a 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/VscConverterStationModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/VscConverterStationModification.java @@ -21,6 +21,11 @@ public VscConverterStationModification(String elementId, Double voltageSetpoint, super(elementId, voltageSetpoint, reactivePowerSetpoint); } + @Override + public String getName() { + return "VscConverterStationModification"; + } + @Override public String getElementName() { return "VscConverterStation"; diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/PhaseTapPositionModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/PhaseTapPositionModification.java index 95de18e3563..909d96edab9 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/PhaseTapPositionModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/PhaseTapPositionModification.java @@ -65,6 +65,11 @@ public PhaseTapPositionModification(String transformerId, int tapPosition, Three this.isRelative = isRelative; } + @Override + public String getName() { + return "PhaseTapPositionModification"; + } + @Override protected void applyTwoWindingsTransformer(Network network, TwoWindingsTransformer twoWindingsTransformer, boolean throwException) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/RatioTapPositionModification.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/RatioTapPositionModification.java index c8f89d004a7..ac807c63e06 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/RatioTapPositionModification.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tapchanger/RatioTapPositionModification.java @@ -38,6 +38,11 @@ public RatioTapPositionModification(String transformerId, int tapPosition, Three super(transformerId, tapPosition, Objects.requireNonNull(leg)); } + @Override + public String getName() { + return "RatioTapPositionModification"; + } + @Override protected void applyTwoWindingsTransformer(Network network, TwoWindingsTransformer twoWindingsTransformer, boolean throwException) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLine.java index f32d48ba55d..6f40732beb7 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLine.java @@ -51,6 +51,11 @@ public class ConnectVoltageLevelOnLine extends AbstractLineConnectionModificatio super(positionPercent, bbsOrBusId, line1Id, line1Name, line2Id, line2Name, line); } + @Override + public String getName() { + return "ConnectVoltageLevelOnLine"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBays.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBays.java index ad42cab20fe..88491241ff8 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBays.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBays.java @@ -48,6 +48,11 @@ public class CreateBranchFeederBays extends AbstractCreateConnectableFeederBays this.direction2 = Objects.requireNonNull(direction2); } + @Override + public String getName() { + return "CreateBranchFeederBays"; + } + @Override protected String getBusOrBusbarSectionId(int side) { if (side == 1) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateCouplingDevice.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateCouplingDevice.java index b85367ec18e..1055bb31779 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateCouplingDevice.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateCouplingDevice.java @@ -46,6 +46,11 @@ public class CreateCouplingDevice extends AbstractNetworkModification { this.switchPrefixId = switchPrefixId; } + @Override + public String getName() { + return "CreateCouplingDevice"; + } + public String getBusOrBbsId1() { return busOrBbsId1; } diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateFeederBay.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateFeederBay.java index 599a7557c3d..6e94feb09e4 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateFeederBay.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateFeederBay.java @@ -48,6 +48,11 @@ public class CreateFeederBay extends AbstractCreateConnectableFeederBays { this.injectionDirection = Objects.requireNonNull(injectionDirection); } + @Override + public String getName() { + return "CreateFeederBay"; + } + @Override protected String getBusOrBusbarSectionId(int side) { return busOrBbsId; diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateLineOnLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateLineOnLine.java index 0adf9a9eef6..809a3fecf15 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateLineOnLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/CreateLineOnLine.java @@ -81,6 +81,11 @@ public class CreateLineOnLine extends AbstractLineConnectionModification= {}", type, min); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveFeederBay.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveFeederBay.java index e125a32b668..7872270d0c1 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveFeederBay.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveFeederBay.java @@ -44,6 +44,11 @@ public RemoveFeederBay(String connectableId) { this.connectableId = Objects.requireNonNull(connectableId); } + @Override + public String getName() { + return "RemoveFeederBay"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { Connectable connectable = network.getConnectable(connectableId); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveHvdcLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveHvdcLine.java index 50953005a70..b93cb0104d5 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveHvdcLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveHvdcLine.java @@ -39,6 +39,11 @@ public class RemoveHvdcLine extends AbstractNetworkModification { this.shuntCompensatorIds = Objects.requireNonNull(shuntCompensatorIds); } + @Override + public String getName() { + return "RemoveHvdcLine"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { HvdcLine hvdcLine = network.getHvdcLine(hvdcLineId); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveSubstation.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveSubstation.java index 93e36edceae..a225d3fc009 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveSubstation.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveSubstation.java @@ -36,6 +36,11 @@ public class RemoveSubstation extends AbstractNetworkModification { this.substationId = Objects.requireNonNull(substationId); } + @Override + public String getName() { + return "RemoveSubstation"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { Substation substation = network.getSubstation(substationId); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevel.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevel.java index 0c1f26a3ae8..ddcfe833eb4 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevel.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevel.java @@ -32,6 +32,11 @@ public RemoveVoltageLevel(String voltageLevelId) { this.voltageLevelId = Objects.requireNonNull(voltageLevelId); } + @Override + public String getName() { + return "RemoveVoltageLevel"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { VoltageLevel voltageLevel = network.getVoltageLevel(voltageLevelId); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLine.java index 788aa3e8633..26fb7b6faae 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLine.java @@ -80,6 +80,11 @@ public class ReplaceTeePointByVoltageLevelOnLine extends AbstractLineDisconnecti this.newLine2Name = newLine2Name; } + @Override + public String getName() { + return "ReplaceTeePointByVoltageLevelOnLine"; + } + public String getTeePointLine1Id() { return oldLine1Id; } diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLine.java index d11bb58baf3..74a6abe8d4c 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLine.java @@ -68,6 +68,11 @@ public class RevertConnectVoltageLevelOnLine extends AbstractNetworkModification this.lineName = lineName; } + @Override + public String getName() { + return "RevertConnectVoltageLevelOnLine"; + } + private static Line checkAndGetLine(Network network, String lineId, ReportNode reportNode, boolean throwException) { Line line = network.getLine(lineId); if (line == null) { diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLine.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLine.java index ac6e0b51700..dfae5ebd19e 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLine.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLine.java @@ -59,6 +59,11 @@ public class RevertCreateLineOnLine extends AbstractLineDisconnectionModificatio this.mergedLineName = mergedLineName; } + @Override + public String getName() { + return "RevertCreateLineOnLine"; + } + public RevertCreateLineOnLine setLineToBeMerged1Id(String lineToBeMerged1Id) { this.oldLine1Id = Objects.requireNonNull(lineToBeMerged1Id); return this; diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BatteryTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BatteryTripping.java index 94a5f6b5c87..4decbc5b8ff 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BatteryTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BatteryTripping.java @@ -20,6 +20,11 @@ public BatteryTripping(String id) { super(id); } + @Override + public String getName() { + return "BatteryTripping"; + } + @Override protected Battery getInjection(Network network) { Battery injection = network.getBattery(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BranchTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BranchTripping.java index 5bc75883d83..aa3de8ee9b6 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BranchTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BranchTripping.java @@ -42,6 +42,11 @@ protected BranchTripping(String branchId, String voltageLevelId, BiFunction switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BusbarSectionTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BusbarSectionTripping.java index 35e9c2ddc63..e368afa4d7f 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BusbarSectionTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/BusbarSectionTripping.java @@ -25,6 +25,11 @@ public BusbarSectionTripping(String busbarSectionId) { super(busbarSectionId); } + @Override + public String getName() { + return "BusbarSectionTripping"; + } + @Override public void traverse(Network network, Set switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/DanglingLineTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/DanglingLineTripping.java index 307b8339161..3d26d0c28b6 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/DanglingLineTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/DanglingLineTripping.java @@ -20,6 +20,11 @@ public DanglingLineTripping(String id) { super(id); } + @Override + public String getName() { + return "DanglingLineTripping"; + } + @Override protected DanglingLine getInjection(Network network) { DanglingLine injection = network.getDanglingLine(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/GeneratorTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/GeneratorTripping.java index 4dccd16faeb..72998c681cd 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/GeneratorTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/GeneratorTripping.java @@ -23,6 +23,11 @@ public GeneratorTripping(String id) { super(id); } + @Override + public String getName() { + return "GeneratorTripping"; + } + @Override protected Generator getInjection(Network network) { Generator injection = network.getGenerator(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/HvdcLineTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/HvdcLineTripping.java index bc95199dd6d..c74b2a7b7e6 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/HvdcLineTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/HvdcLineTripping.java @@ -32,6 +32,11 @@ public HvdcLineTripping(String hvdcLineId, String voltageLevelId) { this.voltageLevelId = voltageLevelId; } + @Override + public String getName() { + return "HvdcLineTripping"; + } + @Override public void traverse(Network network, Set switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LineTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LineTripping.java index cf5301e550c..e4238d98dec 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LineTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LineTripping.java @@ -24,6 +24,11 @@ public LineTripping(String lineId, String voltageLevelId) { super(lineId, voltageLevelId, Network::getLine); } + @Override + public String getName() { + return "LineTripping"; + } + @Override protected PowsyblException createNotFoundException() { return new PowsyblException("Line '" + id + "' not found"); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LoadTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LoadTripping.java index 95641faef2c..8f89801143a 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LoadTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/LoadTripping.java @@ -20,6 +20,11 @@ public LoadTripping(String id) { super(id); } + @Override + public String getName() { + return "LoadTripping"; + } + @Override protected Load getInjection(Network network) { Load injection = network.getLoad(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTripping.java index 84cf8d2c2e1..80b3705d630 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTripping.java @@ -20,6 +20,11 @@ public ShuntCompensatorTripping(String id) { super(id); } + @Override + public String getName() { + return "ShuntCompensatorTripping"; + } + @Override protected ShuntCompensator getInjection(Network network) { ShuntCompensator injection = network.getShuntCompensator(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTripping.java index be057463440..6a46ae5ac9c 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTripping.java @@ -20,6 +20,11 @@ public StaticVarCompensatorTripping(String id) { super(id); } + @Override + public String getName() { + return "StaticVarCompensatorTripping"; + } + @Override protected StaticVarCompensator getInjection(Network network) { StaticVarCompensator injection = network.getStaticVarCompensator(id); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/SwitchTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/SwitchTripping.java index 9cc53362d97..59e57c03387 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/SwitchTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/SwitchTripping.java @@ -22,6 +22,11 @@ public SwitchTripping(String id) { super(id); } + @Override + public String getName() { + return "SwitchTripping"; + } + @Override public void traverse(Network network, Set switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTripping.java index 6324937120b..63fb9edfdfc 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTripping.java @@ -25,6 +25,11 @@ public ThreeWindingsTransformerTripping(String id) { super(id); } + @Override + public String getName() { + return "ThreeWindingsTransformerTripping"; + } + @Override public void traverse(Network network, Set switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TieLineTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TieLineTripping.java index 5513a226ccc..533bcebbc32 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TieLineTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TieLineTripping.java @@ -29,6 +29,11 @@ public TieLineTripping(String tieLineId, String voltageLevelId) { this.voltageLevelId = voltageLevelId; } + @Override + public String getName() { + return "TieLineTripping"; + } + @Override public void traverse(Network network, Set switchesToOpen, Set terminalsToDisconnect, Set traversedTerminals) { Objects.requireNonNull(network); diff --git a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TwoWindingsTransformerTripping.java b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TwoWindingsTransformerTripping.java index e6fb1e6205b..908a3640eb7 100644 --- a/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TwoWindingsTransformerTripping.java +++ b/iidm/iidm-modification/src/main/java/com/powsybl/iidm/modification/tripping/TwoWindingsTransformerTripping.java @@ -24,6 +24,11 @@ public TwoWindingsTransformerTripping(String lineId, String voltageLevelId) { super(lineId, voltageLevelId, Network::getTwoWindingsTransformer); } + @Override + public String getName() { + return "TwoWindingsTransformerTripping"; + } + @Override protected PowsyblException createNotFoundException() { return new PowsyblException("Two windings transformer '" + id + "' not found"); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectGeneratorTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectGeneratorTest.java index 174ec93c2df..78f09c3020b 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectGeneratorTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectGeneratorTest.java @@ -102,6 +102,16 @@ void testConnectGeneratorWithNoNetworkInformation() { assertEquals(g2.getRegulatingTerminal().getBusView().getBus().getV(), g2.getTargetV(), 0.01); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ConnectGenerator("ID"); + assertEquals("ConnectGenerator", networkModification.getName()); + + GeneratorModification.Modifs modifs = new GeneratorModification.Modifs(); + networkModification = new GeneratorModification("ID", modifs); + assertEquals("GeneratorModification", networkModification.getName()); + } + @Test void testHasImpact() { ConnectGenerator modification = new ConnectGenerator("WRONG_ID"); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectionAndDisconnectionsTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectionAndDisconnectionsTest.java index 2eb15c16bc8..e5cad8497a7 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectionAndDisconnectionsTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ConnectionAndDisconnectionsTest.java @@ -611,6 +611,18 @@ void testMethodNotImplemented() { assertEquals("Connection not implemented for identifiable 'S1'", connectionException.getMessage()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ConnectableConnection("ID", false, false, ThreeSides.ONE); + assertEquals("ConnectableConnection", networkModification.getName()); + + networkModification = new UnplannedDisconnection("ID", false, ThreeSides.ONE); + assertEquals("UnplannedDisconnection", networkModification.getName()); + + networkModification = new PlannedDisconnection("ID", false, ThreeSides.ONE); + assertEquals("PlannedDisconnection", networkModification.getName()); + } + @Test void testHasImpactCannotBeApplied() { Network network = createNetwork(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/DanglingLineModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/DanglingLineModificationTest.java index 8ea1216775e..885bcfc711a 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/DanglingLineModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/DanglingLineModificationTest.java @@ -48,6 +48,12 @@ void modifyQ0Relatively() { assertEquals(6.0, danglingLine.getQ0()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new DanglingLineModification("ID", 10., 10.); + assertEquals("DanglingLineModification", networkModification.getName()); + } + @Test void testHasImpact() { DanglingLineModification modification1 = new DanglingLineModification("DL_NOT_EXISTING", true, null, 2.0); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/HvdcLineModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/HvdcLineModificationTest.java index da75a61b400..760a57ee480 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/HvdcLineModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/HvdcLineModificationTest.java @@ -27,6 +27,13 @@ public void setUp() { network = HvdcTestNetwork.createLcc(); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new HvdcLineModification("L", true, 280.0, + HvdcLine.ConvertersMode.SIDE_1_INVERTER_SIDE_2_RECTIFIER, 0.0, 0.0, false); + assertEquals("HvdcLineModification", networkModification.getName()); + } + @Test void testHasImpact() { NetworkModification modification1 = new HvdcLineModification("WRONG_ID", true, 12.0, diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/LoadModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/LoadModificationTest.java index 6bc701007fd..92d5a595c23 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/LoadModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/LoadModificationTest.java @@ -46,6 +46,12 @@ void modifyP0Relatively() { assertEquals(580.0, load.getP0()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new LoadModification("ID", 10., 10.); + assertEquals("LoadModification", networkModification.getName()); + } + @Test void testHasImpact() { LoadModification modification1 = new LoadModification("LOAD_NOT_EXISTING", true, -20.0, null); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/NetworkModificationListTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/NetworkModificationListTest.java index 8783917e21a..3a0767fb840 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/NetworkModificationListTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/NetworkModificationListTest.java @@ -7,22 +7,38 @@ */ package com.powsybl.iidm.modification; +import com.powsybl.commons.PowsyblException; +import com.powsybl.commons.report.ReportNode; +import com.powsybl.commons.test.TestUtil; +import com.powsybl.computation.local.LocalComputationManager; +import com.powsybl.iidm.modification.topology.DefaultNamingStrategy; +import com.powsybl.iidm.modification.topology.RemoveFeederBay; +import com.powsybl.iidm.modification.topology.RemoveFeederBayBuilder; +import com.powsybl.iidm.modification.tripping.BranchTripping; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; -import com.powsybl.iidm.modification.tripping.BranchTripping; -import static org.junit.jupiter.api.Assertions.*; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.assertFalse; +import java.io.IOException; +import java.io.StringWriter; + +import static org.junit.jupiter.api.Assertions.*; /** * @author Mathieu Bague {@literal } */ class NetworkModificationListTest { + private Network network; + + @BeforeEach + void init() { + network = EurostagTutorialExample1Factory.create(); + } + @Test void test() { - Network network = EurostagTutorialExample1Factory.create(); assertTrue(network.getLine("NHV1_NHV2_1").getTerminal1().isConnected()); assertTrue(network.getLine("NHV1_NHV2_1").getTerminal2().isConnected()); @@ -36,9 +52,72 @@ void test() { } @Test - void testHasImpact() { - Network network = EurostagTutorialExample1Factory.create(); + void applicationSuccessTest() throws IOException { + String lineId = "NHV1_NHV2_1"; + assertTrue(network.getLine(lineId).getTerminal1().isConnected()); + assertTrue(network.getLine(lineId).getTerminal2().isConnected()); + // Operation list: Open, close and remove the line + BranchTripping tripping = new BranchTripping(lineId, "VLHV1"); + RemoveFeederBay removal = new RemoveFeederBayBuilder().withConnectableId(lineId).build(); + NetworkModificationList task = new NetworkModificationList(tripping, tripping, removal); + boolean dryRunIsOk = assertDoesNotThrow(() -> task.apply(network, new DefaultNamingStrategy(), true)); + assertTrue(dryRunIsOk); + assertNotNull(network.getLine("NHV1_NHV2_1")); + assertTrue(network.getLine("NHV1_NHV2_1").getTerminal1().isConnected()); + ReportNode reportNode = ReportNode.newRootReportNode().withMessageTemplate("test", "test reportNode").build(); + assertTrue(task.apply(network, LocalComputationManager.getDefault(), true)); + assertTrue(task.apply(network, LocalComputationManager.getDefault(), reportNode, true)); + assertTrue(task.apply(network, false, reportNode, true)); + assertTrue(task.apply(network, false, LocalComputationManager.getDefault(), reportNode, true)); + assertTrue(task.apply(network, new DefaultNamingStrategy(), LocalComputationManager.getDefault(), true)); + assertTrue(task.apply(network, new DefaultNamingStrategy(), LocalComputationManager.getDefault(), reportNode, true)); + assertTrue(task.apply(network, new DefaultNamingStrategy(), reportNode, true)); + assertTrue(task.apply(network, new DefaultNamingStrategy(), false, reportNode, true)); + StringWriter sw1 = new StringWriter(); + reportNode.getChildren().get(reportNode.getChildren().size() - 1).print(sw1); + assertEquals(""" + + Dry-run: Checking if network modification NetworkModificationList can be applied on network 'sim1' + Connectable NHV1_NHV2_1 removed + Dry-run: Network modifications can successfully be applied on network 'sim1' + """, TestUtil.normalizeLineSeparator(sw1.toString())); + } + + @Test + void applicationFailureTest() throws IOException { + String lineId = "NHV1_NHV2_1"; + assertTrue(network.getLine(lineId).getTerminal1().isConnected()); + assertTrue(network.getLine(lineId).getTerminal2().isConnected()); + + // Operation list: remove and open the line. The second operation could not be performed because of the effect of the first + RemoveFeederBay removal = new RemoveFeederBayBuilder().withConnectableId(lineId).build(); + BranchTripping tripping = new BranchTripping(lineId, "VLHV1"); + NetworkModificationList task = new NetworkModificationList(removal, tripping); + + ReportNode reportNode = ReportNode.newRootReportNode().withMessageTemplate("test", "test reportNode").build(); + boolean dryRunIsOk = assertDoesNotThrow(() -> task.apply(network, reportNode, true)); + // The full dry-run returns that a problem was encountered and that the full NetworkModificationList could not be performed. + // No operation was applied on the network. + assertFalse(dryRunIsOk); + assertNotNull(network.getLine("NHV1_NHV2_1")); + assertTrue(network.getLine("NHV1_NHV2_1").getTerminal1().isConnected()); + StringWriter sw1 = new StringWriter(); + reportNode.print(sw1); + assertEquals(""" + + test reportNode + + Dry-run: Checking if network modification NetworkModificationList can be applied on network 'sim1' + Connectable NHV1_NHV2_1 removed + Dry-run failed for NetworkModificationList. The issue is: Branch 'NHV1_NHV2_1' not found + """, TestUtil.normalizeLineSeparator(sw1.toString())); + + // If we ignore the dry-run result and try to apply the NetworkModificationList, an exception is thrown and + // the network is in an "unstable" state. + assertThrows(PowsyblException.class, () -> task.apply(network, false), "Branch '" + lineId + "' not found"); + assertNull(network.getLine("NHV1_NHV2_1")); + } + + @Test + void testHasImpact() { BranchTripping tripping1 = new BranchTripping("NHV1_NHV2_1", "VLHV1"); BranchTripping tripping2 = new BranchTripping("NHV1_NHV2_1", "VLHV2"); LoadModification modification1 = new LoadModification("LOAD_NOT_EXISTING", true, -20.0, null); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/PhaseShifterTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/PhaseShifterTest.java index 5e48842146b..82efc120221 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/PhaseShifterTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/PhaseShifterTest.java @@ -36,6 +36,15 @@ public void setUp() { .setTapPosition(twoWindingsTransformer.getRatioTapChanger().getHighTapPosition()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new PhaseShifterSetAsFixedTap("TWT", 50); + assertEquals("PhaseShifterSetAsFixedTap", networkModification.getName()); + + networkModification = new PhaseShifterShiftTap("TWT", 1); + assertEquals("PhaseShifterShiftTap", networkModification.getName()); + } + @Test void testHasImpactSetAsFixedTap() { NetworkModification modification1 = new PhaseShifterSetAsFixedTap("UNKNOWN_ID", 1); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ReplaceTieLinesByLinesTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ReplaceTieLinesByLinesTest.java index a1e9ef177a0..4efd67a33e6 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ReplaceTieLinesByLinesTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ReplaceTieLinesByLinesTest.java @@ -91,6 +91,12 @@ public String getName() { } } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ReplaceTieLinesByLines(); + assertEquals("ReplaceTieLinesByLines", networkModification.getName()); + } + @Test void testHasImpact() { Network network = createDummyNodeBreakerNetwork(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ShuntCompensatorModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ShuntCompensatorModificationTest.java index c8a489bdc9b..5b6ea968e41 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ShuntCompensatorModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/ShuntCompensatorModificationTest.java @@ -117,6 +117,12 @@ void testConnectShuntCorrectSetPointWithNoRegulatingElmt() { Assertions.assertEquals(2.0, shunt.getTargetV(), 0.1); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ShuntCompensatorModification("ID", true, 1); + assertEquals("ShuntCompensatorModification", networkModification.getName()); + } + @Test void testHasImpact() { ShuntCompensatorModification modification1 = new ShuntCompensatorModification("SHUNT_NOT_EXISTING", false, null); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/StaticVarCompensatorModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/StaticVarCompensatorModificationTest.java index 6e556383b19..6b29f0fa064 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/StaticVarCompensatorModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/StaticVarCompensatorModificationTest.java @@ -77,6 +77,12 @@ void testGetters() { assertEquals(1., modif.getVoltageSetpoint()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new StaticVarCompensatorModification("ID", 1.0, 1.); + assertEquals("StaticVarCompensatorModification", networkModification.getName()); + } + @Test void testHasImpact() { NetworkModification modification1 = new StaticVarCompensatorModification("UNKNOWN_ID", 1., 2.); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SwitchModificationsTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SwitchModificationsTest.java index ba7f0df7eaf..e38c664f7fa 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SwitchModificationsTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/SwitchModificationsTest.java @@ -50,6 +50,15 @@ void testInvalidCloseSwitch() { assertThrows(RuntimeException.class, () -> new CloseSwitch("dummy").apply(network)); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new OpenSwitch("ID"); + assertEquals("OpenSwitch", networkModification.getName()); + + networkModification = new CloseSwitch("ID"); + assertEquals("CloseSwitch", networkModification.getName()); + } + @Test void testHasImpact() { CloseSwitch modification = new CloseSwitch("dummy"); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestBatteryModification.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestBatteryModification.java index 30d965b5baf..7a1264da0a7 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestBatteryModification.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestBatteryModification.java @@ -44,4 +44,10 @@ void testBatteryModification() { batteryModification2.apply(network); assertEquals(2., battery.getTargetQ()); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new BatteryModification("ID", 10., 10.); + assertEquals("BatteryModification", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestThreeWindingsTransformerModification.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestThreeWindingsTransformerModification.java index da277723022..825c6713ca6 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestThreeWindingsTransformerModification.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/TestThreeWindingsTransformerModification.java @@ -73,6 +73,12 @@ void testGetters() { assertEquals(135, t3wtModification.getRatedU0()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ThreeWindingsTransformerModification("ID", 10.); + assertEquals("ThreeWindingsTransformerModification", networkModification.getName()); + } + @Test void testHasImpact() { ThreeWindingsTransformerModification modification1 = new ThreeWindingsTransformerModification("TWT_NOT_EXISTING", 135.0); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/VscConverterStationModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/VscConverterStationModificationTest.java index 7251b1c66dc..e4eba1fef46 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/VscConverterStationModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/VscConverterStationModificationTest.java @@ -74,6 +74,12 @@ void testGetters() { assertEquals(1., modif.getVoltageSetpoint()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new VscConverterStationModification("ID", 10., null); + assertEquals("VscConverterStationModification", networkModification.getName()); + } + @Test void testHasImpact() { NetworkModification modification1 = new VscConverterStationModification("UNKNOWN_ID", 1., 2.); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tapchanger/TapPositionModificationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tapchanger/TapPositionModificationTest.java index bb52e55a0b9..202e7d62983 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tapchanger/TapPositionModificationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tapchanger/TapPositionModificationTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.*; @@ -226,6 +227,15 @@ public enum TapType { PHASE, RATIO } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new PhaseTapPositionModification("ID", 10); + assertEquals("PhaseTapPositionModification", networkModification.getName()); + + networkModification = new RatioTapPositionModification("ID", 10); + assertEquals("RatioTapPositionModification", networkModification.getName()); + } + @Test void testHasImpact() { NetworkModification modification1 = getNetworkModification(TapType.PHASE, 0, "NOT_EXISTING", ThreeSides.ONE); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLineTest.java index 0d0d937aff3..665f7f5ccd3 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ConnectVoltageLevelOnLineTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; import com.powsybl.computation.local.LocalComputationManager; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.network.BusbarSection; import com.powsybl.iidm.network.Line; @@ -183,4 +184,14 @@ void testWithReportNode() throws IOException { .build().apply(network, new DefaultNamingStrategy(), true, report); testReportNode(report, "/reportNode/connect-voltage-level-on-line-NB-report.txt"); } + + @Test + void testGetName() { + Network network2 = createBbNetwork(); + AbstractNetworkModification networkModification = new ConnectVoltageLevelOnLineBuilder() + .withBusbarSectionOrBusId("NOT_EXISTING") + .withLine(network2.getLine("NHV1_NHV2_1")) + .build(); + assertEquals("ConnectVoltageLevelOnLine", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBaysTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBaysTest.java index 956bea08778..4477bdfe7e4 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBaysTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateBranchFeederBaysTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.network.Line; import com.powsybl.iidm.network.LineAdder; @@ -380,4 +381,27 @@ void testReportNodeWithoutExtension() throws IOException { .apply(network, true, reportNode); testReportNode(reportNode, "/reportNode/create-line-NB-without-extensions-report.txt"); } + + @Test + void testGetName() { + Network network = Network.read("testNetworkNodeBreakerWithoutExtensions.xiidm", getClass().getResourceAsStream("/testNetworkNodeBreakerWithoutExtensions.xiidm")); + LineAdder lineAdder = network.newLine() + .setId("lineTest") + .setR(1.0) + .setX(1.0) + .setG1(0.0) + .setG2(0.0) + .setB1(0.0) + .setB2(0.0); + AbstractNetworkModification networkModification = new CreateBranchFeederBaysBuilder() + .withBranchAdder(lineAdder) + .withBusOrBusbarSectionId1("bbs5") + .withPositionOrder1(115) + .withDirection1(BOTTOM) + .withBusOrBusbarSectionId2("bbs1") + .withPositionOrder2(121) + .withDirection2(TOP) + .build(); + assertEquals("CreateBranchFeederBays", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateCouplingDeviceTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateCouplingDeviceTest.java index 409fea91af7..44e168a1569 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateCouplingDeviceTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateCouplingDeviceTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.Network; @@ -190,6 +191,15 @@ private Network createSimpleBusBreakerNetwork() { return network; } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new CreateCouplingDeviceBuilder() + .withBusOrBusbarSectionId1("bbs1") + .withBusOrBusbarSectionId2("bbs2") + .build(); + assertEquals("CreateCouplingDevice", networkModification.getName()); + } + @Test void testHasImpact() { Network network = Network.read("testNetworkNodeBreaker.xiidm", getClass().getResourceAsStream("/testNetworkNodeBreaker.xiidm")); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateFeederBayTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateFeederBayTest.java index 534644655af..7344cd9ebed 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateFeederBayTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateFeederBayTest.java @@ -11,6 +11,7 @@ import com.powsybl.commons.report.ReportNode; import com.powsybl.computation.ComputationManager; import com.powsybl.computation.local.LocalComputationManager; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.*; @@ -498,6 +499,22 @@ void testCreateLoadWithReportNodeWithoutExtensions() throws IOException { testReportNode(reportNode, "/reportNode/create-load-NB-without-extensions-report.txt"); } + @Test + void testGetName() { + Network network = Network.read("testNetworkNodeBreakerWithoutExtensions.xiidm", getClass().getResourceAsStream("/testNetworkNodeBreakerWithoutExtensions.xiidm")); + LoadAdder loadAdder = network.getVoltageLevel("vl1").newLoad() + .setId("newLoad") + .setLoadType(LoadType.UNDEFINED) + .setP0(0) + .setQ0(0); + AbstractNetworkModification networkModification = new CreateFeederBayBuilder() + .withInjectionAdder(loadAdder) + .withBusOrBusbarSectionId("bbs4") + .withInjectionPositionOrder(115) + .build(); + assertEquals("CreateFeederBay", networkModification.getName()); + } + @Test void testHasImpact() { Network network = Network.read("testNetworkNodeBreaker.xiidm", getClass().getResourceAsStream("/testNetworkNodeBreaker.xiidm")); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateLineOnLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateLineOnLineTest.java index ba2f01fa2f6..feb6a7ab6d7 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateLineOnLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateLineOnLineTest.java @@ -9,12 +9,10 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; +import com.powsybl.iidm.network.*; import com.powsybl.iidm.modification.NetworkModificationImpact; -import com.powsybl.iidm.network.BusbarSection; -import com.powsybl.iidm.network.Line; -import com.powsybl.iidm.network.LineAdder; -import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.extensions.BusbarSectionPositionAdder; import org.junit.jupiter.api.Test; @@ -217,6 +215,15 @@ private static LineAdder createLineAdder(Line line, Network network) { .setG2(line.getG2()); } + @Test + void testGetName() { + Network network = createNbNetworkWithBusbarSection(); + Line line = network.getLine("CJ"); + LineAdder adder = createLineAdder(line, network); + AbstractNetworkModification networkModification = new CreateLineOnLineBuilder().withBusbarSectionOrBusId(BBS).withLine(line).withLineAdder(adder).build(); + assertEquals("CreateLineOnLine", networkModification.getName()); + } + @Test void testHasImpact() { Network network = createNbNetworkWithBusbarSection(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateVoltageLevelTopologyTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateVoltageLevelTopologyTest.java index ac37a8a0096..fb612bf32c8 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateVoltageLevelTopologyTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/CreateVoltageLevelTopologyTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; import com.powsybl.computation.local.LocalComputationManager; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.BusbarSection; @@ -223,6 +224,17 @@ void testWithReportNode() throws IOException { testReportNode(reportNode, "/reportNode/create-voltage-level-topology-report.txt"); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new CreateVoltageLevelTopologyBuilder() + .withVoltageLevelId(VLTEST) + .withAlignedBusesOrBusbarCount(3) + .withSectionCount(4) + .withSwitchKinds(SwitchKind.BREAKER, SwitchKind.DISCONNECTOR, SwitchKind.DISCONNECTOR) + .build(); + assertEquals("CreateVoltageLevelTopology", networkModification.getName()); + } + @Test void testHasImpact() { Network network = createNbNetwork(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveFeederBayTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveFeederBayTest.java index 0b5752ae17b..1aa13b42fb8 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveFeederBayTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveFeederBayTest.java @@ -11,6 +11,7 @@ import com.powsybl.commons.report.ReportConstants; import com.powsybl.commons.report.ReportNode; import com.powsybl.commons.report.TypedValue; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.*; @@ -349,6 +350,12 @@ void testNetworkWithShuntRemoveLinePb() { assertEquals(removedIdentifiables, beforeRemovalObjects); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RemoveFeederBay("LINE1"); + assertEquals("RemoveFeederBay", networkModification.getName()); + } + @Test void testHasImpact() { Network network = FourSubstationsNodeBreakerFactory.create(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveHvdcLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveHvdcLineTest.java index eaea3cafee0..8423ff3a644 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveHvdcLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveHvdcLineTest.java @@ -10,6 +10,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; import com.powsybl.commons.test.AbstractSerDeTest; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.Network; @@ -112,6 +113,12 @@ private static void addVoltageLevelWithShuntCompensator(Network network) { .add(); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RemoveHvdcLineBuilder().withHvdcLineId("L").build(); + assertEquals("RemoveHvdcLine", networkModification.getName()); + } + @Test void testHasImpact() { Network network = HvdcTestNetwork.createLcc(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveSubstationTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveSubstationTest.java index ef6d3e4d2a9..64efe6fa9e7 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveSubstationTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveSubstationTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.DefaultNetworkListener; @@ -81,6 +82,12 @@ void testRemoveUnknownSubstation() throws IOException { testReportNode(reportNode, "/reportNode/remove-unknown-substation-report.txt"); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RemoveSubstationBuilder().withSubstationId("L").build(); + assertEquals("RemoveSubstation", networkModification.getName()); + } + @Test void testHasImpact() { Network network = EurostagTutorialExample1Factory.create(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevelTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevelTest.java index 9e6c3a3f6ab..32a0a3abd20 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevelTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RemoveVoltageLevelTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.DefaultNetworkListener; @@ -99,6 +100,12 @@ void testRemoveVLRoundTriBB() throws IOException { writeXmlTest(network, "/eurostag-remove-voltage-level-bb.xml"); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RemoveVoltageLevelBuilder().withVoltageLevelId("VLGEN").build(); + assertEquals("RemoveVoltageLevel", networkModification.getName()); + } + @Test void testHasImpact() { Network network = FourSubstationsNodeBreakerFactory.create(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLineTest.java index 3633f7c4cf4..19d43dc2e4a 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/ReplaceTeePointByVoltageLevelOnLineTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.extensions.BusbarSectionPositionAdder; @@ -234,4 +235,16 @@ void testConstructor() { assertEquals("NEW LINE1 NAME", modification.getNewLine1Name()); assertEquals("NEW LINE2 NAME", modification.getNewLine2Name()); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ReplaceTeePointByVoltageLevelOnLineBuilder() + .withTeePointLine1("NHV1_NHV2_1") + .withTeePointLine2("NHV1_NHV2_2") + .withTeePointLineToRemove("NHV1_NHV2_3") + .withBbsOrBusId("BBS") + .withNewLine1Id("NEW LINE1 ID") + .withNewLine2Id("NEW LINE2 ID").build(); + assertEquals("ReplaceTeePointByVoltageLevelOnLine", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLineTest.java index 714efa5e5c4..8dfaa6a6bd2 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertConnectVoltageLevelOnLineTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.*; @@ -157,6 +158,16 @@ void testConstructor() { assertEquals("NEW LINE NAME", modification.getLineName()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RevertConnectVoltageLevelOnLineBuilder() + .withLine1Id("NHV1_NHV2_1_1") + .withLine2Id("NHV1_NHV2_1_2") + .withLineId("NHV1_NHV2_1") + .build(); + assertEquals("RevertConnectVoltageLevelOnLine", networkModification.getName()); + } + @Test void testHasImpact() { Network network = createNbBbNetwork(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLineTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLineTest.java index c68e9a47fc9..8d0fac76fee 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLineTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/topology/RevertCreateLineOnLineTest.java @@ -9,6 +9,7 @@ import com.powsybl.commons.PowsyblException; import com.powsybl.commons.report.ReportNode; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.*; @@ -235,6 +236,17 @@ private static LineAdder createLineAdder(Line line, Network network) { .setG2(line.getG2()); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new RevertCreateLineOnLineBuilder() + .withLineToBeMerged1Id("NHV1_NHV2_1") + .withLineToBeMerged2Id("NHV1_NHV2_2") + .withLineToBeDeletedId("NHV1_NHV2_3") + .withMergedLineId("NEW LINE ID") + .build(); + assertEquals("RevertCreateLineOnLine", networkModification.getName()); + } + @Test void testHasImpact() { Network network = createNbBbNetwork(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BatteryTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BatteryTrippingTest.java new file mode 100644 index 00000000000..a98a861bb4c --- /dev/null +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BatteryTrippingTest.java @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2024, RTE (http://www.rte-france.com) + * This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. + * SPDX-License-Identifier: MPL-2.0 + */ +package com.powsybl.iidm.modification.tripping; + +import com.powsybl.iidm.modification.AbstractNetworkModification; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +/** + * @author Nicolas Rol {@literal } + */ +class BatteryTrippingTest { + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new BatteryTripping("ID"); + assertEquals("BatteryTripping", networkModification.getName()); + } +} diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BranchTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BranchTrippingTest.java index 148c50e5625..d5fc4c0ef3d 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BranchTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BranchTrippingTest.java @@ -9,6 +9,7 @@ import com.google.common.collect.Sets; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import com.powsybl.iidm.network.test.FictitiousSwitchFactory; @@ -141,4 +142,16 @@ void fictitiousSwitchTest() { List switchStates = getSwitchStates(network, switchIds); assertEquals(expectedSwitchStates, switchStates); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new BranchTripping("CJ", "C"); + assertEquals("BranchTripping", networkModification.getName()); + + networkModification = new TwoWindingsTransformerTripping("NHV2_NLOAD", "VLHV2"); + assertEquals("TwoWindingsTransformerTripping", networkModification.getName()); + + networkModification = new LineTripping("NHV1_NHV2_1", "VLHV2"); + assertEquals("LineTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BusbarSectionTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BusbarSectionTrippingTest.java index e5bb00b5661..5f3cb6cc4fc 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BusbarSectionTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/BusbarSectionTrippingTest.java @@ -9,6 +9,7 @@ import com.google.common.collect.Sets; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Switch; import com.powsybl.iidm.network.Terminal; @@ -64,4 +65,10 @@ void unknownBusbarSectionTrippingTest() { BusbarSectionTripping tripping = new BusbarSectionTripping("bbs"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new BusbarSectionTripping("ID"); + assertEquals("BusbarSectionTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/DanglingLineTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/DanglingLineTrippingTest.java index 1ff3f4273c2..40f4fbc3d68 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/DanglingLineTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/DanglingLineTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.DanglingLineNetworkFactory; import org.junit.jupiter.api.BeforeEach; @@ -42,4 +43,10 @@ void unknownDlTest() { DanglingLineTripping tripping = new DanglingLineTripping("DL_THAT_DO_NOT_EXIST"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new DanglingLineTripping("ID"); + assertEquals("DanglingLineTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/GeneratorTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/GeneratorTrippingTest.java index e7fc4510e0e..10b84d8d97f 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/GeneratorTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/GeneratorTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.modification.NetworkModification; import com.powsybl.iidm.modification.NetworkModificationImpact; import com.powsybl.iidm.network.Network; @@ -72,6 +73,12 @@ void fictitiousSwitchTest() { assertEquals(expectedSwitchStates, switchStates); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new GeneratorTripping("ID"); + assertEquals("GeneratorTripping", networkModification.getName()); + } + @Test void testHasImpact() { Network network = EurostagTutorialExample1Factory.create(); diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/HvdcLineTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/HvdcLineTrippingTest.java index f356f6d8cef..bfb97277b99 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/HvdcLineTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/HvdcLineTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.HvdcLine; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.Terminal; @@ -73,4 +74,10 @@ void unknownVoltageLevelTrippingTest() { HvdcLineTripping tripping = new HvdcLineTripping("L", "unknownVoltageLevel"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new HvdcLineTripping("ID", "VLID"); + assertEquals("HvdcLineTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/LoadTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/LoadTrippingTest.java index 8119ccfdef7..cab0b0564d0 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/LoadTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/LoadTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import org.junit.jupiter.api.Test; @@ -36,4 +37,10 @@ void unknownLoadTrippingTest() { LoadTripping tripping = new LoadTripping("generator"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new LoadTripping("ID"); + assertEquals("LoadTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTrippingTest.java index 0a1f96807fd..0ea21f4eaf4 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ShuntCompensatorTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.HvdcTestNetwork; import org.junit.jupiter.api.BeforeEach; @@ -41,4 +42,10 @@ void unknownShuntCompensatorTest() { ShuntCompensatorTripping tripping = new ShuntCompensatorTripping("C_Filter"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ShuntCompensatorTripping("ID"); + assertEquals("ShuntCompensatorTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTrippingTest.java index c8be6cf5291..643e691f2ba 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/StaticVarCompensatorTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.SvcTestCaseFactory; import org.junit.jupiter.api.BeforeEach; @@ -43,4 +44,10 @@ void unknownShuntCompensatorTest() { assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + @Test + void testGetName() { + AbstractNetworkModification networkModification = new StaticVarCompensatorTripping("ID"); + assertEquals("StaticVarCompensatorTripping", networkModification.getName()); + } + } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/SwitchTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/SwitchTrippingTest.java index 1bef8afd937..3d9c8134524 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/SwitchTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/SwitchTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.Network; import com.powsybl.iidm.network.test.FourSubstationsNodeBreakerFactory; import org.junit.jupiter.api.Test; @@ -37,4 +38,10 @@ void unknownSwitchTrippingTest() { SwitchTripping tripping = new SwitchTripping("switch"); assertThrows(PowsyblException.class, () -> tripping.apply(network)); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new SwitchTripping("ID"); + assertEquals("SwitchTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTrippingTest.java index e268a66932b..cb2b2a1f1f2 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/ThreeWindingsTransformerTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.ThreeWindingsTransformer; import com.powsybl.iidm.network.test.ThreeWindingsTransformerNetworkFactory; import org.junit.jupiter.api.Test; @@ -36,4 +37,10 @@ void test() { Exception e = assertThrows(PowsyblException.class, () -> notExistsTripping.apply(network)); assertEquals("ThreeWindingsTransformer 'NOT_EXISTS' not found", e.getMessage()); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new ThreeWindingsTransformerTripping("ID"); + assertEquals("ThreeWindingsTransformerTripping", networkModification.getName()); + } } diff --git a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/TieLineTrippingTest.java b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/TieLineTrippingTest.java index b91f6e0b0be..be9360c8923 100644 --- a/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/TieLineTrippingTest.java +++ b/iidm/iidm-modification/src/test/java/com/powsybl/iidm/modification/tripping/TieLineTrippingTest.java @@ -8,6 +8,7 @@ package com.powsybl.iidm.modification.tripping; import com.powsybl.commons.PowsyblException; +import com.powsybl.iidm.modification.AbstractNetworkModification; import com.powsybl.iidm.network.*; import com.powsybl.iidm.network.test.EurostagTutorialExample1Factory; import org.junit.jupiter.api.Test; @@ -45,4 +46,10 @@ void tieLineTrippingTest() { Exception e2 = assertThrows(PowsyblException.class, () -> unknownVlTripping.apply(network)); assertEquals("VoltageLevel 'NOT_EXISTS_VL' not connected to TIE_LINE 'NHV1_NHV2_1'", e2.getMessage()); } + + @Test + void testGetName() { + AbstractNetworkModification networkModification = new TieLineTripping("ID"); + assertEquals("TieLineTripping", networkModification.getName()); + } } diff --git a/security-analysis/security-analysis-default/src/test/java/com/powsybl/security/impl/SecurityAnalysisTest.java b/security-analysis/security-analysis-default/src/test/java/com/powsybl/security/impl/SecurityAnalysisTest.java index d052d90bbab..83ae0af8782 100644 --- a/security-analysis/security-analysis-default/src/test/java/com/powsybl/security/impl/SecurityAnalysisTest.java +++ b/security-analysis/security-analysis-default/src/test/java/com/powsybl/security/impl/SecurityAnalysisTest.java @@ -58,6 +58,12 @@ class SecurityAnalysisTest { private static final class SecurityAnalysisModificationTest extends AbstractNetworkModification { + + @Override + public String getName() { + return "SecurityAnalysisModificationTest"; + } + @Override public void apply(Network network, NamingStrategy namingStrategy, boolean throwException, ComputationManager computationManager, ReportNode reportNode) { network.getLine("NHV1_NHV2_2").getTerminal1().disconnect();