Skip to main content

mockforge_intelligence/intelligent_behavior/
config.rs

1//! Configuration for the Intelligent Mock Behavior system
2//!
3//! Re-exported from `mockforge_foundation::intelligent_behavior::config` (Phase 6 / A8).
4
5pub use mockforge_foundation::intelligent_behavior::{
6    config::{
7        BehaviorModelConfig, IntelligentBehaviorConfig, PerformanceConfig, PersonasConfig,
8        VectorStoreConfig,
9    },
10    Persona,
11};
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16    use std::collections::HashMap;
17
18    #[test]
19    fn test_config_defaults() {
20        let config = IntelligentBehaviorConfig::default();
21        assert!(!config.enabled);
22    }
23
24    #[test]
25    fn test_persona_numeric_trait_range() {
26        let persona = Persona {
27            name: "test".to_string(),
28            traits: {
29                let mut m = HashMap::new();
30                m.insert("count".to_string(), "10-20".to_string());
31                m
32            },
33        };
34        assert_eq!(persona.get_numeric_trait("count"), Some(15));
35    }
36
37    #[test]
38    fn test_persona_numeric_trait_single() {
39        let persona = Persona {
40            name: "test".to_string(),
41            traits: {
42                let mut m = HashMap::new();
43                m.insert("count".to_string(), "42".to_string());
44                m
45            },
46        };
47        assert_eq!(persona.get_numeric_trait("count"), Some(42));
48    }
49
50    #[test]
51    fn test_personas_config_active() {
52        let personas = PersonasConfig {
53            personas: vec![Persona {
54                name: "default".to_string(),
55                traits: HashMap::new(),
56            }],
57            active_persona: Some("default".to_string()),
58        };
59        assert!(personas.get_active_persona().is_some());
60    }
61}