Qagents-workflows / tests /quick_test.py
Deminiko
Initial commit: QAgents-workflos multi-agent quantum circuit optimization system
1bb4678
# Path: QAgents-workflos/tests/quick_test.py
# Quick test to compare modes on easy problems only
"""Quick test for mode comparison."""
import sys
import os
import time
from pathlib import Path
sys.path.insert(0, str(Path(__file__).parent.parent.absolute()))
api_key = "$env:GOOGLE_API_KEY"
os.environ['GOOGLE_API_KEY'] = api_key
from tests.test_problems import EASY_PROBLEMS, VERY_HARD_PROBLEMS
from orchestrators import create_orchestrator
from orchestrators.quasar_orchestrator import QuasarOrchestrator, HybridOrchestrator
from config import set_api_key
set_api_key(api_key)
def test_problem(problem, mode):
"""Test a single problem."""
start = time.perf_counter()
try:
if mode == "quasar":
orch = QuasarOrchestrator(max_iterations=3)
result = orch.run(problem.prompt, problem.expected.min_qubits)
success = result.success
qasm = result.final_qasm
llm = result.llm_calls
elif mode == "hybrid":
orch = HybridOrchestrator()
result = orch.run(problem.prompt, problem.expected.min_qubits)
success = result.success
qasm = result.final_qasm
llm = result.llm_calls
else:
orch = create_orchestrator(mode)
result = orch.run(problem.prompt)
success = result.success
qasm = result.final_output
llm = len([k for k in result.agent_results.keys()]) if result.agent_results else 1
elapsed = (time.perf_counter() - start) * 1000
return {"success": success, "time_ms": elapsed, "llm": llm, "qasm": qasm[:100] if qasm else None}
except Exception as e:
elapsed = (time.perf_counter() - start) * 1000
return {"success": False, "time_ms": elapsed, "llm": 0, "error": str(e)[:50]}
print("=" * 80)
print("QUICK MODE COMPARISON TEST")
print("=" * 80)
# Test only first easy and first very_hard problem with all modes
test_cases = [
("EASY", EASY_PROBLEMS[0]),
("VERY_HARD", VERY_HARD_PROBLEMS[0])
]
modes = ["naked", "quasar", "hybrid"] # Skip slow modes
for diff, problem in test_cases:
print(f"\n{diff}: {problem.name}")
print("-" * 60)
for mode in modes:
print(f" {mode}...", end=" ", flush=True)
result = test_problem(problem, mode)
status = "✅" if result["success"] else "❌"
time_str = f"{result['time_ms']:.0f}ms"
llm_str = f"LLM:{result.get('llm', '?')}"
print(f"{status} {time_str} {llm_str}")
if not result["success"] and "error" in result:
print(f" Error: {result['error']}")
time.sleep(5) # Rate limiting
print("\n" + "=" * 80)
print("DONE")