3
./runtests --format=plain --suite=TTestLazUtils
6
./runtests --format=plain --suite=TestReplaceSubstring
15
Classes, SysUtils, fpcunit, testglobals, LazLogger;
21
TTestLazUtils = class(TTestCase)
24
procedure TestReplaceSubstring;
31
procedure TTestLazUtils.TestReplaceSubstring;
33
function r(const s: string; StartPos, Count: SizeInt;
34
const Insertion: string): string;
41
ReplaceSubstring(Result,StartPos,Count,Insertion);
42
AssertEquals('s unchanged',OldS,s);
46
AssertEquals('empty string','',r('',1,1,''));
47
AssertEquals('empty string insert a','a',r('',1,1,'a'));
48
AssertEquals('empty string negative startpos','a',r('',-1,1,'a'));
49
AssertEquals('empty string count too big','a',r('',-1,10,'a'));
50
AssertEquals('empty string beyond length','a',r('',10,10,'a'));
51
AssertEquals('whole','a',r('a',1,1,'a'));
52
AssertEquals('whole','b',r('a',1,1,'b'));
53
AssertEquals('whole','abc',r('a',1,1,'abc'));
54
AssertEquals('first char','abcbc',r('abc',1,1,'abc'));
55
AssertEquals('last char single','aba',r('abc',3,1,'a'));
56
AssertEquals('last char multi','ababc',r('abc',3,1,'abc'));
57
AssertEquals('middle char same','abc',r('abc',2,1,'b'));
58
AssertEquals('middle char single','adc',r('abc',2,1,'d'));
59
AssertEquals('middle char longen','acdec',r('abc',2,1,'cde'));
60
AssertEquals('last multi','adef',r('abc',2,2,'def'));
61
AssertEquals('middle chars same','abcde',r('abcde',2,3,'bcd'));
62
AssertEquals('middle chars shorten','axe',r('abcde',2,3,'x'));
66
AddToLazUtilsTestSuite(TTestLazUtils);