zeek/testing/btest/bifs/haversine_distance.zeek

30 lines
888 B
Text

#
# @TEST-EXEC: zeek -b %INPUT >out
# @TEST-EXEC: btest-diff out
function test(la1: double, lo1: double, la2: double, lo2: double)
{
print fmt("%.4e", haversine_distance(la1, lo1, la2, lo2));
}
event zeek_init()
{
# Test two arbitrary locations.
test(37.866798, -122.253601, 48.25, 11.65);
# Swap the order of locations to verify the distance doesn't change.
test(48.25, 11.65, 37.866798, -122.253601);
# Distance of one second of latitude (crossing the equator).
test(.0001388889, 0, -.0001388889, 0);
# Distance of one second of longitude (crossing the prime meridian).
test(38, 0.000138999, 38, -0.000138999);
# Distance of one minute of longitude (test extreme longitude values).
test(38, 180, 38, -179.98333);
# Two locations on opposite ends of the Earth.
test(45, -90, -45, 90);
# Same, but verify that extreme latitude values work.
test(90, 0, -90, 0);
}