Small fixes
This commit is contained in:
parent
54fbcb1ea6
commit
083f8a982e
24 changed files with 1505 additions and 79 deletions
|
|
@ -37,7 +37,7 @@ fn tokenize_address_text(text: &str) -> Vec<String> {
|
|||
for ch in text.chars() {
|
||||
if ch.is_ascii_alphanumeric() {
|
||||
current.push(ch.to_ascii_lowercase());
|
||||
} else if matches!(ch, '\'' | '’' | '`') {
|
||||
} else if crate::data::is_apostrophe(ch) {
|
||||
continue;
|
||||
} else if !current.is_empty() {
|
||||
tokens.push(std::mem::take(&mut current));
|
||||
|
|
@ -784,6 +784,24 @@ impl PropertyData {
|
|||
mod tests {
|
||||
use super::*;
|
||||
|
||||
#[test]
|
||||
fn tokenize_address_text_elides_every_apostrophe_variant() {
|
||||
// The query and the index both run through this tokenizer, so any apostrophe glyph must
|
||||
// join the word ("O'Brien" -> "obrien") rather than split it; otherwise the same address
|
||||
// tokenizes differently depending on which quote glyph was typed.
|
||||
let expected = vec!["obrien".to_string(), "road".to_string()];
|
||||
for addr in [
|
||||
"O'Brien Road", // U+0027 straight
|
||||
"O’Brien Road", // U+2019 right single quote
|
||||
"O‘Brien Road", // U+2018 left single quote
|
||||
"O´Brien Road", // U+00B4 acute accent
|
||||
"OʼBrien Road", // U+02BC modifier letter apostrophe
|
||||
"O′Brien Road", // U+2032 prime
|
||||
] {
|
||||
assert_eq!(tokenize_address_text(addr), expected, "failed for {addr:?}");
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn full_postcode_detection_accepts_common_formats() {
|
||||
assert!(is_full_postcode_compact("SW1A1AA"));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue