| 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 |
|
|---|