Added solution for "Day 10: Pipe Maze", part 2

This commit is contained in:
2023-12-11 15:03:01 +01:00
committed by Stefan Müller
parent ac81b20db5
commit 344be871db
2 changed files with 375 additions and 106 deletions

View File

@@ -90,6 +90,66 @@ type
procedure TestPart1;
end;
{ TExample5PipeMaze }
TExample5PipeMaze = class(TPipeMaze)
function GetDataFileName: string; override;
end;
{ TPipeMazeExample5TestCase }
TPipeMazeExample5TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
{ TExample6PipeMaze }
TExample6PipeMaze = class(TPipeMaze)
function GetDataFileName: string; override;
end;
{ TPipeMazeExample6TestCase }
TPipeMazeExample6TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
{ TExample7PipeMaze }
TExample7PipeMaze = class(TPipeMaze)
function GetDataFileName: string; override;
end;
{ TPipeMazeExample7TestCase }
TPipeMazeExample7TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
{ TExample8PipeMaze }
TExample8PipeMaze = class(TPipeMaze)
function GetDataFileName: string; override;
end;
{ TPipeMazeExample8TestCase }
TPipeMazeExample8TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
implementation
{ TPipeMazeFullDataTestCase }
@@ -106,7 +166,7 @@ end;
procedure TPipeMazeFullDataTestCase.TestPart2;
begin
AssertEquals(-1, FSolver.GetResultPart2);
AssertEquals(355, FSolver.GetResultPart2);
end;
{ TPipeMazeExampleTestCase }
@@ -178,6 +238,82 @@ begin
AssertEquals(8, FSolver.GetResultPart1);
end;
{ TExample5PipeMaze }
function TExample5PipeMaze.GetDataFileName: string;
begin
Result := 'pipe_maze5.txt';
end;
{ TPipeMazeExample5TestCase }
function TPipeMazeExample5TestCase.CreateSolver: ISolver;
begin
Result := TExample5PipeMaze.Create;
end;
procedure TPipeMazeExample5TestCase.TestPart2;
begin
AssertEquals(4, FSolver.GetResultPart2);
end;
{ TExample6PipeMaze }
function TExample6PipeMaze.GetDataFileName: string;
begin
Result := 'pipe_maze6.txt';
end;
{ TPipeMazeExample6TestCase }
function TPipeMazeExample6TestCase.CreateSolver: ISolver;
begin
Result := TExample6PipeMaze.Create;
end;
procedure TPipeMazeExample6TestCase.TestPart2;
begin
AssertEquals(4, FSolver.GetResultPart2);
end;
{ TExample7PipeMaze }
function TExample7PipeMaze.GetDataFileName: string;
begin
Result := 'pipe_maze7.txt';
end;
{ TPipeMazeExample7TestCase }
function TPipeMazeExample7TestCase.CreateSolver: ISolver;
begin
Result := TExample7PipeMaze.Create;
end;
procedure TPipeMazeExample7TestCase.TestPart2;
begin
AssertEquals(8, FSolver.GetResultPart2);
end;
{ TExample8PipeMaze }
function TExample8PipeMaze.GetDataFileName: string;
begin
Result := 'pipe_maze8.txt';
end;
{ TPipeMazeExample8TestCase }
function TPipeMazeExample8TestCase.CreateSolver: ISolver;
begin
Result := TExample8PipeMaze.Create;
end;
procedure TPipeMazeExample8TestCase.TestPart2;
begin
AssertEquals(10, FSolver.GetResultPart2);
end;
initialization
RegisterTest(TPipeMazeFullDataTestCase);
@@ -185,4 +321,8 @@ initialization
RegisterTest(TPipeMazeExample2TestCase);
RegisterTest(TPipeMazeExample3TestCase);
RegisterTest(TPipeMazeExample4TestCase);
RegisterTest(TPipeMazeExample5TestCase);
RegisterTest(TPipeMazeExample6TestCase);
RegisterTest(TPipeMazeExample7TestCase);
RegisterTest(TPipeMazeExample8TestCase);
end.