//! model 模块(领域类型)的集成测试。 //! Integration tests for the model module (domain types). use focus_core::model::{Message, StopReason, Usage}; #[test] fn stop_reason_roundtrip() { for r in [ StopReason::Stop, StopReason::Length, StopReason::ToolUse, StopReason::Error, StopReason::Aborted, ] { assert_eq!(StopReason::parse_str(r.as_str()), Some(r)); } assert_eq!(StopReason::parse_str("bogus"), None); } #[test] fn fatal_reasons() { assert!(StopReason::Error.is_fatal()); assert!(StopReason::Aborted.is_fatal()); assert!(!StopReason::Stop.is_fatal()); assert!(!StopReason::ToolUse.is_fatal()); } #[test] fn message_role() { assert_eq!(Message::user_text("hi").role(), "user"); } #[test] fn usage_total() { let u = Usage { input_tokens: 10, output_tokens: 5, ..Default::default() }; assert_eq!(u.total_tokens(), 15); }