source: BigInt/UFormMain.pas

Last change on this file was 514, checked in by chronos, 6 years ago
  • Modified: Updated BigInt classes for Int128 a UInt128.
File size: 1.7 KB
Line 
1unit UFormMain;
2
3{$mode delphi}{$H+}
4
5interface
6
7uses
8 Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
9 ComCtrls, UInt128;
10
11type
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
25var
26 FormMain: TFormMain;
27
28implementation
29
30{$R *.lfm}
31
32{ TFormMain }
33
34procedure TFormMain.TestInt128;
35var
36 A, B, C: Int128;
37begin
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));
59end;
60
61procedure TFormMain.AddTest(Name: string; Result: Boolean; Value: string);
62var
63 ListItem: TListItem;
64begin
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);
70end;
71
72procedure TFormMain.FormShow(Sender: TObject);
73begin
74 ListView1.Items.Clear;
75 TestInt128;
76end;
77
78end.
79
Note: See TracBrowser for help on using the repository browser.