Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 11 additions & 7 deletions src/main/java/no/rutebanken/anshar/data/VehicleActivities.java
Original file line number Diff line number Diff line change
Expand Up @@ -351,26 +351,30 @@ public Collection<VehicleActivityStructure> addAll(String datasetId, List<Vehicl

if (isUpdated(existingChecksum, currentChecksum)) {

boolean keep = (existing == null); //No existing data i.e. keep
boolean isNewer = (existing == null); //No existing data i.e. keep

if (existing != null &&
(activity.getRecordedAtTime() != null && existing.getRecordedAtTime() != null)) {
//Newer data has already been processed
keep = activity.getRecordedAtTime().isAfter(existing.getRecordedAtTime());
isNewer = activity.getRecordedAtTime().isAfter(existing.getRecordedAtTime());
}

long expiration = getExpiration(activity);
timingTracer.mark("getExpiration");

boolean locationValid = isLocationValid(activity);
timingTracer.mark("isLocationValid");

resolveContentMetrics(activity, expiration);
if (expiration > 0 && keep) {
if (expiration > 0 && isNewer && locationValid) {
changes.put(key, activity);
} else {
}
if (!(expiration > 0 && isNewer)) {
outdatedCounter.incrementAndGet();
}

if (!isLocationValid(activity)) {invalidLocationCounter.incrementAndGet();}
timingTracer.mark("isLocationValid");
if (!locationValid) {
invalidLocationCounter.incrementAndGet();
}

// Skip this check for now
if (!isActivityMeaningful(activity)) {notMeaningfulCounter.incrementAndGet();}
Expand Down
49 changes: 49 additions & 0 deletions src/test/java/no/rutebanken/anshar/data/VehicleActivitiesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,55 @@ public void testNullDatedVehicleJourneyRefFilter() {

}

@Test
public void testZeroZeroLocationFilter() {
int previousSize = vehicleActivities.getAll().size();
VehicleActivityStructure element = createVehicleActivityStructure(
ZonedDateTime.now().plusMinutes(1), UUID.randomUUID().toString()
);
element.getMonitoredVehicleJourney().getVehicleLocation().setLatitude(BigDecimal.ZERO);
element.getMonitoredVehicleJourney().getVehicleLocation().setLongitude(BigDecimal.ZERO);

vehicleActivities.add("test", element);
assertEquals(previousSize, vehicleActivities.getAll().size(), "Vehicle with [0, 0]-location was added");
}

@Test
public void testZeroLatitudeFilter() {
int previousSize = vehicleActivities.getAll().size();
VehicleActivityStructure element = createVehicleActivityStructure(
ZonedDateTime.now().plusMinutes(1), UUID.randomUUID().toString()
);
element.getMonitoredVehicleJourney().getVehicleLocation().setLatitude(BigDecimal.ZERO);

vehicleActivities.add("test", element);
assertEquals(previousSize, vehicleActivities.getAll().size(), "Vehicle with latitude=0 was added");
}

@Test
public void testZeroLongitudeFilter() {
int previousSize = vehicleActivities.getAll().size();
VehicleActivityStructure element = createVehicleActivityStructure(
ZonedDateTime.now().plusMinutes(1), UUID.randomUUID().toString()
);
element.getMonitoredVehicleJourney().getVehicleLocation().setLongitude(BigDecimal.ZERO);

vehicleActivities.add("test", element);
assertEquals(previousSize, vehicleActivities.getAll().size(), "Vehicle with longitude=0 was added");
}

@Test
public void testNullVehicleLocationFilter() {
int previousSize = vehicleActivities.getAll().size();
VehicleActivityStructure element = createVehicleActivityStructure(
ZonedDateTime.now().plusMinutes(1), UUID.randomUUID().toString()
);
element.getMonitoredVehicleJourney().setVehicleLocation(null);

vehicleActivities.add("test", element);
assertEquals(previousSize, vehicleActivities.getAll().size(), "Vehicle with null location was added");
}

@Test
public void testUpdatedVehicle() {
int previousSize = vehicleActivities.getAll().size();
Expand Down