Skip to content

Commit

Permalink
fix DefaultFinder auto nearby search
Browse files Browse the repository at this point in the history
  • Loading branch information
ringsaturn committed Apr 12, 2024
1 parent 1fa5059 commit df80438
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 6 deletions.
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ license = "MIT"
name = "tzf-rs"
readme = "README.md"
repository = "https://github.com/ringsaturn/tzf-rs"
version = "0.4.7"
version = "0.4.8"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

Expand Down
18 changes: 14 additions & 4 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -385,11 +385,21 @@ impl DefaultFinder {
/// ```
#[must_use]
pub fn get_tz_name(&self, lng: f64, lat: f64) -> &str {
let fuzzy_name = self.fuzzy_finder.get_tz_name(lng, lat);
if !fuzzy_name.is_empty() {
return fuzzy_name;
for &dx in &[0.0, -0.001, 0.001] {
for &dy in &[0.0, -0.001, 0.001] {
let dlng = dx + lng;
let dlat = dy + lat;
let fuzzy_name = self.fuzzy_finder.get_tz_name(dlng, dlat);
if !fuzzy_name.is_empty() {
return fuzzy_name;
}
let name = self.finder.get_tz_name(dlng, dlat);
if !name.is_empty() {
return name;
}
}
}
self.finder.get_tz_name(lng, lat)
""
}

/// ```rust
Expand Down
4 changes: 4 additions & 0 deletions tests/default.rs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,10 @@ mod tests {
assert_eq!(finder.get_tz_name(-4.5706, 46.2747), "Etc/GMT");
assert_eq!(finder.get_tz_name(-73.7729, 38.3530), "Etc/GMT+5");
assert_eq!(finder.get_tz_name(114.1594, 22.3173), "Asia/Hong_Kong");

// Shenzhen actually, but we used a simplified polygon data.
assert_eq!(finder.get_tz_name(114.0668, 22.5153), "Asia/Hong_Kong");

assert_eq!(
finder.get_tz_name(12.452_899_553_691_935, 41.903_699_636_969_634),
"Europe/Vatican"
Expand Down

0 comments on commit df80438

Please sign in to comment.