Added support for multiple data root paths
This commit is contained in:
@@ -43,14 +43,14 @@ type
|
||||
FEngine: TSolverEngine;
|
||||
procedure Setup; override;
|
||||
procedure TearDown; override;
|
||||
function GetDataPath: string; virtual;
|
||||
function GetDataPaths: TStringArray; virtual;
|
||||
end;
|
||||
|
||||
{ TExampleEngineBaseTest }
|
||||
|
||||
TExampleEngineBaseTest = class(TEngineBaseTest)
|
||||
protected
|
||||
function GetDataPath: string; override;
|
||||
function GetDataPaths: TStringArray; override;
|
||||
end;
|
||||
|
||||
implementation
|
||||
@@ -72,15 +72,10 @@ end;
|
||||
{ TEngineBaseTest }
|
||||
|
||||
procedure TEngineBaseTest.Setup;
|
||||
var
|
||||
fileName: string;
|
||||
begin
|
||||
inherited Setup;
|
||||
FEngine := TSolverEngine.Create(GetDataPath);
|
||||
fileName := FEngine.GetDataFileName(FSolver);
|
||||
AssertTrue('Cannot find puzzle input file ''' + ExpandFileName(fileName) + '''. '
|
||||
+ 'Please download the file from https://adventofcode.com/2023/',
|
||||
FileExists(fileName));
|
||||
FEngine := TSolverEngine.Create(GetDataPaths);
|
||||
AssertTrue(FEngine.GetInvalidDataPathMessage(FSolver), FEngine.HasValidDataPath(FSolver));
|
||||
FEngine.ProcessData(FSolver);
|
||||
end;
|
||||
|
||||
@@ -90,16 +85,22 @@ begin
|
||||
inherited TearDown;
|
||||
end;
|
||||
|
||||
function TEngineBaseTest.GetDataPath: string;
|
||||
function TEngineBaseTest.GetDataPaths: TStringArray;
|
||||
begin
|
||||
Result := ConcatPaths(['..', '..', 'bin', 'data']);
|
||||
Result := TStringArray.Create(
|
||||
ConcatPaths(['..', '..', 'bin', 'data']),
|
||||
ConcatPaths(['..', '..', '..', 'data'])
|
||||
);
|
||||
end;
|
||||
|
||||
{ TExampleEngineBaseTest }
|
||||
|
||||
function TExampleEngineBaseTest.GetDataPath: string;
|
||||
function TExampleEngineBaseTest.GetDataPaths: TStringArray;
|
||||
begin
|
||||
Result := 'example_data';
|
||||
Result := TStringArray.Create(
|
||||
ConcatPaths(['..', '..', 'bin', 'data', 'example']),
|
||||
ConcatPaths(['..', '..', '..', 'data', 'example'])
|
||||
);
|
||||
end;
|
||||
|
||||
end.
|
||||
|
||||
Reference in New Issue
Block a user