mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-05 05:48:12 +02:00
140 lines
2.6 KiB
ObjectPascal
140 lines
2.6 KiB
ObjectPascal
unit bug8432;
|
|
|
|
{$mode objfpc}{$H+}
|
|
|
|
interface
|
|
|
|
uses
|
|
Classes, SysUtils, fpcunit, testregistry, testglobals,
|
|
maps;
|
|
|
|
type
|
|
|
|
{ TTestBug8432 }
|
|
|
|
TTestBug8432= class(TTestCase)
|
|
private
|
|
FMap: TMap;
|
|
protected
|
|
procedure SetUp; override;
|
|
procedure TearDown; override;
|
|
published
|
|
procedure Test_itu4_1;
|
|
procedure Test_itu4_2;
|
|
procedure Test_itu8_1;
|
|
procedure Test_itu8_2;
|
|
end;
|
|
|
|
implementation
|
|
|
|
procedure TTestBug8432.SetUp;
|
|
begin
|
|
inherited SetUp;
|
|
end;
|
|
|
|
procedure TTestBug8432.TearDown;
|
|
begin
|
|
FMap.Free;
|
|
inherited TearDown;
|
|
end;
|
|
|
|
procedure TTestBug8432.Test_itu4_1;
|
|
var
|
|
Key: Integer;
|
|
AInt: Integer;
|
|
begin
|
|
FMap:=TMap.Create(itu4,SizeOf(Integer));
|
|
with FMap do
|
|
begin
|
|
for Key := 1 to 3 do
|
|
begin
|
|
AInt:=Key* 10;
|
|
Add(Key,AInt);
|
|
end;
|
|
Key := 1;
|
|
GetData(Key,AInt);
|
|
AssertEquals('Wrong entry for 1', 10, AInt);
|
|
Key := 2;
|
|
GetData(Key,AInt);
|
|
AssertEquals('Wrong entry for 2', 20, AInt);
|
|
Key := 3;
|
|
GetData(Key,AInt);
|
|
AssertEquals('Wrong entry for 3', 30, AInt);
|
|
end;
|
|
end;
|
|
|
|
procedure TTestBug8432.Test_itu4_2;
|
|
var
|
|
i: integer;
|
|
AInt: Integer;
|
|
ID: DWord;
|
|
begin
|
|
FMap:=TMap.Create(itu4,SizeOf(Integer));
|
|
with FMap do
|
|
begin
|
|
for i := 0 to 255 do begin
|
|
ID := dword(i) shl 24;
|
|
AInt:=i;
|
|
Add(ID,AInt);
|
|
end;
|
|
for i := 0 to 255 do begin
|
|
AInt:= 0;
|
|
ID := dword(i) shl 24;
|
|
GetData(ID,AInt);
|
|
AssertEquals('Wrong entry for '+ IntToStr(i), i, AInt);
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TTestBug8432.Test_itu8_1;
|
|
var
|
|
AInt: Integer;
|
|
ID1, ID2, ID3: QWord;
|
|
begin
|
|
FMap:=TMap.Create(itu8,SizeOf(Integer));
|
|
with FMap do
|
|
begin
|
|
ID1 := 1; AInt:=10;
|
|
Add(ID1,AInt);
|
|
ID2 := 2; AInt:=20;
|
|
Add(ID2,AInt);
|
|
ID3 := 3; AInt:=30;
|
|
Add(ID3,AInt);
|
|
GetData(ID1,AInt);
|
|
AssertEquals('Wrong entry for 1', 10, AInt);
|
|
GetData(ID2,AInt);
|
|
AssertEquals('Wrong entry for 2', 20, AInt);
|
|
GetData(ID3,AInt);
|
|
AssertEquals('Wrong entry for 3', 30, AInt);
|
|
end;
|
|
end;
|
|
|
|
procedure TTestBug8432.Test_itu8_2;
|
|
var
|
|
AInt: Integer;
|
|
ID1, ID2, ID3: QWord;
|
|
begin
|
|
FMap:=TMap.Create(itu8,SizeOf(Integer));
|
|
with FMap do
|
|
begin
|
|
ID1 := 1 shl 32; AInt:=10;
|
|
Add(ID1, AInt);
|
|
AssertEquals('Wrong ID1', QWord($100000000), ID1);
|
|
ID2 := 2 shl 32; AInt:=20;
|
|
Add(ID2, AInt);
|
|
ID3 := 3 shl 32; AInt:=30;
|
|
Add(ID3, AInt);
|
|
GetData(ID1,AInt);
|
|
AssertEquals('Wrong entry for 1', 10, AInt);
|
|
GetData(ID2,AInt);
|
|
AssertEquals('Wrong entry for 2', 20, AInt);
|
|
GetData(ID3,AInt);
|
|
AssertEquals('Wrong entry for 3', 30, AInt);
|
|
end;
|
|
end;
|
|
|
|
initialization
|
|
AddToBugsTestSuite(TTestSuite.Create(TTestBug8432, '8432'));
|
|
end.
|
|
|