From ff8aabdf6aedbdeeff48534bd22ab153647b3ba2 Mon Sep 17 00:00:00 2001
From: zgw <13623675548@163.com>
Date: Wed, 5 Aug 2026 16:50:47 +0800
Subject: [PATCH] feat(javaTest): map full topology and route differences
---
.../RouteTopologyEvidenceMapper.java | 186 ++++++++++++++++++
.../RouteTopologyEvidenceMapperTest.java | 109 ++++++++++
2 files changed, 295 insertions(+)
create mode 100644 javaTest/src/main/java/com/ft546/wcs/shadow/history/visualizer/RouteTopologyEvidenceMapper.java
create mode 100644 javaTest/src/test/java/com/ft546/wcs/shadow/history/visualizer/RouteTopologyEvidenceMapperTest.java
diff --git a/javaTest/src/main/java/com/ft546/wcs/shadow/history/visualizer/RouteTopologyEvidenceMapper.java b/javaTest/src/main/java/com/ft546/wcs/shadow/history/visualizer/RouteTopologyEvidenceMapper.java
new file mode 100644
index 0000000..34f7d23
--- /dev/null
+++ b/javaTest/src/main/java/com/ft546/wcs/shadow/history/visualizer/RouteTopologyEvidenceMapper.java
@@ -0,0 +1,186 @@
+package com.ft546.wcs.shadow.history.visualizer;
+
+import com.ft546.wcs.demo.model.Site;
+import com.ft546.wcs.demo.traffic.GridMap;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * 把权威网格拓扑和新旧路线差异转换为页面可直接审计的证据。
+ *
+ *
本类只读取 {@link GridMap} 已建立的邻接关系,不根据坐标猜测道路,也不调用路径规划器。
+ * 历史路径即使包含未知站点或不相邻跳点,也只会形成无效段记录,不会被包装成真实地图边。
+ */
+final class RouteTopologyEvidenceMapper {
+
+ /**
+ * 导出完整地图中的全部无向道路边,供页面绘制当前楼层的完整地图底图。
+ *
+ *
{@code GridMap} 为每条道路保存正反两个邻接引用。本方法把端点按站点编号规范化并用
+ * 有序集合去重,因此页面对同一条物理道路只绘制一次,且不同运行得到稳定顺序。
+ */
+ List