Search in sources :

Example 1 with TripReport

use of org.traccar.reports.model.TripReport in project traccar by tananaev.

the class ReportUtilsTest method testDetectTripsSimple.

@Test
public void testDetectTripsSimple() throws ParseException {
    List<Position> data = Arrays.asList(position("2016-01-01 00:00:00.000", 0, 0), position("2016-01-01 00:01:00.000", 0, 0), position("2016-01-01 00:02:00.000", 10, 0), position("2016-01-01 00:03:00.000", 10, 1000), position("2016-01-01 00:04:00.000", 10, 2000), position("2016-01-01 00:05:00.000", 0, 3000), 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, 900000, false, false, 0.01);
    Collection<TripReport> trips = ReportUtils.detectTripsAndStops(new TestIdentityManager(), null, data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    TripReport itemTrip = trips.iterator().next();
    assertEquals(date("2016-01-01 00:02:00.000"), itemTrip.getStartTime());
    assertEquals(date("2016-01-01 00:05:00.000"), itemTrip.getEndTime());
    assertEquals(180000, itemTrip.getDuration());
    assertEquals(32.4, itemTrip.getAverageSpeed(), 0.01);
    assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
    assertEquals(3000, itemTrip.getDistance(), 0.01);
    Collection<StopReport> stops = ReportUtils.detectTripsAndStops(new TestIdentityManager(), null, data, tripsConfig, false, StopReport.class);
    assertNotNull(stops);
    assertFalse(stops.isEmpty());
    Iterator<StopReport> iterator = stops.iterator();
    StopReport itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:00:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:02:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
    itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:05:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:07:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
}
Also used : TripReport(org.traccar.reports.model.TripReport) Position(org.traccar.model.Position) TripsConfig(org.traccar.reports.model.TripsConfig) TestIdentityManager(org.traccar.TestIdentityManager) StopReport(org.traccar.reports.model.StopReport) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Example 2 with TripReport

use of org.traccar.reports.model.TripReport in project traccar by traccar.

the class ReportUtilsTest method testDetectTripsSimpleWithIgnition.

@Test
public void testDetectTripsSimpleWithIgnition() throws ParseException {
    List<Position> data = Arrays.asList(position("2016-01-01 00:00:00.000", 0, 0), position("2016-01-01 00:01:00.000", 0, 0), position("2016-01-01 00:02:00.000", 10, 0), position("2016-01-01 00:03:00.000", 10, 1000), position("2016-01-01 00:04:00.000", 10, 2000), position("2016-01-01 00:05:00.000", 0, 3000), position("2016-01-01 00:06:00.000", 0, 3000), position("2016-01-01 00:07:00.000", 0, 3000));
    data.get(5).set(Position.KEY_IGNITION, false);
    TripsConfig tripsConfig = new TripsConfig(500, 300000, 180000, 900000, true, false, 0.01);
    Collection<TripReport> trips = ReportUtils.detectTripsAndStops(data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    TripReport itemTrip = trips.iterator().next();
    assertEquals(date("2016-01-01 00:02:00.000"), itemTrip.getStartTime());
    assertEquals(date("2016-01-01 00:05:00.000"), itemTrip.getEndTime());
    assertEquals(180000, itemTrip.getDuration());
    assertEquals(10, itemTrip.getAverageSpeed(), 0.01);
    assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
    assertEquals(3000, itemTrip.getDistance(), 0.01);
    trips = ReportUtils.detectTripsAndStops(data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    itemTrip = trips.iterator().next();
    assertEquals(date("2016-01-01 00:02:00.000"), itemTrip.getStartTime());
    assertEquals(date("2016-01-01 00:05:00.000"), itemTrip.getEndTime());
    assertEquals(180000, itemTrip.getDuration());
    assertEquals(10, itemTrip.getAverageSpeed(), 0.01);
    assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
    assertEquals(3000, itemTrip.getDistance(), 0.01);
    Collection<StopReport> stops = ReportUtils.detectTripsAndStops(data, tripsConfig, false, StopReport.class);
    assertNotNull(stops);
    assertFalse(stops.isEmpty());
    Iterator<StopReport> iterator = stops.iterator();
    StopReport itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:00:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:02:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
    itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:05:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:07:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
}
Also used : TripReport(org.traccar.reports.model.TripReport) Position(org.traccar.model.Position) TripsConfig(org.traccar.reports.model.TripsConfig) StopReport(org.traccar.reports.model.StopReport) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Example 3 with TripReport

use of org.traccar.reports.model.TripReport in project traccar by traccar.

the class ReportUtilsTest method testDetectTripsSimple.

@Test
public void testDetectTripsSimple() throws ParseException {
    List<Position> data = Arrays.asList(position("2016-01-01 00:00:00.000", 0, 0), position("2016-01-01 00:01:00.000", 0, 0), position("2016-01-01 00:02:00.000", 10, 0), position("2016-01-01 00:03:00.000", 10, 1000), position("2016-01-01 00:04:00.000", 10, 2000), position("2016-01-01 00:05:00.000", 0, 3000), 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, 900000, false, false, 0.01);
    Collection<TripReport> trips = ReportUtils.detectTripsAndStops(data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    TripReport itemTrip = trips.iterator().next();
    assertEquals(date("2016-01-01 00:02:00.000"), itemTrip.getStartTime());
    assertEquals(date("2016-01-01 00:05:00.000"), itemTrip.getEndTime());
    assertEquals(180000, itemTrip.getDuration());
    assertEquals(10, itemTrip.getAverageSpeed(), 0.01);
    assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
    assertEquals(3000, itemTrip.getDistance(), 0.01);
    Collection<StopReport> stops = ReportUtils.detectTripsAndStops(data, tripsConfig, false, StopReport.class);
    assertNotNull(stops);
    assertFalse(stops.isEmpty());
    Iterator<StopReport> iterator = stops.iterator();
    StopReport itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:00:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:02:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
    itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:05:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:07:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
}
Also used : TripReport(org.traccar.reports.model.TripReport) Position(org.traccar.model.Position) TripsConfig(org.traccar.reports.model.TripsConfig) StopReport(org.traccar.reports.model.StopReport) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Example 4 with TripReport

use of org.traccar.reports.model.TripReport in project traccar by traccar.

the class ReportUtilsTest method testDetectTripsWithFluctuation.

@Test
public void testDetectTripsWithFluctuation() throws ParseException {
    List<Position> data = Arrays.asList(position("2016-01-01 00:00:00.000", 0, 0), position("2016-01-01 00:01:00.000", 0, 0), position("2016-01-01 00:02:00.000", 10, 0), position("2016-01-01 00:03:00.000", 10, 1000), position("2016-01-01 00:04:00.000", 10, 2000), position("2016-01-01 00:05:00.000", 10, 3000), position("2016-01-01 00:06:00.000", 10, 4000), position("2016-01-01 00:07:00.000", 0, 5000), position("2016-01-01 00:08:00.000", 10, 6000), position("2016-01-01 00:09:00.000", 0, 7000), position("2016-01-01 00:10:00.000", 0, 7000), position("2016-01-01 00:11:00.000", 0, 7000));
    TripsConfig tripsConfig = new TripsConfig(500, 300000, 180000, 900000, false, false, 0.01);
    Collection<TripReport> trips = ReportUtils.detectTripsAndStops(data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    TripReport itemTrip = trips.iterator().next();
    assertEquals(date("2016-01-01 00:02:00.000"), itemTrip.getStartTime());
    assertEquals(date("2016-01-01 00:09:00.000"), itemTrip.getEndTime());
    assertEquals(420000, itemTrip.getDuration());
    assertEquals(8.57, itemTrip.getAverageSpeed(), 0.01);
    assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
    assertEquals(7000, itemTrip.getDistance(), 0.01);
    Collection<StopReport> stops = ReportUtils.detectTripsAndStops(data, tripsConfig, false, StopReport.class);
    assertNotNull(stops);
    assertFalse(stops.isEmpty());
    Iterator<StopReport> iterator = stops.iterator();
    StopReport itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:00:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:02:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
    itemStop = iterator.next();
    assertEquals(date("2016-01-01 00:09:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:11:00.000"), itemStop.getEndTime());
    assertEquals(120000, itemStop.getDuration());
}
Also used : TripReport(org.traccar.reports.model.TripReport) Position(org.traccar.model.Position) TripsConfig(org.traccar.reports.model.TripsConfig) StopReport(org.traccar.reports.model.StopReport) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Example 5 with TripReport

use of org.traccar.reports.model.TripReport in project traccar by traccar.

the class ReportUtilsTest method testDetectTripAndStopByGap.

@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, 900000, false, false, 0.01);
    Collection<TripReport> trips = ReportUtils.detectTripsAndStops(data, tripsConfig, false, TripReport.class);
    assertNotNull(trips);
    assertFalse(trips.isEmpty());
    TripReport itemTrip = trips.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);
    Collection<StopReport> stops = ReportUtils.detectTripsAndStops(data, tripsConfig, false, StopReport.class);
    assertNotNull(stops);
    assertFalse(stops.isEmpty());
    StopReport itemStop = stops.iterator().next();
    assertEquals(date("2016-01-01 00:04:00.000"), itemStop.getStartTime());
    assertEquals(date("2016-01-01 00:24:00.000"), itemStop.getEndTime());
    assertEquals(1200000, itemStop.getDuration());
}
Also used : TripReport(org.traccar.reports.model.TripReport) Position(org.traccar.model.Position) TripsConfig(org.traccar.reports.model.TripsConfig) StopReport(org.traccar.reports.model.StopReport) Test(org.junit.Test) BaseTest(org.traccar.BaseTest)

Aggregations

TripReport (org.traccar.reports.model.TripReport)12 Position (org.traccar.model.Position)10 Test (org.junit.Test)8 BaseTest (org.traccar.BaseTest)8 StopReport (org.traccar.reports.model.StopReport)8 TripsConfig (org.traccar.reports.model.TripsConfig)8 TestIdentityManager (org.traccar.TestIdentityManager)4 FileInputStream (java.io.FileInputStream)2 InputStream (java.io.InputStream)2 ArrayList (java.util.ArrayList)2 Device (org.traccar.model.Device)2 Group (org.traccar.model.Group)2 DeviceReport (org.traccar.reports.model.DeviceReport)2