Calc/test_simple_engine.py

72 lines
2.2 KiB
Python

#!/usr/bin/env python3
"""
Prueba simple del motor PureAlgebraicEngine para verificar la API
"""
import sys
from pathlib import Path
def test_engine():
"""Prueba básica del motor"""
print("🧪 Probando PureAlgebraicEngine...")
try:
# Importar el motor
from main_evaluation_puro import PureAlgebraicEngine
print(" ✅ Import exitoso")
# Crear instancia
engine = PureAlgebraicEngine()
print(" ✅ Instancia creada")
# Pruebas básicas
test_cases = [
"2 + 2",
"x**2 + y**2",
"solve(x**2 - 4, x)",
"# Esto es un comentario",
"a = 5*x + 3",
"x**2 + y**2 = r**2"
]
print("\n📝 Ejecutando casos de prueba:")
for i, test_case in enumerate(test_cases, 1):
try:
result = engine.evaluate_line(test_case)
status = "" if result.success else ""
output = result.output if result.success else result.error_message
print(f" {i}. {status} '{test_case}'{output}")
# Información adicional del resultado
if result.success:
print(f" Tipo: {result.result_type}, Asignación: {result.is_assignment}, Ecuación: {result.is_equation}")
except Exception as e:
print(f" {i}. ❌ '{test_case}' → ERROR: {e}")
print("\n✅ Pruebas del motor completadas")
return True
except Exception as e:
print(f"❌ Error en prueba del motor: {e}")
import traceback
traceback.print_exc()
return False
def main():
"""Función principal"""
print("🚀 Prueba Simple del Motor Algebraico")
print("=" * 50)
success = test_engine()
if success:
print("\n🎉 ¡Motor funcionando correctamente!")
print(" Puedes proceder a usar la aplicación PySide6")
else:
print("\n⚠️ Problemas detectados en el motor")
print(" Revisa los errores antes de usar la aplicación")
return 0 if success else 1
if __name__ == "__main__":
sys.exit(main())