aboutsummaryrefslogtreecommitdiff
path: root/test/org/traccar
diff options
context:
space:
mode:
authorAbyss777 <abyss@fox5.ru>2016-11-26 19:33:54 +0700
committerAbyss777 <abyss@fox5.ru>2016-11-26 19:33:54 +0700
commitb09d0e98541edc7122d992e85547741ffd57f72a (patch)
tree9b5011d5aefbcc32c378336ce103106e0a7e40d5 /test/org/traccar
parent6d022a7cbdacc747dd8517a8c82c3238d63637ac (diff)
downloadtraccar-server-b09d0e98541edc7122d992e85547741ffd57f72a.tar.gz
traccar-server-b09d0e98541edc7122d992e85547741ffd57f72a.tar.bz2
traccar-server-b09d0e98541edc7122d992e85547741ffd57f72a.zip
Implement polyline geofence
Diffstat (limited to 'test/org/traccar')
-rw-r--r--test/org/traccar/geofence/GeofencePolylineTest.java54
-rw-r--r--test/org/traccar/helper/DistanceCalculatorTest.java9
2 files changed, 63 insertions, 0 deletions
diff --git a/test/org/traccar/geofence/GeofencePolylineTest.java b/test/org/traccar/geofence/GeofencePolylineTest.java
new file mode 100644
index 000000000..df939d8ba
--- /dev/null
+++ b/test/org/traccar/geofence/GeofencePolylineTest.java
@@ -0,0 +1,54 @@
+package org.traccar.geofence;
+
+import java.text.ParseException;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+public class GeofencePolylineTest {
+
+ @Test
+ public void testPolylineWKT() {
+ String test = "LINESTRING (55.75474 37.61823, 55.75513 37.61888, 55.7535 37.6222, 55.75315 37.62165)";
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline();
+ try {
+ geofenceGeometry.fromWkt(test);
+ } catch (ParseException e){
+ Assert.assertTrue("ParseExceprion: " + e.getMessage(), true);
+ }
+ Assert.assertEquals(geofenceGeometry.toWkt(), test);
+ }
+
+ @Test
+ public void testContainsPolyline1Interval() {
+ String test = "LINESTRING (56.83777 60.59833, 56.83766 60.5968)";
+
+ try {
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 35);
+ Assert.assertTrue(geofenceGeometry.containsPoint(56.83801, 60.59748));
+
+ ((GeofencePolyline) geofenceGeometry).setDistance(15);
+ Assert.assertTrue(!geofenceGeometry.containsPoint(56.83801, 60.59748));
+
+ } catch (ParseException e){
+ Assert.assertTrue("ParseExceprion: " + e.getMessage(), true);
+ }
+ }
+
+
+ @Test
+ public void testContainsPolyline3Intervals() {
+ String test = "LINESTRING (56.836 60.6126, 56.8393 60.6114, 56.83887 60.60811, 56.83782 60.5988)";
+
+ try {
+ GeofenceGeometry geofenceGeometry = new GeofencePolyline(test, 15);
+ Assert.assertTrue(geofenceGeometry.containsPoint(56.83847, 60.60458));
+ Assert.assertTrue(!geofenceGeometry.containsPoint(56.83764, 60.59725));
+ Assert.assertTrue(!geofenceGeometry.containsPoint(56.83861, 60.60822));
+
+ } catch (ParseException e){
+ Assert.assertTrue("ParseExceprion: " + e.getMessage(), true);
+ }
+ }
+
+}
diff --git a/test/org/traccar/helper/DistanceCalculatorTest.java b/test/org/traccar/helper/DistanceCalculatorTest.java
index 7bbb4e3b1..2ce54c583 100644
--- a/test/org/traccar/helper/DistanceCalculatorTest.java
+++ b/test/org/traccar/helper/DistanceCalculatorTest.java
@@ -10,5 +10,14 @@ public class DistanceCalculatorTest {
Assert.assertEquals(
DistanceCalculator.distance(0.0, 0.0, 0.05, 0.05), 7863.0, 10.0);
}
+
+ @Test
+ public void testDistanceToInterval() {
+ Assert.assertEquals(DistanceCalculator.distanceToInterval(
+ 56.83801, 60.59748, 56.83777, 60.59833, 56.83766, 60.5968), 33.0, 5.0);
+
+ Assert.assertEquals(DistanceCalculator.distanceToInterval(
+ 56.83753, 60.59508, 56.83777, 60.59833, 56.83766, 60.5968), 105.0, 5.0);
+ }
}