fix: accumulate mixed-content ClaML labels (full titles)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-18 16:34:19 +02:00
parent bb42f07790
commit c8ea9a5fb3
2 changed files with 13 additions and 3 deletions
+2 -3
View File
@@ -126,9 +126,8 @@ pub fn load(path: &str) -> Result<HashMap<String, IcdMeta>, AppError> {
Ok(Event::Text(txt)) => {
if in_preferred {
if let Some(m) = cur.as_mut() {
if m.description.is_empty() {
m.description = txt.unescape().unwrap_or_default().into_owned();
}
let s = txt.unescape().unwrap_or_default();
m.description.push_str(&s);
}
}
}
+11
View File
@@ -11,3 +11,14 @@ fn parses_real_claml_meta_and_titles() {
assert_eq!(a01.para295, "V"); // 3-digit non-codable
assert!(map.len() > 10_000);
}
#[test]
fn mixed_content_label_not_truncated() {
let map = alpha_id::claml::load("icd-claml/Klassifikationsdateien/icd10gm2026syst_claml_20250912.xml").unwrap();
let d51 = map.get("D51").expect("D51 present");
assert!(d51.description.contains("12"),
"mixed-content label truncated: {:?}", d51.description);
let e75 = map.get("E75.0").expect("E75.0 present");
assert!(e75.description.starts_with("GM2"),
"mixed-content label truncated: {:?}", e75.description);
}