--
-- Copyright (C) 2021, AdaCore
--
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
--
with Ada.Command_Line;
with Ada.Wide_Wide_Text_IO;
with VSS.Strings;
with Test_Support;
procedure Test_String_Casing_W3C_I18N is
use type VSS.Strings.Virtual_String;
File : Ada.Wide_Wide_Text_IO.File_Type;
Line : Wide_Wide_String (1 .. 1024);
Last : Natural;
Lowercase : Boolean;
Source : VSS.Strings.Virtual_String;
Expected : VSS.Strings.Virtual_String;
begin
Ada.Wide_Wide_Text_IO.Open
(File,
Ada.Wide_Wide_Text_IO.In_File,
Ada.Command_Line.Argument (1),
"wcem=8");
-- Skip name of the test
Ada.Wide_Wide_Text_IO.Skip_Line (File);
-- Read case conversion
Ada.Wide_Wide_Text_IO.Get_Line (File, Line, Last);
if Line (Line'First .. Last) = "lowercase" then
Lowercase := True;
elsif Line (Line'First .. Last) = "uppercase" then
Lowercase := False;
else
raise Program_Error;
end if;
-- Read source string
Ada.Wide_Wide_Text_IO.Get_Line (File, Line, Last);
Source := VSS.Strings.To_Virtual_String (Line (Line'First .. Last));
Test_Support.Assert (not Source.Is_Empty);
-- Read expected string
Ada.Wide_Wide_Text_IO.Get_Line (File, Line, Last);
Expected := VSS.Strings.To_Virtual_String (Line (Line'First .. Last));
Test_Support.Assert (not Expected.Is_Empty);
Ada.Wide_Wide_Text_IO.Close (File);
if Lowercase then
Test_Support.Assert (Source.To_Lowercase = Expected);
else
Test_Support.Assert (Source.To_Uppercase = Expected);
end if;
end Test_String_Casing_W3C_I18N;