From de4bf2474f8db6fc2708b6c85f45fb4aaf4cba4d Mon Sep 17 00:00:00 2001 From: TOURI ANIS Date: Tue, 19 Dec 2023 14:05:48 +0100 Subject: [PATCH 1/3] Add line tabular modifications Signed-off-by: TOURI ANIS --- .../server/entities/TabularModificationEntity.java | 4 ++++ .../server/modifications/TabularModification.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java index 8694d641b..802c88ac8 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java @@ -17,6 +17,7 @@ import org.gridsuite.modification.server.dto.*; import org.gridsuite.modification.server.entities.equipment.modification.GeneratorModificationEntity; +import org.gridsuite.modification.server.entities.equipment.modification.LineModificationEntity; import org.gridsuite.modification.server.entities.equipment.modification.LoadModificationEntity; import org.gridsuite.modification.server.entities.equipment.modification.VoltageLevelModificationEntity; @@ -50,6 +51,9 @@ public TabularModificationEntity(TabularModificationInfos tabularModificationInf case "VOLTAGE_LEVEL_MODIFICATION": modifications = tabularModificationInfos.getModifications().stream().map(voltageLevelModificationInfos -> new VoltageLevelModificationEntity((VoltageLevelModificationInfos) voltageLevelModificationInfos)).collect(Collectors.toList()); break; + case "LINE_MODIFICATION": + modifications = tabularModificationInfos.getModifications().stream().map(lineModificationInfos -> new LineModificationEntity((LineModificationInfos) lineModificationInfos)).collect(Collectors.toList()); + break; default: break; } diff --git a/src/main/java/org/gridsuite/modification/server/modifications/TabularModification.java b/src/main/java/org/gridsuite/modification/server/modifications/TabularModification.java index b5f992747..53606639b 100644 --- a/src/main/java/org/gridsuite/modification/server/modifications/TabularModification.java +++ b/src/main/java/org/gridsuite/modification/server/modifications/TabularModification.java @@ -69,6 +69,9 @@ public void apply(Network network, Reporter subReporter) { case "VOLTAGE_LEVEL_MODIFICATION": defaultMessage = "voltage levels" + defaultMessage; break; + case "LINE_MODIFICATION": + defaultMessage = "lines" + defaultMessage; + break; default: defaultMessage = "equipments of unknown type" + defaultMessage; break; From 39eafee00868f2fcfc4b45608421ec2c71adf195 Mon Sep 17 00:00:00 2001 From: TOURI ANIS Date: Tue, 19 Dec 2023 15:05:21 +0100 Subject: [PATCH 2/3] Add TUs Signed-off-by: TOURI ANIS --- .../TabularLineModificationsTest.java | 101 ++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java diff --git a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java new file mode 100644 index 000000000..2e58b206c --- /dev/null +++ b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java @@ -0,0 +1,101 @@ +/** + * Copyright (c) 2023, 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/. + */ + +package org.gridsuite.modification.server.modifications.tabularmodifications; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.powsybl.iidm.network.Branch; +import com.powsybl.iidm.network.Network; +import lombok.SneakyThrows; +import org.gridsuite.modification.server.ModificationType; +import org.gridsuite.modification.server.dto.*; +import org.gridsuite.modification.server.modifications.AbstractNetworkModificationTest; +import org.gridsuite.modification.server.utils.NetworkCreation; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; + +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import static org.gridsuite.modification.server.utils.TestUtils.assertLogMessage; +import static org.junit.Assert.assertEquals; + +/** + * @author Anis Touri + */ +@Tag("IntegrationTest") +public class TabularLineModificationsTest extends AbstractNetworkModificationTest { + @Override + protected Network createNetwork(UUID networkUuid) { + return NetworkCreation.create(networkUuid, true); + } + + @Override + protected ModificationInfos buildModification() { + List modifications = List.of( + LineModificationInfos.builder().equipmentId("line1").seriesResistance(new AttributeModification<>(10., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line2").seriesReactance(new AttributeModification<>(20., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line3").shuntConductance1(new AttributeModification<>(30., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line3").shuntSusceptance1(new AttributeModification<>(40., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("unknownLine").shuntSusceptance2(new AttributeModification<>(60., OperationType.SET)).build() + ); + return TabularModificationInfos.builder() + .modificationType("LINE_MODIFICATION") + .modifications(modifications) + .stashed(false) + .build(); + } + + @Override + protected ModificationInfos buildModificationUpdate() { + List modifications = List.of( + LineModificationInfos.builder().equipmentId("line1").seriesResistance(new AttributeModification<>(1., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line2").seriesReactance(new AttributeModification<>(2., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line3").shuntConductance1(new AttributeModification<>(3., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("line3").shuntSusceptance1(new AttributeModification<>(4., OperationType.SET)).build(), + LineModificationInfos.builder().equipmentId("unknownLine").shuntSusceptance2(new AttributeModification<>(50., OperationType.SET)).build() + ); + return TabularModificationInfos.builder() + .modificationType("LINE_MODIFICATION") + .modifications(modifications) + .stashed(false) + .build(); + } + + @Override + protected void assertAfterNetworkModificationCreation() { + assertEquals(10., getNetwork().getLine("line1").getR(), 0.001); + assertEquals(20., getNetwork().getLine("line2").getX(), 0.001); + assertEquals(30., getNetwork().getLine("line3").getG1(), 0.001); + assertEquals(40., getNetwork().getLine("line3").getB1(), 0.001); + assertLogMessage("LINE_NOT_FOUND : Line unknownLine does not exist in network", ModificationType.LINE_MODIFICATION.name() + "1", reportService); + } + + @Override + protected void assertAfterNetworkModificationDeletion() { + assertEquals(1., getNetwork().getLine("line1").getR(), 0.001); + assertEquals(5., getNetwork().getLine("line2").getX(), 0.001); + assertEquals(5.5, getNetwork().getLine("line3").getG1(), 0.001); + } + + @Override + @SneakyThrows + protected void testCreationModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map createdValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("LINE_MODIFICATION", createdValues.get("tabularModificationType")); + } + + @Override + @SneakyThrows + protected void testUpdateModificationMessage(ModificationInfos modificationInfos) { + assertEquals("TABULAR_MODIFICATION", modificationInfos.getMessageType()); + Map updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { }); + Assertions.assertEquals("LINE_MODIFICATION", updatedValues.get("tabularModificationType")); + } +} From b2f9ec8f9a53f68ebbd69d7a7dff4c69bec5d38b Mon Sep 17 00:00:00 2001 From: TOURI ANIS Date: Tue, 19 Dec 2023 15:31:00 +0100 Subject: [PATCH 3/3] Add TUs Signed-off-by: TOURI ANIS --- .../server/entities/TabularModificationEntity.java | 3 +++ .../tabularmodifications/TabularLineModificationsTest.java | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java b/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java index 493105324..451112dac 100644 --- a/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java +++ b/src/main/java/org/gridsuite/modification/server/entities/TabularModificationEntity.java @@ -94,6 +94,9 @@ public void update(@NonNull ModificationInfos modificationInfos) { case "VOLTAGE_LEVEL_MODIFICATION": modifications.addAll(tabularModificationInfos.getModifications().stream().map(voltageLevelModificationInfos -> new VoltageLevelModificationEntity((VoltageLevelModificationInfos) voltageLevelModificationInfos)).collect(Collectors.toList())); break; + case "LINE_MODIFICATION": + modifications.addAll(tabularModificationInfos.getModifications().stream().map(lineModificationInfos -> new LineModificationEntity((LineModificationInfos) lineModificationInfos)).collect(Collectors.toList())); + break; default: break; } diff --git a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java index 2e58b206c..d74f0ab6f 100644 --- a/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java +++ b/src/test/java/org/gridsuite/modification/server/modifications/tabularmodifications/TabularLineModificationsTest.java @@ -8,7 +8,6 @@ package org.gridsuite.modification.server.modifications.tabularmodifications; import com.fasterxml.jackson.core.type.TypeReference; -import com.powsybl.iidm.network.Branch; import com.powsybl.iidm.network.Network; import lombok.SneakyThrows; import org.gridsuite.modification.server.ModificationType;