Skip to main content

entrenar/integrity/behavioral/
assessment.rs

1//! Integrity assessment categories
2//!
3//! Provides human-readable assessment levels for behavioral integrity.
4
5/// Overall integrity assessment
6#[derive(Debug, Clone, Copy, PartialEq, Eq)]
7pub enum IntegrityAssessment {
8    /// Score >= 0.9, no critical violations
9    Excellent,
10    /// Score >= 0.7
11    Good,
12    /// Score >= 0.5
13    Fair,
14    /// Score < 0.5
15    Poor,
16    /// Has critical violations
17    Critical,
18}
19
20impl std::fmt::Display for IntegrityAssessment {
21    fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
22        match self {
23            Self::Excellent => write!(f, "Excellent"),
24            Self::Good => write!(f, "Good"),
25            Self::Fair => write!(f, "Fair"),
26            Self::Poor => write!(f, "Poor"),
27            Self::Critical => write!(f, "Critical"),
28        }
29    }
30}
31
32#[cfg(test)]
33mod tests {
34    use super::*;
35
36    #[test]
37    fn test_integrity_assessment_display_excellent() {
38        assert_eq!(IntegrityAssessment::Excellent.to_string(), "Excellent");
39    }
40
41    #[test]
42    fn test_integrity_assessment_display_good() {
43        assert_eq!(IntegrityAssessment::Good.to_string(), "Good");
44    }
45
46    #[test]
47    fn test_integrity_assessment_display_fair() {
48        assert_eq!(IntegrityAssessment::Fair.to_string(), "Fair");
49    }
50
51    #[test]
52    fn test_integrity_assessment_display_poor() {
53        assert_eq!(IntegrityAssessment::Poor.to_string(), "Poor");
54    }
55
56    #[test]
57    fn test_integrity_assessment_display_critical() {
58        assert_eq!(IntegrityAssessment::Critical.to_string(), "Critical");
59    }
60
61    #[test]
62    fn test_integrity_assessment_clone() {
63        let assessment = IntegrityAssessment::Excellent;
64        let cloned = assessment;
65        assert_eq!(assessment, cloned);
66    }
67
68    #[test]
69    fn test_integrity_assessment_eq() {
70        assert_eq!(IntegrityAssessment::Excellent, IntegrityAssessment::Excellent);
71        assert_ne!(IntegrityAssessment::Excellent, IntegrityAssessment::Good);
72        assert_ne!(IntegrityAssessment::Good, IntegrityAssessment::Fair);
73        assert_ne!(IntegrityAssessment::Fair, IntegrityAssessment::Poor);
74        assert_ne!(IntegrityAssessment::Poor, IntegrityAssessment::Critical);
75    }
76
77    #[test]
78    fn test_integrity_assessment_debug() {
79        assert_eq!(format!("{:?}", IntegrityAssessment::Excellent), "Excellent");
80        assert_eq!(format!("{:?}", IntegrityAssessment::Good), "Good");
81        assert_eq!(format!("{:?}", IntegrityAssessment::Fair), "Fair");
82        assert_eq!(format!("{:?}", IntegrityAssessment::Poor), "Poor");
83        assert_eq!(format!("{:?}", IntegrityAssessment::Critical), "Critical");
84    }
85}