focus/crates/focus-core/tests/model_tests.rs

42 lines
965 B
Rust

//! 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);
}