Added solution for "Day 11: Cosmic Expansion", part 2

This commit is contained in:
2023-12-11 16:45:56 +01:00
committed by Stefan Müller
parent 5bd814a381
commit 8b13ad992b
3 changed files with 100 additions and 4 deletions

View File

@@ -33,6 +33,7 @@ type
function CreateSolver: ISolver; override;
published
procedure TestPart1;
procedure TestPart2;
end;
{ TCosmicExpansionExampleTestCase }
@@ -44,6 +45,36 @@ type
procedure TestPart1;
end;
{ TFactor10CosmicExpansion }
TFactor10CosmicExpansion = class(TCosmicExpansion)
function GetExpansionFactor: Integer; override;
end;
{ TCosmicExpansionExampleFactor10TestCase }
TCosmicExpansionExampleFactor10TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
{ TFactor100CosmicExpansion }
TFactor100CosmicExpansion = class(TCosmicExpansion)
function GetExpansionFactor: Integer; override;
end;
{ TCosmicExpansionExampleFactor100TestCase }
TCosmicExpansionExampleFactor100TestCase = class(TExampleEngineBaseTest)
protected
function CreateSolver: ISolver; override;
published
procedure TestPart2;
end;
implementation
{ TCosmicExpansionFullDataTestCase }
@@ -58,6 +89,11 @@ begin
AssertEquals(9686930, FSolver.GetResultPart1);
end;
procedure TCosmicExpansionFullDataTestCase.TestPart2;
begin
AssertEquals(630728425490, FSolver.GetResultPart2);
end;
{ TCosmicExpansionExampleTestCase }
function TCosmicExpansionExampleTestCase.CreateSolver: ISolver;
@@ -70,9 +106,49 @@ begin
AssertEquals(374, FSolver.GetResultPart1);
end;
{ TFactor10CosmicExpansion }
function TFactor10CosmicExpansion.GetExpansionFactor: Integer;
begin
Result := 9;
end;
{ TCosmicExpansionExampleFactor10TestCase }
function TCosmicExpansionExampleFactor10TestCase.CreateSolver: ISolver;
begin
Result := TFactor10CosmicExpansion.Create;
end;
procedure TCosmicExpansionExampleFactor10TestCase.TestPart2;
begin
AssertEquals(1030, FSolver.GetResultPart2);
end;
{ TFactor100CosmicExpansion }
function TFactor100CosmicExpansion.GetExpansionFactor: Integer;
begin
Result := 99;
end;
{ TCosmicExpansionExampleFactor100TestCase }
function TCosmicExpansionExampleFactor100TestCase.CreateSolver: ISolver;
begin
Result := TFactor100CosmicExpansion.Create;
end;
procedure TCosmicExpansionExampleFactor100TestCase.TestPart2;
begin
AssertEquals(8410, FSolver.GetResultPart2);
end;
initialization
RegisterTest(TCosmicExpansionFullDataTestCase);
RegisterTest(TCosmicExpansionExampleTestCase);
RegisterTest(TCosmicExpansionExampleFactor10TestCase);
RegisterTest(TCosmicExpansionExampleFactor100TestCase);
end.