use of org.traccar.TestIdentityManager in project traccar by tananaev.
the class IgnitionEventHandlerTest method testIgnitionEventHandler.
@Test
public void testIgnitionEventHandler() {
IgnitionEventHandler ignitionEventHandler = new IgnitionEventHandler(new TestIdentityManager());
Position position = new Position();
position.set(Position.KEY_IGNITION, true);
position.setValid(true);
Map<Event, Position> events = ignitionEventHandler.analyzePosition(position);
assertNull(events);
}
use of org.traccar.TestIdentityManager in project traccar by tananaev.
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(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);
trips = ReportUtils.detectTripsAndStops(new TestIdentityManager(), null, 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(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());
}
use of org.traccar.TestIdentityManager in project traccar by tananaev.
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(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:09:00.000"), itemTrip.getEndTime());
assertEquals(420000, itemTrip.getDuration());
assertEquals(32.4, itemTrip.getAverageSpeed(), 0.01);
assertEquals(10, itemTrip.getMaxSpeed(), 0.01);
assertEquals(7000, 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:09:00.000"), itemStop.getStartTime());
assertEquals(date("2016-01-01 00:11:00.000"), itemStop.getEndTime());
assertEquals(120000, itemStop.getDuration());
}
use of org.traccar.TestIdentityManager in project traccar by tananaev.
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(new TestIdentityManager(), null, 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(4.86, itemTrip.getAverageSpeed(), 0.01);
assertEquals(7, itemTrip.getMaxSpeed(), 0.01);
assertEquals(600, itemTrip.getDistance(), 0.01);
Collection<StopReport> stops = ReportUtils.detectTripsAndStops(new TestIdentityManager(), null, 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());
}
use of org.traccar.TestIdentityManager in project traccar by tananaev.
the class ReportUtilsTest method testDetectStopsOnly.
@Test
public void testDetectStopsOnly() throws ParseException {
Collection<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", 1, 0), position("2016-01-01 00:03:00.000", 0, 0), 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, 900000, false, false, 0.01);
Collection<StopReport> result = ReportUtils.detectTripsAndStops(new TestIdentityManager(), null, data, tripsConfig, false, StopReport.class);
assertNotNull(result);
assertFalse(result.isEmpty());
StopReport itemStop = result.iterator().next();
assertEquals(date("2016-01-01 00:00:00.000"), itemStop.getStartTime());
assertEquals(date("2016-01-01 00:05:00.000"), itemStop.getEndTime());
assertEquals(300000, itemStop.getDuration());
}
Aggregations