summaryrefslogtreecommitdiff
path: root/fpcsrc/tests/test/testv5.pp
blob: 682e48eb27d3d2a52ba95f706a38746783c9f037 (plain)
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.