feat: Alpha-ID-SE corpus parser with code normalization
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
use alpha_id::corpus;
|
||||
|
||||
#[test]
|
||||
fn parses_pipe_line_into_entry() {
|
||||
let line = "1|I69812|A01.0+|I39.8*|||99745|Typhus-Endokarditis";
|
||||
let e = corpus::parse_line(line).expect("should parse");
|
||||
assert_eq!(e.alpha_id, "I69812");
|
||||
assert!(e.valid);
|
||||
assert_eq!(e.icd_primary, "A01.0"); // normalized: no '+'
|
||||
assert_eq!(e.icd_star, "I39.8"); // normalized: no '*'
|
||||
assert_eq!(e.orpha, "99745");
|
||||
assert_eq!(e.text, "Typhus-Endokarditis");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn invalid_flag_is_false() {
|
||||
let line = "0|I97837|||U81!|||Bakterien mit Multiresistenz";
|
||||
let e = corpus::parse_line(line).unwrap();
|
||||
assert!(!e.valid);
|
||||
assert_eq!(e.icd_addon, "U81"); // field 5, '!' stripped
|
||||
assert_eq!(e.icd_primary, "");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn loads_full_real_corpus() {
|
||||
let entries = corpus::load("data/icd10gm2026_alphaidse_edvtxt_20250926.txt").unwrap();
|
||||
assert_eq!(entries.len(), 90_898);
|
||||
assert!(entries.iter().any(|e| e.text.contains("Diabetes mellitus Typ 2")));
|
||||
}
|
||||
Reference in New Issue
Block a user