#[cfg(test)]
mod tests {
use tzf_rs::{DefaultFinder, Finder};
#[test]
fn nautical_border_is_not_a_gap() {
let finder = DefaultFinder::new();
for (lng, lat) in [(7.5, 54.5), (-22.5, 54.5)] {
assert!(
!finder.get_tz_name(lng, lat).is_empty(),
"get_tz_name({lng}, {lat}) is empty"
);
assert_eq!(
finder.get_tz_names(lng, lat).len(),
2,
"get_tz_names({lng}, {lat}) = {:?}",
finder.get_tz_names(lng, lat)
);
}
assert_eq!(finder.get_tz_names(7.5, 54.5), ["Etc/GMT-1", "Etc/GMT"]);
assert_eq!(finder.get_tz_names(-22.5, 54.5), ["Etc/GMT+1", "Etc/GMT+2"]);
}
#[test]
fn border_neighbours_still_resolve_to_one_side_each() {
let finder = DefaultFinder::new();
assert_eq!(finder.get_tz_name(7.4999, 54.5), "Etc/GMT");
assert_eq!(finder.get_tz_name(7.5001, 54.5), "Etc/GMT-1");
assert_eq!(finder.get_tz_name(-22.4999, 54.5), "Etc/GMT+1");
assert_eq!(finder.get_tz_name(-22.5001, 54.5), "Etc/GMT+2");
}
#[test]
fn global_grid_has_no_holes() {
let finder = Finder::new();
let mut empty: Vec<(f64, f64)> = vec![];
let mut lng = -179.5;
while lng <= 179.5 {
let mut lat = -89.5;
while lat <= 89.5 {
if finder.get_tz_name(lng, lat).is_empty() {
empty.push((lng, lat));
}
lat += 1.0;
}
lng += 1.0;
}
assert!(
empty.is_empty(),
"{} empty results, first few: {:?}",
empty.len(),
&empty[..empty.len().min(10)]
);
}
}