fix: accumulate mixed-content ClaML labels (full titles)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-3
@@ -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,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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user