using System;
using System.Threading.Tasks;
using CtrEditor.HydraulicSimulator.Tests;
namespace CtrEditor.HydraulicSimulator.TSNet
{
///
/// Programa de prueba para la integración TSNet
/// Se puede ejecutar independientemente para verificar la funcionalidad
///
public class TSNetTestProgram
{
///
/// Punto de entrada para las pruebas TSNet
///
public static async Task Main(string[] args)
{
try
{
Console.WriteLine("CtrEditor - TSNet Integration Test");
Console.WriteLine("==================================");
// Ejecutar todos los tests
var success = await TSNetIntegrationTest.RunAllTestsAsync();
if (success)
{
Console.WriteLine("\n🎉 All tests passed! TSNet integration is ready.");
// Test adicional de generación INP
Console.WriteLine("\nRunning additional INP generation test...");
var inpSuccess = await TSNetIntegrationTest.TestINPGeneration();
if (inpSuccess)
{
Console.WriteLine("\n🚀 TSNet integration fully verified!");
return 0; // Success
}
else
{
Console.WriteLine("\n⚠️ INP generation test failed");
return 1; // Partial failure
}
}
else
{
Console.WriteLine("\n❌ Integration tests failed. Check configuration.");
return 2; // Failure
}
}
catch (Exception ex)
{
Console.WriteLine($"\n💥 Unexpected error: {ex.Message}");
Console.WriteLine($"Stack trace: {ex.StackTrace}");
return 3; // Error
}
}
///
/// Método para ejecutar desde CtrEditor como prueba rápida
///
public static async Task RunQuickTestAsync()
{
try
{
Console.WriteLine("TSNet Quick Test Starting...");
var result = await Main(new string[0]);
switch (result)
{
case 0:
Console.WriteLine("✅ TSNet integration working perfectly!");
break;
case 1:
Console.WriteLine("⚠️ TSNet integration partially working");
break;
default:
Console.WriteLine("❌ TSNet integration has issues");
break;
}
}
catch (Exception ex)
{
Console.WriteLine($"Quick test error: {ex.Message}");
}
}
}
}