35 lines
1.1 KiB
C#
35 lines
1.1 KiB
C#
using MyAgent.Core;
|
|
using MyAgent.Tools;
|
|
using Xunit;
|
|
|
|
namespace MyAgent.Tests.Core;
|
|
|
|
public sealed class ExecutionPlanCompilerTests
|
|
{
|
|
[Fact]
|
|
public void Compile_CreatesParallelToolsAndDependentAnalyst()
|
|
{
|
|
var compiler = new ExecutionPlanCompiler(new SubagentRegistry(), new ToolCatalog());
|
|
var decision = new PlannerDecisionEnvelope
|
|
{
|
|
NeedsTool = true,
|
|
NeedsAnalysis = true,
|
|
Route = new RouteDecision { WebPolicy = WebPolicy.Required },
|
|
Tools =
|
|
[
|
|
new RouteToolRequest { Name = "web_search", Query = "one" },
|
|
new RouteToolRequest { Name = "web_fetch", Url = "https://example.com" }
|
|
]
|
|
};
|
|
|
|
var plan = compiler.Compile(decision);
|
|
|
|
Assert.Equal(3, plan.Nodes.Count);
|
|
Assert.Empty(plan.Nodes[0].DependsOn);
|
|
Assert.Empty(plan.Nodes[1].DependsOn);
|
|
Assert.Equal(["tool-1", "tool-2"], plan.Nodes[2].DependsOn);
|
|
Assert.Equal("analyst", plan.Nodes[2].AgentId);
|
|
Assert.Equal(2, plan.MaxConcurrency);
|
|
}
|
|
}
|