use axon_frontend::type_checker::resolve_effective_dialect;
#[test]
fn s1_explicit_axon_wins_regardless_of_algebraic_predicate() {
assert_eq!(resolve_effective_dialect("axon", true), "axon");
assert_eq!(resolve_effective_dialect("axon", false), "axon");
}
#[test]
fn s1_explicit_openai_wins_regardless_of_algebraic_predicate() {
assert_eq!(resolve_effective_dialect("openai", true), "openai");
assert_eq!(resolve_effective_dialect("openai", false), "openai");
}
#[test]
fn s1_explicit_kimi_wins_regardless_of_algebraic_predicate() {
assert_eq!(resolve_effective_dialect("kimi", true), "kimi");
assert_eq!(resolve_effective_dialect("kimi", false), "kimi");
}
#[test]
fn s1_explicit_glm_wins_regardless_of_algebraic_predicate() {
assert_eq!(resolve_effective_dialect("glm", true), "glm");
assert_eq!(resolve_effective_dialect("glm", false), "glm");
}
#[test]
fn s1_explicit_anthropic_wins_regardless_of_algebraic_predicate() {
assert_eq!(resolve_effective_dialect("anthropic", true), "anthropic");
assert_eq!(resolve_effective_dialect("anthropic", false), "anthropic");
}
#[test]
fn s2_q1_algebraic_default_openai() {
assert_eq!(
resolve_effective_dialect("", true),
"openai",
"33.z.k.c Q1: tool with `effects: <stream:<policy>>` defaults \
to openai dialect — LLM-streaming ecosystem expectation"
);
}
#[test]
fn s3_q1_type_annotation_default_axon() {
assert_eq!(
resolve_effective_dialect("", false),
"axon",
"33.z.k.c Q1: type-annotation-only stream flow (no tool effect) \
defaults to axon dialect — W3C named-events baseline"
);
}
#[test]
fn s4_total_function_closed_catalog() {
use axon_frontend::parser::AXONENDPOINT_TRANSPORT_DIALECTS;
let catalog: std::collections::HashSet<&str> =
AXONENDPOINT_TRANSPORT_DIALECTS.iter().copied().collect();
for explicit in ["", "axon", "openai", "kimi", "glm", "anthropic"] {
for algebraic in [false, true] {
let result = resolve_effective_dialect(explicit, algebraic);
assert!(
catalog.contains(result.as_str()),
"resolve_effective_dialect({explicit:?}, {algebraic}) \
= {result:?} — NOT in closed catalog {catalog:?}"
);
}
}
}
#[test]
fn s5_defensive_no_signal_returns_axon() {
assert_eq!(resolve_effective_dialect("", false), "axon");
}