From 59416923dcb3a756eaf532cc4259f2f6625c0762 Mon Sep 17 00:00:00 2001 From: Anton Tananaev Date: Sun, 31 Mar 2019 22:35:39 -0700 Subject: Convert project to gradle --- .../org/traccar/geofence/GeofenceCircleTest.java | 28 ++++++++++++ .../org/traccar/geofence/GeofencePolygonTest.java | 52 ++++++++++++++++++++++ .../org/traccar/geofence/GeofencePolylineTest.java | 47 +++++++++++++++++++ 3 files changed, 127 insertions(+) create mode 100644 src/test/java/org/traccar/geofence/GeofenceCircleTest.java create mode 100644 src/test/java/org/traccar/geofence/GeofencePolygonTest.java create mode 100644 src/test/java/org/traccar/geofence/GeofencePolylineTest.java (limited to 'src/test/java/org/traccar/geofence') diff --git a/src/test/java/org/traccar/geofence/GeofenceCircleTest.java b/src/test/java/org/traccar/geofence/GeofenceCircleTest.java new file mode 100644 index 000000000..259a8fb77 --- /dev/null +++ b/src/test/java/org/traccar/geofence/GeofenceCircleTest.java @@ -0,0 +1,28 @@ +package org.traccar.geofence; + +import java.text.ParseException; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GeofenceCircleTest { + + @Test + public void testCircleWkt() throws ParseException { + String test = "CIRCLE (55.75414 37.6204, 100)"; + GeofenceGeometry geofenceGeometry = new GeofenceCircle(); + geofenceGeometry.fromWkt(test); + assertEquals(geofenceGeometry.toWkt(), test); + } + + @Test + public void testContainsCircle() throws ParseException { + String test = "CIRCLE (55.75414 37.6204, 100)"; + GeofenceGeometry geofenceGeometry = new GeofenceCircle(); + geofenceGeometry.fromWkt(test); + assertTrue(geofenceGeometry.containsPoint(55.75477, 37.62025)); + assertTrue(!geofenceGeometry.containsPoint(55.75545, 37.61921)); + } +} diff --git a/src/test/java/org/traccar/geofence/GeofencePolygonTest.java b/src/test/java/org/traccar/geofence/GeofencePolygonTest.java new file mode 100644 index 000000000..94b73af3a --- /dev/null +++ b/src/test/java/org/traccar/geofence/GeofencePolygonTest.java @@ -0,0 +1,52 @@ +package org.traccar.geofence; + +import java.text.ParseException; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GeofencePolygonTest { + + @Test + public void testPolygonWkt() throws ParseException { + String test = "POLYGON ((55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165))"; + GeofenceGeometry geofenceGeometry = new GeofencePolygon(); + geofenceGeometry.fromWkt(test); + assertEquals(geofenceGeometry.toWkt(), test); + } + + @Test + public void testContainsPolygon() throws ParseException { + String test = "POLYGON ((55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165))"; + GeofenceGeometry geofenceGeometry = new GeofencePolygon(); + geofenceGeometry.fromWkt(test); + assertTrue(geofenceGeometry.containsPoint(55.75476, 37.61915)); + assertTrue(!geofenceGeometry.containsPoint(55.75545, 37.61921)); + + } + + @Test + public void testContainsPolygon180() throws ParseException { + String test = "POLYGON ((66.9494 179.838, 66.9508 -179.8496, 66.8406 -180.0014))"; + GeofenceGeometry geofenceGeometry = new GeofencePolygon(); + geofenceGeometry.fromWkt(test); + assertTrue(geofenceGeometry.containsPoint(66.9015, -180.0096)); + assertTrue(geofenceGeometry.containsPoint(66.9015, 179.991)); + assertTrue(!geofenceGeometry.containsPoint(66.8368, -179.8792)); + + } + + @Test + public void testContainsPolygon0() throws ParseException { + String test = "POLYGON ((51.1966 -0.6207, 51.1897 0.4147, 50.9377 0.5136, 50.8675 -0.6082))"; + GeofenceGeometry geofenceGeometry = new GeofencePolygon(); + geofenceGeometry.fromWkt(test); + assertTrue(geofenceGeometry.containsPoint(51.0466, -0.0165)); + assertTrue(geofenceGeometry.containsPoint(51.0466, 0.018)); + assertTrue(!geofenceGeometry.containsPoint(50.9477, 0.5836)); + + } + +} diff --git a/src/test/java/org/traccar/geofence/GeofencePolylineTest.java b/src/test/java/org/traccar/geofence/GeofencePolylineTest.java new file mode 100644 index 000000000..1e9dcb7c3 --- /dev/null +++ b/src/test/java/org/traccar/geofence/GeofencePolylineTest.java @@ -0,0 +1,47 @@ +package org.traccar.geofence; + +import java.text.ParseException; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertTrue; + +public class GeofencePolylineTest { + + @Test + public void testPolylineWkt() throws ParseException { + String test = "LINESTRING (55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165)"; + GeofenceGeometry geofenceGeometry = new GeofencePolyline(); + geofenceGeometry.fromWkt(test); + assertEquals(geofenceGeometry.toWkt(), test); + } + + @Test + public void testContainsPolyline1Interval() throws ParseException { + String test = "LINESTRING (56.83777 60.59833, 56.83766 60.5968)"; + GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 35); + assertTrue(geofenceGeometry.containsPoint(56.83801, 60.59748)); + ((GeofencePolyline) geofenceGeometry).setDistance(15); + assertTrue(!geofenceGeometry.containsPoint(56.83801, 60.59748)); + } + + @Test + public void testContainsPolyline3Intervals() throws ParseException { + String test = "LINESTRING (56.836 60.6126, 56.8393 60.6114, 56.83887 60.60811, 56.83782 60.5988)"; + GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 15); + assertTrue(geofenceGeometry.containsPoint(56.83847, 60.60458)); + assertTrue(!geofenceGeometry.containsPoint(56.83764, 60.59725)); + assertTrue(!geofenceGeometry.containsPoint(56.83861, 60.60822)); + + } + + @Test + public void testContainsPolylineNear180() throws ParseException { + String test = "LINESTRING (66.9494 179.838, 66.9508 -179.8496)"; + GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 25); + assertTrue(geofenceGeometry.containsPoint(66.95, 180.0)); + assertTrue(!geofenceGeometry.containsPoint(66.96, 180.0)); + assertTrue(!geofenceGeometry.containsPoint(66.9509, -179.83)); + } +} -- cgit v1.2.3