--------------------------------------------------------------- {{{1 ---------- --: Copyright © 2007 … 2023 Martin Krischik «krischik@users.sourceforge.net» ------------------------------------------------------------------------------- --: Ada_Demo 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. --: --: Ada_Demo 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 Ada_Demo. If not, see . --------------------------------------------------------------- }}}1 ---------- pragma License (Modified_Gpl); pragma Ada_2022; --- -- @summary -- -- @description -- Additional Asserts which produce more detailed diagnostic messages Diagnostics will be reported via the -- Report_Assertion function. The Report function is passed as a generic ot avoid dependence to AUnit. -- package body AdaCL.Assert is ---------- Unbounded_String -------------------------------- {{{1 ---------- --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Unbounded.Unbounded_String; Expected : String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Unbounded; begin if not (Actual = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Unbounded.Unbounded_String; Expected : Ada.Strings.Unbounded.Unbounded_String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Unbounded; begin if Actual /= Expected then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a string is of given length -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Lenght (Actual : Ada.Strings.Unbounded.Unbounded_String; Expected : Natural; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Unbounded; begin if not (Length (Actual) = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Length (Actual)'Image & " isn't of Length to " & Expected'Image, Source => Source, Line => Line); end if; end Lenght; ---------- Wide_Unbounded_String --------------------------- {{{1 ---------- --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Wide_Unbounded.Unbounded_Wide_String; Expected : Wide_String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Unbounded; begin if not (Actual = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Wide_Unbounded.Unbounded_Wide_String; Expected : Ada.Strings.Wide_Unbounded.Unbounded_Wide_String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Unbounded; begin if Actual /= Expected then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a string is of given length -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Lenght (Actual : Ada.Strings.Wide_Unbounded.Unbounded_Wide_String; Expected : Natural; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Unbounded; begin if not (Length (Actual) = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Length (Actual)'Image & " isn't of Length to " & Expected'Image, Source => Source, Line => Line); end if; end Lenght; ---------- Wide_Wide_Unbounded_String --------------------------- {{{1 ---------- --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Wide_Wide_Unbounded.Unbounded_Wide_Wide_String; Expected : Wide_Wide_String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Wide_Unbounded; begin if not (Actual = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a unbounded string is equal a given value -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Equal (Actual : Ada.Strings.Wide_Wide_Unbounded.Unbounded_Wide_Wide_String; Expected : Ada.Strings.Wide_Wide_Unbounded.Unbounded_Wide_Wide_String; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Wide_Unbounded; begin if Actual /= Expected then Report_Assertion (Message => "String «" & Name & "» " & Actual'Image & " is not equal to " & Expected'Image, Source => Source, Line => Line); end if; end Equal; --- -- Assert that a string is of given length -- --: @param Actual Actual value --: @param Expected Expected value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Lenght (Actual : Ada.Strings.Wide_Wide_Unbounded.Unbounded_Wide_Wide_String; Expected : Natural; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is use Ada.Strings.Wide_Wide_Unbounded; begin if not (Length (Actual) = Expected) then Report_Assertion (Message => "String «" & Name & "» " & Length (Actual)'Image & " isn't of Length to " & Expected'Image, Source => Source, Line => Line); end if; end Lenght; ---------- Boolean ----------------------------------------- {{{1 ---------- --- -- Assert that Boolean is true -- --: @param Actual Actual value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Is_True (Actual : Boolean; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is begin if not Actual then Report_Assertion (Message => "AdaCL.Base.Object_Class «" & Name & "» " & Actual'Image & " is not true", Source => Source, Line => Line); end if; end Is_True; --- -- Assert that Boolean is false -- --: @param Actual Actual value --: @param Name Name of variable or function restlt. --: @param Source Source code --: @param Line Line number procedure Is_False (Actual : Boolean; Name : String; Source : String := GNAT.Source_Info.File; Line : Natural := GNAT.Source_Info.Line) is begin if Actual then Report_Assertion (Message => "AdaCL.Base.Object_Class «" & Name & "» " & Actual'Image & " is not false", Source => Source, Line => Line); end if; end Is_False; ----------------------------------------------------------- }}}1 ---------- end AdaCL.Assert; ---------------------------------------------------------------- {{{ ---------- --: vim: set textwidth=0 nowrap tabstop=8 shiftwidth=3 softtabstop=3 expandtab : --: vim: set filetype=ada fileencoding=utf-8 fileformat=unix foldmethod=marker : --: vim: set spell spelllang=en_gb