Skip to content

Commit 75e770f

Browse files
authored
Merge pull request #50 from com-pas/fix-busbar-check
Fixed the way a Bay is recognized as Busbar
2 parents ebf490a + 19d154c commit 75e770f

File tree

8 files changed

+44
-9
lines changed

8 files changed

+44
-9
lines changed

service/src/main/java/org/lfenergy/compas/scl/auto/alignment/model/GenericBay.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
import java.util.List;
99
import java.util.stream.Collectors;
10+
import java.util.stream.IntStream;
1011

1112
public class GenericBay extends AbstractGenericNameEntity<GenericVoltageLevel> {
1213
private List<GenericConnectivityNode> connectivityNodes;
@@ -17,7 +18,15 @@ public GenericBay(GenericVoltageLevel parent, Element element) {
1718
}
1819

1920
public boolean isBusbar() {
20-
return getConnectivityNodes().size() == 1;
21+
return getConnectivityNodes().size() == 1 && getNrOfChilderen() == 1;
22+
}
23+
24+
private long getNrOfChilderen() {
25+
var nodeList = getElement().getChildNodes();
26+
return IntStream.range(0, nodeList.getLength())
27+
.mapToObj(nodeList::item)
28+
.filter(Element.class::isInstance)
29+
.count();
2130
}
2231

2332
public List<GenericConnectivityNode> getConnectivityNodes() {

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/AbstractGenericEntityTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ void getElementsStream_WhenCallingForKnownElement_ThenReturnElements() {
3737
var result = entity.getElementsStream("Bay")
3838
.collect(Collectors.toList());
3939

40-
assertEquals(7, result.size());
40+
assertEquals(8, result.size());
4141
}
4242

4343
@Test

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/GenericBayTest.java

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,17 @@ class GenericBayTest {
2020
public static final String BAY_NAME = "Bay A";
2121
public static final String BUSBAR_NAME = "BusBar A";
2222

23+
private GenericVoltageLevel voltageLevel;
2324
private GenericBay bay;
2425
private GenericBay busbar;
2526

2627
@BeforeEach
2728
void setup() throws IOException {
2829
var scl = new GenericSCL(readSCLElement(BASIC_SCD_FILENAME));
2930
var substation = scl.getSubstation(SUBSTATION_NAME).get();
30-
var voltageLevel = substation.getVoltageLevel(VOLTAGE_LEVEL_NAME).get();
31+
voltageLevel = substation.getVoltageLevel(VOLTAGE_LEVEL_NAME).get();
3132
busbar = voltageLevel.getBays().get(0);
32-
bay = voltageLevel.getBays().get(2);
33+
bay = voltageLevel.getBays().get(3);
3334
}
3435

3536
@Test
@@ -44,6 +45,20 @@ void constructorBay_WhenCreated_ThenElementSet() {
4445
assertEquals(BAY_NAME, bay.getName());
4546
}
4647

48+
@Test
49+
void isBusbar_WhenCalledOnAllBays_ThenExpectedResult() {
50+
var bayNr = 0;
51+
for (var bayOrBusbar : voltageLevel.getBays()) {
52+
// First 2 bays are Busbars, others are Bays.
53+
if (bayNr <= 1) {
54+
assertTrue(bayOrBusbar.isBusbar());
55+
} else {
56+
assertFalse(bayOrBusbar.isBusbar());
57+
}
58+
bayNr++;
59+
}
60+
}
61+
4762
@Test
4863
void isBusbar_WhenCalledOnBusbar_ThenTrueReturned() {
4964
assertTrue(busbar.isBusbar());

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/GenericConductingEquipmentTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ void setup() throws IOException {
2626
var scl = new GenericSCL(readSCLElement(BASIC_SCD_FILENAME));
2727
var substation = scl.getSubstation(SUBSTATION_NAME).get();
2828
var voltageLevel = substation.getVoltageLevel(VOLTAGE_LEVEL_NAME).get();
29-
var bay = voltageLevel.getBays().get(2);
29+
var bay = voltageLevel.getBays().get(3);
3030
conductingEquipment = bay.getConductingEquipments().get(0);
3131
}
3232

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/GenericConnectivityNodeTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void setup() throws IOException {
2525
var scl = new GenericSCL(readSCLElement(BASIC_SCD_FILENAME));
2626
var substation = scl.getSubstation(SUBSTATION_NAME).get();
2727
var voltageLevel = substation.getVoltageLevel(VOLTAGE_LEVEL_NAME).get();
28-
var bay = voltageLevel.getBays().get(2);
28+
var bay = voltageLevel.getBays().get(3);
2929
connectivityNode = bay.getConnectivityNodes().get(0);
3030
}
3131

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/GenericTerminalTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ void setup() throws IOException {
2525
var scl = new GenericSCL(readSCLElement(BASIC_SCD_FILENAME));
2626
var substation = scl.getSubstation(SUBSTATION_NAME).get();
2727
var voltageLevel = substation.getVoltageLevel(VOLTAGE_LEVEL_NAME).get();
28-
var bay = voltageLevel.getBays().get(2);
28+
var bay = voltageLevel.getBays().get(3);
2929
var conductingEquipment = bay.getConductingEquipments().get(0);
3030
terminal = conductingEquipment.getTerminals().get(0);
3131
}

service/src/test/java/org/lfenergy/compas/scl/auto/alignment/model/GenericVoltageLevelTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ void getBays_WhenCalled_ThenVoltageLevelsReturned() {
5858
var result = voltageLevel.getBays();
5959

6060
assertNotNull(result);
61-
assertEquals(7, result.size());
61+
assertEquals(8, result.size());
6262
assertEquals(BUSBAR_NAME, result.get(0).getName());
63-
assertEquals(BAY_NAME, result.get(2).getName());
63+
assertEquals(BAY_NAME, result.get(3).getName());
6464
}
6565
}

service/src/test/resources/scl/scl-1.scd

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,17 @@
2121
<Bay sxy:x="1" sxy:y="2" name="BusBar B">
2222
<ConnectivityNode pathName="AA1/J1/BusBar B/L1" name="L1"/>
2323
</Bay>
24+
<Bay name="Bay 1S" sxy:x="2" sxy:y="8">
25+
<ConductingEquipment name="CBR1" sxy:x="1" sxy:y="1" type="CBR">
26+
<Terminal cNodeName="L1" connectivityNode="AA1/J1/BusBar B/L1" name="T4"/>
27+
<Terminal cNodeName="CN1" connectivityNode="AA1/J1/Bay 1S/CN1" name="T3"/>
28+
</ConductingEquipment>
29+
<ConductingEquipment name="CBR2" sxy:x="4" sxy:y="1" type="CBR">
30+
<Terminal cNodeName="L1" connectivityNode="AA1/J1/BusBar A/L1" name="T1"/>
31+
<Terminal cNodeName="CN1" connectivityNode="AA1/J1/Bay 1S/CN1" name="T2"/>
32+
</ConductingEquipment>
33+
<ConnectivityNode name="CN1" pathName="AA1/J1/Bay 1S/CN1"/>
34+
</Bay>
2435
<Bay sxy:x="1" sxy:y="6" name="Bay A" desc="Feld A">
2536
<ConductingEquipment type="DIS" sxy:x="1" sxy:y="1" name="QB1">
2637
<Terminal name="T1" connectivityNode="AA1/J1/BusBar B/L1" substationName="AA1" voltageLevelName="J1" bayName="BusBar B" cNodeName="L1" txy:actTerm="1"/>

0 commit comments

Comments
 (0)