use std::collections::HashSet;
use super::*;
#[test]
fn registry_h_extension_resolves_to_c() {
let registry = LanguageRegistry::new();
let extractor = registry.get_extractor("driver.h");
assert_eq!(
extractor.language_id(),
"c",
".h should resolve to C, not C++"
);
}
#[test]
fn extract_uncovered_distant_lines_produce_separate_units() {
let content = (1..=200)
.map(|i| format!("line {}", i))
.collect::<Vec<_>>()
.join("\n");
let mut changed = HashSet::new();
changed.insert(5);
changed.insert(195);
let fallback = FallbackExtractor::new();
let units = fallback.extract_units(&content, "big.txt", &changed);
assert!(
units.len() >= 2,
"Distant changed lines (5 and 195) should produce at least 2 separate \
context units, got {} unit(s) spanning lines {}-{}",
units.len(),
units.first().map(|u| u.start_line).unwrap_or(0),
units.last().map(|u| u.end_line).unwrap_or(0),
);
}