use crate::acp::turn::{round_text_is_duplicate, stop_reason};
use crate::brain::provider::StopReason;
#[test]
fn stop_reasons_map_to_acp() {
assert_eq!(stop_reason(Some(StopReason::EndTurn)), "end_turn");
assert_eq!(stop_reason(Some(StopReason::MaxTokens)), "max_tokens");
assert_eq!(stop_reason(Some(StopReason::StopSequence)), "stop_sequence");
assert_eq!(stop_reason(Some(StopReason::ToolUse)), "end_turn");
assert_eq!(stop_reason(None), "end_turn");
}
#[test]
fn round_aggregate_repeating_streamed_text_is_a_duplicate() {
assert!(round_text_is_duplicate("ACP-OK", "ACP-OK"));
}
#[test]
fn whitespace_disagreement_is_still_a_duplicate() {
assert!(round_text_is_duplicate("ACP-OK", "ACP-OK\n"));
assert!(round_text_is_duplicate(" ACP-OK ", "ACP-OK"));
}
#[test]
fn unstreamed_or_differing_text_is_not_a_duplicate() {
assert!(!round_text_is_duplicate("", "ACP-OK"));
assert!(!round_text_is_duplicate("round one", "round two"));
assert!(!round_text_is_duplicate("ACP-OK", ""));
assert!(!round_text_is_duplicate("", "\n"));
}