update polygon package parsing & testing
This commit is contained in:
@@ -3,10 +3,12 @@ namespace LiquidCode.Tester.Worker.Services;
|
||||
public class OutputCheckerService : IOutputCheckerService
|
||||
{
|
||||
private readonly ILogger<OutputCheckerService> _logger;
|
||||
private readonly CheckerService _checkerService;
|
||||
|
||||
public OutputCheckerService(ILogger<OutputCheckerService> logger)
|
||||
public OutputCheckerService(ILogger<OutputCheckerService> logger, CheckerService checkerService)
|
||||
{
|
||||
_logger = logger;
|
||||
_checkerService = checkerService;
|
||||
}
|
||||
|
||||
public async Task<bool> CheckOutputAsync(string actualOutput, string expectedOutputPath)
|
||||
@@ -51,4 +53,35 @@ public class OutputCheckerService : IOutputCheckerService
|
||||
|
||||
return string.Join("\n", lines);
|
||||
}
|
||||
|
||||
public async Task<bool> CheckOutputWithCheckerAsync(
|
||||
string actualOutput,
|
||||
string inputFilePath,
|
||||
string expectedOutputPath,
|
||||
string? checkerPath)
|
||||
{
|
||||
// If custom checker is available, use it
|
||||
if (!string.IsNullOrEmpty(checkerPath) && File.Exists(checkerPath))
|
||||
{
|
||||
_logger.LogDebug("Using custom checker: {CheckerPath}", checkerPath);
|
||||
|
||||
var checkerResult = await _checkerService.CheckAsync(
|
||||
checkerPath,
|
||||
inputFilePath,
|
||||
actualOutput,
|
||||
expectedOutputPath);
|
||||
|
||||
if (!checkerResult.Accepted)
|
||||
{
|
||||
_logger.LogWarning("Custom checker verdict: {Verdict} - {Message}",
|
||||
checkerResult.Verdict, checkerResult.Message);
|
||||
}
|
||||
|
||||
return checkerResult.Accepted;
|
||||
}
|
||||
|
||||
// Fall back to standard string comparison
|
||||
_logger.LogDebug("No custom checker, using standard comparison");
|
||||
return await CheckOutputAsync(actualOutput, expectedOutputPath);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user