You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
87 lines
2.6 KiB
87 lines
2.6 KiB
import pytest
|
|
|
|
from swarms.agents.i_agent import IterativeReflectiveExpansion
|
|
|
|
|
|
def test_ire_agent_initialization():
|
|
"""Test IRE agent initialization with default parameters"""
|
|
agent = IterativeReflectiveExpansion()
|
|
|
|
assert agent is not None
|
|
assert agent.agent_name == "General-Reasoning-Agent"
|
|
assert agent.max_iterations == 5
|
|
assert agent.output_type == "dict"
|
|
assert agent.agent is not None
|
|
|
|
|
|
def test_ire_agent_custom_initialization():
|
|
"""Test IRE agent initialization with custom parameters"""
|
|
agent = IterativeReflectiveExpansion(
|
|
agent_name="Custom-IRE-Agent",
|
|
description="A custom reasoning agent",
|
|
max_iterations=3,
|
|
model_name="gpt-4o",
|
|
output_type="string",
|
|
)
|
|
|
|
assert agent.agent_name == "Custom-IRE-Agent"
|
|
assert agent.description == "A custom reasoning agent"
|
|
assert agent.max_iterations == 3
|
|
assert agent.output_type == "string"
|
|
|
|
|
|
def test_ire_agent_execution():
|
|
"""Test IRE agent execution with a simple problem"""
|
|
agent = IterativeReflectiveExpansion(
|
|
agent_name="Test-IRE-Agent",
|
|
model_name="gpt-4o",
|
|
max_iterations=2,
|
|
output_type="dict",
|
|
)
|
|
|
|
# Test with a simple reasoning task
|
|
task = "What are three main benefits of renewable energy?"
|
|
result = agent.run(task)
|
|
|
|
# Result should not be None
|
|
assert result is not None
|
|
# Result should be dict or string based on output_type
|
|
assert isinstance(result, (str, dict))
|
|
|
|
|
|
def test_ire_agent_generate_hypotheses():
|
|
"""Test IRE agent hypothesis generation"""
|
|
agent = IterativeReflectiveExpansion(
|
|
agent_name="Hypothesis-Test-Agent",
|
|
max_iterations=1,
|
|
)
|
|
|
|
task = "How can we reduce carbon emissions?"
|
|
hypotheses = agent.generate_initial_hypotheses(task)
|
|
|
|
assert hypotheses is not None
|
|
assert isinstance(hypotheses, list)
|
|
assert len(hypotheses) > 0
|
|
|
|
|
|
def test_ire_agent_workflow():
|
|
"""Test complete IRE agent workflow with iterative refinement"""
|
|
agent = IterativeReflectiveExpansion(
|
|
agent_name="Workflow-Test-Agent",
|
|
description="Agent for testing complete workflow",
|
|
model_name="gpt-4o",
|
|
max_iterations=2,
|
|
output_type="dict",
|
|
)
|
|
|
|
# Test with a problem that requires iterative refinement
|
|
task = "Design an efficient public transportation system for a small city"
|
|
result = agent.run(task)
|
|
|
|
# Verify the result is valid
|
|
assert result is not None
|
|
assert isinstance(result, (str, dict))
|
|
|
|
# Check that conversation was populated during execution
|
|
assert agent.conversation is not None
|