NodeBreakerInternalConnectionsTest.java
/**
* Copyright (c) 2017, 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.serde;
import com.powsybl.iidm.network.*;
import com.powsybl.iidm.network.VoltageLevel.NodeBreakerView;
import java.time.ZonedDateTime;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import static com.powsybl.iidm.serde.IidmSerDeConstants.CURRENT_IIDM_VERSION;
/**
* @author Luma Zamarre��o {@literal <zamarrenolm at aia.es>}
*/
class NodeBreakerInternalConnectionsTest extends AbstractIidmSerDeTest {
@Test
void roundTripTest() throws IOException {
allFormatsRoundTripTest(networkWithInternalConnections(), "internalConnections.xiidm", CURRENT_IIDM_VERSION);
// backward compatibility
allFormatsRoundTripAllPreviousVersionedXmlTest("internalConnections.xiidm");
}
private Network networkWithInternalConnections() {
Network network = Network.create("internal-connections", "test")
.setCaseDate(ZonedDateTime.parse("2018-11-08T12:33:26.208+01:00"));
Substation s1 = network.newSubstation()
.setId("s1")
.setCountry(Country.ES)
.add();
VoltageLevel vl1 = s1.newVoltageLevel()
.setId("vl1")
.setNominalV(400)
.setTopologyKind(TopologyKind.NODE_BREAKER)
.add();
NodeBreakerView n1 = vl1.getNodeBreakerView();
vl1.newGenerator()
.setId("g1")
.setNode(0)
.setMinP(0)
.setMaxP(100)
.setTargetP(10)
.setVoltageRegulatorOn(true)
.setTargetV(400)
.add();
n1.newInternalConnection().setNode1(0).setNode2(1).add();
n1.newSwitch().setId("br1").setNode1(1).setNode2(2).setKind(SwitchKind.BREAKER).add();
n1.newBusbarSection().setId("b1").setNode(2).add();
n1.newInternalConnection().setNode1(3).setNode2(4).add();
Substation s2 = network.newSubstation()
.setId("s2")
.setCountry(Country.ES)
.add();
VoltageLevel vl2 = s2.newVoltageLevel()
.setId("vl2")
.setNominalV(400)
.setTopologyKind(TopologyKind.NODE_BREAKER)
.add();
NodeBreakerView n2 = vl2.getNodeBreakerView();
vl2.newLoad()
.setId("l2")
.setNode(0)
.setP0(10)
.setQ0(1)
.add();
n2.newInternalConnection().setNode1(0).setNode2(1).add();
n2.newSwitch().setId("br2").setNode1(1).setNode2(2).setKind(SwitchKind.BREAKER).add();
n2.newBusbarSection().setId("b2").setNode(2).add();
n2.newInternalConnection().setNode1(3).setNode2(4).add();
network.newLine()
.setId("line1-2")
.setVoltageLevel1("vl1")
.setNode1(4)
.setVoltageLevel2("vl2")
.setNode2(4)
.setR(0.1)
.setX(10)
.setG1(0)
.setB1(0)
.setG2(0)
.setB2(0)
.add();
return network;
}
}