98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| {
 | |
|   Solutions to the Advent Of Code.
 | |
|   Copyright (C) 2023-2024  Stefan Müller
 | |
| 
 | |
|   This program is free software: you can redistribute it and/or modify it under
 | |
|   the terms of the GNU General Public License as published by the Free Software
 | |
|   Foundation, either version 3 of the License, or (at your option) any later
 | |
|   version.
 | |
| 
 | |
|   This program is distributed in the hope that it will be useful, but WITHOUT
 | |
|   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 | |
|   FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 | |
| 
 | |
|   You should have received a copy of the GNU General Public License along with
 | |
|   this program.  If not, see <http://www.gnu.org/licenses/>.
 | |
| }
 | |
| 
 | |
| unit UClumsyCrucibleTestCases;
 | |
| 
 | |
| {$mode ObjFPC}{$H+}
 | |
| 
 | |
| interface
 | |
| 
 | |
| uses
 | |
|   Classes, SysUtils, fpcunit, testregistry, USolver, UBaseTestCases, UClumsyCrucible;
 | |
| 
 | |
| type
 | |
| 
 | |
|   { TClumsyCrucibleExampleTestCase }
 | |
| 
 | |
|   TClumsyCrucibleExampleTestCase = class(TExampleEngineBaseTest)
 | |
|   protected
 | |
|     function CreateSolver: ISolver; override;
 | |
|   published
 | |
|     procedure TestPart1;
 | |
|     procedure TestPart2;
 | |
|   end;
 | |
| 
 | |
|   { TExample2ClumsyCrucible }
 | |
| 
 | |
|   TExample2ClumsyCrucible = class(TClumsyCrucible)
 | |
|     function GetDataFileName: string; override;
 | |
|   end;
 | |
| 
 | |
|   { TClumsyCrucibleExample2TestCase }
 | |
| 
 | |
|   TClumsyCrucibleExample2TestCase = class(TExampleEngineBaseTest)
 | |
|   protected
 | |
|     function CreateSolver: ISolver; override;
 | |
|   published
 | |
|     procedure TestPart2;
 | |
|   end;
 | |
| 
 | |
| implementation
 | |
| 
 | |
| { TClumsyCrucibleExampleTestCase }
 | |
| 
 | |
| function TClumsyCrucibleExampleTestCase.CreateSolver: ISolver;
 | |
| begin
 | |
|   Result := TClumsyCrucible.Create;
 | |
| end;
 | |
| 
 | |
| procedure TClumsyCrucibleExampleTestCase.TestPart1;
 | |
| begin
 | |
|   AssertEquals(102, FSolver.GetResultPart1);
 | |
| end;
 | |
| 
 | |
| procedure TClumsyCrucibleExampleTestCase.TestPart2;
 | |
| begin
 | |
|   AssertEquals(94, FSolver.GetResultPart2);
 | |
| end;
 | |
| 
 | |
| { TExample2ClumsyCrucible }
 | |
| 
 | |
| function TExample2ClumsyCrucible.GetDataFileName: string;
 | |
| begin
 | |
|   Result := 'clumsy_crucible2.txt';
 | |
| end;
 | |
| 
 | |
| { TClumsyCrucibleExample2TestCase }
 | |
| 
 | |
| function TClumsyCrucibleExample2TestCase.CreateSolver: ISolver;
 | |
| begin
 | |
|   Result := TExample2ClumsyCrucible.Create;
 | |
| end;
 | |
| 
 | |
| procedure TClumsyCrucibleExample2TestCase.TestPart2;
 | |
| begin
 | |
|   AssertEquals(71, FSolver.GetResultPart2);
 | |
| end;
 | |
| 
 | |
| initialization
 | |
| 
 | |
|   RegisterTest('TClumsyCrucible', TClumsyCrucibleExampleTestCase);
 | |
|   RegisterTest('TClumsyCrucible', TClumsyCrucibleExample2TestCase);
 | |
| end.
 | |
| 
 |