From 058d7bbb714634e42bff1dd71fdfca3a378421d3 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 31 三月 2026 20:50:50 +0800
Subject: [PATCH] #

---
 src/test/java/com/zy/core/thread/impl/station/StationSegmentExecutorTest.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/src/test/java/com/zy/core/thread/impl/station/StationSegmentExecutorTest.java b/src/test/java/com/zy/core/thread/impl/station/StationSegmentExecutorTest.java
index abb018b..8722170 100644
--- a/src/test/java/com/zy/core/thread/impl/station/StationSegmentExecutorTest.java
+++ b/src/test/java/com/zy/core/thread/impl/station/StationSegmentExecutorTest.java
@@ -14,9 +14,11 @@
 import org.springframework.context.ApplicationContext;
 import org.springframework.test.util.ReflectionTestUtils;
 
+import java.util.List;
 import java.util.function.Function;
 
 import static org.junit.jupiter.api.Assertions.assertFalse;
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.never;
@@ -26,6 +28,37 @@
 class StationSegmentExecutorTest {
 
     @Test
+    void resolveCurrentPathIndex_prefersForwardOccurrenceForLoopRevisitStations() {
+        StationSegmentExecutor executor = new StationSegmentExecutor(new DeviceConfig(), mock(RedisUtil.class), command -> null);
+
+        Integer second121Index = ReflectionTestUtils.invokeMethod(
+                executor,
+                "resolveCurrentPathIndex",
+                List.of(121, 124, 186, 189, 121, 124, 125, 127),
+                121,
+                3
+        );
+        Integer second124Index = ReflectionTestUtils.invokeMethod(
+                executor,
+                "resolveCurrentPathIndex",
+                List.of(121, 124, 186, 189, 121, 124, 125, 127),
+                124,
+                4
+        );
+        Integer same124Index = ReflectionTestUtils.invokeMethod(
+                executor,
+                "resolveCurrentPathIndex",
+                List.of(121, 124, 186, 189, 121, 124, 125, 127),
+                124,
+                5
+        );
+
+        assertEquals(Integer.valueOf(4), second121Index);
+        assertEquals(Integer.valueOf(5), second124Index);
+        assertEquals(Integer.valueOf(5), same124Index);
+    }
+
+    @Test
     void sendSegmentWithRetry_skipsWhenRouteIsCancelPending() {
         ApplicationContext applicationContext = mock(ApplicationContext.class);
         StationMoveCoordinator coordinator = new StationMoveCoordinator();

--
Gitblit v1.9.1