1 | unit UFormMain;
|
---|
2 |
|
---|
3 | {$mode delphi}{$H+}
|
---|
4 |
|
---|
5 | interface
|
---|
6 |
|
---|
7 | uses
|
---|
8 | Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
|
---|
9 | ComCtrls, UInt128;
|
---|
10 |
|
---|
11 | type
|
---|
12 |
|
---|
13 | { TFormMain }
|
---|
14 |
|
---|
15 | TFormMain = class(TForm)
|
---|
16 | ListView1: TListView;
|
---|
17 | procedure FormShow(Sender: TObject);
|
---|
18 | private
|
---|
19 | procedure TestInt128;
|
---|
20 |
|
---|
21 | public
|
---|
22 | procedure AddTest(Name: string; Result: Boolean; Value: string);
|
---|
23 | end;
|
---|
24 |
|
---|
25 | var
|
---|
26 | FormMain: TFormMain;
|
---|
27 |
|
---|
28 | implementation
|
---|
29 |
|
---|
30 | {$R *.lfm}
|
---|
31 |
|
---|
32 | { TFormMain }
|
---|
33 |
|
---|
34 | procedure TFormMain.TestInt128;
|
---|
35 | var
|
---|
36 | A, B, C: Int128;
|
---|
37 | begin
|
---|
38 | ListView1.Items.Clear;
|
---|
39 | A := 123456789;
|
---|
40 | AddTest('IntToHex(123456789)', IntToHex(A, 16) = '00000000075BCD15', IntToHex(A, 16));
|
---|
41 | AddTest('IntToStr(123456789)', IntToStr(A) = '123456789', IntToStr(A));
|
---|
42 | A := 21;
|
---|
43 | B := 33;
|
---|
44 | C := A + B;
|
---|
45 | AddTest(IntToStr(A) + ' + ' + IntToStr(B), C = 54, IntToStr(C));
|
---|
46 | C := A * B;
|
---|
47 | AddTest(IntToStr(A) + ' * ' + IntToStr(B), C = 693, IntToStr(C));
|
---|
48 | A := 30;
|
---|
49 | B := 10;
|
---|
50 | C := A div B;
|
---|
51 | AddTest(IntToStr(A) + ' div ' + IntToStr(B), C = 3, IntToStr(C));
|
---|
52 | A := $1234567812345678;
|
---|
53 | B := 31;
|
---|
54 | C := A shr B;
|
---|
55 | AddTest(IntToStr(A) + ' shr ' + IntToStr(B), C = 610839792, IntToStr(C));
|
---|
56 | A := 100000000000;
|
---|
57 | C := -A;
|
---|
58 | AddTest('-' + IntToStr(A), C = -100000000000, IntToStr(C));
|
---|
59 | end;
|
---|
60 |
|
---|
61 | procedure TFormMain.AddTest(Name: string; Result: Boolean; Value: string);
|
---|
62 | var
|
---|
63 | ListItem: TListItem;
|
---|
64 | begin
|
---|
65 | ListItem := ListView1.Items.Add;
|
---|
66 | ListItem.Caption := Name;
|
---|
67 | if Result then ListItem.SubItems.Add('Passed')
|
---|
68 | else ListItem.SubItems.Add('Failed');
|
---|
69 | ListItem.SubItems.Add(Value);
|
---|
70 | end;
|
---|
71 |
|
---|
72 | procedure TFormMain.FormShow(Sender: TObject);
|
---|
73 | begin
|
---|
74 | ListView1.Items.Clear;
|
---|
75 | TestInt128;
|
---|
76 | end;
|
---|
77 |
|
---|
78 | end.
|
---|
79 |
|
---|