1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
|
{ %VERSION=1.1 }
program testv5;
{$ifopt R+}
{$define skip_range_error_tests}
{$endif }
uses variants,varutils;
Procedure TestLongInt(I : Longint);
Var
V : Variant;
B : Boolean;
begin
Write('Longint to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestSmallInt(I : SmallInt);
Var
V : Variant;
B : Boolean;
begin
Write('Smallint to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestShortInt(I : ShortInt);
Var
V : Variant;
B : Boolean;
begin
Write('Shortint to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestCardinal(I : Cardinal);
Var
V : Variant;
B : Boolean;
begin
Write('Cardinal to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestWord(I : Word);
Var
V : Variant;
B : Boolean;
begin
Write('Word to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestByte(I : Byte);
Var
V : Variant;
B : Boolean;
begin
Write('Byte to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
// 64 bit values
Procedure TestInt64(I : Int64);
Var
V : Variant;
B : Boolean;
begin
Write('Int64 to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
Procedure TestQWord(I : QWord);
Var
V : Variant;
B : Boolean;
begin
Write('QWord to boolean assignment: ');
V:=I;
B:=V;
Writeln(I,' -> ',B);
end;
begin
TestLongint(0);
TestSmallInt(0);
TestShortInt(0);
TestCardinal(0);
TestWord(0);
TestByte(0);
TestInt64(0);
TestQWord(0);
TestLongint(1);
TestSmallInt(1);
TestShortInt(1);
TestCardinal(1);
TestWord(1);
TestByte(1);
TestInt64(1);
TestQWord(1);
TestLongint(-1);
TestSmallInt(-1);
TestShortInt(-1);
TestInt64(-1);
{$ifndef skip_range_error_tests}
TestCardinal(-1);
TestWord(-1);
TestByte(-1);
TestQWord(-1);
{$endif ndef skip_range_error_tests}
end.
|