Testing location data with edge cases, not just happy paths
An address in a well mapped city center tells you almost nothing about how your system handles a rural route, a disputed border, or a query near the poles. Test the hard cases deliberately.
An address in a well mapped city center tells you almost nothing about how your system handles a rural route, a disputed border, or a query near the poles. Test the hard cases deliberately.
An empty result is a normal, valid response, not an error, and your code needs a deliberate path for handling it.
A rural address, a landmark, or a new development without an assigned house number still geocodes correctly, just at a coarser precision than a full street address.
Near the poles, longitude lines converge to a single point and time zones become almost meaningless. Location software built around ordinary assumptions tends to behave strangely there.
Two points a short distance apart can be on different calendar days entirely, purely because of where the International Date Line happens to run between them.
Every so often, an extra second gets inserted into UTC to keep it aligned with the Earth's actual rotation. Almost no application needs to think about this directly.
A coordinate a few meters from a border can reverse geocode to either country depending on exactly how the border data is drawn. This is a genuinely hard case, not a bug.
A single address string can hide several distinct pieces of meaning, and the same abbreviation can mean different things in different countries. Parsing it correctly is harder than it looks.
Twice a year, a range of local times either does not exist or exists twice. Software that assumes every clock time is unambiguous will fail exactly then.