Files
alpha-id/tests/lexical_tests.rs

24 lines
791 B
Rust

use alpha_id::lexical::LexicalIndex;
use alpha_id::model::AlphaIdEntry;
fn entry(id: &str, code: &str, text: &str) -> AlphaIdEntry {
AlphaIdEntry {
alpha_id: id.into(), valid: true,
icd_primary: code.into(), icd_star: "".into(), icd_addon: "".into(),
icd_primary2: "".into(), orpha: "".into(), text: text.into(),
}
}
#[test]
fn finds_entry_by_fuzzy_query() {
let entries = vec![
entry("I1", "E11.9", "Diabetes mellitus Typ 2"),
entry("I2", "I10.90", "Arterielle essentielle Hypertonie"),
];
let idx = LexicalIndex::build_in_ram(&entries).unwrap();
let hits = idx.search("diabetes typ 2", 5).unwrap();
assert!(!hits.is_empty());
assert_eq!(hits[0].0, 0); // entry index 0
assert!(hits[0].1 > 0.0); // bm25 score
}