AbstractNullPointerWhenRemovingMergedLineBugTest.java
/**
* Copyright (c) 2016, All partners of the iTesla project (http://www.itesla-project.eu/consortium)
* 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.network.tck;
import com.powsybl.iidm.network.*;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
/**
* @author Geoffroy Jamgotchian {@literal <geoffroy.jamgotchian at rte-france.com>}
*/
public abstract class AbstractNullPointerWhenRemovingMergedLineBugTest {
@Test
public void test() {
Network n1 = Network.create("n1", "test");
Substation s1 = n1.newSubstation()
.setId("s1")
.setCountry(Country.FR)
.add();
VoltageLevel vl1 = s1.newVoltageLevel()
.setId("vl1")
.setNominalV(380)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
vl1.getBusBreakerView().newBus()
.setId("b1")
.add();
vl1.newDanglingLine()
.setId("dl1")
.setConnectableBus("b1")
.setBus("b1")
.setP0(0)
.setQ0(0)
.setR(1)
.setX(1)
.setG(0)
.setB(0)
.setPairingKey("XNODE")
.add();
Network n2 = Network.create("n2", "test");
Substation s2 = n2.newSubstation()
.setId("s2")
.setCountry(Country.BE)
.add();
VoltageLevel vl2 = s2.newVoltageLevel()
.setId("vl2")
.setNominalV(380)
.setTopologyKind(TopologyKind.BUS_BREAKER)
.add();
vl2.getBusBreakerView().newBus()
.setId("b2")
.add();
vl2.newDanglingLine()
.setId("dl2")
.setConnectableBus("b2")
.setBus("b2")
.setP0(0)
.setQ0(0)
.setR(1)
.setX(1)
.setG(0)
.setB(0)
.setPairingKey("XNODE")
.add();
assertEquals(0, n1.getLineCount());
assertEquals(1, n1.getDanglingLineCount());
assertEquals(0, n2.getLineCount());
assertEquals(1, n2.getDanglingLineCount());
Network merged = Network.merge(n1, n2);
assertEquals(1, merged.getTieLineCount());
assertEquals(2, merged.getDanglingLineCount());
merged.getTieLine("dl1 + dl2").remove();
assertEquals(2, merged.getDanglingLineCount());
for (Bus b : merged.getBusBreakerView().getBuses()) {
// throws an exception if bug already present
b.isInMainConnectedComponent();
}
}
}