Skip to main content

blazediff_interpret/
severity.rs

1use super::types::ChangeSeverity;
2
3/// Classify severity from diff percentage.
4/// - Low: < 1%
5/// - Medium: 1% - 10%
6/// - High: > 10%
7pub fn classify_severity(diff_percentage: f64) -> ChangeSeverity {
8    if diff_percentage < 1.0 {
9        ChangeSeverity::Low
10    } else if diff_percentage <= 10.0 {
11        ChangeSeverity::Medium
12    } else {
13        ChangeSeverity::High
14    }
15}
16
17#[cfg(test)]
18mod tests {
19    use super::*;
20
21    #[test]
22    fn test_low_severity() {
23        assert_eq!(classify_severity(0.0), ChangeSeverity::Low);
24        assert_eq!(classify_severity(0.5), ChangeSeverity::Low);
25        assert_eq!(classify_severity(0.99), ChangeSeverity::Low);
26    }
27
28    #[test]
29    fn test_medium_severity() {
30        assert_eq!(classify_severity(1.0), ChangeSeverity::Medium);
31        assert_eq!(classify_severity(5.0), ChangeSeverity::Medium);
32        assert_eq!(classify_severity(10.0), ChangeSeverity::Medium);
33    }
34
35    #[test]
36    fn test_high_severity() {
37        assert_eq!(classify_severity(10.1), ChangeSeverity::High);
38        assert_eq!(classify_severity(50.0), ChangeSeverity::High);
39        assert_eq!(classify_severity(100.0), ChangeSeverity::High);
40    }
41}