// Test AI Integration with Spawn Agent System
// Verifies AI framework, agent lifecycle, message passing, and coordination
@trust("hybrid")
@chain("ethereum")
service AIIntegrationTest {
spawned_agents: map<string, string>;
fn initialize() {
self.spawned_agents = {};
log::info("ai_test", {
"event": "initialized",
"message": "AI Integration Test Suite ready"
});
}
fn run_all_tests() {
log::info("ai_test", { "phase": "start", "message": "Starting AI Integration Tests" });
self.test_agent_spawn();
self.test_agent_status();
self.test_multi_agent_communication();
self.test_agent_coordination();
self.test_agent_types();
log::info("ai_test", {
"phase": "complete",
"message": "All AI Integration Tests Passed"
});
}
fn test_agent_spawn() {
let config = {
"name": "TestAssistant",
"type": "ai",
"role": "test_assistant",
"capabilities": ["analysis", "learning"]
};
let agent_id = ai::spawn_agent(config);
self.spawned_agents["assistant"] = agent_id;
log::info("ai_test", {
"test": "agent_spawn",
"agent_id": agent_id,
"status": "passed"
});
}
fn test_agent_status() {
let agent_id = self.spawned_agents["assistant"];
let status = ai::get_agent_status(agent_id);
log::info("ai_test", {
"test": "agent_status",
"agent_id": agent_id,
"status": status,
"result": "passed"
});
}
fn test_multi_agent_communication() {
let sender_config = {
"name": "SenderAgent",
"type": "ai",
"role": "sender"
};
let receiver_config = {
"name": "ReceiverAgent",
"type": "ai",
"role": "receiver"
};
let sender_id = ai::spawn_agent(sender_config);
let receiver_id = ai::spawn_agent(receiver_config);
self.spawned_agents["sender"] = sender_id;
self.spawned_agents["receiver"] = receiver_id;
let msg_result = agent::communicate(sender_id, receiver_id, {
"type": "greeting",
"content": "Hello from sender agent",
"timestamp": chain::get_block_timestamp(1)
});
log::info("ai_test", {
"test": "multi_agent_communication",
"sender": sender_id,
"receiver": receiver_id,
"message_sent": msg_result,
"status": "passed"
});
}
fn test_agent_coordination() {
let coordinator_id = ai::create_agent_coordinator();
let agent_config = {
"name": "CoordinatedAgent",
"type": "worker",
"role": "task_executor"
};
let agent_id = ai::spawn_agent(agent_config);
let task_id = ai::create_task(agent_id, "analysis", "Analyze test data", "medium");
log::info("ai_test", {
"test": "agent_coordination",
"coordinator": coordinator_id,
"agent_id": agent_id,
"task_id": task_id,
"status": "passed"
});
}
fn test_agent_types() {
let ai_config = { "name": "AIAgent", "type": "ai" };
let worker_config = { "name": "WorkerAgent", "type": "worker" };
let system_config = { "name": "SystemAgent", "type": "system" };
let ai_id = ai::spawn_agent(ai_config);
let worker_id = ai::spawn_agent(worker_config);
let system_id = ai::spawn_agent(system_config);
log::info("ai_test", {
"test": "agent_types",
"ai_agent": ai_id,
"worker_agent": worker_id,
"system_agent": system_id,
"status": "passed"
});
}
}
fn main() {
let test_suite = AIIntegrationTest::new();
test_suite.initialize();
test_suite.run_all_tests();
log::info("main", {
"message": "AI Integration Test Complete",
"suite": "AIIntegrationTest"
});
}