1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
program tstrutils2;
// tests MBCS compatibility of strutils ansistartstext and -endstext.
// (case-insensitive)
{$mode objfpc}
{$h+}
uses
StrUtils,
{$ifdef unix}
cwstring
{$endif unix}
;
var
ResultCounter: Integer = 0;
function TestValue(const Value: Boolean): Boolean;
begin
Result := Value;
if not Value then
WriteLn('Failed: ', ResultCounter);
Inc(ResultCounter);
end;
function TestOK: Boolean;
begin
TestOK :=
// AnsiStartsText
not AnsiStartsText('', '')
and not AnsiStartsText('', 'ab')
and not AnsiStartsText('ab', '')
and AnsiStartsText('abc', 'abc')
and not AnsiStartsText('abc', 'def')
and AnsiStartsText('abc', 'abcedfg')
and not AnsiStartsText('abc', 'ab')
and AnsiStartsText('áÉíç', 'áéíÇ')
and AnsiStartsText('áé', 'áÉíç')
and not AnsiStartsText('áÉíç', 'Áé')
and not AnsiStartsText('ÁÉíç', 'áéio')
// AnsiEndsText
and AnsiEndsText('', '')
and AnsiEndsText('', 'ab')
and not AnsiEndsText('ab', '')
and AnsiEndsText('abc', 'abc')
and not AnsiEndsText('abc', 'def')
and AnsiEndsText('dfg', 'abcedfg')
and not AnsiEndsText('dfg', 'df')
and AnsiEndsText('áÉíç', 'Áéíç')
and AnsiEndsText('áé', 'íçáÉ')
and not AnsiEndsText('áÉíç', 'áé')
and not AnsiEndsText('íçÁÉ', 'ioÁé');
end;
begin
if TestOK() then
begin
WriteLn('Test OK');
halt(0);
end
else
begin
WriteLn('Test Failure!');
halt(1);
end;
end.
|