Skip to content

Commit

Permalink
Review fixes
Browse files Browse the repository at this point in the history
Signed-off-by: lisrte <[email protected]>
  • Loading branch information
Lisrte committed Nov 29, 2024
1 parent ce98c75 commit 30f6a17
Show file tree
Hide file tree
Showing 4 changed files with 67 additions and 91 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,4 @@ public String getId() {
public String getVoltageLevelId() {
return voltageLevelId;
}

@Override
public boolean hasVoltageLevelId() {
return voltageLevelId != null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,12 +7,73 @@
*/
package com.powsybl.contingency;

/**
import com.powsybl.iidm.network.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.function.Function;

/**
* @author Laurent Issertial {@literal <laurent.issertial at rte-france.com>}
*/
public interface SidedContingencyElement extends ContingencyElement {

Logger LOGGER = LoggerFactory.getLogger(SidedContingencyElement.class);

String getVoltageLevelId();

boolean hasVoltageLevelId();
static TwoSides getContingencySide(Network network, SidedContingencyElement element) {
String voltageLevelId = element.getVoltageLevelId();
if (voltageLevelId != null) {
Function<TwoSides, Terminal> terminalSupplier = getTerminalSupplier(network, element);
if (terminalSupplier != null) {
if (voltageLevelId.equals(terminalSupplier.apply(TwoSides.ONE).getVoltageLevel().getId())) {
return TwoSides.ONE;
} else if (voltageLevelId.equals(terminalSupplier.apply(TwoSides.TWO).getVoltageLevel().getId())) {
return TwoSides.TWO;
} else {
LOGGER.warn("Voltage id '{}' of contingency '{}' not found", voltageLevelId, element.getId());
}
} else {
LOGGER.warn("Id of contingency '{}' not found", element.getId());
}
}
return null;
}

private static Function<TwoSides, Terminal> getTerminalSupplier(Network network, SidedContingencyElement element) {
return switch (element.getType()) {
case BRANCH -> getBranchTerminalSupplier(network, element.getId());
case HVDC_LINE -> getHvdcLineTerminalSupplier(network, element.getId());
case LINE -> getLineTerminalSupplier(network, element.getId());
case TIE_LINE -> getTieLineTerminalSupplier(network, element.getId());
case TWO_WINDINGS_TRANSFORMER -> getTransformerTerminalSupplier(network, element.getId());
default -> null;
};
}

private static Function<TwoSides, Terminal> getBranchTerminalSupplier(Network network, String id) {
Branch<?> eq = network.getBranch(id);
return eq != null ? eq::getTerminal : null;
}

private static Function<TwoSides, Terminal> getLineTerminalSupplier(Network network, String id) {
Line eq = network.getLine(id);
return eq != null ? eq::getTerminal : null;
}

private static Function<TwoSides, Terminal> getTieLineTerminalSupplier(Network network, String id) {
TieLine eq = network.getTieLine(id);
return eq != null ? eq::getTerminal : null;
}

private static Function<TwoSides, Terminal> getTransformerTerminalSupplier(Network network, String id) {
TwoWindingsTransformer eq = network.getTwoWindingsTransformer(id);
return eq != null ? eq::getTerminal : null;
}

private static Function<TwoSides, Terminal> getHvdcLineTerminalSupplier(Network network, String id) {
HvdcLine eq = network.getHvdcLine(id);
return eq != null ? s -> eq.getConverterStation(s).getTerminal() : null;
}
}

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -38,25 +38,25 @@ public static void setup() {
@ParameterizedTest(name = "{1}")
@MethodSource("sidedElementProvider")
void testSideGetter(Network network, SidedContingencyElement element, TwoSides expectedSide) {
assertEquals(expectedSide, SidedContingencyElementUtils.getContingencySide(network, element));
assertEquals(expectedSide, SidedContingencyElement.getContingencySide(network, element));
}

@Test
void testIdNotFound() {
SidedContingencyElement element = new BranchContingency("WRONG_ID", VLHV2);
assertNull(SidedContingencyElementUtils.getContingencySide(eurostagNetwork, element));
assertNull(SidedContingencyElement.getContingencySide(eurostagNetwork, element));
}

@Test
void testVoltageIdNotFound() {
SidedContingencyElement element = new BranchContingency(NHV1_NHV2_2, "WRONG_ID");
assertNull(SidedContingencyElementUtils.getContingencySide(eurostagNetwork, element));
assertNull(SidedContingencyElement.getContingencySide(eurostagNetwork, element));
}

@Test
void testNullVoltageId() {
SidedContingencyElement element = new BranchContingency(NHV1_NHV2_2);
assertNull(SidedContingencyElementUtils.getContingencySide(eurostagNetwork, element));
assertNull(SidedContingencyElement.getContingencySide(eurostagNetwork, element));
}

private static Stream<Arguments> sidedElementProvider() {
Expand Down

0 comments on commit 30f6a17

Please sign in to comment.