diff options
author | Anton Tananaev <anton.tananaev@gmail.com> | 2017-06-15 22:06:20 +1200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-15 22:06:20 +1200 |
commit | 6c3d168ed9240ed4b5485b537294db6ec9d94379 (patch) | |
tree | 6904733446c33f39e26ea34a0f6072b7c3969c80 /test/org | |
parent | f4b7d595334a12bd612575e36c8e2ebf7253c8a4 (diff) | |
parent | 2aa95dfab102e6e0f40a425bb4fdcecf55940ec8 (diff) | |
download | traccar-server-6c3d168ed9240ed4b5485b537294db6ec9d94379.tar.gz traccar-server-6c3d168ed9240ed4b5485b537294db6ec9d94379.tar.bz2 traccar-server-6c3d168ed9240ed4b5485b537294db6ec9d94379.zip |
Merge pull request #3252 from Abyss777/trips_by_gaps
Detect Trips and Stops by gaps in data
Diffstat (limited to 'test/org')
-rw-r--r-- | test/org/traccar/reports/ReportUtilsTest.java | 51 |
1 files changed, 46 insertions, 5 deletions
diff --git a/test/org/traccar/reports/ReportUtilsTest.java b/test/org/traccar/reports/ReportUtilsTest.java index 57a2ff764..2fe05e688 100644 --- a/test/org/traccar/reports/ReportUtilsTest.java +++ b/test/org/traccar/reports/ReportUtilsTest.java @@ -79,7 +79,7 @@ public class ReportUtilsTest extends BaseTest { position("2016-01-01 00:06:00.000", 0, 3000), position("2016-01-01 00:07:00.000", 0, 3000)); - TripsConfig tripsConfig = new TripsConfig(500, 300000, 180000, false); + TripsConfig tripsConfig = new TripsConfig(500, 300000, 180000, false, 900000); Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, true); @@ -119,7 +119,7 @@ public class ReportUtilsTest extends BaseTest { position("2016-01-01 00:04:00.000", 1, 0), position("2016-01-01 00:05:00.000", 0, 0)); - TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false); + TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false, 900000); Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, false); @@ -145,7 +145,7 @@ public class ReportUtilsTest extends BaseTest { position("2016-01-01 00:04:00.000", 1, 0), position("2016-01-01 00:05:00.000", 2, 0)); - TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false); + TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false, 900000); Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, false); @@ -184,7 +184,7 @@ public class ReportUtilsTest extends BaseTest { position("2016-01-01 00:04:00.000", 0, 0), position("2016-01-01 00:05:00.000", 0, 0)); - TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false); + TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false, 900000); Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, false); @@ -210,7 +210,7 @@ public class ReportUtilsTest extends BaseTest { position("2016-01-01 00:04:00.000", 5, 0), position("2016-01-01 00:05:00.000", 5, 0)); - TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false); + TripsConfig tripsConfig = new TripsConfig(500, 300000, 200000, false, 900000); Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, false); @@ -219,4 +219,45 @@ public class ReportUtilsTest extends BaseTest { } + @Test + public void testDetectTripAndStopByGap() throws ParseException { + + Collection<Position> data = Arrays.asList( + position("2016-01-01 00:00:00.000", 7, 100), + position("2016-01-01 00:01:00.000", 7, 300), + position("2016-01-01 00:02:00.000", 5, 500), + position("2016-01-01 00:03:00.000", 5, 600), + position("2016-01-01 00:04:00.000", 3, 700), + position("2016-01-01 00:23:00.000", 2, 700), + position("2016-01-01 00:24:00.000", 5, 800), + position("2016-01-01 00:25:00.000", 5, 900)); + + TripsConfig tripsConfig = new TripsConfig(500, 200000, 200000, false, 900000); + + Collection<? extends BaseReport> result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, true); + + assertNotNull(result); + assertFalse(result.isEmpty()); + + TripReport itemTrip = (TripReport) result.iterator().next(); + + assertEquals(date("2016-01-01 00:00:00.000"), itemTrip.getStartTime()); + assertEquals(date("2016-01-01 00:04:00.000"), itemTrip.getEndTime()); + assertEquals(240000, itemTrip.getDuration()); + assertEquals(6.75, itemTrip.getAverageSpeed(), 0.01); + assertEquals(7, itemTrip.getMaxSpeed(), 0.01); + assertEquals(600, itemTrip.getDistance(), 0.01); + + result = ReportUtils.detectTripsAndStops(tripsConfig, false, 0.01, data, false); + + assertNotNull(result); + assertFalse(result.isEmpty()); + + StopReport itemStop = (StopReport) result.iterator().next(); + + assertEquals(date("2016-01-01 00:04:00.000"), itemStop.getStartTime()); + assertEquals(date("2016-01-01 00:23:00.000"), itemStop.getEndTime()); + assertEquals(1140000, itemStop.getDuration()); + } + } |