42 lines
965 B
Rust
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);
|
|
}
|