diff --git a/src/main/java/no/rutebanken/anshar/data/VehicleActivities.java b/src/main/java/no/rutebanken/anshar/data/VehicleActivities.java index e50a07631..edb93b0ba 100644 --- a/src/main/java/no/rutebanken/anshar/data/VehicleActivities.java +++ b/src/main/java/no/rutebanken/anshar/data/VehicleActivities.java @@ -351,26 +351,30 @@ public Collection addAll(String datasetId, List 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();} diff --git a/src/test/java/no/rutebanken/anshar/data/VehicleActivitiesTest.java b/src/test/java/no/rutebanken/anshar/data/VehicleActivitiesTest.java index 7ba85b258..e8ec56089 100644 --- a/src/test/java/no/rutebanken/anshar/data/VehicleActivitiesTest.java +++ b/src/test/java/no/rutebanken/anshar/data/VehicleActivitiesTest.java @@ -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();