Skip to content

Commit

Permalink
Line tabular modification (#401)
Browse files Browse the repository at this point in the history
* Add line tabular modifications

* Add TUs

---------

Signed-off-by: TOURI ANIS <anis-1.touri@rte-france.com>
  • Loading branch information
anistouri authored Dec 26, 2023
1 parent e842643 commit 31a56b5
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.gridsuite.modification.server.dto.*;
import org.gridsuite.modification.server.entities.equipment.modification.BatteryModificationEntity;
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.TwoWindingsTransformerModificationEntity;
import org.gridsuite.modification.server.entities.equipment.modification.VoltageLevelModificationEntity;
Expand Down Expand Up @@ -58,6 +59,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;
}
Expand Down Expand Up @@ -97,6 +101,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;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,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;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
/**
* 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.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 <anis.touri at rte-france.com>
*/
@Tag("IntegrationTest")
public class TabularLineModificationsTest extends AbstractNetworkModificationTest {
@Override
protected Network createNetwork(UUID networkUuid) {
return NetworkCreation.create(networkUuid, true);
}

@Override
protected ModificationInfos buildModification() {
List<ModificationInfos> 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<ModificationInfos> 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<String, String> 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<String, String> updatedValues = mapper.readValue(modificationInfos.getMessageValues(), new TypeReference<>() { });
Assertions.assertEquals("LINE_MODIFICATION", updatedValues.get("tabularModificationType"));
}
}

0 comments on commit 31a56b5

Please sign in to comment.