with Ada.Containers.Indefinite_Holders; package body WL.Unit.Compare_Test is package Result_Holders is new Ada.Containers.Indefinite_Holders (Result_Type, "="); type Compare_Test_Type (Name_Length : Natural) is new Unit_Test with record Name : String (1 .. Name_Length); Test : Test_Runner; Expected : Result_Holders.Holder; end record; overriding function Name (This : Compare_Test_Type) return String is (This.Name); overriding function Try (This : Compare_Test_Type) return Test_Result; ---------- -- Test -- ---------- function Test (Name : String; Run_Test : Test_Runner; Expected : Result_Type) return Unit_Test'Class is begin return Compare_Test_Type' (Name_Length => Name'Length, Name => Name, Test => Run_Test, Expected => Result_Holders.To_Holder (Expected)); end Test; --------- -- Try -- --------- overriding function Try (This : Compare_Test_Type) return Test_Result is Expected : constant Result_Type := This.Expected.Element; Result : constant Result_Type := This.Test.all; begin if Result = Expected then return Test_Success; else return Test_Failure (Image (Expected), Image (Result)); end if; end Try; end WL.Unit.Compare_Test;