Files
llm-testbench/internal/tests/agents_test.go
T
lukaszraczylo 053eeab1bb test(catalog): expand agents to 10 tests per subcategory
Bring agents/tool-routing and agents/planning up to 10 tests each.
Add a new agents/delegation subcategory with 10 tests. Split
agents.go into agents_toolrouting.go, agents_planning.go, and
agents_delegation.go, each with a sibling _test.go file, and reduce
agents.go to a thin registration aggregator.

Every new prompt is self-contained and forces a JSON or number-only
answer. Set-valued answers use JSONStringSet or a custom stage-set
evaluator so no arbitrary order is required. Dependency-graph fixtures
that force a single valid order are verified unique in the unit tests
by brute-force enumeration over every permutation. Numeric ground
truth is derived by running the same algorithm the fixture describes,
then cross-checked against an independently hand-derived value.

MaxTokens is omitted on all 28 new tests per the expansion rules; the
2 existing tests keep their prior value unchanged.
2026-08-17 01:47:36 +01:00

45 lines
1.3 KiB
Go

package tests
import (
"testing"
"github.com/lukaszraczylo/llm-testbench/internal/testkit"
)
// TestRegisterAgentsTests_Wiring checks registerAgentsTests wires up all
// three agents subcategories - tool-routing, planning, delegation - with
// 10 tests each, all categorized "agents", and no duplicate IDs across the
// three sibling files (testkit.Registry.Register panics on a duplicate ID,
// which would fail this test outright).
func TestRegisterAgentsTests_Wiring(t *testing.T) {
r := testkit.NewRegistry()
registerAgentsTests(r)
const wantTotal = 30
if r.Len() != wantTotal {
t.Fatalf("registerAgentsTests: registry has %d tests, want %d", r.Len(), wantTotal)
}
counts := map[string]int{}
for _, tc := range r.All() {
if tc.Category != "agents" {
t.Errorf("test %q: Category = %q, want %q", tc.ID, tc.Category, "agents")
}
if tc.Prompt == "" {
t.Errorf("test %q: Prompt is empty", tc.ID)
}
if tc.Eval == nil {
t.Errorf("test %q: Eval is nil", tc.ID)
}
if tc.Description == "" {
t.Errorf("test %q: Description is empty", tc.ID)
}
counts[tc.Subcategory]++
}
for _, sub := range []string{"tool-routing", "planning", "delegation"} {
if counts[sub] != 10 {
t.Errorf("subcategory %q: got %d tests, want 10", sub, counts[sub])
}
}
}