fpc/tests/test/units/character/ttolower2.pp
2018-12-15 21:06:01 +00:00

76 lines
1.4 KiB
ObjectPascal

program ttolower2;
{$ifdef FPC}
{$mode objfpc}
{$H+}
{$PACKENUM 1}
{$endif fpc}
{$ifndef FPC}
{$APPTYPE CONSOLE}
{$endif}
uses
SysUtils,
unicodedata,character;
{$ifndef FPC}
type UnicodeChar = WideChar;
{$endif}
procedure DoError(ACode : Integer); overload;
begin
WriteLn('Error #',ACode);
Halt(Acode);
end;
procedure DoError(ACode : Integer; ACodePoint : Integer); overload;
begin
WriteLn('Error #',ACode,' ; CodePoint = ',IntToHex(ACodePoint,4));
Halt(Acode);
end;
procedure DoError(ACode : Integer; ACodePoint : UnicodeString); overload;
begin
WriteLn('Error #',ACode,' ; String = ',ACodePoint);
Halt(Acode);
end;
var
e, i, j : Integer;
uc, s, s2 : UnicodeString;
begin
e := 1;
s := 'azerty';
if (TCharacter.ToLower(s) <> s) then begin
WriteLn(s);
s2 := TCharacter.ToLower(s);
WriteLn('"',s2,'"');
DoError(e,s2);
end;
Inc(e);
s := '0123456789';
if (TCharacter.ToLower(s) <> s) then
DoError(e,s);
Inc(e);
s := 'AZERTY'; s2:= 'azerty';
if (TCharacter.ToLower(s) <> s2) then begin
WriteLn(s);
s2 := TCharacter.ToLower(s);
WriteLn('"',s2,'"');
DoError(e,s2);
end;
s := 'AzERty';
if (TCharacter.ToLower(s) <> s2) then begin
WriteLn(s);
s2 := TCharacter.ToLower(s);
WriteLn('"',s2,'"');
DoError(e,s2);
end;
WriteLn('ok');
end.