use tokmd_analysis_types::{ComplexityHistogram, FileComplexity};
pub(crate) fn generate_complexity_histogram(
files: &[FileComplexity],
bucket_size: u32,
) -> ComplexityHistogram {
let num_buckets = 7;
let mut counts = vec![0u32; num_buckets];
for file in files {
let complexity = file.cyclomatic_complexity as u32;
let bucket = (complexity / bucket_size).min((num_buckets - 1) as u32) as usize;
counts[bucket] += 1;
}
ComplexityHistogram {
buckets: (0..num_buckets).map(|i| (i as u32) * bucket_size).collect(),
counts,
total: files.len() as u32,
}
}