Skip to content

Commit

Permalink
EWB-1777 - Added support for starting connected equipment traces from…
Browse files Browse the repository at this point in the history
… open points. (#107)

Signed-off-by: Anthony Charlton <[email protected]>
  • Loading branch information
charlta authored Aug 3, 2022
1 parent 9374de0 commit 43fae8a
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ object ConnectedEquipmentTrace {

private fun queueNext(openTest: OpenTest): BasicTraversal.QueueNext<ConductingEquipmentStep> =
BasicTraversal.QueueNext { (conductingEquipment, step), traversal ->
if (!openTest.isOpen(conductingEquipment, null)) {
if ((step == 0) || !openTest.isOpen(conductingEquipment, null)) {
val nextStep = step + 1
conductingEquipment.terminals
.asSequence()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,21 +24,21 @@ internal class ConnectedEquipmentTraceTest {
@RegisterExtension
var systemOut: SystemLogExtension = SystemLogExtension.SYSTEM_OUT.captureLog().muteOnSuccess()

private val visited = mutableSetOf<String>()
private val network = ConnectedEquipmentNetwork.create()

@Test
internal fun connectedEquipmentTraceIgnoresOpenState() {
validateRun(Tracing.connectedEquipmentTrace(), "start", "s1", "s2", "n1", "s3", "s4", "n2")
Tracing.connectedEquipmentTrace().validateRun("start", "s1", "s2", "n1", "s3", "s4", "n2")
}

@Test
internal fun normalConnectedEquipmentTraceUsesOpenState() {
validateRun(Tracing.normalConnectedEquipmentTrace(), "start", "s1", "s3", "s4")
Tracing.normalConnectedEquipmentTrace().validateRun("start", "s1", "s3", "s4")
}

@Test
internal fun currentConnectedEquipmentTraceUsesOpenState() {
validateRun(Tracing.currentConnectedEquipmentTrace(), "start", "s1", "s2", "s3")
Tracing.currentConnectedEquipmentTrace().validateRun("start", "s1", "s2", "s3")
}

@Test
Expand All @@ -48,11 +48,19 @@ internal class ConnectedEquipmentTraceTest {
assertThat(Tracing.currentLimitedConnectedEquipmentTrace(), instanceOf(LimitedConnectedEquipmentTrace::class.java))
}

private fun validateRun(t: BasicTraversal<ConductingEquipmentStep>, vararg expected: String) {
t.addStepAction { (ce, _), _ -> visited.add(ce.mRID) }
.run(ConductingEquipmentStep(ConnectedEquipmentNetwork.create()["start"]!!))
@Test
internal fun canStartOnOpenSwitch() {
Tracing.normalConnectedEquipmentTrace().validateRun("s2", "n1", "s1")
Tracing.currentConnectedEquipmentTrace().validateRun("s4", "s3", "n2")
}

private fun BasicTraversal<ConductingEquipmentStep>.validateRun(start: String, vararg expected: String) {
val visited = mutableSetOf<String>()

addStepAction { (ce, _), _ -> visited.add(ce.mRID) }
.run(ConductingEquipmentStep(network[start]!!))

assertThat(visited, containsInAnyOrder(*expected))
assertThat(visited, containsInAnyOrder(start, *expected))
}

}

0 comments on commit 43fae8a

Please sign in to comment.