From 1f9454af3356f628c25c3e2e492869163731da56 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 09 十月 2026 10:47:24 +0800
Subject: [PATCH] 修改bug

---
 UserFBTravel/guns-admin/src/test/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImplTest.java |   51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/UserFBTravel/guns-admin/src/test/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImplTest.java b/UserFBTravel/guns-admin/src/test/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImplTest.java
new file mode 100644
index 0000000..006ce6a
--- /dev/null
+++ b/UserFBTravel/guns-admin/src/test/java/com/stylefeng/guns/modular/crossCity/server/impl/SiteServiceImplTest.java
@@ -0,0 +1,51 @@
+package com.stylefeng.guns.modular.crossCity.server.impl;
+
+import org.junit.Test;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+public class SiteServiceImplTest {
+
+    private static final String SQUARE = "0,0;10,0;10,10;0,10";
+
+    @Test
+    public void shouldRecognizePointInsidePolygon() {
+        assertTrue(SiteServiceImpl.isPointInElectronicFence("5,5", SQUARE));
+    }
+
+    @Test
+    public void shouldRecognizePointOutsidePolygon() {
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("11,5", SQUARE));
+    }
+
+    @Test
+    public void shouldIncludePointOnEdgeAndVertex() {
+        assertTrue(SiteServiceImpl.isPointInElectronicFence("10,5", SQUARE));
+        assertTrue(SiteServiceImpl.isPointInElectronicFence("0,0", SQUARE));
+    }
+
+    @Test
+    public void shouldRecognizeConcavePolygon() {
+        String concavePolygon = "0,0;10,0;10,10;5,5;0,10";
+        assertTrue(SiteServiceImpl.isPointInElectronicFence("5,4", concavePolygon));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("5,8", concavePolygon));
+    }
+
+    @Test
+    public void shouldRecognizeAnyOfMultiplePolygons() {
+        String multiplePolygons = SQUARE + "_20,20;30,20;30,30;20,30";
+        assertTrue(SiteServiceImpl.isPointInElectronicFence("25,25", multiplePolygons));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("15,15", multiplePolygons));
+    }
+
+    @Test
+    public void shouldHandleWhitespaceAndInvalidCoordinates() {
+        assertTrue(SiteServiceImpl.isPointInElectronicFence(" 5 , 5 ", " 0,0 ; 10,0 ; 10,10 ; 0,10 "));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("invalid", SQUARE));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("5,5", "0,0;10,0"));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("5,5", "0,0;invalid;10,10"));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence(null, SQUARE));
+        assertFalse(SiteServiceImpl.isPointInElectronicFence("5,5", null));
+    }
+}

--
Gitblit v1.7.1