use super::*;
#[test]
fn test_model_window_known_model_returns_its_window() {
assert_eq!(model_window("claude-sonnet-4-5"), Some(200_000));
}
#[test]
fn test_model_window_is_case_insensitive() {
assert_eq!(
model_window("Claude-Sonnet-4-5"),
model_window("claude-sonnet-4-5")
);
}
#[test]
fn test_model_window_unknown_model_returns_none() {
assert_eq!(model_window("some-model-that-does-not-exist-2099"), None);
}
#[test]
fn test_suggest_token_budget_known_model_subtracts_reserve() {
let suggestion = suggest_token_budget("claude-sonnet-4-5", 10_000);
assert_eq!(suggestion.window, Some(200_000));
assert_eq!(suggestion.suggested_budget, Some(190_000));
assert!(suggestion.source.contains("static table"));
}
#[test]
fn test_suggest_token_budget_zero_reserve_by_default() {
let suggestion = suggest_token_budget("claude-sonnet-4-5", 0);
assert_eq!(suggestion.suggested_budget, suggestion.window);
}
#[test]
fn test_suggest_token_budget_reserve_saturates_at_zero() {
let suggestion = suggest_token_budget("claude-sonnet-4-5", 10_000_000);
assert_eq!(suggestion.suggested_budget, Some(0));
}
#[test]
fn test_suggest_token_budget_unknown_model_returns_nulls_not_a_guess() {
let suggestion = suggest_token_budget("some-model-that-does-not-exist-2099", 0);
assert_eq!(suggestion.window, None);
assert_eq!(suggestion.suggested_budget, None);
assert!(suggestion.source.contains("static table"));
}