TieLineTest.java
/*
* 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/.
*/
package com.powsybl.openrao.data.raoresult.io.cne.swe;
import com.powsybl.iidm.network.Branch;
import com.powsybl.iidm.network.Network;
import com.powsybl.openrao.data.crac.io.cim.craccreator.CimCracCreationContext;
import com.powsybl.openrao.data.raoresult.io.cne.swe.xsd.MonitoredRegisteredResource;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;
import java.util.HashMap;
import java.util.Map;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* Tests for tie-line CNECs results handling
* @author Peter Mitri {@literal <peter.mitri at rte-france.com>}
*/
public class TieLineTest {
private Network network;
private SweMonitoredSeriesCreator monitoredSeriesCreator;
@BeforeEach
void setUp() {
network = Network.read("SweTestCaseWith12NodesAndXnodes.uct", getClass().getResourceAsStream("/SweTestCaseWith12NodesAndXnodes.uct"));
network.getDanglingLine("FFR2AA1 XES_FR11 1").setProperty("CGMES.TopologicalNode_Boundary", "XES_FR11_mRID");
network.getDanglingLine("XES_FR11 EES3AA1 1").setProperty("CGMES.TopologicalNode_Boundary", "XES_FR11_mRID");
network.getDanglingLine("EES2AA1 XES_PT11 1").setProperty("CGMES.TopologicalNode_Boundary", "XES_PT11_mRID");
network.getDanglingLine("XES_PT11 PPT3AA1 1").setProperty("CGMES.TopologicalNode_Boundary", "XES_PT11_mRID");
SweCneHelper helper = Mockito.mock(SweCneHelper.class);
CimCracCreationContext cracCreationContext = Mockito.mock(CimCracCreationContext.class);
Map<String, Branch<?>> networkBranches = new HashMap<>();
network.getBranches().forEach(branch -> networkBranches.put(branch.getId(), branch));
Mockito.when(cracCreationContext.getNetworkBranches()).thenReturn(networkBranches);
monitoredSeriesCreator = new SweMonitoredSeriesCreator(helper, cracCreationContext);
}
@Test
void testSetInOutAggregateNodesFrEs() {
MonitoredRegisteredResource rr = new MonitoredRegisteredResource();
monitoredSeriesCreator.setInOutAggregateNodes("FFR2AA1 XES_FR11 1 + XES_FR11 EES3AA1 1", "RTE_blabla", rr);
assertEquals("FFR2AA1", rr.getInAggregateNodeMRID().getValue());
assertEquals("XES_FR11_mRID", rr.getOutAggregateNodeMRID().getValue());
monitoredSeriesCreator.setInOutAggregateNodes("FFR2AA1 XES_FR11 1 + XES_FR11 EES3AA1 1", "REEejcnc", rr);
assertEquals("XES_FR11_mRID", rr.getInAggregateNodeMRID().getValue());
assertEquals("EES3AA1", rr.getOutAggregateNodeMRID().getValue());
}
@Test
void testSetInOutAggregateNodesPtEs() {
MonitoredRegisteredResource rr = new MonitoredRegisteredResource();
monitoredSeriesCreator.setInOutAggregateNodes("EES2AA1 XES_PT11 1 + XES_PT11 PPT3AA1 1", "REN_blabla", rr);
assertEquals("XES_PT11_mRID", rr.getInAggregateNodeMRID().getValue());
assertEquals("PPT3AA1", rr.getOutAggregateNodeMRID().getValue());
monitoredSeriesCreator.setInOutAggregateNodes("EES2AA1 XES_PT11 1 + XES_PT11 PPT3AA1 1", "REE", rr);
assertEquals("EES2AA1", rr.getInAggregateNodeMRID().getValue());
assertEquals("XES_PT11_mRID", rr.getOutAggregateNodeMRID().getValue());
}
@Test
void testSetInOutAggregateNodesNoProperty() {
MonitoredRegisteredResource rr = new MonitoredRegisteredResource();
network.getDanglingLine("EES2AA1 XES_PT11 1").removeProperty("CGMES.TopologicalNode_Boundary");
monitoredSeriesCreator.setInOutAggregateNodes("EES2AA1 XES_PT11 1 + XES_PT11 PPT3AA1 1", "REN_blabla", rr);
assertEquals("EES2AA1", rr.getInAggregateNodeMRID().getValue());
assertEquals("PPT3AA1", rr.getOutAggregateNodeMRID().getValue());
monitoredSeriesCreator.setInOutAggregateNodes("EES2AA1 XES_PT11 1 + XES_PT11 PPT3AA1 1", "REE", rr);
assertEquals("EES2AA1", rr.getInAggregateNodeMRID().getValue());
assertEquals("PPT3AA1", rr.getOutAggregateNodeMRID().getValue());
}
@Test
void testSetInOutAggregateNodesInternalLine() {
MonitoredRegisteredResource rr = new MonitoredRegisteredResource();
monitoredSeriesCreator.setInOutAggregateNodes("EES1AA1 EES3AA1 1", "REN_blabla", rr);
assertEquals("EES1AA1", rr.getInAggregateNodeMRID().getValue());
assertEquals("EES3AA1", rr.getOutAggregateNodeMRID().getValue());
}
}