Skip to content

Commit de482ea

Browse files
bedaHovorkaclaude
andcommitted
style(#541): fix ktlint violations in perception port files
Trailing commas, empty-first-line-in-class-body, function-signature line wrapping, and chain-continuation formatting only — no logic changes. Unblocks CI on PR #722. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
1 parent bc9e69e commit de482ea

9 files changed

Lines changed: 82 additions & 80 deletions

File tree

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/BlockOccupancyReading.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,5 +37,5 @@ import cz.vutbr.fit.interlockSim.objects.core.TrackFacility
3737
data class BlockOccupancyReading(
3838
val blockId: String,
3939
val state: TrackFacility.State,
40-
val trainId: String?,
40+
val trainId: String?
4141
)

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/DefaultNetworkPerceptionPort.kt

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,8 @@ import cz.vutbr.fit.interlockSim.util.DynamicWrapperUtils
6262
*/
6363
class DefaultNetworkPerceptionPort(
6464
private val env: SimulationEnvironment,
65-
private val activeTrains: () -> List<Train>,
65+
private val activeTrains: () -> List<Train>
6666
) : NetworkPerceptionPort {
67-
6867
// ── Semaphore cache built once at construction ────────────────────────
6968

7069
/**
@@ -90,8 +89,7 @@ class DefaultNetworkPerceptionPort(
9089
* graph on each call. The graph edges are stable; blocks are not added or
9190
* removed at runtime.
9291
*/
93-
private fun allBlocks(): Collection<DynamicTrackBlock> =
94-
env.getGraph().values().filterIsInstance<DynamicTrackBlock>()
92+
private fun allBlocks(): Collection<DynamicTrackBlock> = env.getGraph().values().filterIsInstance<DynamicTrackBlock>()
9593

9694
/**
9795
* Derives a stable, human-readable identifier for a [DynamicTrackBlock].
@@ -111,8 +109,7 @@ class DefaultNetworkPerceptionPort(
111109
(DynamicWrapperUtils.unwrapToStatic(end) as? NodeCell)
112110
?.getName()
113111
?.takeIf { it.isNotBlank() }
114-
}
115-
?.sorted()
112+
}?.sorted()
116113
.orEmpty()
117114
return if (endNames.isNotEmpty()) endNames.joinToString("-") else "unknown"
118115
}
@@ -149,18 +146,18 @@ class DefaultNetworkPerceptionPort(
149146
return block.toReading()
150147
}
151148

152-
override fun allBlockOccupancies(): List<BlockOccupancyReading> =
153-
allBlocks().map { it.toReading() }
149+
override fun allBlockOccupancies(): List<BlockOccupancyReading> = allBlocks().map { it.toReading() }
154150

155151
private fun DynamicTrackBlock.toReading(): BlockOccupancyReading =
156152
BlockOccupancyReading(
157153
blockId = blockId(this),
158154
state = getState(),
159-
trainId = when (getState()) {
160-
TrackFacility.State.FREE -> null
161-
TrackFacility.State.RESERVED -> trainName
162-
TrackFacility.State.OCCUPIED -> occupant?.name ?: trainName
163-
},
155+
trainId =
156+
when (getState()) {
157+
TrackFacility.State.FREE -> null
158+
TrackFacility.State.RESERVED -> trainName
159+
TrackFacility.State.OCCUPIED -> occupant?.name ?: trainName
160+
}
164161
)
165162

166163
// ── NetworkPerceptionPort — train positions ───────────────────────────
@@ -170,16 +167,15 @@ class DefaultNetworkPerceptionPort(
170167
return train.toPositionReading()
171168
}
172169

173-
override fun allTrainPositions(): List<TrainPositionReading> =
174-
activeTrains().map { it.toPositionReading() }
170+
override fun allTrainPositions(): List<TrainPositionReading> = activeTrains().map { it.toPositionReading() }
175171

176172
private fun Train.toPositionReading(): TrainPositionReading =
177173
TrainPositionReading(
178174
trainId = name,
179175
velocity = getVelocity(),
180176
acceleration = getAcceleration(),
181177
totalDistance = totalDistance,
182-
frontSectionName = frontSectionName(this),
178+
frontSectionName = frontSectionName(this)
183179
)
184180

185181
// ── NetworkPerceptionPort — train timetables ──────────────────────────
@@ -189,8 +185,7 @@ class DefaultNetworkPerceptionPort(
189185
return train.toTimetableReading()
190186
}
191187

192-
override fun allTrainTimetables(): List<TimetableReading> =
193-
activeTrains().map { it.toTimetableReading() }
188+
override fun allTrainTimetables(): List<TimetableReading> = activeTrains().map { it.toTimetableReading() }
194189

195190
private fun Train.toTimetableReading(): TimetableReading {
196191
val timetable = getTimetable()
@@ -199,7 +194,7 @@ class DefaultNetworkPerceptionPort(
199194
originInOutName = timetable.getIn().name,
200195
destinationInOutName = timetable.getOut().name,
201196
scheduledDepartureTime = timetable.getInTime().value,
202-
scheduledArrivalTime = timetable.getOutTime().value,
197+
scheduledArrivalTime = timetable.getOutTime().value
203198
)
204199
}
205200

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/NetworkPerceptionPort.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@ import cz.vutbr.fit.interlockSim.objects.cells.Signal
4747
* @since Issue #541 (SP0.2 — Goal 10 sensor ports)
4848
*/
4949
interface NetworkPerceptionPort {
50-
5150
// ── Signal aspect ─────────────────────────────────────────────────────
5251

5352
/**

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/SemaphoreReading.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,5 @@ import cz.vutbr.fit.interlockSim.objects.cells.Signal
3131
*/
3232
data class SemaphoreReading(
3333
val name: String,
34-
val signal: Signal,
34+
val signal: Signal
3535
)

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/TimetableReading.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,5 +34,5 @@ data class TimetableReading(
3434
val originInOutName: String,
3535
val destinationInOutName: String,
3636
val scheduledDepartureTime: Double,
37-
val scheduledArrivalTime: Double,
37+
val scheduledArrivalTime: Double
3838
)

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/ports/TrainPositionReading.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,5 @@ data class TrainPositionReading(
4242
val velocity: Double,
4343
val acceleration: Double,
4444
val totalDistance: Double,
45-
val frontSectionName: String?,
45+
val frontSectionName: String?
4646
)

core/src/commonMain/kotlin/cz/vutbr/fit/interlockSim/sim/ShuntingLoop.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ class ShuntingLoop(
147147
private val perceptionPort: cz.vutbr.fit.interlockSim.ports.DefaultNetworkPerceptionPort =
148148
cz.vutbr.fit.interlockSim.ports.DefaultNetworkPerceptionPort(
149149
env = context,
150-
activeTrains = { approwedTrains.toList() },
150+
activeTrains = { approwedTrains.toList() }
151151
)
152152

153153
// Test-observability counters (#365) — incremented from existing lifecycle sites only.

core/src/jvmTest/kotlin/cz/vutbr/fit/interlockSim/ports/DefaultNetworkPerceptionPortTest.kt

Lines changed: 45 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,12 @@ import org.junit.jupiter.api.Test
4747
*/
4848
@DisplayName("DefaultNetworkPerceptionPort — unit coverage")
4949
class DefaultNetworkPerceptionPortTest {
50-
5150
// ── Helpers ────────────────────────────────────────────────────────────
5251

53-
private fun semaphore(name: String, signal: Signal = Signal.STOP): DynamicRailSemaphore =
52+
private fun semaphore(
53+
name: String,
54+
signal: Signal = Signal.STOP
55+
): DynamicRailSemaphore =
5456
mockk<DynamicRailSemaphore>(relaxed = true).also {
5557
every { it.name } returns name
5658
every { it.signal } returns signal
@@ -60,7 +62,7 @@ class DefaultNetworkPerceptionPortTest {
6062
name: String? = null,
6163
state: TrackFacility.State = TrackFacility.State.FREE,
6264
trainName: String? = null,
63-
occupantName: String? = null,
65+
occupantName: String? = null
6466
): DynamicTrackBlock =
6567
mockk<DynamicTrackBlock>(relaxed = true).also {
6668
every { it.name } returns name
@@ -85,7 +87,7 @@ class DefaultNetworkPerceptionPortTest {
8587
originName: String = "A",
8688
destName: String = "B",
8789
departureTime: Double = 0.0,
88-
arrivalTime: Double = 60.0,
90+
arrivalTime: Double = 60.0
8991
): Train {
9092
val inOut = mockk<DynamicInOut>(relaxed = true)
9193
every { inOut.name } returns originName
@@ -115,7 +117,7 @@ class DefaultNetworkPerceptionPortTest {
115117
@Suppress("UNCHECKED_CAST")
116118
private fun env(
117119
cells: Map<Pair<Int, Int>, Cell?> = emptyMap(),
118-
blocks: Collection<DynamicTrackBlock> = emptyList(),
120+
blocks: Collection<DynamicTrackBlock> = emptyList()
119121
): SimulationEnvironment {
120122
val grid = mockk<RailwayNetGrid<Cell>>(relaxed = true)
121123
every { grid.cols } returns 3
@@ -138,15 +140,15 @@ class DefaultNetworkPerceptionPortTest {
138140
@Nested
139141
@DisplayName("signalAspect()")
140142
inner class SignalAspect {
141-
142143
@Test
143144
@DisplayName("returns SemaphoreReading for a known semaphore")
144145
fun knownSemaphoreReturnsReading() {
145146
val sem = semaphore("zA", Signal.FREE)
146-
val port = DefaultNetworkPerceptionPort(
147-
env(cells = mapOf((0 to 0) to sem)),
148-
activeTrains = { emptyList() },
149-
)
147+
val port =
148+
DefaultNetworkPerceptionPort(
149+
env(cells = mapOf((0 to 0) to sem)),
150+
activeTrains = { emptyList() }
151+
)
150152

151153
val result = port.signalAspect("zA")
152154

@@ -156,10 +158,11 @@ class DefaultNetworkPerceptionPortTest {
156158
@Test
157159
@DisplayName("returns null for an unknown semaphore name")
158160
fun unknownSemaphoreReturnsNull() {
159-
val port = DefaultNetworkPerceptionPort(
160-
env(cells = emptyMap()),
161-
activeTrains = { emptyList() },
162-
)
161+
val port =
162+
DefaultNetworkPerceptionPort(
163+
env(cells = emptyMap()),
164+
activeTrains = { emptyList() }
165+
)
163166

164167
assertThat(port.signalAspect("noSuchSem")).isNull()
165168
}
@@ -168,32 +171,33 @@ class DefaultNetworkPerceptionPortTest {
168171
@Nested
169172
@DisplayName("allSignalAspects()")
170173
inner class AllSignalAspects {
171-
172174
@Test
173175
@DisplayName("returns one reading per semaphore in the grid")
174176
fun returnsTwoSemaphores() {
175177
val semA = semaphore("zA", Signal.STOP)
176178
val semB = semaphore("doB1", Signal.S60)
177-
val port = DefaultNetworkPerceptionPort(
178-
env(cells = mapOf((0 to 0) to semA, (1 to 0) to semB)),
179-
activeTrains = { emptyList() },
180-
)
179+
val port =
180+
DefaultNetworkPerceptionPort(
181+
env(cells = mapOf((0 to 0) to semA, (1 to 0) to semB)),
182+
activeTrains = { emptyList() }
183+
)
181184

182185
val result = port.allSignalAspects()
183186

184187
assertThat(result).containsExactlyInAnyOrder(
185188
SemaphoreReading("zA", Signal.STOP),
186-
SemaphoreReading("doB1", Signal.S60),
189+
SemaphoreReading("doB1", Signal.S60)
187190
)
188191
}
189192

190193
@Test
191194
@DisplayName("returns empty list when no semaphores in the grid")
192195
fun emptyGridReturnsEmptyList() {
193-
val port = DefaultNetworkPerceptionPort(
194-
env(cells = emptyMap()),
195-
activeTrains = { emptyList() },
196-
)
196+
val port =
197+
DefaultNetworkPerceptionPort(
198+
env(cells = emptyMap()),
199+
activeTrains = { emptyList() }
200+
)
197201

198202
assertThat(port.allSignalAspects()).isEmpty()
199203
}
@@ -204,7 +208,6 @@ class DefaultNetworkPerceptionPortTest {
204208
@Nested
205209
@DisplayName("blockOccupancy()")
206210
inner class BlockOccupancy {
207-
208211
@Test
209212
@DisplayName("FREE block returns reading with null trainId")
210213
fun freeBlockTrainIdIsNull() {
@@ -234,11 +237,12 @@ class DefaultNetworkPerceptionPortTest {
234237
@Test
235238
@DisplayName("OCCUPIED block returns reading with occupant name as trainId")
236239
fun occupiedBlockTrainIdIsOccupantName() {
237-
val b = block(
238-
name = "k2",
239-
state = TrackFacility.State.OCCUPIED,
240-
occupantName = "Train #2",
241-
)
240+
val b =
241+
block(
242+
name = "k2",
243+
state = TrackFacility.State.OCCUPIED,
244+
occupantName = "Train #2"
245+
)
242246
val port = DefaultNetworkPerceptionPort(env(blocks = listOf(b)), { emptyList() })
243247

244248
val result = port.blockOccupancy("k2")
@@ -260,7 +264,6 @@ class DefaultNetworkPerceptionPortTest {
260264
@Nested
261265
@DisplayName("allBlockOccupancies()")
262266
inner class AllBlockOccupancies {
263-
264267
@Test
265268
@DisplayName("returns one reading per block")
266269
fun returnsTwoBlocks() {
@@ -272,7 +275,7 @@ class DefaultNetworkPerceptionPortTest {
272275

273276
assertThat(result).containsExactlyInAnyOrder(
274277
BlockOccupancyReading("k1", TrackFacility.State.FREE, null),
275-
BlockOccupancyReading("k2", TrackFacility.State.RESERVED, "Train #1"),
278+
BlockOccupancyReading("k2", TrackFacility.State.RESERVED, "Train #1")
276279
)
277280
}
278281

@@ -290,7 +293,6 @@ class DefaultNetworkPerceptionPortTest {
290293
@Nested
291294
@DisplayName("trainPosition()")
292295
inner class TrainPosition {
293-
294296
@Test
295297
@DisplayName("returns reading for an active train")
296298
fun activeTrainReturnsReading() {
@@ -305,7 +307,7 @@ class DefaultNetworkPerceptionPortTest {
305307
velocity = 20.0,
306308
acceleration = 1.5,
307309
totalDistance = 300.0,
308-
frontSectionName = null,
310+
frontSectionName = null
309311
)
310312
)
311313
}
@@ -345,7 +347,6 @@ class DefaultNetworkPerceptionPortTest {
345347
@Nested
346348
@DisplayName("allTrainPositions()")
347349
inner class AllTrainPositions {
348-
349350
@Test
350351
@DisplayName("returns one reading per active train")
351352
fun returnsAllActiveTrains() {
@@ -372,17 +373,17 @@ class DefaultNetworkPerceptionPortTest {
372373
@Nested
373374
@DisplayName("trainTimetable()")
374375
inner class TrainTimetable {
375-
376376
@Test
377377
@DisplayName("returns timetable reading for an active train")
378378
fun activeTrainReturnsTimetable() {
379-
val t = train(
380-
"Train #1",
381-
originName = "A",
382-
destName = "B",
383-
departureTime = 10.0,
384-
arrivalTime = 120.0,
385-
)
379+
val t =
380+
train(
381+
"Train #1",
382+
originName = "A",
383+
destName = "B",
384+
departureTime = 10.0,
385+
arrivalTime = 120.0
386+
)
386387
val port = DefaultNetworkPerceptionPort(env(), { listOf(t) })
387388

388389
val result = port.trainTimetable("Train #1")
@@ -393,7 +394,7 @@ class DefaultNetworkPerceptionPortTest {
393394
originInOutName = "A",
394395
destinationInOutName = "B",
395396
scheduledDepartureTime = 10.0,
396-
scheduledArrivalTime = 120.0,
397+
scheduledArrivalTime = 120.0
397398
)
398399
)
399400
}
@@ -410,7 +411,6 @@ class DefaultNetworkPerceptionPortTest {
410411
@Nested
411412
@DisplayName("allTrainTimetables()")
412413
inner class AllTrainTimetables {
413-
414414
@Test
415415
@DisplayName("returns one reading per active train")
416416
fun returnsAllActiveTimetables() {

0 commit comments

Comments
 (0)