Spaces:
Sleeping
Sleeping
#!/usr/bin/env python3 | |
""" | |
Test script for DAG integration in DART-LLM-Multi-Model | |
""" | |
from dag_visualizer import DAGVisualizer | |
from json_processor import JsonProcessor | |
import json | |
def test_dag_integration(): | |
"""Test the DAG integration with sample task data""" | |
print("Testing DAG integration...") | |
# Sample response with task data (similar to what the model might generate) | |
sample_response = """ | |
Based on your command, here are the robot tasks: | |
{ | |
"tasks": [ | |
{ | |
"task": "move_excavator_to_soil_area", | |
"instruction_function": { | |
"name": "move_to_position", | |
"robot_ids": ["robot_excavator_01"], | |
"dependencies": [], | |
"object_keywords": ["soil_area_1"] | |
} | |
}, | |
{ | |
"task": "excavate_soil", | |
"instruction_function": { | |
"name": "excavate_material", | |
"robot_ids": ["robot_excavator_01"], | |
"dependencies": ["move_excavator_to_soil_area"], | |
"object_keywords": ["soil"] | |
} | |
}, | |
{ | |
"task": "move_dump_truck", | |
"instruction_function": { | |
"name": "move_to_position", | |
"robot_ids": ["robot_dump_truck_01"], | |
"dependencies": [], | |
"object_keywords": ["soil_area_1"] | |
} | |
}, | |
{ | |
"task": "load_soil_to_truck", | |
"instruction_function": { | |
"name": "transfer_material", | |
"robot_ids": ["robot_excavator_01", "robot_dump_truck_01"], | |
"dependencies": ["excavate_soil", "move_dump_truck"], | |
"object_keywords": ["soil"] | |
} | |
}, | |
{ | |
"task": "transport_to_dump_site", | |
"instruction_function": { | |
"name": "move_to_position", | |
"robot_ids": ["robot_dump_truck_01"], | |
"dependencies": ["load_soil_to_truck"], | |
"object_keywords": ["dump_site"] | |
} | |
} | |
] | |
} | |
""" | |
# Test JSON processing | |
processor = JsonProcessor() | |
print("1. Testing JSON processing...") | |
processed_json = processor.process_response(sample_response) | |
if processed_json: | |
print("β JSON processing successful") | |
print(f" Found {len(processed_json['tasks'])} tasks") | |
else: | |
print("β JSON processing failed") | |
return False | |
# Test DAG visualization | |
print("2. Testing DAG visualization...") | |
visualizer = DAGVisualizer() | |
try: | |
dag_image_path = visualizer.create_dag_visualization( | |
processed_json, | |
title="Test Robot Task Dependency Graph" | |
) | |
if dag_image_path: | |
print(f"β DAG visualization created: {dag_image_path}") | |
return True | |
else: | |
print("β DAG visualization failed") | |
return False | |
except Exception as e: | |
print(f"β DAG visualization error: {e}") | |
return False | |
def test_simplified_dag(): | |
"""Test simplified DAG visualization""" | |
print("\n3. Testing simplified DAG...") | |
simple_task_data = { | |
"tasks": [ | |
{ | |
"task": "move_robot", | |
"instruction_function": { | |
"name": "move_to_position", | |
"robot_ids": ["robot_01"], | |
"dependencies": [], | |
"object_keywords": ["target_area"] | |
} | |
}, | |
{ | |
"task": "perform_operation", | |
"instruction_function": { | |
"name": "excavate", | |
"robot_ids": ["robot_01"], | |
"dependencies": ["move_robot"], | |
"object_keywords": ["soil"] | |
} | |
} | |
] | |
} | |
visualizer = DAGVisualizer() | |
try: | |
dag_image_path = visualizer.create_simplified_dag_visualization( | |
simple_task_data, | |
title="Simplified Test DAG" | |
) | |
if dag_image_path: | |
print(f"β Simplified DAG visualization created: {dag_image_path}") | |
return True | |
else: | |
print("β Simplified DAG visualization failed") | |
return False | |
except Exception as e: | |
print(f"β Simplified DAG visualization error: {e}") | |
return False | |
def main(): | |
"""Run all tests""" | |
print("=" * 60) | |
print("DART-LLM-Multi-Model DAG Integration Test") | |
print("=" * 60) | |
success_count = 0 | |
total_tests = 2 | |
if test_dag_integration(): | |
success_count += 1 | |
if test_simplified_dag(): | |
success_count += 1 | |
print("\n" + "=" * 60) | |
print(f"Test Results: {success_count}/{total_tests} passed") | |
if success_count == total_tests: | |
print("π All DAG integration tests passed!") | |
return True | |
else: | |
print("β Some tests failed!") | |
return False | |
if __name__ == "__main__": | |
success = main() | |
exit(0 if success else 1) |