mirror of
https://github.com/zvx-echo6/recon.git
synced 2026-05-20 14:44:54 +02:00
fix(navi): address book prefix+boundary match for longer queries
lookup() previously did exact-alias-only matching, so "214 north st
filer" missed the home entry with alias "214 north st". Extend to
match when the query begins with an alias followed by a word
boundary, and when an alias appears as a contiguous token sequence
inside the query. Short aliases ("home") keep matching exactly and
also match with trailing text.
Fixes the UX case where typing a known full address falls through
to Netsyms instead of short-circuiting to address_book.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
dfab388769
commit
a14501347b
2 changed files with 92 additions and 30 deletions
|
|
@ -9,6 +9,7 @@ sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|||
from lib import address_book
|
||||
|
||||
TESTS = [
|
||||
# ── Existing tests ──
|
||||
("lookup('home') → exact",
|
||||
lambda: address_book.lookup("home"),
|
||||
lambda r: r is not None and r['confidence'] == 'exact' and r['id'] == 'home'),
|
||||
|
|
@ -32,6 +33,39 @@ TESTS = [
|
|||
("list_all() → 1 entry",
|
||||
lambda: address_book.list_all(),
|
||||
lambda r: isinstance(r, list) and len(r) == 1 and r[0]['id'] == 'home'),
|
||||
|
||||
# ── New prefix+boundary tests ──
|
||||
("lookup('214 north st filer') → exact (query starts with alias)",
|
||||
lambda: address_book.lookup("214 north st filer"),
|
||||
lambda r: r is not None and r['confidence'] == 'exact' and r['id'] == 'home'),
|
||||
|
||||
("lookup('214 North St Filer ID') → exact (case + trailing state)",
|
||||
lambda: address_book.lookup("214 North St Filer ID"),
|
||||
lambda r: r is not None and r['confidence'] == 'exact' and r['id'] == 'home'),
|
||||
|
||||
("lookup('214 north st, filer, id') → exact (commas stripped)",
|
||||
lambda: address_book.lookup("214 north st, filer, id"),
|
||||
lambda r: r is not None and r['confidence'] == 'exact' and r['id'] == 'home'),
|
||||
|
||||
("lookup('home today') → exact (short alias + trailing text)",
|
||||
lambda: address_book.lookup("home today"),
|
||||
lambda r: r is not None and r['confidence'] == 'exact' and r['id'] == 'home'),
|
||||
|
||||
("lookup('214') → partial (query is prefix of alias)",
|
||||
lambda: address_book.lookup("214"),
|
||||
lambda r: r is not None and r['confidence'] == 'partial'),
|
||||
|
||||
("lookup('214 n') → partial (partial prefix of alias)",
|
||||
lambda: address_book.lookup("214 n"),
|
||||
lambda r: r is not None and r['confidence'] == 'partial'),
|
||||
|
||||
("lookup('completely unrelated query') → None",
|
||||
lambda: address_book.lookup("completely unrelated query"),
|
||||
lambda r: r is None),
|
||||
|
||||
("lookup('214 north streets of filer') → None (no word boundary after st)",
|
||||
lambda: address_book.lookup("214 north streets of filer"),
|
||||
lambda r: r is None),
|
||||
]
|
||||
|
||||
passed = 0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue