From 1fc37f2025dfb1864dc0eac0431c5e4692516d41 Mon Sep 17 00:00:00 2001 From: michael Date: Fri, 12 Jun 1998 08:18:02 +0000 Subject: [PATCH] + Renamed t001.pp to list.pp --- fcl/tests/list.pp | 99 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 fcl/tests/list.pp diff --git a/fcl/tests/list.pp b/fcl/tests/list.pp new file mode 100644 index 0000000000..67b3c58a91 --- /dev/null +++ b/fcl/tests/list.pp @@ -0,0 +1,99 @@ +Program TestList; + +Uses objpas, classes; + +const a1 : pchar = '0'; + a2 : pchar = '1'; + a3 : pchar = '2'; + a4 : pchar = '3'; + a5 : pchar = '4'; + a6 : pchar = '5'; + a7 : pchar = '6'; + a8 : pchar = '7'; + a9 : pchar = '8'; + a10 : pchar = '9'; + +Var List : TList; + StartMem,Runner : longint; + +Function ACompare (P1,P2 : Pointer) : Integer; + +Type PByte = ^Byte; + +begin + Result:=PByte(p1)^-PByte(P2)^; +end; + +Procedure DumpMem; + +begin + Writeln (' Memavail : ',memavail,' (=',StartMem-Memavail,' Bytes lost).') +end; + +Procedure DumpList; + +Var I : longint; + +begin + Write ('Count/Capacity : ',List.Count,'/',List.Capacity);dumpmem; + If List.Count>0 then + begin + For i:=0 to List.Count-1 do + if assigned(List.items[I]) then write (Pchar(List.items[i])) else write ('*'); + Writeln; + end; +end; + + +begin + StartMem:=Memavail; + Writeln ('Creating List'); + List:=TList.Create; + DumpList; + Writeln ('Increasing capacity to 10'); + List.Capacity:=10; + DumpList; + Writeln ('Setting capacity to zero'); + List.capacity:=0; + DumpList; + Writeln ('Adding 10 elements in random sequence.'); + List.add (a2); + List.add (a1); + List.add (a3); + List.add (a8); + List.add (a5); + List.add (a9); + List.add (a4); + List.Add (a8); + List.Add (a7); + List.Add (a6); + Dumplist; + Writeln ('Removing Third element.'); + List.Delete(2); + DumpList; + Writeln ('Inserting "0" at third place'); + List.Insert (2,a1); + DumpList; + Writeln ('Setting elmts 3 to 6 to Nil.'); + For Runner:=2 to 5 do List.Items[Runner]:=Nil; + Dumplist; + Writeln ('Packing list'); + List.Pack; + DumpList; + Writeln ('Setting capacity to count'); + List.Capacity:=List.Count; + DumpList; + Writeln ('Expanding list'); + List.Expand; + DumpList; + Writeln ('Index of ',a1,' : ',List.IndexOf(a1)); + Writeln ('Removing "',A1,'" from list.'); + List.Remove (a1); + DumpList; + Writeln ('Sorting List.'); + List.Sort (@ACompare); + DumpList; + Writeln ('Freeing list.'); + List.Free; + DumpMem; +end. \ No newline at end of file