1
2(********************************************************************)
3(*                                                                  *)
4(*  chkbig.sd7    Checks bigInteger literals and operations         *)
5(*  Copyright (C) 2006 - 2017  Thomas Mertes                        *)
6(*                                                                  *)
7(*  This program is free software; you can redistribute it and/or   *)
8(*  modify it under the terms of the GNU General Public License as  *)
9(*  published by the Free Software Foundation; either version 2 of  *)
10(*  the License, or (at your option) any later version.             *)
11(*                                                                  *)
12(*  This program is distributed in the hope that it will be useful, *)
13(*  but WITHOUT ANY WARRANTY; without even the implied warranty of  *)
14(*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the   *)
15(*  GNU General Public License for more details.                    *)
16(*                                                                  *)
17(*  You should have received a copy of the GNU General Public       *)
18(*  License along with this program; if not, write to the           *)
19(*  Free Software Foundation, Inc., 51 Franklin Street,             *)
20(*  Fifth Floor, Boston, MA  02110-1301, USA.                       *)
21(*                                                                  *)
22(********************************************************************)
23
24
25$ include "seed7_05.s7i";
26  include "stdio.s7i";
27  include "bigint.s7i";
28  include "bstring.s7i";
29  include "bytedata.s7i";
30
31
32# const func bigInteger: bigintExpr (in bigInteger: number) is
33#   return number;
34
35
36const func bigInteger: bigintExpr (in bigInteger: number) is func
37  result
38    var bigInteger: exprResult is 0_;
39  begin
40    exprResult := number;
41  end func;
42
43
44const func integer: intExpr (in integer: number) is
45  return number + length(str(rand(1, 9))[2 ..]);
46
47
48const func string: striExpr (in string: stri) is
49  return stri & str(rand(1, 9))[2 ..];
50
51
52const func boolean: boolExpr (in boolean: okay) is
53  return boolean(ord(okay) + length(str(rand(1, 9))[2 ..]));
54
55
56const func boolean: raisesRangeError (ref func string: expression) is func
57  result
58    var boolean: raisesRangeError is FALSE;
59  local
60    var string: exprResult is "";
61  begin
62    block
63      exprResult := expression;
64    exception
65      catch RANGE_ERROR:
66        raisesRangeError := TRUE;
67    end block;
68  end func;
69
70
71const func boolean: raisesRangeError (ref func bigInteger: bigIntExpr) is func
72  result
73    var boolean: raisesRangeError is FALSE;
74  local
75    var bigInteger: exprResult is 0_;
76  begin
77    block
78      exprResult := bigIntExpr;
79    exception
80      catch RANGE_ERROR:
81        raisesRangeError := TRUE;
82    end block;
83  end func;
84
85
86const func boolean: raisesNumericError (ref func bigInteger: bigIntExpr) is func
87  result
88    var boolean: raisesRangeError is FALSE;
89  local
90    var bigInteger: exprResult is 0_;
91  begin
92    block
93      exprResult := bigIntExpr;
94    exception
95      catch NUMERIC_ERROR:
96        raisesRangeError := TRUE;
97    end block;
98  end func;
99
100
101var bigInteger: number is bigInteger parse "0";
102
103
104const proc: chkLiteral is func
105  local
106    var boolean: okay is TRUE;
107  begin
108    if     0_ <>  2#0_ or  2#0_ <>  3#0_ or
109         3#0_ <>  4#0_ or  4#0_ <>  5#0_ or  5#0_ <>  6#0_ or  6#0_ <>  7#0_ or
110         7#0_ <>  8#0_ or  8#0_ <>  9#0_ or  9#0_ <> 10#0_ or 10#0_ <> 11#0_ or
111        11#0_ <> 12#0_ or 12#0_ <> 13#0_ or 13#0_ <> 14#0_ or 14#0_ <> 15#0_ or
112        15#0_ <> 16#0_ or 16#0_ <> 17#0_ or 17#0_ <> 18#0_ or 18#0_ <> 19#0_ or
113        19#0_ <> 20#0_ or 20#0_ <> 21#0_ or 21#0_ <> 22#0_ or 22#0_ <> 23#0_ or
114        23#0_ <> 24#0_ or 24#0_ <> 25#0_ or 25#0_ <> 26#0_ or 26#0_ <> 27#0_ or
115        27#0_ <> 28#0_ or 28#0_ <> 29#0_ or 29#0_ <> 30#0_ or 30#0_ <> 31#0_ or
116        31#0_ <> 32#0_ or 32#0_ <> 33#0_ or 33#0_ <> 34#0_ or 34#0_ <> 35#0_ or
117        35#0_ <> 36#0_ then
118      writeln("Based bigInteger literals do not work correct.");
119      okay := FALSE;
120    end if;
121    if     1_ <>  2#1_ or  2#1_ <>  3#1_ or
122         3#1_ <>  4#1_ or  4#1_ <>  5#1_ or  5#1_ <>  6#1_ or  6#1_ <>  7#1_ or
123         7#1_ <>  8#1_ or  8#1_ <>  9#1_ or  9#1_ <> 10#1_ or 10#1_ <> 11#1_ or
124        11#1_ <> 12#1_ or 12#1_ <> 13#1_ or 13#1_ <> 14#1_ or 14#1_ <> 15#1_ or
125        15#1_ <> 16#1_ or 16#1_ <> 17#1_ or 17#1_ <> 18#1_ or 18#1_ <> 19#1_ or
126        19#1_ <> 20#1_ or 20#1_ <> 21#1_ or 21#1_ <> 22#1_ or 22#1_ <> 23#1_ or
127        23#1_ <> 24#1_ or 24#1_ <> 25#1_ or 25#1_ <> 26#1_ or 26#1_ <> 27#1_ or
128        27#1_ <> 28#1_ or 28#1_ <> 29#1_ or 29#1_ <> 30#1_ or 30#1_ <> 31#1_ or
129        31#1_ <> 32#1_ or 32#1_ <> 33#1_ or 33#1_ <> 34#1_ or 34#1_ <> 35#1_ or
130        35#1_ <> 36#1_ then
131      writeln("Based bigInteger literals do not work correct.");
132      okay := FALSE;
133    end if;
134    if     2_ <> 2#10_ or 2#10_ <>  3#2_ or
135         3#2_ <>  4#2_ or  4#2_ <>  5#2_ or  5#2_ <>  6#2_ or  6#2_ <>  7#2_ or
136         7#2_ <>  8#2_ or  8#2_ <>  9#2_ or  9#2_ <> 10#2_ or 10#2_ <> 11#2_ or
137        11#2_ <> 12#2_ or 12#2_ <> 13#2_ or 13#2_ <> 14#2_ or 14#2_ <> 15#2_ or
138        15#2_ <> 16#2_ or 16#2_ <> 17#2_ or 17#2_ <> 18#2_ or 18#2_ <> 19#2_ or
139        19#2_ <> 20#2_ or 20#2_ <> 21#2_ or 21#2_ <> 22#2_ or 22#2_ <> 23#2_ or
140        23#2_ <> 24#2_ or 24#2_ <> 25#2_ or 25#2_ <> 26#2_ or 26#2_ <> 27#2_ or
141        27#2_ <> 28#2_ or 28#2_ <> 29#2_ or 29#2_ <> 30#2_ or 30#2_ <> 31#2_ or
142        31#2_ <> 32#2_ or 32#2_ <> 33#2_ or 33#2_ <> 34#2_ or 34#2_ <> 35#2_ or
143        35#2_ <> 36#2_ then
144      writeln("Based bigInteger literals do not work correct.");
145      okay := FALSE;
146    end if;
147    if    16_ <> 2#10000_ or 2#10000_ <> 3#121_ or
148        3#121_ <> 4#100_ or 4#100_ <>  5#31_ or  5#31_ <>  6#24_ or  6#24_ <>  7#22_ or
149         7#22_ <>  8#20_ or  8#20_ <>  9#17_ or  9#17_ <> 10#16_ or 10#16_ <> 11#15_ or
150        11#15_ <> 12#14_ or 12#14_ <> 13#13_ or 13#13_ <> 14#12_ or 14#12_ <> 15#11_ or
151        15#11_ <> 16#10_ or 16#10_ <> 17#G_ or 17#G_ <> 18#G_ or 18#G_ <> 19#G_ or
152        19#G_ <> 20#G_ or 20#G_ <> 21#G_ or 21#G_ <> 22#G_ or 22#G_ <> 23#G_ or
153        23#G_ <> 24#G_ or 24#G_ <> 25#G_ or 25#G_ <> 26#G_ or 26#G_ <> 27#G_ or
154        27#G_ <> 28#G_ or 28#G_ <> 29#G_ or 29#G_ <> 30#G_ or 30#G_ <> 31#G_ or
155        31#G_ <> 32#G_ or 32#G_ <> 33#G_ or 33#G_ <> 34#G_ or 34#G_ <> 35#G_ or
156        35#G_ <> 36#G_ then
157      writeln("Based bigInteger literals do not work correct.");
158      okay := FALSE;
159    end if;
160    if    32_ <> 2#100000_ or 2#100000_ <> 3#1012_ or
161       3#1012_ <> 4#200_ or 4#200_ <> 5#112_ or 5#112_ <>  6#52_ or  6#52_ <>  7#44_ or
162         7#44_ <>  8#40_ or  8#40_ <>  9#35_ or  9#35_ <> 10#32_ or 10#32_ <> 11#2A_ or
163        11#2A_ <> 12#28_ or 12#28_ <> 13#26_ or 13#26_ <> 14#24_ or 14#24_ <> 15#22_ or
164        15#22_ <> 16#20_ or 16#20_ <> 17#1F_ or 17#1F_ <> 18#1E_ or 18#1E_ <> 19#1D_ or
165        19#1D_ <> 20#1C_ or 20#1C_ <> 21#1B_ or 21#1B_ <> 22#1A_ or 22#1A_ <> 23#19_ or
166        23#19_ <> 24#18_ or 24#18_ <> 25#17_ or 25#17_ <> 26#16_ or 26#16_ <> 27#15_ or
167        27#15_ <> 28#14_ or 28#14_ <> 29#13_ or 29#13_ <> 30#12_ or 30#12_ <> 31#11_ or
168        31#11_ <> 32#10_ or 32#10_ <> 33#W_ or 33#W_ <> 34#W_ or 34#W_ <> 35#W_ or
169        35#W_ <> 36#W_ then
170      writeln("Based bigInteger literals do not work correct.");
171      okay := FALSE;
172    end if;
173    if  100000000000000000000_ <>  2#1010110101111000111010111100010110101100011000100000000000000000000_ or
174        100000000000000000000_ <>  3#220200020122120112010222022122002000100201_ or
175        100000000000000000000_ <>  4#1112233013113202311203010000000000_ or
176        100000000000000000000_ <>  5#23202330100000000000000000000_ or
177        100000000000000000000_ <>  6#33034304013023440042054544_ or
178        100000000000000000000_ <>  7#344015313561621001452562_ or
179        100000000000000000000_ <>  8#12657072742654304000000_ or
180        100000000000000000000_ <>  9#820218515128278060321_ or
181        100000000000000000000_ <> 10#100000000000000000000_ or
182        100000000000000000000_ <> 11#16a9322885328081a121_ or
183        100000000000000000000_ <> 12#390a66958a9464aa454_ or
184        100000000000000000000_ <> 13#b7388131b304451099_ or
185        100000000000000000000_ <> 14#33cb3bb449c2a91332_ or
186        100000000000000000000_ <> 15#1035749e25953d996a_ or
187        100000000000000000000_ <> 16#56bc75e2d63100000_ or
188        100000000000000000000_ <> 17#20ff5dab9g7f47384_ or
189        100000000000000000000_ <> 18#eee706h921ebb55a_ or
190        100000000000000000000_ <> 19#6b2i1gcaddd4ga45_ or
191        100000000000000000000_ <> 20#310e150000000000_ or
192        100000000000000000000_ <> 21#19h7djcjj8f750dg_ or
193        100000000000000000000_ <> 22#g1d1d41kh0d406c_ or
194        100000000000000000000_ <> 23#8e93h381mich183_ or
195        100000000000000000000_ <> 24#4i24imni329g72g_ or
196        100000000000000000000_ <> 25#2h2i10000000000_ or
197        100000000000000000000_ <> 26#1e7na9ijd1jl6hm_ or
198        100000000000000000000_ <> 27#oi6hfe3q8h209j_ or
199        100000000000000000000_ <> 28#fahhbc826cmp8g_ or
200        100000000000000000000_ <> 29#9liashaimceq07_ or
201        100000000000000000000_ <> 30#6850qa888gnl3a_ or
202        100000000000000000000_ <> 31#42tlg9if3mmgip_ or
203        100000000000000000000_ <> 32#2mnhqu5lhh0000_ or
204        100000000000000000000_ <> 33#1qvi340qbei9u1_ or
205        100000000000000000000_ <> 34#17uopd8lcnm544_ or
206        100000000000000000000_ <> 35#tkpxpiyscferu_ or
207        100000000000000000000_ <> 36#l3r41ifs0q5ts_ then
208      writeln("Based bigInteger literals do not work correct.");
209      okay := FALSE;
210    end if;
211    if                                  16#7_ <>                                        7_ or
212                                        16#8_ <>                                        8_ or
213                                        16#f_ <>                                       15_ or
214                                       16#7f_ <>                                      127_ or
215                                       16#80_ <>                                      128_ or
216                                       16#ff_ <>                                      255_ or
217                                     16#7fff_ <>                                    32767_ or
218                                     16#8000_ <>                                    32768_ or
219                                     16#ffff_ <>                                    65535_ or
220                                 16#7fffffff_ <>                               2147483647_ or
221                                 16#80000000_ <>                               2147483648_ or
222                                 16#ffffffff_ <>                               4294967295_ or
223                             16#7fffffffffff_ <>                          140737488355327_ or
224                             16#800000000000_ <>                          140737488355328_ or
225                             16#ffffffffffff_ <>                          281474976710655_ or
226                         16#7fffffffffffffff_ <>                      9223372036854775807_ or
227                         16#8000000000000000_ <>                      9223372036854775808_ or
228                         16#ffffffffffffffff_ <>                     18446744073709551615_ or
229                     16#7fffffffffffffffffff_ <>                 604462909807314587353087_ or
230                     16#80000000000000000000_ <>                 604462909807314587353088_ or
231                     16#ffffffffffffffffffff_ <>                1208925819614629174706175_ or
232                 16#7fffffffffffffffffffffff_ <>            39614081257132168796771975167_ or
233                 16#800000000000000000000000_ <>            39614081257132168796771975168_ or
234                 16#ffffffffffffffffffffffff_ <>            79228162514264337593543950335_ or
235             16#7fffffffffffffffffffffffffff_ <>       2596148429267413814265248164610047_ or
236             16#8000000000000000000000000000_ <>       2596148429267413814265248164610048_ or
237             16#ffffffffffffffffffffffffffff_ <>       5192296858534827628530496329220095_ or
238         16#7fffffffffffffffffffffffffffffff_ <>  170141183460469231731687303715884105727_ or
239         16#80000000000000000000000000000000_ <>  170141183460469231731687303715884105728_ or
240         16#ffffffffffffffffffffffffffffffff_ <>  340282366920938463463374607431768211455_ or
241                                       -16#7_ <>                                       -7_ or
242                                       -16#8_ <>                                       -8_ or
243                                       -16#f_ <>                                      -15_ or
244                                      -16#7f_ <>                                     -127_ or
245                                      -16#80_ <>                                     -128_ or
246                                      -16#ff_ <>                                     -255_ or
247                                    -16#7fff_ <>                                   -32767_ or
248                                    -16#8000_ <>                                   -32768_ or
249                                    -16#ffff_ <>                                   -65535_ or
250                                -16#7fffffff_ <>                              -2147483647_ or
251                                -16#80000000_ <>                              -2147483648_ or
252                                -16#ffffffff_ <>                              -4294967295_ or
253                            -16#7fffffffffff_ <>                         -140737488355327_ or
254                            -16#800000000000_ <>                         -140737488355328_ or
255                            -16#ffffffffffff_ <>                         -281474976710655_ or
256                        -16#7fffffffffffffff_ <>                     -9223372036854775807_ or
257                        -16#8000000000000000_ <>                     -9223372036854775808_ or
258                        -16#ffffffffffffffff_ <>                    -18446744073709551615_ or
259                    -16#7fffffffffffffffffff_ <>                -604462909807314587353087_ or
260                    -16#80000000000000000000_ <>                -604462909807314587353088_ or
261                    -16#ffffffffffffffffffff_ <>               -1208925819614629174706175_ or
262                -16#7fffffffffffffffffffffff_ <>           -39614081257132168796771975167_ or
263                -16#800000000000000000000000_ <>           -39614081257132168796771975168_ or
264                -16#ffffffffffffffffffffffff_ <>           -79228162514264337593543950335_ or
265            -16#7fffffffffffffffffffffffffff_ <>      -2596148429267413814265248164610047_ or
266            -16#8000000000000000000000000000_ <>      -2596148429267413814265248164610048_ or
267            -16#ffffffffffffffffffffffffffff_ <>      -5192296858534827628530496329220095_ or
268        -16#7fffffffffffffffffffffffffffffff_ <> -170141183460469231731687303715884105727_ or
269        -16#80000000000000000000000000000000_ <> -170141183460469231731687303715884105728_ or
270        -16#ffffffffffffffffffffffffffffffff_ <> -340282366920938463463374607431768211455_ then
271      writeln("Based bigInteger literals do not work correct.");
272      okay := FALSE;
273    end if;
274    if                                             8#3_ <>                                        3_ or
275                                                   8#4_ <>                                        4_ or
276                                                   8#7_ <>                                        7_ or
277                                                  8#10_ <>                                        8_ or
278                                                  8#17_ <>                                       15_ or
279                                                  8#20_ <>                                       16_ or
280                                                  8#37_ <>                                       31_ or
281                                                  8#40_ <>                                       32_ or
282                                                  8#77_ <>                                       63_ or
283                                                 8#100_ <>                                       64_ or
284                                                 8#177_ <>                                      127_ or
285                                                 8#200_ <>                                      128_ or
286                                                 8#377_ <>                                      255_ or
287                                                 8#400_ <>                                      256_ or
288                                                 8#777_ <>                                      511_ or
289                                               8#40000_ <>                                    16384_ or
290                                               8#77777_ <>                                    32767_ or
291                                              8#100000_ <>                                    32768_ or
292                                              8#177777_ <>                                    65535_ or
293                                              8#200000_ <>                                    65536_ or
294                                              8#377777_ <>                                   131071_ or
295                                         8#17777777777_ <>                               2147483647_ or
296                                         8#20000000000_ <>                               2147483648_ or
297                                         8#37777777777_ <>                               4294967295_ or
298                                         8#40000000000_ <>                               4294967296_ or
299                                         8#77777777777_ <>                               8589934591_ or
300                               8#777777777777777777777_ <>                      9223372036854775807_ or
301                              8#1000000000000000000000_ <>                      9223372036854775808_ or
302                              8#1777777777777777777777_ <>                     18446744073709551615_ or
303                              8#2000000000000000000000_ <>                     18446744073709551616_ or
304                              8#3777777777777777777777_ <>                     36893488147419103231_ or
305         8#1777777777777777777777777777777777777777777_ <>  170141183460469231731687303715884105727_ or
306         8#2000000000000000000000000000000000000000000_ <>  170141183460469231731687303715884105728_ or
307         8#3777777777777777777777777777777777777777777_ <>  340282366920938463463374607431768211455_ or
308         8#4000000000000000000000000000000000000000000_ <>  340282366920938463463374607431768211456_ or
309                                                  -8#3_ <>                                       -3_ or
310                                                  -8#4_ <>                                       -4_ or
311                                                  -8#7_ <>                                       -7_ or
312                                                 -8#10_ <>                                       -8_ or
313                                                 -8#17_ <>                                      -15_ or
314                                                 -8#20_ <>                                      -16_ or
315                                                 -8#37_ <>                                      -31_ or
316                                                 -8#40_ <>                                      -32_ or
317                                                 -8#77_ <>                                      -63_ or
318                                                -8#100_ <>                                      -64_ or
319                                                -8#177_ <>                                     -127_ or
320                                                -8#200_ <>                                     -128_ or
321                                                -8#377_ <>                                     -255_ or
322                                                -8#400_ <>                                     -256_ or
323                                                -8#777_ <>                                     -511_ or
324                                              -8#40000_ <>                                   -16384_ or
325                                              -8#77777_ <>                                   -32767_ or
326                                             -8#100000_ <>                                   -32768_ or
327                                             -8#177777_ <>                                   -65535_ or
328                                             -8#200000_ <>                                   -65536_ or
329                                             -8#377777_ <>                                  -131071_ or
330                                        -8#17777777777_ <>                              -2147483647_ or
331                                        -8#20000000000_ <>                              -2147483648_ or
332                                        -8#37777777777_ <>                              -4294967295_ or
333                                        -8#40000000000_ <>                              -4294967296_ or
334                                        -8#77777777777_ <>                              -8589934591_ or
335                              -8#777777777777777777777_ <>                     -9223372036854775807_ or
336                             -8#1000000000000000000000_ <>                     -9223372036854775808_ or
337                             -8#1777777777777777777777_ <>                    -18446744073709551615_ or
338                             -8#2000000000000000000000_ <>                    -18446744073709551616_ or
339                             -8#3777777777777777777777_ <>                    -36893488147419103231_ or
340        -8#1777777777777777777777777777777777777777777_ <> -170141183460469231731687303715884105727_ or
341        -8#2000000000000000000000000000000000000000000_ <> -170141183460469231731687303715884105728_ or
342        -8#3777777777777777777777777777777777777777777_ <> -340282366920938463463374607431768211455_ or
343        -8#4000000000000000000000000000000000000000000_ <> -340282366920938463463374607431768211456_ then
344      writeln("Based bigInteger literals do not work correct.");
345      okay := FALSE;
346    end if;
347
348    if okay then
349      writeln("Based bigInteger literals work correct.");
350    else
351      writeln(" ***** Based bigInteger literals do not work correct.");
352      writeln;
353    end if;
354  end func;
355
356
357const proc: chkStringConv is func
358  local
359    var integer: base is 0;
360    var boolean: okay is TRUE;
361  begin
362    if  str(bigInteger parse                         "0") <>                         "0" or
363        str(bigInteger parse                         "1") <>                         "1" or
364        str(bigInteger parse                         "2") <>                         "2" or
365        str(bigInteger parse                         "8") <>                         "8" or
366        str(bigInteger parse                         "9") <>                         "9" or
367        str(bigInteger parse                        "10") <>                        "10" or
368        str(bigInteger parse                        "11") <>                        "11" or
369        str(bigInteger parse                        "12") <>                        "12" or
370        str(bigInteger parse                        "98") <>                        "98" or
371        str(bigInteger parse                        "99") <>                        "99" or
372        str(bigInteger parse                       "100") <>                       "100" or
373        str(bigInteger parse                       "101") <>                       "101" or
374        str(bigInteger parse                       "102") <>                       "102" or
375        str(bigInteger parse                       "126") <>                       "126" or
376        str(bigInteger parse                       "127") <>                       "127" or
377        str(bigInteger parse                       "128") <>                       "128" or
378        str(bigInteger parse                       "129") <>                       "129" or
379        str(bigInteger parse                       "130") <>                       "130" or
380        str(bigInteger parse                       "254") <>                       "254" or
381        str(bigInteger parse                       "255") <>                       "255" or
382        str(bigInteger parse                       "256") <>                       "256" or
383        str(bigInteger parse                       "257") <>                       "257" or
384        str(bigInteger parse                       "258") <>                       "258" or
385        str(bigInteger parse                       "998") <>                       "998" or
386        str(bigInteger parse                       "999") <>                       "999" or
387        str(bigInteger parse                      "1000") <>                      "1000" or
388        str(bigInteger parse                      "1001") <>                      "1001" or
389        str(bigInteger parse                      "1002") <>                      "1002" or
390        str(bigInteger parse                      "9998") <>                      "9998" or
391        str(bigInteger parse                      "9999") <>                      "9999" or
392        str(bigInteger parse                     "10000") <>                     "10000" or
393        str(bigInteger parse                     "10001") <>                     "10001" or
394        str(bigInteger parse                     "10002") <>                     "10002" or
395        str(bigInteger parse                     "32766") <>                     "32766" or
396        str(bigInteger parse                     "32767") <>                     "32767" or
397        str(bigInteger parse                     "32768") <>                     "32768" or
398        str(bigInteger parse                     "32769") <>                     "32769" or
399        str(bigInteger parse                     "32770") <>                     "32770" or
400        str(bigInteger parse                     "65534") <>                     "65534" or
401        str(bigInteger parse                     "65535") <>                     "65535" or
402        str(bigInteger parse                     "65536") <>                     "65536" or
403        str(bigInteger parse                     "65537") <>                     "65537" or
404        str(bigInteger parse                     "65538") <>                     "65538" or
405        str(bigInteger parse                     "99998") <>                     "99998" or
406        str(bigInteger parse                     "99999") <>                     "99999" or
407        str(bigInteger parse                    "100000") <>                    "100000" or
408        str(bigInteger parse                    "100001") <>                    "100001" or
409        str(bigInteger parse                    "100002") <>                    "100002" or
410        str(bigInteger parse                    "999998") <>                    "999998" or
411        str(bigInteger parse                    "999999") <>                    "999999" or
412        str(bigInteger parse                   "1000000") <>                   "1000000" or
413        str(bigInteger parse                   "1000001") <>                   "1000001" or
414        str(bigInteger parse                   "1000002") <>                   "1000002" or
415        str(bigInteger parse                   "8388606") <>                   "8388606" or
416        str(bigInteger parse                   "8388607") <>                   "8388607" or
417        str(bigInteger parse                   "8388608") <>                   "8388608" or
418        str(bigInteger parse                   "8388609") <>                   "8388609" or
419        str(bigInteger parse                   "8388610") <>                   "8388610" or
420        str(bigInteger parse                   "9999998") <>                   "9999998" or
421        str(bigInteger parse                   "9999999") <>                   "9999999" or
422        str(bigInteger parse                  "10000000") <>                  "10000000" or
423        str(bigInteger parse                  "10000001") <>                  "10000001" or
424        str(bigInteger parse                  "10000002") <>                  "10000002" or
425        str(bigInteger parse                  "16777214") <>                  "16777214" or
426        str(bigInteger parse                  "16777215") <>                  "16777215" or
427        str(bigInteger parse                  "16777216") <>                  "16777216" or
428        str(bigInteger parse                  "16777217") <>                  "16777217" or
429        str(bigInteger parse                  "16777218") <>                  "16777218" or
430        str(bigInteger parse                  "99999998") <>                  "99999998" or
431        str(bigInteger parse                  "99999999") <>                  "99999999" or
432        str(bigInteger parse                 "100000000") <>                 "100000000" or
433        str(bigInteger parse                 "100000001") <>                 "100000001" or
434        str(bigInteger parse                 "100000002") <>                 "100000002" or
435        str(bigInteger parse                 "999999998") <>                 "999999998" or
436        str(bigInteger parse                 "999999999") <>                 "999999999" or
437        str(bigInteger parse                "1000000000") <>                "1000000000" or
438        str(bigInteger parse                "1000000001") <>                "1000000001" or
439        str(bigInteger parse                "1000000002") <>                "1000000002" or
440        str(bigInteger parse                "2147483646") <>                "2147483646" or
441        str(bigInteger parse                "2147483647") <>                "2147483647" or
442        str(bigInteger parse                "2147483648") <>                "2147483648" or
443        str(bigInteger parse                "2147483649") <>                "2147483649" or
444        str(bigInteger parse                "2147483650") <>                "2147483650" or
445        str(bigInteger parse                "4294967294") <>                "4294967294" or
446        str(bigInteger parse                "4294967295") <>                "4294967295" or
447        str(bigInteger parse                "4294967296") <>                "4294967296" or
448        str(bigInteger parse                "4294967297") <>                "4294967297" or
449        str(bigInteger parse                "4294967298") <>                "4294967298" or
450        str(bigInteger parse                "9999999998") <>                "9999999998" or
451        str(bigInteger parse                "9999999999") <>                "9999999999" or
452        str(bigInteger parse               "10000000000") <>               "10000000000" or
453        str(bigInteger parse               "10000000001") <>               "10000000001" or
454        str(bigInteger parse               "10000000002") <>               "10000000002" or
455        str(bigInteger parse               "99999999998") <>               "99999999998" or
456        str(bigInteger parse               "99999999999") <>               "99999999999" or
457        str(bigInteger parse              "100000000000") <>              "100000000000" or
458        str(bigInteger parse              "100000000001") <>              "100000000001" or
459        str(bigInteger parse              "100000000002") <>              "100000000002" or
460        str(bigInteger parse              "549755813886") <>              "549755813886" or
461        str(bigInteger parse              "549755813887") <>              "549755813887" or
462        str(bigInteger parse              "549755813888") <>              "549755813888" or
463        str(bigInteger parse              "549755813889") <>              "549755813889" or
464        str(bigInteger parse              "549755813890") <>              "549755813890" or
465        str(bigInteger parse              "999999999998") <>              "999999999998" or
466        str(bigInteger parse              "999999999999") <>              "999999999999" or
467        str(bigInteger parse             "1000000000000") <>             "1000000000000" or
468        str(bigInteger parse             "1000000000001") <>             "1000000000001" or
469        str(bigInteger parse             "1000000000002") <>             "1000000000002" or
470        str(bigInteger parse             "1099511627774") <>             "1099511627774" or
471        str(bigInteger parse             "1099511627775") <>             "1099511627775" or
472        str(bigInteger parse             "1099511627776") <>             "1099511627776" or
473        str(bigInteger parse             "1099511627777") <>             "1099511627777" or
474        str(bigInteger parse             "1099511627778") <>             "1099511627778" or
475        str(bigInteger parse           "140737488355326") <>           "140737488355326" or
476        str(bigInteger parse           "140737488355327") <>           "140737488355327" or
477        str(bigInteger parse           "140737488355328") <>           "140737488355328" or
478        str(bigInteger parse           "140737488355329") <>           "140737488355329" or
479        str(bigInteger parse           "140737488355330") <>           "140737488355330" or
480        str(bigInteger parse           "281474976710654") <>           "281474976710654" or
481        str(bigInteger parse           "281474976710655") <>           "281474976710655" or
482        str(bigInteger parse           "281474976710656") <>           "281474976710656" or
483        str(bigInteger parse           "281474976710657") <>           "281474976710657" or
484        str(bigInteger parse           "281474976710658") <>           "281474976710658" or
485        str(bigInteger parse         "36028797018963966") <>         "36028797018963966" or
486        str(bigInteger parse         "36028797018963967") <>         "36028797018963967" or
487        str(bigInteger parse         "36028797018963968") <>         "36028797018963968" or
488        str(bigInteger parse         "36028797018963969") <>         "36028797018963969" or
489        str(bigInteger parse         "36028797018963970") <>         "36028797018963970" or
490        str(bigInteger parse         "72057594037927934") <>         "72057594037927934" or
491        str(bigInteger parse         "72057594037927935") <>         "72057594037927935" or
492        str(bigInteger parse         "72057594037927936") <>         "72057594037927936" or
493        str(bigInteger parse         "72057594037927937") <>         "72057594037927937" or
494        str(bigInteger parse         "72057594037927938") <>         "72057594037927938" or
495        str(bigInteger parse        "999999999000000000") <>        "999999999000000000" or
496        str(bigInteger parse       "9223372036854775806") <>       "9223372036854775806" or
497        str(bigInteger parse       "9223372036854775807") <>       "9223372036854775807" or
498        str(bigInteger parse       "9223372036854775808") <>       "9223372036854775808" or
499        str(bigInteger parse       "9223372036854775809") <>       "9223372036854775809" or
500        str(bigInteger parse       "9223372036854775810") <>       "9223372036854775810" or
501        str(bigInteger parse      "18446744073709551614") <>      "18446744073709551614" or
502        str(bigInteger parse      "18446744073709551615") <>      "18446744073709551615" or
503        str(bigInteger parse      "18446744073709551616") <>      "18446744073709551616" or
504        str(bigInteger parse      "18446744073709551617") <>      "18446744073709551617" or
505        str(bigInteger parse      "18446744073709551618") <>      "18446744073709551618" or
506        str(bigInteger parse    "2361183241434822606846") <>    "2361183241434822606846" or
507        str(bigInteger parse    "2361183241434822606847") <>    "2361183241434822606847" or
508        str(bigInteger parse    "2361183241434822606848") <>    "2361183241434822606848" or
509        str(bigInteger parse    "2361183241434822606849") <>    "2361183241434822606849" or
510        str(bigInteger parse    "2361183241434822606850") <>    "2361183241434822606850" or
511        str(bigInteger parse    "4722366482869645213694") <>    "4722366482869645213694" or
512        str(bigInteger parse    "4722366482869645213695") <>    "4722366482869645213695" or
513        str(bigInteger parse    "4722366482869645213696") <>    "4722366482869645213696" or
514        str(bigInteger parse    "4722366482869645213697") <>    "4722366482869645213697" or
515        str(bigInteger parse    "4722366482869645213698") <>    "4722366482869645213698" or
516        str(bigInteger parse  "604462909807314587353086") <>  "604462909807314587353086" or
517        str(bigInteger parse  "604462909807314587353087") <>  "604462909807314587353087" or
518        str(bigInteger parse  "604462909807314587353088") <>  "604462909807314587353088" or
519        str(bigInteger parse  "604462909807314587353089") <>  "604462909807314587353089" or
520        str(bigInteger parse  "604462909807314587353090") <>  "604462909807314587353090" or
521        str(bigInteger parse "1208925819614629174706174") <> "1208925819614629174706174" or
522        str(bigInteger parse "1208925819614629174706175") <> "1208925819614629174706175" or
523        str(bigInteger parse "1208925819614629174706176") <> "1208925819614629174706176" or
524        str(bigInteger parse "1208925819614629174706177") <> "1208925819614629174706177" or
525        str(bigInteger parse "1208925819614629174706178") <> "1208925819614629174706178" then
526      writeln(" ***** Decimal conversion of a positive bigInteger does not work correct.");
527      okay := FALSE;
528    end if;
529
530    if  str(bigInteger parse                         "+0") <>                         "0" or
531        str(bigInteger parse                         "+1") <>                         "1" or
532        str(bigInteger parse                         "+2") <>                         "2" or
533        str(bigInteger parse                         "+8") <>                         "8" or
534        str(bigInteger parse                         "+9") <>                         "9" or
535        str(bigInteger parse                        "+10") <>                        "10" or
536        str(bigInteger parse                        "+11") <>                        "11" or
537        str(bigInteger parse                        "+12") <>                        "12" or
538        str(bigInteger parse                        "+98") <>                        "98" or
539        str(bigInteger parse                        "+99") <>                        "99" or
540        str(bigInteger parse                       "+100") <>                       "100" or
541        str(bigInteger parse                       "+101") <>                       "101" or
542        str(bigInteger parse                       "+102") <>                       "102" or
543        str(bigInteger parse                       "+126") <>                       "126" or
544        str(bigInteger parse                       "+127") <>                       "127" or
545        str(bigInteger parse                       "+128") <>                       "128" or
546        str(bigInteger parse                       "+129") <>                       "129" or
547        str(bigInteger parse                       "+130") <>                       "130" or
548        str(bigInteger parse                       "+254") <>                       "254" or
549        str(bigInteger parse                       "+255") <>                       "255" or
550        str(bigInteger parse                       "+256") <>                       "256" or
551        str(bigInteger parse                       "+257") <>                       "257" or
552        str(bigInteger parse                       "+258") <>                       "258" or
553        str(bigInteger parse                       "+998") <>                       "998" or
554        str(bigInteger parse                       "+999") <>                       "999" or
555        str(bigInteger parse                      "+1000") <>                      "1000" or
556        str(bigInteger parse                      "+1001") <>                      "1001" or
557        str(bigInteger parse                      "+1002") <>                      "1002" or
558        str(bigInteger parse                      "+9998") <>                      "9998" or
559        str(bigInteger parse                      "+9999") <>                      "9999" or
560        str(bigInteger parse                     "+10000") <>                     "10000" or
561        str(bigInteger parse                     "+10001") <>                     "10001" or
562        str(bigInteger parse                     "+10002") <>                     "10002" or
563        str(bigInteger parse                     "+32766") <>                     "32766" or
564        str(bigInteger parse                     "+32767") <>                     "32767" or
565        str(bigInteger parse                     "+32768") <>                     "32768" or
566        str(bigInteger parse                     "+32769") <>                     "32769" or
567        str(bigInteger parse                     "+32770") <>                     "32770" or
568        str(bigInteger parse                     "+65534") <>                     "65534" or
569        str(bigInteger parse                     "+65535") <>                     "65535" or
570        str(bigInteger parse                     "+65536") <>                     "65536" or
571        str(bigInteger parse                     "+65537") <>                     "65537" or
572        str(bigInteger parse                     "+65538") <>                     "65538" or
573        str(bigInteger parse                     "+99998") <>                     "99998" or
574        str(bigInteger parse                     "+99999") <>                     "99999" or
575        str(bigInteger parse                    "+100000") <>                    "100000" or
576        str(bigInteger parse                    "+100001") <>                    "100001" or
577        str(bigInteger parse                    "+100002") <>                    "100002" or
578        str(bigInteger parse                    "+999998") <>                    "999998" or
579        str(bigInteger parse                    "+999999") <>                    "999999" or
580        str(bigInteger parse                   "+1000000") <>                   "1000000" or
581        str(bigInteger parse                   "+1000001") <>                   "1000001" or
582        str(bigInteger parse                   "+1000002") <>                   "1000002" or
583        str(bigInteger parse                   "+8388606") <>                   "8388606" or
584        str(bigInteger parse                   "+8388607") <>                   "8388607" or
585        str(bigInteger parse                   "+8388608") <>                   "8388608" or
586        str(bigInteger parse                   "+8388609") <>                   "8388609" or
587        str(bigInteger parse                   "+8388610") <>                   "8388610" or
588        str(bigInteger parse                   "+9999998") <>                   "9999998" or
589        str(bigInteger parse                   "+9999999") <>                   "9999999" or
590        str(bigInteger parse                  "+10000000") <>                  "10000000" or
591        str(bigInteger parse                  "+10000001") <>                  "10000001" or
592        str(bigInteger parse                  "+10000002") <>                  "10000002" or
593        str(bigInteger parse                  "+16777214") <>                  "16777214" or
594        str(bigInteger parse                  "+16777215") <>                  "16777215" or
595        str(bigInteger parse                  "+16777216") <>                  "16777216" or
596        str(bigInteger parse                  "+16777217") <>                  "16777217" or
597        str(bigInteger parse                  "+16777218") <>                  "16777218" or
598        str(bigInteger parse                  "+99999998") <>                  "99999998" or
599        str(bigInteger parse                  "+99999999") <>                  "99999999" or
600        str(bigInteger parse                 "+100000000") <>                 "100000000" or
601        str(bigInteger parse                 "+100000001") <>                 "100000001" or
602        str(bigInteger parse                 "+100000002") <>                 "100000002" or
603        str(bigInteger parse                 "+999999998") <>                 "999999998" or
604        str(bigInteger parse                 "+999999999") <>                 "999999999" or
605        str(bigInteger parse                "+1000000000") <>                "1000000000" or
606        str(bigInteger parse                "+1000000001") <>                "1000000001" or
607        str(bigInteger parse                "+1000000002") <>                "1000000002" or
608        str(bigInteger parse                "+2147483646") <>                "2147483646" or
609        str(bigInteger parse                "+2147483647") <>                "2147483647" or
610        str(bigInteger parse                "+2147483648") <>                "2147483648" or
611        str(bigInteger parse                "+2147483649") <>                "2147483649" or
612        str(bigInteger parse                "+2147483650") <>                "2147483650" or
613        str(bigInteger parse                "+4294967294") <>                "4294967294" or
614        str(bigInteger parse                "+4294967295") <>                "4294967295" or
615        str(bigInteger parse                "+4294967296") <>                "4294967296" or
616        str(bigInteger parse                "+4294967297") <>                "4294967297" or
617        str(bigInteger parse                "+4294967298") <>                "4294967298" or
618        str(bigInteger parse                "+9999999998") <>                "9999999998" or
619        str(bigInteger parse                "+9999999999") <>                "9999999999" or
620        str(bigInteger parse               "+10000000000") <>               "10000000000" or
621        str(bigInteger parse               "+10000000001") <>               "10000000001" or
622        str(bigInteger parse               "+10000000002") <>               "10000000002" or
623        str(bigInteger parse               "+99999999998") <>               "99999999998" or
624        str(bigInteger parse               "+99999999999") <>               "99999999999" or
625        str(bigInteger parse              "+100000000000") <>              "100000000000" or
626        str(bigInteger parse              "+100000000001") <>              "100000000001" or
627        str(bigInteger parse              "+100000000002") <>              "100000000002" or
628        str(bigInteger parse              "+549755813886") <>              "549755813886" or
629        str(bigInteger parse              "+549755813887") <>              "549755813887" or
630        str(bigInteger parse              "+549755813888") <>              "549755813888" or
631        str(bigInteger parse              "+549755813889") <>              "549755813889" or
632        str(bigInteger parse              "+549755813890") <>              "549755813890" or
633        str(bigInteger parse              "+999999999998") <>              "999999999998" or
634        str(bigInteger parse              "+999999999999") <>              "999999999999" or
635        str(bigInteger parse             "+1000000000000") <>             "1000000000000" or
636        str(bigInteger parse             "+1000000000001") <>             "1000000000001" or
637        str(bigInteger parse             "+1000000000002") <>             "1000000000002" or
638        str(bigInteger parse             "+1099511627774") <>             "1099511627774" or
639        str(bigInteger parse             "+1099511627775") <>             "1099511627775" or
640        str(bigInteger parse             "+1099511627776") <>             "1099511627776" or
641        str(bigInteger parse             "+1099511627777") <>             "1099511627777" or
642        str(bigInteger parse             "+1099511627778") <>             "1099511627778" or
643        str(bigInteger parse           "+140737488355326") <>           "140737488355326" or
644        str(bigInteger parse           "+140737488355327") <>           "140737488355327" or
645        str(bigInteger parse           "+140737488355328") <>           "140737488355328" or
646        str(bigInteger parse           "+140737488355329") <>           "140737488355329" or
647        str(bigInteger parse           "+140737488355330") <>           "140737488355330" or
648        str(bigInteger parse           "+281474976710654") <>           "281474976710654" or
649        str(bigInteger parse           "+281474976710655") <>           "281474976710655" or
650        str(bigInteger parse           "+281474976710656") <>           "281474976710656" or
651        str(bigInteger parse           "+281474976710657") <>           "281474976710657" or
652        str(bigInteger parse           "+281474976710658") <>           "281474976710658" or
653        str(bigInteger parse         "+36028797018963966") <>         "36028797018963966" or
654        str(bigInteger parse         "+36028797018963967") <>         "36028797018963967" or
655        str(bigInteger parse         "+36028797018963968") <>         "36028797018963968" or
656        str(bigInteger parse         "+36028797018963969") <>         "36028797018963969" or
657        str(bigInteger parse         "+36028797018963970") <>         "36028797018963970" or
658        str(bigInteger parse         "+72057594037927934") <>         "72057594037927934" or
659        str(bigInteger parse         "+72057594037927935") <>         "72057594037927935" or
660        str(bigInteger parse         "+72057594037927936") <>         "72057594037927936" or
661        str(bigInteger parse         "+72057594037927937") <>         "72057594037927937" or
662        str(bigInteger parse         "+72057594037927938") <>         "72057594037927938" or
663        str(bigInteger parse        "+999999999000000000") <>        "999999999000000000" or
664        str(bigInteger parse       "+9223372036854775806") <>       "9223372036854775806" or
665        str(bigInteger parse       "+9223372036854775807") <>       "9223372036854775807" or
666        str(bigInteger parse       "+9223372036854775808") <>       "9223372036854775808" or
667        str(bigInteger parse       "+9223372036854775809") <>       "9223372036854775809" or
668        str(bigInteger parse       "+9223372036854775810") <>       "9223372036854775810" or
669        str(bigInteger parse      "+18446744073709551614") <>      "18446744073709551614" or
670        str(bigInteger parse      "+18446744073709551615") <>      "18446744073709551615" or
671        str(bigInteger parse      "+18446744073709551616") <>      "18446744073709551616" or
672        str(bigInteger parse      "+18446744073709551617") <>      "18446744073709551617" or
673        str(bigInteger parse      "+18446744073709551618") <>      "18446744073709551618" or
674        str(bigInteger parse    "+2361183241434822606846") <>    "2361183241434822606846" or
675        str(bigInteger parse    "+2361183241434822606847") <>    "2361183241434822606847" or
676        str(bigInteger parse    "+2361183241434822606848") <>    "2361183241434822606848" or
677        str(bigInteger parse    "+2361183241434822606849") <>    "2361183241434822606849" or
678        str(bigInteger parse    "+2361183241434822606850") <>    "2361183241434822606850" or
679        str(bigInteger parse    "+4722366482869645213694") <>    "4722366482869645213694" or
680        str(bigInteger parse    "+4722366482869645213695") <>    "4722366482869645213695" or
681        str(bigInteger parse    "+4722366482869645213696") <>    "4722366482869645213696" or
682        str(bigInteger parse    "+4722366482869645213697") <>    "4722366482869645213697" or
683        str(bigInteger parse    "+4722366482869645213698") <>    "4722366482869645213698" or
684        str(bigInteger parse  "+604462909807314587353086") <>  "604462909807314587353086" or
685        str(bigInteger parse  "+604462909807314587353087") <>  "604462909807314587353087" or
686        str(bigInteger parse  "+604462909807314587353088") <>  "604462909807314587353088" or
687        str(bigInteger parse  "+604462909807314587353089") <>  "604462909807314587353089" or
688        str(bigInteger parse  "+604462909807314587353090") <>  "604462909807314587353090" or
689        str(bigInteger parse "+1208925819614629174706174") <> "1208925819614629174706174" or
690        str(bigInteger parse "+1208925819614629174706175") <> "1208925819614629174706175" or
691        str(bigInteger parse "+1208925819614629174706176") <> "1208925819614629174706176" or
692        str(bigInteger parse "+1208925819614629174706177") <> "1208925819614629174706177" or
693        str(bigInteger parse "+1208925819614629174706178") <> "1208925819614629174706178" then
694      writeln(" ***** Decimal conversion of a positive bigInteger with sign does not work correct.");
695      okay := FALSE;
696    end if;
697
698    if  str(bigInteger parse                         "-0") <>                          "0" or
699        str(bigInteger parse                         "-1") <>                         "-1" or
700        str(bigInteger parse                         "-2") <>                         "-2" or
701        str(bigInteger parse                         "-8") <>                         "-8" or
702        str(bigInteger parse                         "-9") <>                         "-9" or
703        str(bigInteger parse                        "-10") <>                        "-10" or
704        str(bigInteger parse                        "-11") <>                        "-11" or
705        str(bigInteger parse                        "-12") <>                        "-12" or
706        str(bigInteger parse                        "-98") <>                        "-98" or
707        str(bigInteger parse                        "-99") <>                        "-99" or
708        str(bigInteger parse                       "-100") <>                       "-100" or
709        str(bigInteger parse                       "-101") <>                       "-101" or
710        str(bigInteger parse                       "-102") <>                       "-102" or
711        str(bigInteger parse                       "-126") <>                       "-126" or
712        str(bigInteger parse                       "-127") <>                       "-127" or
713        str(bigInteger parse                       "-128") <>                       "-128" or
714        str(bigInteger parse                       "-129") <>                       "-129" or
715        str(bigInteger parse                       "-130") <>                       "-130" or
716        str(bigInteger parse                       "-254") <>                       "-254" or
717        str(bigInteger parse                       "-255") <>                       "-255" or
718        str(bigInteger parse                       "-256") <>                       "-256" or
719        str(bigInteger parse                       "-257") <>                       "-257" or
720        str(bigInteger parse                       "-258") <>                       "-258" or
721        str(bigInteger parse                       "-998") <>                       "-998" or
722        str(bigInteger parse                       "-999") <>                       "-999" or
723        str(bigInteger parse                      "-1000") <>                      "-1000" or
724        str(bigInteger parse                      "-1001") <>                      "-1001" or
725        str(bigInteger parse                      "-1002") <>                      "-1002" or
726        str(bigInteger parse                      "-9998") <>                      "-9998" or
727        str(bigInteger parse                      "-9999") <>                      "-9999" or
728        str(bigInteger parse                     "-10000") <>                     "-10000" or
729        str(bigInteger parse                     "-10001") <>                     "-10001" or
730        str(bigInteger parse                     "-10002") <>                     "-10002" or
731        str(bigInteger parse                     "-32766") <>                     "-32766" or
732        str(bigInteger parse                     "-32767") <>                     "-32767" or
733        str(bigInteger parse                     "-32768") <>                     "-32768" or
734        str(bigInteger parse                     "-32769") <>                     "-32769" or
735        str(bigInteger parse                     "-32770") <>                     "-32770" or
736        str(bigInteger parse                     "-65534") <>                     "-65534" or
737        str(bigInteger parse                     "-65535") <>                     "-65535" or
738        str(bigInteger parse                     "-65536") <>                     "-65536" or
739        str(bigInteger parse                     "-65537") <>                     "-65537" or
740        str(bigInteger parse                     "-65538") <>                     "-65538" or
741        str(bigInteger parse                     "-99998") <>                     "-99998" or
742        str(bigInteger parse                     "-99999") <>                     "-99999" or
743        str(bigInteger parse                    "-100000") <>                    "-100000" or
744        str(bigInteger parse                    "-100001") <>                    "-100001" or
745        str(bigInteger parse                    "-100002") <>                    "-100002" or
746        str(bigInteger parse                    "-999998") <>                    "-999998" or
747        str(bigInteger parse                    "-999999") <>                    "-999999" or
748        str(bigInteger parse                   "-1000000") <>                   "-1000000" or
749        str(bigInteger parse                   "-1000001") <>                   "-1000001" or
750        str(bigInteger parse                   "-1000002") <>                   "-1000002" or
751        str(bigInteger parse                   "-8388606") <>                   "-8388606" or
752        str(bigInteger parse                   "-8388607") <>                   "-8388607" or
753        str(bigInteger parse                   "-8388608") <>                   "-8388608" or
754        str(bigInteger parse                   "-8388609") <>                   "-8388609" or
755        str(bigInteger parse                   "-8388610") <>                   "-8388610" or
756        str(bigInteger parse                   "-9999998") <>                   "-9999998" or
757        str(bigInteger parse                   "-9999999") <>                   "-9999999" or
758        str(bigInteger parse                  "-10000000") <>                  "-10000000" or
759        str(bigInteger parse                  "-10000001") <>                  "-10000001" or
760        str(bigInteger parse                  "-10000002") <>                  "-10000002" or
761        str(bigInteger parse                  "-16777214") <>                  "-16777214" or
762        str(bigInteger parse                  "-16777215") <>                  "-16777215" or
763        str(bigInteger parse                  "-16777216") <>                  "-16777216" or
764        str(bigInteger parse                  "-16777217") <>                  "-16777217" or
765        str(bigInteger parse                  "-16777218") <>                  "-16777218" or
766        str(bigInteger parse                  "-99999998") <>                  "-99999998" or
767        str(bigInteger parse                  "-99999999") <>                  "-99999999" or
768        str(bigInteger parse                 "-100000000") <>                 "-100000000" or
769        str(bigInteger parse                 "-100000001") <>                 "-100000001" or
770        str(bigInteger parse                 "-100000002") <>                 "-100000002" or
771        str(bigInteger parse                 "-999999998") <>                 "-999999998" or
772        str(bigInteger parse                 "-999999999") <>                 "-999999999" or
773        str(bigInteger parse                "-1000000000") <>                "-1000000000" or
774        str(bigInteger parse                "-1000000001") <>                "-1000000001" or
775        str(bigInteger parse                "-1000000002") <>                "-1000000002" or
776        str(bigInteger parse                "-2147483646") <>                "-2147483646" or
777        str(bigInteger parse                "-2147483647") <>                "-2147483647" or
778        str(bigInteger parse                "-2147483648") <>                "-2147483648" or
779        str(bigInteger parse                "-2147483649") <>                "-2147483649" or
780        str(bigInteger parse                "-2147483650") <>                "-2147483650" or
781        str(bigInteger parse                "-4294967294") <>                "-4294967294" or
782        str(bigInteger parse                "-4294967295") <>                "-4294967295" or
783        str(bigInteger parse                "-4294967296") <>                "-4294967296" or
784        str(bigInteger parse                "-4294967297") <>                "-4294967297" or
785        str(bigInteger parse                "-4294967298") <>                "-4294967298" or
786        str(bigInteger parse                "-9999999998") <>                "-9999999998" or
787        str(bigInteger parse                "-9999999999") <>                "-9999999999" or
788        str(bigInteger parse               "-10000000000") <>               "-10000000000" or
789        str(bigInteger parse               "-10000000001") <>               "-10000000001" or
790        str(bigInteger parse               "-10000000002") <>               "-10000000002" or
791        str(bigInteger parse               "-99999999998") <>               "-99999999998" or
792        str(bigInteger parse               "-99999999999") <>               "-99999999999" or
793        str(bigInteger parse              "-100000000000") <>              "-100000000000" or
794        str(bigInteger parse              "-100000000001") <>              "-100000000001" or
795        str(bigInteger parse              "-100000000002") <>              "-100000000002" or
796        str(bigInteger parse              "-549755813886") <>              "-549755813886" or
797        str(bigInteger parse              "-549755813887") <>              "-549755813887" or
798        str(bigInteger parse              "-549755813888") <>              "-549755813888" or
799        str(bigInteger parse              "-549755813889") <>              "-549755813889" or
800        str(bigInteger parse              "-549755813890") <>              "-549755813890" or
801        str(bigInteger parse              "-999999999998") <>              "-999999999998" or
802        str(bigInteger parse              "-999999999999") <>              "-999999999999" or
803        str(bigInteger parse             "-1000000000000") <>             "-1000000000000" or
804        str(bigInteger parse             "-1000000000001") <>             "-1000000000001" or
805        str(bigInteger parse             "-1000000000002") <>             "-1000000000002" or
806        str(bigInteger parse             "-1099511627774") <>             "-1099511627774" or
807        str(bigInteger parse             "-1099511627775") <>             "-1099511627775" or
808        str(bigInteger parse             "-1099511627776") <>             "-1099511627776" or
809        str(bigInteger parse             "-1099511627777") <>             "-1099511627777" or
810        str(bigInteger parse             "-1099511627778") <>             "-1099511627778" or
811        str(bigInteger parse           "-140737488355326") <>           "-140737488355326" or
812        str(bigInteger parse           "-140737488355327") <>           "-140737488355327" or
813        str(bigInteger parse           "-140737488355328") <>           "-140737488355328" or
814        str(bigInteger parse           "-140737488355329") <>           "-140737488355329" or
815        str(bigInteger parse           "-140737488355330") <>           "-140737488355330" or
816        str(bigInteger parse           "-281474976710654") <>           "-281474976710654" or
817        str(bigInteger parse           "-281474976710655") <>           "-281474976710655" or
818        str(bigInteger parse           "-281474976710656") <>           "-281474976710656" or
819        str(bigInteger parse           "-281474976710657") <>           "-281474976710657" or
820        str(bigInteger parse           "-281474976710658") <>           "-281474976710658" or
821        str(bigInteger parse         "-36028797018963966") <>         "-36028797018963966" or
822        str(bigInteger parse         "-36028797018963967") <>         "-36028797018963967" or
823        str(bigInteger parse         "-36028797018963968") <>         "-36028797018963968" or
824        str(bigInteger parse         "-36028797018963969") <>         "-36028797018963969" or
825        str(bigInteger parse         "-36028797018963970") <>         "-36028797018963970" or
826        str(bigInteger parse         "-72057594037927934") <>         "-72057594037927934" or
827        str(bigInteger parse         "-72057594037927935") <>         "-72057594037927935" or
828        str(bigInteger parse         "-72057594037927936") <>         "-72057594037927936" or
829        str(bigInteger parse         "-72057594037927937") <>         "-72057594037927937" or
830        str(bigInteger parse         "-72057594037927938") <>         "-72057594037927938" or
831        str(bigInteger parse       "-9223372036854775806") <>       "-9223372036854775806" or
832        str(bigInteger parse       "-9223372036854775807") <>       "-9223372036854775807" or
833        str(bigInteger parse       "-9223372036854775808") <>       "-9223372036854775808" or
834        str(bigInteger parse       "-9223372036854775809") <>       "-9223372036854775809" or
835        str(bigInteger parse       "-9223372036854775810") <>       "-9223372036854775810" or
836        str(bigInteger parse      "-18446744073709551614") <>      "-18446744073709551614" or
837        str(bigInteger parse      "-18446744073709551615") <>      "-18446744073709551615" or
838        str(bigInteger parse      "-18446744073709551616") <>      "-18446744073709551616" or
839        str(bigInteger parse      "-18446744073709551617") <>      "-18446744073709551617" or
840        str(bigInteger parse      "-18446744073709551618") <>      "-18446744073709551618" or
841        str(bigInteger parse    "-2361183241434822606846") <>    "-2361183241434822606846" or
842        str(bigInteger parse    "-2361183241434822606847") <>    "-2361183241434822606847" or
843        str(bigInteger parse    "-2361183241434822606848") <>    "-2361183241434822606848" or
844        str(bigInteger parse    "-2361183241434822606849") <>    "-2361183241434822606849" or
845        str(bigInteger parse    "-2361183241434822606850") <>    "-2361183241434822606850" or
846        str(bigInteger parse    "-4722366482869645213694") <>    "-4722366482869645213694" or
847        str(bigInteger parse    "-4722366482869645213695") <>    "-4722366482869645213695" or
848        str(bigInteger parse    "-4722366482869645213696") <>    "-4722366482869645213696" or
849        str(bigInteger parse    "-4722366482869645213697") <>    "-4722366482869645213697" or
850        str(bigInteger parse    "-4722366482869645213698") <>    "-4722366482869645213698" or
851        str(bigInteger parse  "-604462909807314587353086") <>  "-604462909807314587353086" or
852        str(bigInteger parse  "-604462909807314587353087") <>  "-604462909807314587353087" or
853        str(bigInteger parse  "-604462909807314587353088") <>  "-604462909807314587353088" or
854        str(bigInteger parse  "-604462909807314587353089") <>  "-604462909807314587353089" or
855        str(bigInteger parse  "-604462909807314587353090") <>  "-604462909807314587353090" or
856        str(bigInteger parse "-1208925819614629174706174") <> "-1208925819614629174706174" or
857        str(bigInteger parse "-1208925819614629174706175") <> "-1208925819614629174706175" or
858        str(bigInteger parse "-1208925819614629174706176") <> "-1208925819614629174706176" or
859        str(bigInteger parse "-1208925819614629174706177") <> "-1208925819614629174706177" or
860        str(bigInteger parse "-1208925819614629174706178") <> "-1208925819614629174706178" then
861      writeln(" ***** Decimal conversion of a negative bigInteger does not work correct.");
862      okay := FALSE;
863    end if;
864
865    if  bigInteger parse str(123456789_ ** 1234) <> 123456789_ ** 1234 then
866      writeln(" ***** Decimal conversion of large bigInteger does not work correct.");
867      okay := FALSE;
868    end if;
869
870    for base range 2 to 36 do
871      if  bigInteger("0",                        base) <>  0_ or
872          bigInteger("+0",                       base) <>  0_ or
873          bigInteger("-0",                       base) <>  0_ or
874          bigInteger("1",                        base) <>  1_ or
875          bigInteger("+1",                       base) <>  1_ or
876          bigInteger("-1",                       base) <> -1_ or
877          bigInteger(pred(base) radix 36,        base) <>  bigInteger conv pred(base) or
878          bigInteger("+" <& pred(base) radix 36, base) <>  bigInteger conv pred(base) or
879          bigInteger("-" <& pred(base) radix 36, base) <> -bigInteger conv pred(base) or
880          bigInteger("10",                       base) <>  bigInteger conv base or
881          bigInteger("+10",                      base) <>  bigInteger conv base or
882          bigInteger("-10",                      base) <> -bigInteger conv base then
883        writeln(" ***** Conversion of numeric string with specified radix " <& base <& " does not work correct.");
884        okay := FALSE;
885      end if;
886    end for;
887
888    if   4611686018427387903_ <> bigInteger("11111111111111111111111111111111111111111111111111111111111111", 2) or
889        12157665459056928800_ <> bigInteger("2222222222222222222222222222222222222222", 3) or
890         1152921504606846975_ <> bigInteger("333333333333333333333333333333", 4) or
891         1490116119384765624_ <> bigInteger("44444444444444444444444444", 5) or
892         4738381338321616895_ <> bigInteger("555555555555555555555555", 6) or
893         3909821048582988048_ <> bigInteger("6666666666666666666666", 7) or
894         1152921504606846975_ <> bigInteger("77777777777777777777", 8) or
895        12157665459056928800_ <> bigInteger("88888888888888888888", 9) or
896          999999999999999999_ <> bigInteger("999999999999999999", 10) or
897         5559917313492231480_ <> bigInteger("aaaaaaaaaaaaaaaaaa", 11) or
898          184884258895036415_ <> bigInteger("bbbbbbbbbbbbbbbb", 12) or
899          665416609183179840_ <> bigInteger("cccccccccccccccc", 13) or
900         2177953337809371135_ <> bigInteger("dddddddddddddddd", 14) or
901         6568408355712890624_ <> bigInteger("eeeeeeeeeeeeeeee", 15) or
902           72057594037927935_ <> bigInteger("ffffffffffffff", 16) or
903          168377826559400928_ <> bigInteger("gggggggggggggg", 17) or
904          374813367582081023_ <> bigInteger("hhhhhhhhhhhhhh", 18) or
905          799006685782884120_ <> bigInteger("iiiiiiiiiiiiii", 19) or
906         1638399999999999999_ <> bigInteger("jjjjjjjjjjjjjj", 20) or
907         3243919932521508680_ <> bigInteger("kkkkkkkkkkkkkk", 21) or
908         6221821273427820543_ <> bigInteger("llllllllllllll", 22) or
909        11592836324538749808_ <> bigInteger("mmmmmmmmmmmmmm", 23) or
910           36520347436056575_ <> bigInteger("nnnnnnnnnnnn", 24) or
911           59604644775390624_ <> bigInteger("oooooooooooo", 25) or
912           95428956661682175_ <> bigInteger("pppppppppppp", 26) or
913          150094635296999120_ <> bigInteger("qqqqqqqqqqqq", 27) or
914          232218265089212415_ <> bigInteger("rrrrrrrrrrrr", 28) or
915          353814783205469040_ <> bigInteger("ssssssssssss", 29) or
916          531440999999999999_ <> bigInteger("tttttttttttt", 30) or
917          787662783788549760_ <> bigInteger("uuuuuuuuuuuu", 31) or
918         1152921504606846975_ <> bigInteger("vvvvvvvvvvvv", 32) or
919         1667889514952984960_ <> bigInteger("wwwwwwwwwwww", 33) or
920         2386420683693101055_ <> bigInteger("xxxxxxxxxxxx", 34) or
921         3379220508056640624_ <> bigInteger("yyyyyyyyyyyy", 35) or
922         4738381338321616895_ <> bigInteger("zzzzzzzzzzzz", 36) or
923         5559917313492231480_ <> bigInteger("AAAAAAAAAAAAAAAAAA", 11) or
924          184884258895036415_ <> bigInteger("BBBBBBBBBBBBBBBB", 12) or
925          665416609183179840_ <> bigInteger("CCCCCCCCCCCCCCCC", 13) or
926         2177953337809371135_ <> bigInteger("DDDDDDDDDDDDDDDD", 14) or
927         6568408355712890624_ <> bigInteger("EEEEEEEEEEEEEEEE", 15) or
928           72057594037927935_ <> bigInteger("FFFFFFFFFFFFFF", 16) or
929          168377826559400928_ <> bigInteger("GGGGGGGGGGGGGG", 17) or
930          374813367582081023_ <> bigInteger("HHHHHHHHHHHHHH", 18) or
931          799006685782884120_ <> bigInteger("IIIIIIIIIIIIII", 19) or
932         1638399999999999999_ <> bigInteger("JJJJJJJJJJJJJJ", 20) or
933         3243919932521508680_ <> bigInteger("KKKKKKKKKKKKKK", 21) or
934         6221821273427820543_ <> bigInteger("LLLLLLLLLLLLLL", 22) or
935        11592836324538749808_ <> bigInteger("MMMMMMMMMMMMMM", 23) or
936           36520347436056575_ <> bigInteger("NNNNNNNNNNNN", 24) or
937           59604644775390624_ <> bigInteger("OOOOOOOOOOOO", 25) or
938           95428956661682175_ <> bigInteger("PPPPPPPPPPPP", 26) or
939          150094635296999120_ <> bigInteger("QQQQQQQQQQQQ", 27) or
940          232218265089212415_ <> bigInteger("RRRRRRRRRRRR", 28) or
941          353814783205469040_ <> bigInteger("SSSSSSSSSSSS", 29) or
942          531440999999999999_ <> bigInteger("TTTTTTTTTTTT", 30) or
943          787662783788549760_ <> bigInteger("UUUUUUUUUUUU", 31) or
944         1152921504606846975_ <> bigInteger("VVVVVVVVVVVV", 32) or
945         1667889514952984960_ <> bigInteger("WWWWWWWWWWWW", 33) or
946         2386420683693101055_ <> bigInteger("XXXXXXXXXXXX", 34) or
947         3379220508056640624_ <> bigInteger("YYYYYYYYYYYY", 35) or
948         4738381338321616895_ <> bigInteger("ZZZZZZZZZZZZ", 36) or
949         4611686018427387904_ <> bigInteger("100000000000000000000000000000000000000000000000000000000000000", 2) or
950        12157665459056928801_ <> bigInteger("10000000000000000000000000000000000000000", 3) or
951         1152921504606846976_ <> bigInteger("1000000000000000000000000000000", 4) or
952         1490116119384765625_ <> bigInteger("100000000000000000000000000", 5) or
953         4738381338321616896_ <> bigInteger("1000000000000000000000000", 6) or
954         3909821048582988049_ <> bigInteger("10000000000000000000000", 7) or
955         1152921504606846976_ <> bigInteger("100000000000000000000", 8) or
956        12157665459056928801_ <> bigInteger("100000000000000000000", 9) or
957         1000000000000000000_ <> bigInteger("1000000000000000000", 10) or
958         5559917313492231481_ <> bigInteger("1000000000000000000", 11) or
959          184884258895036416_ <> bigInteger("10000000000000000", 12) or
960          665416609183179841_ <> bigInteger("10000000000000000", 13) or
961         2177953337809371136_ <> bigInteger("10000000000000000", 14) or
962         6568408355712890625_ <> bigInteger("10000000000000000", 15) or
963           72057594037927936_ <> bigInteger("100000000000000", 16) or
964          168377826559400929_ <> bigInteger("100000000000000", 17) or
965          374813367582081024_ <> bigInteger("100000000000000", 18) or
966          799006685782884121_ <> bigInteger("100000000000000", 19) or
967         1638400000000000000_ <> bigInteger("100000000000000", 20) or
968         3243919932521508681_ <> bigInteger("100000000000000", 21) or
969         6221821273427820544_ <> bigInteger("100000000000000", 22) or
970        11592836324538749809_ <> bigInteger("100000000000000", 23) or
971           36520347436056576_ <> bigInteger("1000000000000", 24) or
972           59604644775390625_ <> bigInteger("1000000000000", 25) or
973           95428956661682176_ <> bigInteger("1000000000000", 26) or
974          150094635296999121_ <> bigInteger("1000000000000", 27) or
975          232218265089212416_ <> bigInteger("1000000000000", 28) or
976          353814783205469041_ <> bigInteger("1000000000000", 29) or
977          531441000000000000_ <> bigInteger("1000000000000", 30) or
978          787662783788549761_ <> bigInteger("1000000000000", 31) or
979         1152921504606846976_ <> bigInteger("1000000000000", 32) or
980         1667889514952984961_ <> bigInteger("1000000000000", 33) or
981         2386420683693101056_ <> bigInteger("1000000000000", 34) or
982         3379220508056640625_ <> bigInteger("1000000000000", 35) or
983         4738381338321616896_ <> bigInteger("1000000000000", 36) then
984      writeln(" ***** Conversion of numeric string with specified radix does not work correct for positive values.");
985      okay := FALSE;
986    end if;
987
988    if   -4611686018427387903_ <> bigInteger("-11111111111111111111111111111111111111111111111111111111111111", 2) or
989        -12157665459056928800_ <> bigInteger("-2222222222222222222222222222222222222222", 3) or
990         -1152921504606846975_ <> bigInteger("-333333333333333333333333333333", 4) or
991         -1490116119384765624_ <> bigInteger("-44444444444444444444444444", 5) or
992         -4738381338321616895_ <> bigInteger("-555555555555555555555555", 6) or
993         -3909821048582988048_ <> bigInteger("-6666666666666666666666", 7) or
994         -1152921504606846975_ <> bigInteger("-77777777777777777777", 8) or
995        -12157665459056928800_ <> bigInteger("-88888888888888888888", 9) or
996          -999999999999999999_ <> bigInteger("-999999999999999999", 10) or
997         -5559917313492231480_ <> bigInteger("-aaaaaaaaaaaaaaaaaa", 11) or
998          -184884258895036415_ <> bigInteger("-bbbbbbbbbbbbbbbb", 12) or
999          -665416609183179840_ <> bigInteger("-cccccccccccccccc", 13) or
1000         -2177953337809371135_ <> bigInteger("-dddddddddddddddd", 14) or
1001         -6568408355712890624_ <> bigInteger("-eeeeeeeeeeeeeeee", 15) or
1002           -72057594037927935_ <> bigInteger("-ffffffffffffff", 16) or
1003          -168377826559400928_ <> bigInteger("-gggggggggggggg", 17) or
1004          -374813367582081023_ <> bigInteger("-hhhhhhhhhhhhhh", 18) or
1005          -799006685782884120_ <> bigInteger("-iiiiiiiiiiiiii", 19) or
1006         -1638399999999999999_ <> bigInteger("-jjjjjjjjjjjjjj", 20) or
1007         -3243919932521508680_ <> bigInteger("-kkkkkkkkkkkkkk", 21) or
1008         -6221821273427820543_ <> bigInteger("-llllllllllllll", 22) or
1009        -11592836324538749808_ <> bigInteger("-mmmmmmmmmmmmmm", 23) or
1010           -36520347436056575_ <> bigInteger("-nnnnnnnnnnnn", 24) or
1011           -59604644775390624_ <> bigInteger("-oooooooooooo", 25) or
1012           -95428956661682175_ <> bigInteger("-pppppppppppp", 26) or
1013          -150094635296999120_ <> bigInteger("-qqqqqqqqqqqq", 27) or
1014          -232218265089212415_ <> bigInteger("-rrrrrrrrrrrr", 28) or
1015          -353814783205469040_ <> bigInteger("-ssssssssssss", 29) or
1016          -531440999999999999_ <> bigInteger("-tttttttttttt", 30) or
1017          -787662783788549760_ <> bigInteger("-uuuuuuuuuuuu", 31) or
1018         -1152921504606846975_ <> bigInteger("-vvvvvvvvvvvv", 32) or
1019         -1667889514952984960_ <> bigInteger("-wwwwwwwwwwww", 33) or
1020         -2386420683693101055_ <> bigInteger("-xxxxxxxxxxxx", 34) or
1021         -3379220508056640624_ <> bigInteger("-yyyyyyyyyyyy", 35) or
1022         -4738381338321616895_ <> bigInteger("-zzzzzzzzzzzz", 36) or
1023         -5559917313492231480_ <> bigInteger("-AAAAAAAAAAAAAAAAAA", 11) or
1024          -184884258895036415_ <> bigInteger("-BBBBBBBBBBBBBBBB", 12) or
1025          -665416609183179840_ <> bigInteger("-CCCCCCCCCCCCCCCC", 13) or
1026         -2177953337809371135_ <> bigInteger("-DDDDDDDDDDDDDDDD", 14) or
1027         -6568408355712890624_ <> bigInteger("-EEEEEEEEEEEEEEEE", 15) or
1028           -72057594037927935_ <> bigInteger("-FFFFFFFFFFFFFF", 16) or
1029          -168377826559400928_ <> bigInteger("-GGGGGGGGGGGGGG", 17) or
1030          -374813367582081023_ <> bigInteger("-HHHHHHHHHHHHHH", 18) or
1031          -799006685782884120_ <> bigInteger("-IIIIIIIIIIIIII", 19) or
1032         -1638399999999999999_ <> bigInteger("-JJJJJJJJJJJJJJ", 20) or
1033         -3243919932521508680_ <> bigInteger("-KKKKKKKKKKKKKK", 21) or
1034         -6221821273427820543_ <> bigInteger("-LLLLLLLLLLLLLL", 22) or
1035        -11592836324538749808_ <> bigInteger("-MMMMMMMMMMMMMM", 23) or
1036           -36520347436056575_ <> bigInteger("-NNNNNNNNNNNN", 24) or
1037           -59604644775390624_ <> bigInteger("-OOOOOOOOOOOO", 25) or
1038           -95428956661682175_ <> bigInteger("-PPPPPPPPPPPP", 26) or
1039          -150094635296999120_ <> bigInteger("-QQQQQQQQQQQQ", 27) or
1040          -232218265089212415_ <> bigInteger("-RRRRRRRRRRRR", 28) or
1041          -353814783205469040_ <> bigInteger("-SSSSSSSSSSSS", 29) or
1042          -531440999999999999_ <> bigInteger("-TTTTTTTTTTTT", 30) or
1043          -787662783788549760_ <> bigInteger("-UUUUUUUUUUUU", 31) or
1044         -1152921504606846975_ <> bigInteger("-VVVVVVVVVVVV", 32) or
1045         -1667889514952984960_ <> bigInteger("-WWWWWWWWWWWW", 33) or
1046         -2386420683693101055_ <> bigInteger("-XXXXXXXXXXXX", 34) or
1047         -3379220508056640624_ <> bigInteger("-YYYYYYYYYYYY", 35) or
1048         -4738381338321616895_ <> bigInteger("-ZZZZZZZZZZZZ", 36) or
1049         -4611686018427387904_ <> bigInteger("-100000000000000000000000000000000000000000000000000000000000000", 2) or
1050        -12157665459056928801_ <> bigInteger("-10000000000000000000000000000000000000000", 3) or
1051         -1152921504606846976_ <> bigInteger("-1000000000000000000000000000000", 4) or
1052         -1490116119384765625_ <> bigInteger("-100000000000000000000000000", 5) or
1053         -4738381338321616896_ <> bigInteger("-1000000000000000000000000", 6) or
1054         -3909821048582988049_ <> bigInteger("-10000000000000000000000", 7) or
1055         -1152921504606846976_ <> bigInteger("-100000000000000000000", 8) or
1056        -12157665459056928801_ <> bigInteger("-100000000000000000000", 9) or
1057         -1000000000000000000_ <> bigInteger("-1000000000000000000", 10) or
1058         -5559917313492231481_ <> bigInteger("-1000000000000000000", 11) or
1059          -184884258895036416_ <> bigInteger("-10000000000000000", 12) or
1060          -665416609183179841_ <> bigInteger("-10000000000000000", 13) or
1061         -2177953337809371136_ <> bigInteger("-10000000000000000", 14) or
1062         -6568408355712890625_ <> bigInteger("-10000000000000000", 15) or
1063           -72057594037927936_ <> bigInteger("-100000000000000", 16) or
1064          -168377826559400929_ <> bigInteger("-100000000000000", 17) or
1065          -374813367582081024_ <> bigInteger("-100000000000000", 18) or
1066          -799006685782884121_ <> bigInteger("-100000000000000", 19) or
1067         -1638400000000000000_ <> bigInteger("-100000000000000", 20) or
1068         -3243919932521508681_ <> bigInteger("-100000000000000", 21) or
1069         -6221821273427820544_ <> bigInteger("-100000000000000", 22) or
1070        -11592836324538749809_ <> bigInteger("-100000000000000", 23) or
1071           -36520347436056576_ <> bigInteger("-1000000000000", 24) or
1072           -59604644775390625_ <> bigInteger("-1000000000000", 25) or
1073           -95428956661682176_ <> bigInteger("-1000000000000", 26) or
1074          -150094635296999121_ <> bigInteger("-1000000000000", 27) or
1075          -232218265089212416_ <> bigInteger("-1000000000000", 28) or
1076          -353814783205469041_ <> bigInteger("-1000000000000", 29) or
1077          -531441000000000000_ <> bigInteger("-1000000000000", 30) or
1078          -787662783788549761_ <> bigInteger("-1000000000000", 31) or
1079         -1152921504606846976_ <> bigInteger("-1000000000000", 32) or
1080         -1667889514952984961_ <> bigInteger("-1000000000000", 33) or
1081         -2386420683693101056_ <> bigInteger("-1000000000000", 34) or
1082         -3379220508056640625_ <> bigInteger("-1000000000000", 35) or
1083         -4738381338321616896_ <> bigInteger("-1000000000000", 36) then
1084      writeln(" ***** Conversion of numeric string with specified radix does not work correct for negative values.");
1085      okay := FALSE;
1086    end if;
1087
1088    if   100000000000000000000_ <> bigInteger("1010110101111000111010111100010110101100011000100000000000000000000", 2) or
1089         100000000000000000000_ <> bigInteger("220200020122120112010222022122002000100201", 3) or
1090         100000000000000000000_ <> bigInteger("1112233013113202311203010000000000", 4) or
1091         100000000000000000000_ <> bigInteger("23202330100000000000000000000", 5) or
1092         100000000000000000000_ <> bigInteger("33034304013023440042054544", 6) or
1093         100000000000000000000_ <> bigInteger("344015313561621001452562", 7) or
1094         100000000000000000000_ <> bigInteger("12657072742654304000000", 8) or
1095         100000000000000000000_ <> bigInteger("820218515128278060321", 9) or
1096         100000000000000000000_ <> bigInteger("100000000000000000000", 10) or
1097         100000000000000000000_ <> bigInteger("16a9322885328081a121", 11) or
1098         100000000000000000000_ <> bigInteger("390a66958a9464aa454", 12) or
1099         100000000000000000000_ <> bigInteger("b7388131b304451099", 13) or
1100         100000000000000000000_ <> bigInteger("33cb3bb449c2a91332", 14) or
1101         100000000000000000000_ <> bigInteger("1035749e25953d996a", 15) or
1102         100000000000000000000_ <> bigInteger("56bc75e2d63100000", 16) or
1103         100000000000000000000_ <> bigInteger("20ff5dab9g7f47384", 17) or
1104         100000000000000000000_ <> bigInteger("eee706h921ebb55a", 18) or
1105         100000000000000000000_ <> bigInteger("6b2i1gcaddd4ga45", 19) or
1106         100000000000000000000_ <> bigInteger("310e150000000000", 20) or
1107         100000000000000000000_ <> bigInteger("19h7djcjj8f750dg", 21) or
1108         100000000000000000000_ <> bigInteger("g1d1d41kh0d406c", 22) or
1109         100000000000000000000_ <> bigInteger("8e93h381mich183", 23) or
1110         100000000000000000000_ <> bigInteger("4i24imni329g72g", 24) or
1111         100000000000000000000_ <> bigInteger("2h2i10000000000", 25) or
1112         100000000000000000000_ <> bigInteger("1e7na9ijd1jl6hm", 26) or
1113         100000000000000000000_ <> bigInteger("oi6hfe3q8h209j", 27) or
1114         100000000000000000000_ <> bigInteger("fahhbc826cmp8g", 28) or
1115         100000000000000000000_ <> bigInteger("9liashaimceq07", 29) or
1116         100000000000000000000_ <> bigInteger("6850qa888gnl3a", 30) or
1117         100000000000000000000_ <> bigInteger("42tlg9if3mmgip", 31) or
1118         100000000000000000000_ <> bigInteger("2mnhqu5lhh0000", 32) or
1119         100000000000000000000_ <> bigInteger("1qvi340qbei9u1", 33) or
1120         100000000000000000000_ <> bigInteger("17uopd8lcnm544", 34) or
1121         100000000000000000000_ <> bigInteger("tkpxpiyscferu", 35) or
1122         100000000000000000000_ <> bigInteger("l3r41ifs0q5ts", 36) or
1123         100000000000000000000_ <> bigInteger("+1010110101111000111010111100010110101100011000100000000000000000000", 2) or
1124         100000000000000000000_ <> bigInteger("+220200020122120112010222022122002000100201", 3) or
1125         100000000000000000000_ <> bigInteger("+1112233013113202311203010000000000", 4) or
1126         100000000000000000000_ <> bigInteger("+23202330100000000000000000000", 5) or
1127         100000000000000000000_ <> bigInteger("+33034304013023440042054544", 6) or
1128         100000000000000000000_ <> bigInteger("+344015313561621001452562", 7) or
1129         100000000000000000000_ <> bigInteger("+12657072742654304000000", 8) or
1130         100000000000000000000_ <> bigInteger("+820218515128278060321", 9) or
1131         100000000000000000000_ <> bigInteger("+100000000000000000000", 10) or
1132         100000000000000000000_ <> bigInteger("+16a9322885328081a121", 11) or
1133         100000000000000000000_ <> bigInteger("+390a66958a9464aa454", 12) or
1134         100000000000000000000_ <> bigInteger("+b7388131b304451099", 13) or
1135         100000000000000000000_ <> bigInteger("+33cb3bb449c2a91332", 14) or
1136         100000000000000000000_ <> bigInteger("+1035749e25953d996a", 15) or
1137         100000000000000000000_ <> bigInteger("+56bc75e2d63100000", 16) or
1138         100000000000000000000_ <> bigInteger("+20ff5dab9g7f47384", 17) or
1139         100000000000000000000_ <> bigInteger("+eee706h921ebb55a", 18) or
1140         100000000000000000000_ <> bigInteger("+6b2i1gcaddd4ga45", 19) or
1141         100000000000000000000_ <> bigInteger("+310e150000000000", 20) or
1142         100000000000000000000_ <> bigInteger("+19h7djcjj8f750dg", 21) or
1143         100000000000000000000_ <> bigInteger("+g1d1d41kh0d406c", 22) or
1144         100000000000000000000_ <> bigInteger("+8e93h381mich183", 23) or
1145         100000000000000000000_ <> bigInteger("+4i24imni329g72g", 24) or
1146         100000000000000000000_ <> bigInteger("+2h2i10000000000", 25) or
1147         100000000000000000000_ <> bigInteger("+1e7na9ijd1jl6hm", 26) or
1148         100000000000000000000_ <> bigInteger("+oi6hfe3q8h209j", 27) or
1149         100000000000000000000_ <> bigInteger("+fahhbc826cmp8g", 28) or
1150         100000000000000000000_ <> bigInteger("+9liashaimceq07", 29) or
1151         100000000000000000000_ <> bigInteger("+6850qa888gnl3a", 30) or
1152         100000000000000000000_ <> bigInteger("+42tlg9if3mmgip", 31) or
1153         100000000000000000000_ <> bigInteger("+2mnhqu5lhh0000", 32) or
1154         100000000000000000000_ <> bigInteger("+1qvi340qbei9u1", 33) or
1155         100000000000000000000_ <> bigInteger("+17uopd8lcnm544", 34) or
1156         100000000000000000000_ <> bigInteger("+tkpxpiyscferu", 35) or
1157         100000000000000000000_ <> bigInteger("+l3r41ifs0q5ts", 36) or
1158        -100000000000000000000_ <> bigInteger("-1010110101111000111010111100010110101100011000100000000000000000000", 2) or
1159        -100000000000000000000_ <> bigInteger("-220200020122120112010222022122002000100201", 3) or
1160        -100000000000000000000_ <> bigInteger("-1112233013113202311203010000000000", 4) or
1161        -100000000000000000000_ <> bigInteger("-23202330100000000000000000000", 5) or
1162        -100000000000000000000_ <> bigInteger("-33034304013023440042054544", 6) or
1163        -100000000000000000000_ <> bigInteger("-344015313561621001452562", 7) or
1164        -100000000000000000000_ <> bigInteger("-12657072742654304000000", 8) or
1165        -100000000000000000000_ <> bigInteger("-820218515128278060321", 9) or
1166        -100000000000000000000_ <> bigInteger("-100000000000000000000", 10) or
1167        -100000000000000000000_ <> bigInteger("-16a9322885328081a121", 11) or
1168        -100000000000000000000_ <> bigInteger("-390a66958a9464aa454", 12) or
1169        -100000000000000000000_ <> bigInteger("-b7388131b304451099", 13) or
1170        -100000000000000000000_ <> bigInteger("-33cb3bb449c2a91332", 14) or
1171        -100000000000000000000_ <> bigInteger("-1035749e25953d996a", 15) or
1172        -100000000000000000000_ <> bigInteger("-56bc75e2d63100000", 16) or
1173        -100000000000000000000_ <> bigInteger("-20ff5dab9g7f47384", 17) or
1174        -100000000000000000000_ <> bigInteger("-eee706h921ebb55a", 18) or
1175        -100000000000000000000_ <> bigInteger("-6b2i1gcaddd4ga45", 19) or
1176        -100000000000000000000_ <> bigInteger("-310e150000000000", 20) or
1177        -100000000000000000000_ <> bigInteger("-19h7djcjj8f750dg", 21) or
1178        -100000000000000000000_ <> bigInteger("-g1d1d41kh0d406c", 22) or
1179        -100000000000000000000_ <> bigInteger("-8e93h381mich183", 23) or
1180        -100000000000000000000_ <> bigInteger("-4i24imni329g72g", 24) or
1181        -100000000000000000000_ <> bigInteger("-2h2i10000000000", 25) or
1182        -100000000000000000000_ <> bigInteger("-1e7na9ijd1jl6hm", 26) or
1183        -100000000000000000000_ <> bigInteger("-oi6hfe3q8h209j", 27) or
1184        -100000000000000000000_ <> bigInteger("-fahhbc826cmp8g", 28) or
1185        -100000000000000000000_ <> bigInteger("-9liashaimceq07", 29) or
1186        -100000000000000000000_ <> bigInteger("-6850qa888gnl3a", 30) or
1187        -100000000000000000000_ <> bigInteger("-42tlg9if3mmgip", 31) or
1188        -100000000000000000000_ <> bigInteger("-2mnhqu5lhh0000", 32) or
1189        -100000000000000000000_ <> bigInteger("-1qvi340qbei9u1", 33) or
1190        -100000000000000000000_ <> bigInteger("-17uopd8lcnm544", 34) or
1191        -100000000000000000000_ <> bigInteger("-tkpxpiyscferu", 35) or
1192        -100000000000000000000_ <> bigInteger("-l3r41ifs0q5ts", 36) then
1193      writeln(" ***** Conversion of numeric string with specified radix does not work correct.");
1194      okay := FALSE;
1195    end if;
1196
1197    if  -18446744069414584320_ <> bigInteger("-1111111111111111111111111111111100000000000000000000000000000000",2) or
1198        -18446744069414584320_ <> bigInteger("-33333333333333330000000000000000",4) or
1199        -18446744069414584320_ <> bigInteger("-1777777777740000000000", 8) or
1200        -18446744069414584320_ <> bigInteger("-ffffffff00000000", 16) or
1201        -18446744069414584320_ <> bigInteger("-fvvvvvs000000", 32) then
1202      writeln(" ***** Conversion of numeric string with specified radix does not work correct.");
1203      okay := FALSE;
1204    end if;
1205
1206    if  bigInteger("AaBbCcDdEeFf", 16)               <>                           187723572702975_ or
1207        bigInteger("AaBbCcDdEeFfGgHhIiJjKk", 32)     <>         418774549551207875851350455209620_ or
1208        bigInteger("LlMmNnOoPpQqRrSsTtUuVv", 32)     <>         879381528937361939672604161833983_ or
1209        bigInteger("AaBbCcDdEeFfGgHhIiJjKkLlMm", 36) <>  8314392270933518733105677545691200337086_ or
1210        bigInteger("NnOoPpQqRrSsTtUuVvWwXxYyZz", 36) <> 19122267638176649601133944203224314202799_ then
1211      writeln(" ***** Conversion of numeric string with specified radix does not work correct for upper case chars.");
1212      okay := FALSE;
1213    end if;
1214
1215    if  not raisesRangeError(bigInteger("99999999a999999999")) or
1216        not raisesRangeError(bigInteger("-9999999999a9999999")) or
1217        not raisesRangeError(bigInteger("@")) or
1218        not raisesRangeError(bigInteger("+")) or
1219        not raisesRangeError(bigInteger("++")) or
1220        not raisesRangeError(bigInteger("+-")) or
1221        not raisesRangeError(bigInteger("++1")) or
1222        not raisesRangeError(bigInteger("+-1")) or
1223        not raisesRangeError(bigInteger("-")) or
1224        not raisesRangeError(bigInteger("--")) or
1225        not raisesRangeError(bigInteger("-+")) or
1226        not raisesRangeError(bigInteger("--1")) or
1227        not raisesRangeError(bigInteger("-+1")) or
1228        not raisesRangeError(bigInteger("")) or
1229        not raisesRangeError(bigInteger(" 123")) or
1230        not raisesRangeError(bigInteger("\a123")) or
1231        not raisesRangeError(bigInteger("\f123")) or
1232        not raisesRangeError(bigInteger("\n123")) or
1233        not raisesRangeError(bigInteger("\r123")) or
1234        not raisesRangeError(bigInteger("\t123")) or
1235        not raisesRangeError(bigInteger("\v123")) or
1236        not raisesRangeError(bigInteger("123 ")) or
1237        not raisesRangeError(bigInteger("123\a")) or
1238        not raisesRangeError(bigInteger("123\f")) or
1239        not raisesRangeError(bigInteger("123\n")) or
1240        not raisesRangeError(bigInteger("123\r")) or
1241        not raisesRangeError(bigInteger("123\t")) or
1242        not raisesRangeError(bigInteger("123\v")) or
1243        not raisesRangeError(bigInteger("123@")) or
1244        not raisesRangeError(bigInteger("123@456")) or
1245        not raisesRangeError(bigInteger(striExpr("99999999a999999999"))) or
1246        not raisesRangeError(bigInteger(striExpr("-9999999999a9999999"))) or
1247        not raisesRangeError(bigInteger(striExpr("@"))) or
1248        not raisesRangeError(bigInteger(striExpr("+"))) or
1249        not raisesRangeError(bigInteger(striExpr("++"))) or
1250        not raisesRangeError(bigInteger(striExpr("+-"))) or
1251        not raisesRangeError(bigInteger(striExpr("++1"))) or
1252        not raisesRangeError(bigInteger(striExpr("+-1"))) or
1253        not raisesRangeError(bigInteger(striExpr("-"))) or
1254        not raisesRangeError(bigInteger(striExpr("--"))) or
1255        not raisesRangeError(bigInteger(striExpr("-+"))) or
1256        not raisesRangeError(bigInteger(striExpr("--1"))) or
1257        not raisesRangeError(bigInteger(striExpr("-+1"))) or
1258        not raisesRangeError(bigInteger(striExpr(""))) or
1259        not raisesRangeError(bigInteger(striExpr(" 123"))) or
1260        not raisesRangeError(bigInteger(striExpr("\a123"))) or
1261        not raisesRangeError(bigInteger(striExpr("\f123"))) or
1262        not raisesRangeError(bigInteger(striExpr("\n123"))) or
1263        not raisesRangeError(bigInteger(striExpr("\r123"))) or
1264        not raisesRangeError(bigInteger(striExpr("\t123"))) or
1265        not raisesRangeError(bigInteger(striExpr("\v123"))) or
1266        not raisesRangeError(bigInteger(striExpr("123 "))) or
1267        not raisesRangeError(bigInteger(striExpr("123\a"))) or
1268        not raisesRangeError(bigInteger(striExpr("123\f"))) or
1269        not raisesRangeError(bigInteger(striExpr("123\n"))) or
1270        not raisesRangeError(bigInteger(striExpr("123\r"))) or
1271        not raisesRangeError(bigInteger(striExpr("123\t"))) or
1272        not raisesRangeError(bigInteger(striExpr("123\v"))) or
1273        not raisesRangeError(bigInteger(striExpr("123@"))) or
1274        not raisesRangeError(bigInteger(striExpr("123@456"))) then
1275      writeln(" ***** Conversion of illegal numeric literal does not raise RANGE_ERROR. (1)");
1276      okay := FALSE;
1277    end if;
1278
1279    if  not raisesRangeError(bigInteger parse "99999999a999999999") or
1280        not raisesRangeError(bigInteger parse "-9999999999a9999999") or
1281        not raisesRangeError(bigInteger parse "@") or
1282        not raisesRangeError(bigInteger parse "+") or
1283        not raisesRangeError(bigInteger parse "++") or
1284        not raisesRangeError(bigInteger parse "+-") or
1285        not raisesRangeError(bigInteger parse "++1") or
1286        not raisesRangeError(bigInteger parse "+-1") or
1287        not raisesRangeError(bigInteger parse "-") or
1288        not raisesRangeError(bigInteger parse "--") or
1289        not raisesRangeError(bigInteger parse "-+") or
1290        not raisesRangeError(bigInteger parse "--1") or
1291        not raisesRangeError(bigInteger parse "-+1") or
1292        not raisesRangeError(bigInteger parse "") or
1293        not raisesRangeError(bigInteger parse " 123") or
1294        not raisesRangeError(bigInteger parse "\a123") or
1295        not raisesRangeError(bigInteger parse "\f123") or
1296        not raisesRangeError(bigInteger parse "\n123") or
1297        not raisesRangeError(bigInteger parse "\r123") or
1298        not raisesRangeError(bigInteger parse "\t123") or
1299        not raisesRangeError(bigInteger parse "\v123") or
1300        not raisesRangeError(bigInteger parse "123 ") or
1301        not raisesRangeError(bigInteger parse "123\a") or
1302        not raisesRangeError(bigInteger parse "123\f") or
1303        not raisesRangeError(bigInteger parse "123\n") or
1304        not raisesRangeError(bigInteger parse "123\r") or
1305        not raisesRangeError(bigInteger parse "123\t") or
1306        not raisesRangeError(bigInteger parse "123\v") or
1307        not raisesRangeError(bigInteger parse "123@") or
1308        not raisesRangeError(bigInteger parse "123@456") or
1309        not raisesRangeError(bigInteger parse striExpr("99999999a999999999")) or
1310        not raisesRangeError(bigInteger parse striExpr("-9999999999a9999999")) or
1311        not raisesRangeError(bigInteger parse striExpr("@")) or
1312        not raisesRangeError(bigInteger parse striExpr("+")) or
1313        not raisesRangeError(bigInteger parse striExpr("++")) or
1314        not raisesRangeError(bigInteger parse striExpr("+-")) or
1315        not raisesRangeError(bigInteger parse striExpr("++1")) or
1316        not raisesRangeError(bigInteger parse striExpr("+-1")) or
1317        not raisesRangeError(bigInteger parse striExpr("-")) or
1318        not raisesRangeError(bigInteger parse striExpr("--")) or
1319        not raisesRangeError(bigInteger parse striExpr("-+")) or
1320        not raisesRangeError(bigInteger parse striExpr("--1")) or
1321        not raisesRangeError(bigInteger parse striExpr("-+1")) or
1322        not raisesRangeError(bigInteger parse striExpr("")) or
1323        not raisesRangeError(bigInteger parse striExpr(" 123")) or
1324        not raisesRangeError(bigInteger parse striExpr("\a123")) or
1325        not raisesRangeError(bigInteger parse striExpr("\f123")) or
1326        not raisesRangeError(bigInteger parse striExpr("\n123")) or
1327        not raisesRangeError(bigInteger parse striExpr("\r123")) or
1328        not raisesRangeError(bigInteger parse striExpr("\t123")) or
1329        not raisesRangeError(bigInteger parse striExpr("\v123")) or
1330        not raisesRangeError(bigInteger parse striExpr("123 ")) or
1331        not raisesRangeError(bigInteger parse striExpr("123\a")) or
1332        not raisesRangeError(bigInteger parse striExpr("123\f")) or
1333        not raisesRangeError(bigInteger parse striExpr("123\n")) or
1334        not raisesRangeError(bigInteger parse striExpr("123\r")) or
1335        not raisesRangeError(bigInteger parse striExpr("123\t")) or
1336        not raisesRangeError(bigInteger parse striExpr("123\v")) or
1337        not raisesRangeError(bigInteger parse striExpr("123@")) or
1338        not raisesRangeError(bigInteger parse striExpr("123@456")) then
1339      writeln(" ***** Conversion of illegal numeric literal does not raise RANGE_ERROR. (2)");
1340      okay := FALSE;
1341    end if;
1342
1343    if  not raisesRangeError(bigInteger("11111111111111112111111111111111111111111111111111111111111111", 2)) or
1344        not raisesRangeError(bigInteger("2222222222222223222222222222222222222222", 3)) or
1345        not raisesRangeError(bigInteger("333333333333334333333333333333", 4)) or
1346        not raisesRangeError(bigInteger("44444444444445444444444444", 5)) or
1347        not raisesRangeError(bigInteger("555555555555655555555555", 6)) or
1348        not raisesRangeError(bigInteger("6666666666676666666666", 7)) or
1349        not raisesRangeError(bigInteger("77777777778777777777", 8)) or
1350        not raisesRangeError(bigInteger("88888888898888888888", 9)) or
1351        not raisesRangeError(bigInteger("99999999a999999999", 10)) or
1352        not raisesRangeError(bigInteger("aaaaaaabaaaaaaaaaa", 11)) or
1353        not raisesRangeError(bigInteger("bbbbbbcbbbbbbbbb", 12)) or
1354        not raisesRangeError(bigInteger("cccccdcccccccccc", 13)) or
1355        not raisesRangeError(bigInteger("ddddeddddddddddd", 14)) or
1356        not raisesRangeError(bigInteger("eeefeeeeeeeeeeee", 15)) or
1357        not raisesRangeError(bigInteger("ffgfffffffffff", 16)) or
1358        not raisesRangeError(bigInteger("ghgggggggggggg", 17)) or
1359        not raisesRangeError(bigInteger("hhihhhhhhhhhhh", 18)) or
1360        not raisesRangeError(bigInteger("iiijiiiiiiiiii", 19)) or
1361        not raisesRangeError(bigInteger("jjjjkjjjjjjjjj", 20)) or
1362        not raisesRangeError(bigInteger("kkkkklkkkkkkkk", 21)) or
1363        not raisesRangeError(bigInteger("llllllmlllllll", 22)) or
1364        not raisesRangeError(bigInteger("mmmmmmmnmmmmmm", 23)) or
1365        not raisesRangeError(bigInteger("nnnnnnnnonnn", 24)) or
1366        not raisesRangeError(bigInteger("ooooooooopoo", 25)) or
1367        not raisesRangeError(bigInteger("ppppppppppqp", 26)) or
1368        not raisesRangeError(bigInteger("qqqqqqqqqrqq", 27)) or
1369        not raisesRangeError(bigInteger("rrrrrrrrsrrr", 28)) or
1370        not raisesRangeError(bigInteger("ssssssstssss", 29)) or
1371        not raisesRangeError(bigInteger("ttttttuttttt", 30)) or
1372        not raisesRangeError(bigInteger("uuuuuvuuuuuu", 31)) or
1373        not raisesRangeError(bigInteger("vvvvwvvvvvvv", 32)) or
1374        not raisesRangeError(bigInteger("wwwxwwwwwwww", 33)) or
1375        not raisesRangeError(bigInteger("xxyxxxxxxxxx", 34)) or
1376        not raisesRangeError(bigInteger("yzyyyyyyyyyy", 35)) or
1377        not raisesRangeError(bigInteger("AAAAAAAAAAAAAAAABA", 11)) or
1378        not raisesRangeError(bigInteger("BBBBBBBBBBBBBBBC", 12)) or
1379        not raisesRangeError(bigInteger("CCCCCCCCCCCCCCDC", 13)) or
1380        not raisesRangeError(bigInteger("DDDDDDDDDDDDDEDD", 14)) or
1381        not raisesRangeError(bigInteger("EEEEEEEEEEEEFEEE", 15)) or
1382        not raisesRangeError(bigInteger("FFFFFFFFFFFGFF", 16)) or
1383        not raisesRangeError(bigInteger("GGGGGGGGGGHGGG", 17)) or
1384        not raisesRangeError(bigInteger("HHHHHHHHHIHHHH", 18)) or
1385        not raisesRangeError(bigInteger("IIIIIIIIJIIIII", 19)) or
1386        not raisesRangeError(bigInteger("JJJJJJJKJJJJJJ", 20)) or
1387        not raisesRangeError(bigInteger("KKKKKKLKKKKKKK", 21)) or
1388        not raisesRangeError(bigInteger("LLLLLMLLLLLLLL", 22)) or
1389        not raisesRangeError(bigInteger("MMMMNMMMMMMMMM", 23)) or
1390        not raisesRangeError(bigInteger("NNNONNNNNNNN", 24)) or
1391        not raisesRangeError(bigInteger("OOPOOOOOOOOO", 25)) or
1392        not raisesRangeError(bigInteger("PQPPPPPPPPPP", 26)) or
1393        not raisesRangeError(bigInteger("QQRQQQQQQQQQ", 27)) or
1394        not raisesRangeError(bigInteger("RRRSRRRRRRRR", 28)) or
1395        not raisesRangeError(bigInteger("SSSSTSSSSSSS", 29)) or
1396        not raisesRangeError(bigInteger("TTTTTUTTTTTT", 30)) or
1397        not raisesRangeError(bigInteger("UUUUUUVUUUUU", 31)) or
1398        not raisesRangeError(bigInteger("VVVVVVVWVVVV", 32)) or
1399        not raisesRangeError(bigInteger("WWWWWWWWXWWW", 33)) or
1400        not raisesRangeError(bigInteger("XXXXXXXXXYXX", 34)) or
1401        not raisesRangeError(bigInteger("YYYYYYYYYYZY", 35)) or
1402        not raisesRangeError(bigInteger("-11111111111111111111111112111111111111111111111111111111111111", 2)) or
1403        not raisesRangeError(bigInteger("-2222222222222222222222223222222222222222", 3)) or
1404        not raisesRangeError(bigInteger("-333333333333333333333334333333", 4)) or
1405        not raisesRangeError(bigInteger("-44444444444444444444445444", 5)) or
1406        not raisesRangeError(bigInteger("-555555555555555555555655", 6)) or
1407        not raisesRangeError(bigInteger("-6666666666666666666676", 7)) or
1408        not raisesRangeError(bigInteger("-77777777777777777778", 8)) or
1409        not raisesRangeError(bigInteger("-88888888888888888898", 9)) or
1410        not raisesRangeError(bigInteger("-99999999999999999a", 10)) or
1411        not raisesRangeError(bigInteger("-aaaaaaaaaaaaaaaaba", 11)) or
1412        not raisesRangeError(bigInteger("-bbbbbbbbbbbbbbbc", 12)) or
1413        not raisesRangeError(bigInteger("-ccccccccccccccdc", 13)) or
1414        not raisesRangeError(bigInteger("-dddddddddddddedd", 14)) or
1415        not raisesRangeError(bigInteger("-eeeeeeeeeeeefeee", 15)) or
1416        not raisesRangeError(bigInteger("-fffffffffffgff", 16)) or
1417        not raisesRangeError(bigInteger("-gggggggggghggg", 17)) or
1418        not raisesRangeError(bigInteger("-hhhhhhhhhihhhh", 18)) or
1419        not raisesRangeError(bigInteger("-iiiiiiiijiiiii", 19)) or
1420        not raisesRangeError(bigInteger("-jjjjjjjkjjjjjj", 20)) or
1421        not raisesRangeError(bigInteger("-kkkkkklkkkkkkk", 21)) or
1422        not raisesRangeError(bigInteger("-lllllmllllllll", 22)) or
1423        not raisesRangeError(bigInteger("-mmmmnmmmmmmmmm", 23)) or
1424        not raisesRangeError(bigInteger("-nnnonnnnnnnn", 24)) or
1425        not raisesRangeError(bigInteger("-oopooooooooo", 25)) or
1426        not raisesRangeError(bigInteger("-pqpppppppppp", 26)) or
1427        not raisesRangeError(bigInteger("-qqrqqqqqqqqq", 27)) or
1428        not raisesRangeError(bigInteger("-rrrsrrrrrrrr", 28)) or
1429        not raisesRangeError(bigInteger("-sssstsssssss", 29)) or
1430        not raisesRangeError(bigInteger("-tttttutttttt", 30)) or
1431        not raisesRangeError(bigInteger("-uuuuuuvuuuuu", 31)) or
1432        not raisesRangeError(bigInteger("-vvvvvvvwvvvv", 32)) or
1433        not raisesRangeError(bigInteger("-wwwwwwwwxwww", 33)) or
1434        not raisesRangeError(bigInteger("-xxxxxxxxxyxx", 34)) or
1435        not raisesRangeError(bigInteger("-yyyyyyyyyyzy", 35)) or
1436        not raisesRangeError(bigInteger("-AAAAAAABAAAAAAAAAA", 11)) or
1437        not raisesRangeError(bigInteger("-BBBBBBCBBBBBBBBB", 12)) or
1438        not raisesRangeError(bigInteger("-CCCCCDCCCCCCCCCC", 13)) or
1439        not raisesRangeError(bigInteger("-DDDDEDDDDDDDDDDD", 14)) or
1440        not raisesRangeError(bigInteger("-EEEFEEEEEEEEEEEE", 15)) or
1441        not raisesRangeError(bigInteger("-FFGFFFFFFFFFFF", 16)) or
1442        not raisesRangeError(bigInteger("-GHGGGGGGGGGGGG", 17)) or
1443        not raisesRangeError(bigInteger("-HHIHHHHHHHHHHH", 18)) or
1444        not raisesRangeError(bigInteger("-IIIJIIIIIIIIII", 19)) or
1445        not raisesRangeError(bigInteger("-JJJJKJJJJJJJJJ", 20)) or
1446        not raisesRangeError(bigInteger("-KKKKKLKKKKKKKK", 21)) or
1447        not raisesRangeError(bigInteger("-LLLLLLMLLLLLLL", 22)) or
1448        not raisesRangeError(bigInteger("-MMMMMMMNMMMMMM", 23)) or
1449        not raisesRangeError(bigInteger("-NNNNNNNNONNN", 24)) or
1450        not raisesRangeError(bigInteger("-OOOOOOOOOPOO", 25)) or
1451        not raisesRangeError(bigInteger("-PPPPPPPPPPQP", 26)) or
1452        not raisesRangeError(bigInteger("-QQQQQQQQQRQQ", 27)) or
1453        not raisesRangeError(bigInteger("-RRRRRRRRSRRR", 28)) or
1454        not raisesRangeError(bigInteger("-SSSSSSSTSSSS", 29)) or
1455        not raisesRangeError(bigInteger("-TTTTTTUTTTTT", 30)) or
1456        not raisesRangeError(bigInteger("-UUUUUVUUUUUU", 31)) or
1457        not raisesRangeError(bigInteger("-VVVVWVVVVVVV", 32)) or
1458        not raisesRangeError(bigInteger("-WWWXWWWWWWWW", 33)) or
1459        not raisesRangeError(bigInteger("-XXYXXXXXXXXX", 34)) or
1460        not raisesRangeError(bigInteger("-YZYYYYYYYYYY", 35)) or
1461        not raisesRangeError(bigInteger("",  2)) or
1462        not raisesRangeError(bigInteger("",  3)) or
1463        not raisesRangeError(bigInteger("",  4)) or
1464        not raisesRangeError(bigInteger("",  5)) or
1465        not raisesRangeError(bigInteger("",  6)) or
1466        not raisesRangeError(bigInteger("",  7)) or
1467        not raisesRangeError(bigInteger("",  8)) or
1468        not raisesRangeError(bigInteger("",  9)) or
1469        not raisesRangeError(bigInteger("", 10)) or
1470        not raisesRangeError(bigInteger("", 11)) or
1471        not raisesRangeError(bigInteger("", 12)) or
1472        not raisesRangeError(bigInteger("", 13)) or
1473        not raisesRangeError(bigInteger("", 14)) or
1474        not raisesRangeError(bigInteger("", 15)) or
1475        not raisesRangeError(bigInteger("", 16)) or
1476        not raisesRangeError(bigInteger("", 17)) or
1477        not raisesRangeError(bigInteger("", 18)) or
1478        not raisesRangeError(bigInteger("", 19)) or
1479        not raisesRangeError(bigInteger("", 20)) or
1480        not raisesRangeError(bigInteger("", 21)) or
1481        not raisesRangeError(bigInteger("", 22)) or
1482        not raisesRangeError(bigInteger("", 23)) or
1483        not raisesRangeError(bigInteger("", 24)) or
1484        not raisesRangeError(bigInteger("", 25)) or
1485        not raisesRangeError(bigInteger("", 26)) or
1486        not raisesRangeError(bigInteger("", 27)) or
1487        not raisesRangeError(bigInteger("", 28)) or
1488        not raisesRangeError(bigInteger("", 29)) or
1489        not raisesRangeError(bigInteger("", 30)) or
1490        not raisesRangeError(bigInteger("", 31)) or
1491        not raisesRangeError(bigInteger("", 32)) or
1492        not raisesRangeError(bigInteger("", 33)) or
1493        not raisesRangeError(bigInteger("", 34)) or
1494        not raisesRangeError(bigInteger("", 35)) or
1495        not raisesRangeError(bigInteger("", 36)) or
1496        not raisesRangeError(bigInteger("+",  2)) or
1497        not raisesRangeError(bigInteger("+",  3)) or
1498        not raisesRangeError(bigInteger("+",  4)) or
1499        not raisesRangeError(bigInteger("+",  5)) or
1500        not raisesRangeError(bigInteger("+",  6)) or
1501        not raisesRangeError(bigInteger("+",  7)) or
1502        not raisesRangeError(bigInteger("+",  8)) or
1503        not raisesRangeError(bigInteger("+",  9)) or
1504        not raisesRangeError(bigInteger("+", 10)) or
1505        not raisesRangeError(bigInteger("+", 11)) or
1506        not raisesRangeError(bigInteger("+", 12)) or
1507        not raisesRangeError(bigInteger("+", 13)) or
1508        not raisesRangeError(bigInteger("+", 14)) or
1509        not raisesRangeError(bigInteger("+", 15)) or
1510        not raisesRangeError(bigInteger("+", 16)) or
1511        not raisesRangeError(bigInteger("+", 17)) or
1512        not raisesRangeError(bigInteger("+", 18)) or
1513        not raisesRangeError(bigInteger("+", 19)) or
1514        not raisesRangeError(bigInteger("+", 20)) or
1515        not raisesRangeError(bigInteger("+", 21)) or
1516        not raisesRangeError(bigInteger("+", 22)) or
1517        not raisesRangeError(bigInteger("+", 23)) or
1518        not raisesRangeError(bigInteger("+", 24)) or
1519        not raisesRangeError(bigInteger("+", 25)) or
1520        not raisesRangeError(bigInteger("+", 26)) or
1521        not raisesRangeError(bigInteger("+", 27)) or
1522        not raisesRangeError(bigInteger("+", 28)) or
1523        not raisesRangeError(bigInteger("+", 29)) or
1524        not raisesRangeError(bigInteger("+", 30)) or
1525        not raisesRangeError(bigInteger("+", 31)) or
1526        not raisesRangeError(bigInteger("+", 32)) or
1527        not raisesRangeError(bigInteger("+", 33)) or
1528        not raisesRangeError(bigInteger("+", 34)) or
1529        not raisesRangeError(bigInteger("+", 35)) or
1530        not raisesRangeError(bigInteger("+", 36)) or
1531        not raisesRangeError(bigInteger("-",  2)) or
1532        not raisesRangeError(bigInteger("-",  3)) or
1533        not raisesRangeError(bigInteger("-",  4)) or
1534        not raisesRangeError(bigInteger("-",  5)) or
1535        not raisesRangeError(bigInteger("-",  6)) or
1536        not raisesRangeError(bigInteger("-",  7)) or
1537        not raisesRangeError(bigInteger("-",  8)) or
1538        not raisesRangeError(bigInteger("-",  9)) or
1539        not raisesRangeError(bigInteger("-", 10)) or
1540        not raisesRangeError(bigInteger("-", 11)) or
1541        not raisesRangeError(bigInteger("-", 12)) or
1542        not raisesRangeError(bigInteger("-", 13)) or
1543        not raisesRangeError(bigInteger("-", 14)) or
1544        not raisesRangeError(bigInteger("-", 15)) or
1545        not raisesRangeError(bigInteger("-", 16)) or
1546        not raisesRangeError(bigInteger("-", 17)) or
1547        not raisesRangeError(bigInteger("-", 18)) or
1548        not raisesRangeError(bigInteger("-", 19)) or
1549        not raisesRangeError(bigInteger("-", 20)) or
1550        not raisesRangeError(bigInteger("-", 21)) or
1551        not raisesRangeError(bigInteger("-", 22)) or
1552        not raisesRangeError(bigInteger("-", 23)) or
1553        not raisesRangeError(bigInteger("-", 24)) or
1554        not raisesRangeError(bigInteger("-", 25)) or
1555        not raisesRangeError(bigInteger("-", 26)) or
1556        not raisesRangeError(bigInteger("-", 27)) or
1557        not raisesRangeError(bigInteger("-", 28)) or
1558        not raisesRangeError(bigInteger("-", 29)) or
1559        not raisesRangeError(bigInteger("-", 30)) or
1560        not raisesRangeError(bigInteger("-", 31)) or
1561        not raisesRangeError(bigInteger("-", 32)) or
1562        not raisesRangeError(bigInteger("-", 33)) or
1563        not raisesRangeError(bigInteger("-", 34)) or
1564        not raisesRangeError(bigInteger("-", 35)) or
1565        not raisesRangeError(bigInteger("-", 36)) or
1566        not raisesRangeError(bigInteger("0", 1)) or
1567        not raisesRangeError(bigInteger("0", 37)) then
1568      writeln(" ***** Conversion of numeric string with specified radix does not raise RANGE_ERROR.");
1569      okay := FALSE;
1570    end if;
1571
1572    if  not raisesRangeError(bigInteger(" 1",       2)) or
1573        not raisesRangeError(bigInteger("\a12",     3)) or
1574        not raisesRangeError(bigInteger("\f123",    4)) or
1575        not raisesRangeError(bigInteger("\n123",    5)) or
1576        not raisesRangeError(bigInteger("\r123",    6)) or
1577        not raisesRangeError(bigInteger("\t123",    7)) or
1578        not raisesRangeError(bigInteger("\v123",    8)) or
1579        not raisesRangeError(bigInteger("123 ",     9)) or
1580        not raisesRangeError(bigInteger("123\a",   10)) or
1581        not raisesRangeError(bigInteger("123\f",   11)) or
1582        not raisesRangeError(bigInteger("123\n",   12)) or
1583        not raisesRangeError(bigInteger("123\r",   13)) or
1584        not raisesRangeError(bigInteger("123\t",   14)) or
1585        not raisesRangeError(bigInteger("123\v",   15)) or
1586        not raisesRangeError(bigInteger("123@",    16)) or
1587        not raisesRangeError(bigInteger("123@456", 17)) then
1588      writeln(" ***** Conversion of numeric string containing whitespace with specified radix does not raise RANGE_ERROR.");
1589      okay := FALSE;
1590    end if;
1591
1592    if okay then
1593      writeln("String conversion of bigInteger works correct.");
1594    else
1595      writeln(" ***** String conversion of bigInteger does not work correct.");
1596      writeln;
1597    end if;
1598  end func;
1599
1600
1601const proc: chkRadix is func
1602  local
1603    var integer: base is 0;
1604    var bigInteger: bigNum is 0_;
1605    var boolean: okay is TRUE;
1606  begin
1607    for base range 2 to 36 do
1608      if  (0_                          radix base) <> "0" or
1609          (1_                          radix base) <> "1" or
1610          (bigInteger conv pred(base)  radix base) <> (pred(base) radix base) or
1611          (bigInteger conv base        radix base) <> "10" or
1612          (-1_                         radix base) <> "-1" or
1613          (-bigInteger conv pred(base) radix base) <> (-pred(base) radix base) or
1614          (-bigInteger conv base       radix base) <> "-10" then
1615        writeln(" ***** The radix operator for bigInteger for base " <& base <& " does not work correct.");
1616        okay := FALSE;
1617      end if;
1618    end for;
1619
1620    if  (32767_ radix  2) <> "111111111111111" or
1621        (59048_ radix  3) <> "2222222222" or
1622        (16383_ radix  4) <> "3333333" or
1623        (15624_ radix  5) <> "444444" or
1624        (46655_ radix  6) <> "555555" or
1625        (16806_ radix  7) <> "66666" or
1626        (32767_ radix  8) <> "77777" or
1627        (59048_ radix  9) <> "88888" or
1628        ( 9999_ radix 10) <> "9999" or
1629        (14640_ radix 11) <> "aaaa" or
1630        (20735_ radix 12) <> "bbbb" or
1631        (28560_ radix 13) <> "cccc" or
1632        (38415_ radix 14) <> "dddd" or
1633        (50624_ radix 15) <> "eeee" or
1634        ( 4095_ radix 16) <> "fff" or
1635        ( 4912_ radix 17) <> "ggg" or
1636        ( 5831_ radix 18) <> "hhh" or
1637        ( 6858_ radix 19) <> "iii" or
1638        ( 7999_ radix 20) <> "jjj" or
1639        ( 9260_ radix 21) <> "kkk" or
1640        (10647_ radix 22) <> "lll" or
1641        (12166_ radix 23) <> "mmm" or
1642        (13823_ radix 24) <> "nnn" or
1643        (15624_ radix 25) <> "ooo" or
1644        (17575_ radix 26) <> "ppp" or
1645        (19682_ radix 27) <> "qqq" or
1646        (21951_ radix 28) <> "rrr" or
1647        (24388_ radix 29) <> "sss" or
1648        (26999_ radix 30) <> "ttt" or
1649        (29790_ radix 31) <> "uuu" or
1650        (32767_ radix 32) <> "vvv" or
1651        (35936_ radix 33) <> "www" or
1652        (39303_ radix 34) <> "xxx" or
1653        (42874_ radix 35) <> "yyy" or
1654        (46655_ radix 36) <> "zzz" or
1655        (32768_ radix  2) <> "1000000000000000" or
1656        (59049_ radix  3) <> "10000000000" or
1657        (16384_ radix  4) <> "10000000" or
1658        (15625_ radix  5) <> "1000000" or
1659        (46656_ radix  6) <> "1000000" or
1660        (16807_ radix  7) <> "100000" or
1661        (32768_ radix  8) <> "100000" or
1662        (59049_ radix  9) <> "100000" or
1663        (10000_ radix 10) <> "10000" or
1664        (14641_ radix 11) <> "10000" or
1665        (20736_ radix 12) <> "10000" or
1666        (28561_ radix 13) <> "10000" or
1667        (38416_ radix 14) <> "10000" or
1668        (50625_ radix 15) <> "10000" or
1669        ( 4096_ radix 16) <> "1000" or
1670        ( 4913_ radix 17) <> "1000" or
1671        ( 5832_ radix 18) <> "1000" or
1672        ( 6859_ radix 19) <> "1000" or
1673        ( 8000_ radix 20) <> "1000" or
1674        ( 9261_ radix 21) <> "1000" or
1675        (10648_ radix 22) <> "1000" or
1676        (12167_ radix 23) <> "1000" or
1677        (13824_ radix 24) <> "1000" or
1678        (15625_ radix 25) <> "1000" or
1679        (17576_ radix 26) <> "1000" or
1680        (19683_ radix 27) <> "1000" or
1681        (21952_ radix 28) <> "1000" or
1682        (24389_ radix 29) <> "1000" or
1683        (27000_ radix 30) <> "1000" or
1684        (29791_ radix 31) <> "1000" or
1685        (32768_ radix 32) <> "1000" or
1686        (35937_ radix 33) <> "1000" or
1687        (39304_ radix 34) <> "1000" or
1688        (42875_ radix 35) <> "1000" or
1689        (46656_ radix 36) <> "1000" or
1690        (2147483647_ radix  2) <> "1111111111111111111111111111111" or
1691        (3486784400_ radix  3) <> "22222222222222222222" or
1692        (1073741823_ radix  4) <> "333333333333333" or
1693        (1220703124_ radix  5) <> "4444444444444" or
1694        (2176782335_ radix  6) <> "555555555555" or
1695        (1977326742_ radix  7) <> "66666666666" or
1696        (1073741823_ radix  8) <> "7777777777" or
1697        (3486784400_ radix  9) <> "8888888888" or
1698        ( 999999999_ radix 10) <> "999999999" or
1699        (2357947690_ radix 11) <> "aaaaaaaaa" or
1700        ( 429981695_ radix 12) <> "bbbbbbbb" or
1701        ( 815730720_ radix 13) <> "cccccccc" or
1702        (1475789055_ radix 14) <> "dddddddd" or
1703        (2562890624_ radix 15) <> "eeeeeeee" or
1704        ( 268435455_ radix 16) <> "fffffff" or
1705        ( 410338672_ radix 17) <> "ggggggg" or
1706        ( 612220031_ radix 18) <> "hhhhhhh" or
1707        ( 893871738_ radix 19) <> "iiiiiii" or
1708        (1279999999_ radix 20) <> "jjjjjjj" or
1709        (1801088540_ radix 21) <> "kkkkkkk" or
1710        (2494357887_ radix 22) <> "lllllll" or
1711        (3404825446_ radix 23) <> "mmmmmmm" or
1712        ( 191102975_ radix 24) <> "nnnnnn" or
1713        ( 244140624_ radix 25) <> "oooooo" or
1714        ( 308915775_ radix 26) <> "pppppp" or
1715        ( 387420488_ radix 27) <> "qqqqqq" or
1716        ( 481890303_ radix 28) <> "rrrrrr" or
1717        ( 594823320_ radix 29) <> "ssssss" or
1718        ( 728999999_ radix 30) <> "tttttt" or
1719        ( 887503680_ radix 31) <> "uuuuuu" or
1720        (1073741823_ radix 32) <> "vvvvvv" or
1721        (1291467968_ radix 33) <> "wwwwww" or
1722        (1544804415_ radix 34) <> "xxxxxx" or
1723        (1838265624_ radix 35) <> "yyyyyy" or
1724        (2176782335_ radix 36) <> "zzzzzz" or
1725        (2147483648_ radix  2) <> "10000000000000000000000000000000" or
1726        (3486784401_ radix  3) <> "100000000000000000000" or
1727        (1073741824_ radix  4) <> "1000000000000000" or
1728        (1220703125_ radix  5) <> "10000000000000" or
1729        (2176782336_ radix  6) <> "1000000000000" or
1730        (1977326743_ radix  7) <> "100000000000" or
1731        (1073741824_ radix  8) <> "10000000000" or
1732        (3486784401_ radix  9) <> "10000000000" or
1733        (1000000000_ radix 10) <> "1000000000" or
1734        (2357947691_ radix 11) <> "1000000000" or
1735        ( 429981696_ radix 12) <> "100000000" or
1736        ( 815730721_ radix 13) <> "100000000" or
1737        (1475789056_ radix 14) <> "100000000" or
1738        (2562890625_ radix 15) <> "100000000" or
1739        ( 268435456_ radix 16) <> "10000000" or
1740        ( 410338673_ radix 17) <> "10000000" or
1741        ( 612220032_ radix 18) <> "10000000" or
1742        ( 893871739_ radix 19) <> "10000000" or
1743        (1280000000_ radix 20) <> "10000000" or
1744        (1801088541_ radix 21) <> "10000000" or
1745        (2494357888_ radix 22) <> "10000000" or
1746        (3404825447_ radix 23) <> "10000000" or
1747        ( 191102976_ radix 24) <> "1000000" or
1748        ( 244140625_ radix 25) <> "1000000" or
1749        ( 308915776_ radix 26) <> "1000000" or
1750        ( 387420489_ radix 27) <> "1000000" or
1751        ( 481890304_ radix 28) <> "1000000" or
1752        ( 594823321_ radix 29) <> "1000000" or
1753        ( 729000000_ radix 30) <> "1000000" or
1754        ( 887503681_ radix 31) <> "1000000" or
1755        (1073741824_ radix 32) <> "1000000" or
1756        (1291467969_ radix 33) <> "1000000" or
1757        (1544804416_ radix 34) <> "1000000" or
1758        (1838265625_ radix 35) <> "1000000" or
1759        (2176782336_ radix 36) <> "1000000" or
1760        ( 4611686016279904256_ radix  2) <> "11111111111111111111111111111110000000000000000000000000000000" or
1761        (12157665455570144400_ radix  3) <> "2222222222222222222200000000000000000000" or
1762        ( 1152921503533105152_ radix  4) <> "333333333333333000000000000000" or
1763        ( 1490116118164062500_ radix  5) <> "44444444444440000000000000" or
1764        ( 4738381336144834560_ radix  6) <> "555555555555000000000000" or
1765        ( 3909821046605661306_ radix  7) <> "6666666666600000000000" or
1766        ( 1152921503533105152_ radix  8) <> "77777777770000000000" or
1767        (12157665455570144400_ radix  9) <> "88888888880000000000" or
1768        (  999999999000000000_ radix 10) <> "999999999000000000" or
1769        ( 5559917311134283790_ radix 11) <> "aaaaaaaaa000000000" or
1770        (  184884258465054720_ radix 12) <> "bbbbbbbb00000000" or
1771        (  665416608367449120_ radix 13) <> "cccccccc00000000" or
1772        ( 2177953336333582080_ radix 14) <> "dddddddd00000000" or
1773        ( 6568408353150000000_ radix 15) <> "eeeeeeee00000000" or
1774        (   72057593769492480_ radix 16) <> "fffffff0000000" or
1775        (  168377826149062256_ radix 17) <> "ggggggg0000000" or
1776        (  374813366969860992_ radix 18) <> "hhhhhhh0000000" or
1777        (  799006684889012382_ radix 19) <> "iiiiiii0000000" or
1778        ( 1638399998720000000_ radix 20) <> "jjjjjjj0000000" or
1779        ( 3243919930720420140_ radix 21) <> "kkkkkkk0000000" or
1780        ( 6221821270933462656_ radix 22) <> "lllllll0000000" or
1781        (11592836321133924362_ radix 23) <> "mmmmmmm0000000" or
1782        (   36520347244953600_ radix 24) <> "nnnnnn000000" or
1783        (   59604644531250000_ radix 25) <> "oooooo000000" or
1784        (   95428956352766400_ radix 26) <> "pppppp000000" or
1785        (  150094634909578632_ radix 27) <> "qqqqqq000000" or
1786        (  232218264607322112_ radix 28) <> "rrrrrr000000" or
1787        (  353814782610645720_ radix 29) <> "ssssss000000" or
1788        (  531440999271000000_ radix 30) <> "tttttt000000" or
1789        (  787662782901046080_ radix 31) <> "uuuuuu000000" or
1790        ( 1152921503533105152_ radix 32) <> "vvvvvv000000" or
1791        ( 1667889513661516992_ radix 33) <> "wwwwww000000" or
1792        ( 2386420682148296640_ radix 34) <> "xxxxxx000000" or
1793        ( 3379220506218375000_ radix 35) <> "yyyyyy000000" or
1794        ( 4738381336144834560_ radix 36) <> "zzzzzz000000" or
1795        ( 4611686018427387903_ radix  2) <> "11111111111111111111111111111111111111111111111111111111111111" or
1796        (12157665459056928800_ radix  3) <> "2222222222222222222222222222222222222222" or
1797        ( 1152921504606846975_ radix  4) <> "333333333333333333333333333333" or
1798        ( 1490116119384765624_ radix  5) <> "44444444444444444444444444" or
1799        ( 4738381338321616895_ radix  6) <> "555555555555555555555555" or
1800        ( 3909821048582988048_ radix  7) <> "6666666666666666666666" or
1801        ( 1152921504606846975_ radix  8) <> "77777777777777777777" or
1802        (12157665459056928800_ radix  9) <> "88888888888888888888" or
1803        (  999999999999999999_ radix 10) <> "999999999999999999" or
1804        ( 5559917313492231480_ radix 11) <> "aaaaaaaaaaaaaaaaaa" or
1805        (  184884258895036415_ radix 12) <> "bbbbbbbbbbbbbbbb" or
1806        (  665416609183179840_ radix 13) <> "cccccccccccccccc" or
1807        ( 2177953337809371135_ radix 14) <> "dddddddddddddddd" or
1808        ( 6568408355712890624_ radix 15) <> "eeeeeeeeeeeeeeee" or
1809        (   72057594037927935_ radix 16) <> "ffffffffffffff" or
1810        (  168377826559400928_ radix 17) <> "gggggggggggggg" or
1811        (  374813367582081023_ radix 18) <> "hhhhhhhhhhhhhh" or
1812        (  799006685782884120_ radix 19) <> "iiiiiiiiiiiiii" or
1813        ( 1638399999999999999_ radix 20) <> "jjjjjjjjjjjjjj" or
1814        ( 3243919932521508680_ radix 21) <> "kkkkkkkkkkkkkk" or
1815        ( 6221821273427820543_ radix 22) <> "llllllllllllll" or
1816        (11592836324538749808_ radix 23) <> "mmmmmmmmmmmmmm" or
1817        (   36520347436056575_ radix 24) <> "nnnnnnnnnnnn" or
1818        (   59604644775390624_ radix 25) <> "oooooooooooo" or
1819        (   95428956661682175_ radix 26) <> "pppppppppppp" or
1820        (  150094635296999120_ radix 27) <> "qqqqqqqqqqqq" or
1821        (  232218265089212415_ radix 28) <> "rrrrrrrrrrrr" or
1822        (  353814783205469040_ radix 29) <> "ssssssssssss" or
1823        (  531440999999999999_ radix 30) <> "tttttttttttt" or
1824        (  787662783788549760_ radix 31) <> "uuuuuuuuuuuu" or
1825        ( 1152921504606846975_ radix 32) <> "vvvvvvvvvvvv" or
1826        ( 1667889514952984960_ radix 33) <> "wwwwwwwwwwww" or
1827        ( 2386420683693101055_ radix 34) <> "xxxxxxxxxxxx" or
1828        ( 3379220508056640624_ radix 35) <> "yyyyyyyyyyyy" or
1829        ( 4738381338321616895_ radix 36) <> "zzzzzzzzzzzz" or
1830        ( 4611686018427387904_ radix  2) <> "100000000000000000000000000000000000000000000000000000000000000" or
1831        (12157665459056928801_ radix  3) <> "10000000000000000000000000000000000000000" or
1832        ( 1152921504606846976_ radix  4) <> "1000000000000000000000000000000" or
1833        ( 1490116119384765625_ radix  5) <> "100000000000000000000000000" or
1834        ( 4738381338321616896_ radix  6) <> "1000000000000000000000000" or
1835        ( 3909821048582988049_ radix  7) <> "10000000000000000000000" or
1836        ( 1152921504606846976_ radix  8) <> "100000000000000000000" or
1837        (12157665459056928801_ radix  9) <> "100000000000000000000" or
1838        ( 1000000000000000000_ radix 10) <> "1000000000000000000" or
1839        ( 5559917313492231481_ radix 11) <> "1000000000000000000" or
1840        (  184884258895036416_ radix 12) <> "10000000000000000" or
1841        (  665416609183179841_ radix 13) <> "10000000000000000" or
1842        ( 2177953337809371136_ radix 14) <> "10000000000000000" or
1843        ( 6568408355712890625_ radix 15) <> "10000000000000000" or
1844        (   72057594037927936_ radix 16) <> "100000000000000" or
1845        (  168377826559400929_ radix 17) <> "100000000000000" or
1846        (  374813367582081024_ radix 18) <> "100000000000000" or
1847        (  799006685782884121_ radix 19) <> "100000000000000" or
1848        ( 1638400000000000000_ radix 20) <> "100000000000000" or
1849        ( 3243919932521508681_ radix 21) <> "100000000000000" or
1850        ( 6221821273427820544_ radix 22) <> "100000000000000" or
1851        (11592836324538749809_ radix 23) <> "100000000000000" or
1852        (   36520347436056576_ radix 24) <> "1000000000000" or
1853        (   59604644775390625_ radix 25) <> "1000000000000" or
1854        (   95428956661682176_ radix 26) <> "1000000000000" or
1855        (  150094635296999121_ radix 27) <> "1000000000000" or
1856        (  232218265089212416_ radix 28) <> "1000000000000" or
1857        (  353814783205469041_ radix 29) <> "1000000000000" or
1858        (  531441000000000000_ radix 30) <> "1000000000000" or
1859        (  787662783788549761_ radix 31) <> "1000000000000" or
1860        ( 1152921504606846976_ radix 32) <> "1000000000000" or
1861        ( 1667889514952984961_ radix 33) <> "1000000000000" or
1862        ( 2386420683693101056_ radix 34) <> "1000000000000" or
1863        ( 3379220508056640625_ radix 35) <> "1000000000000" or
1864        ( 4738381338321616896_ radix 36) <> "1000000000000" or
1865        ( 4611686020574871551_ radix  2) <> "100000000000000000000000000000001111111111111111111111111111111" or
1866        (12157665462543713201_ radix  3) <> "10000000000000000000022222222222222222222" or
1867        ( 1152921505680588799_ radix  4) <> "1000000000000000333333333333333" or
1868        ( 1490116120605468749_ radix  5) <> "100000000000004444444444444" or
1869        ( 4738381340498399231_ radix  6) <> "1000000000000555555555555" or
1870        ( 3909821050560314791_ radix  7) <> "10000000000066666666666" or
1871        ( 1152921505680588799_ radix  8) <> "100000000007777777777" or
1872        (12157665462543713201_ radix  9) <> "100000000008888888888" or
1873        ( 1000000000999999999_ radix 10) <> "1000000000999999999" or
1874        ( 5559917315850179171_ radix 11) <> "1000000000aaaaaaaaa" or
1875        (  184884259325018111_ radix 12) <> "100000000bbbbbbbb" or
1876        (  665416609998910561_ radix 13) <> "100000000cccccccc" or
1877        ( 2177953339285160191_ radix 14) <> "100000000dddddddd" or
1878        ( 6568408358275781249_ radix 15) <> "100000000eeeeeeee" or
1879        (   72057594306363391_ radix 16) <> "10000000fffffff" or
1880        (  168377826969739601_ radix 17) <> "10000000ggggggg" or
1881        (  374813368194301055_ radix 18) <> "10000000hhhhhhh" or
1882        (  799006686676755859_ radix 19) <> "10000000iiiiiii" or
1883        ( 1638400001279999999_ radix 20) <> "10000000jjjjjjj" or
1884        ( 3243919934322597221_ radix 21) <> "10000000kkkkkkk" or
1885        ( 6221821275922178431_ radix 22) <> "10000000lllllll" or
1886        (11592836327943575255_ radix 23) <> "10000000mmmmmmm" or
1887        (   36520347627159551_ radix 24) <> "1000000nnnnnn" or
1888        (   59604645019531249_ radix 25) <> "1000000oooooo" or
1889        (   95428956970597951_ radix 26) <> "1000000pppppp" or
1890        (  150094635684419609_ radix 27) <> "1000000qqqqqq" or
1891        (  232218265571102719_ radix 28) <> "1000000rrrrrr" or
1892        (  353814783800292361_ radix 29) <> "1000000ssssss" or
1893        (  531441000728999999_ radix 30) <> "1000000tttttt" or
1894        (  787662784676053441_ radix 31) <> "1000000uuuuuu" or
1895        ( 1152921505680588799_ radix 32) <> "1000000vvvvvv" or
1896        ( 1667889516244452929_ radix 33) <> "1000000wwwwww" or
1897        ( 2386420685237905471_ radix 34) <> "1000000xxxxxx" or
1898        ( 3379220509894906249_ radix 35) <> "1000000yyyyyy" or
1899        ( 4738381340498399231_ radix 36) <> "1000000zzzzzz" or
1900        ( 4611686020574871552_ radix  2) <> "100000000000000000000000000000010000000000000000000000000000000" or
1901        (12157665462543713202_ radix  3) <> "10000000000000000000100000000000000000000" or
1902        ( 1152921505680588800_ radix  4) <> "1000000000000001000000000000000" or
1903        ( 1490116120605468750_ radix  5) <> "100000000000010000000000000" or
1904        ( 4738381340498399232_ radix  6) <> "1000000000001000000000000" or
1905        ( 3909821050560314792_ radix  7) <> "10000000000100000000000" or
1906        ( 1152921505680588800_ radix  8) <> "100000000010000000000" or
1907        (12157665462543713202_ radix  9) <> "100000000010000000000" or
1908        ( 1000000001000000000_ radix 10) <> "1000000001000000000" or
1909        ( 5559917315850179172_ radix 11) <> "1000000001000000000" or
1910        (  184884259325018112_ radix 12) <> "10000000100000000" or
1911        (  665416609998910562_ radix 13) <> "10000000100000000" or
1912        ( 2177953339285160192_ radix 14) <> "10000000100000000" or
1913        ( 6568408358275781250_ radix 15) <> "10000000100000000" or
1914        (   72057594306363392_ radix 16) <> "100000010000000" or
1915        (  168377826969739602_ radix 17) <> "100000010000000" or
1916        (  374813368194301056_ radix 18) <> "100000010000000" or
1917        (  799006686676755860_ radix 19) <> "100000010000000" or
1918        ( 1638400001280000000_ radix 20) <> "100000010000000" or
1919        ( 3243919934322597222_ radix 21) <> "100000010000000" or
1920        ( 6221821275922178432_ radix 22) <> "100000010000000" or
1921        (11592836327943575256_ radix 23) <> "100000010000000" or
1922        (   36520347627159552_ radix 24) <> "1000001000000" or
1923        (   59604645019531250_ radix 25) <> "1000001000000" or
1924        (   95428956970597952_ radix 26) <> "1000001000000" or
1925        (  150094635684419610_ radix 27) <> "1000001000000" or
1926        (  232218265571102720_ radix 28) <> "1000001000000" or
1927        (  353814783800292362_ radix 29) <> "1000001000000" or
1928        (  531441000729000000_ radix 30) <> "1000001000000" or
1929        (  787662784676053442_ radix 31) <> "1000001000000" or
1930        ( 1152921505680588800_ radix 32) <> "1000001000000" or
1931        ( 1667889516244452930_ radix 33) <> "1000001000000" or
1932        ( 2386420685237905472_ radix 34) <> "1000001000000" or
1933        ( 3379220509894906250_ radix 35) <> "1000001000000" or
1934        ( 4738381340498399232_ radix 36) <> "1000001000000" or
1935        (100000000000000000000000000319_ radix  2) <> "1010000110001111000001111101011100110110101110010000101111100101010100000000000000000000100111111" or
1936        (100000000000000000000000000319_ radix  3) <> "2100200200212000022212220120022010001221202000002022000220112" or
1937        (100000000000000000000000000319_ radix  4) <> "1100301320033223212311302011330222200000000010333" or
1938        (100000000000000000000000000319_ radix  5) <> "204441433212200000000000000000000000002234" or
1939        (100000000000000000000000000319_ radix  6) <> "13410053220220505231115301204001140235" or
1940        (100000000000000000000000000319_ radix  7) <> "15635454446002645363053156623005412" or
1941        (100000000000000000000000000319_ radix  8) <> "120617017534665620574524000000477" or
1942        (100000000000000000000000000319_ radix  9) <> "2320625008786508101852002260815" or
1943        (100000000000000000000000000319_ radix 10) <> "100000000000000000000000000319" or
1944        (100000000000000000000000000319_ radix 11) <> "769a618102a154016670a237962a" or
1945        (100000000000000000000000000319_ radix 12) <> "889ab3137a3b54451601162a67b" or
1946        (100000000000000000000000000319_ radix 13) <> "1122ca73297a54c075c32b0230b" or
1947        (100000000000000000000000000319_ radix 14) <> "2317d25dba3b3d12d48933db79" or
1948        (100000000000000000000000000319_ radix 15) <> "5e1889d6d71b3e0dc36589ace" or
1949        (100000000000000000000000000319_ radix 16) <> "1431e0fae6d7217caa000013f" or
1950        (100000000000000000000000000319_ radix 17) <> "5025f49e1fg7a601df34ebe7" or
1951        (100000000000000000000000000319_ radix 18) <> "163e400hgce02ecage96a455" or
1952        (100000000000000000000000000319_ radix 19) <> "770579101b5d9f940bc733a" or
1953        (100000000000000000000000000319_ radix 20) <> "27dd9eaca000000000000fj" or
1954        (100000000000000000000000000319_ radix 21) <> "h290bbh0jjc15bk46095j2" or
1955        (100000000000000000000000000319_ radix 22) <> "69gef0gk1ggel7e7d3k9hl" or
1956        (100000000000000000000000000319_ radix 23) <> "2c64g5i7i2395emd7dcj1b" or
1957        (100000000000000000000000000319_ radix 24) <> "10l09dbii6c9eme651g7fn" or
1958        (100000000000000000000000000319_ radix 25) <> "aolnh7a000000000000cj" or
1959        (100000000000000000000000000319_ radix 26) <> "50c4m3pm8jamaee6loh0b" or
1960        (100000000000000000000000000319_ radix 27) <> "29iin08nof831pk0280oe" or
1961        (100000000000000000000000000319_ radix 28) <> "13phe5j1kdhobiief3dan" or
1962        (100000000000000000000000000319_ radix 29) <> "gb4f0pjcrjblceq2cmpa" or
1963        (100000000000000000000000000319_ radix 30) <> "8i3fls3pqmq0btbqnldt" or
1964        (100000000000000000000000000319_ radix 31) <> "4j1hhmj57rlnnsf4ito6" or
1965        (100000000000000000000000000319_ radix 32) <> "2gou1un6qsgnpag0009v" or
1966        (100000000000000000000000000319_ radix 33) <> "1de0gbkuognupu9fnj0w" or
1967        (100000000000000000000000000319_ radix 34) <> "r496vggek1grfuv3wo7" or
1968        (100000000000000000000000000319_ radix 35) <> "g3f6xlpcxahu7f49rl9" or
1969        (100000000000000000000000000319_ radix 36) <> "9p0xe2cuwj7x1co1a2n" then
1970      writeln(" ***** The radix operator for bigInteger does not work correct for positive values.");
1971      okay := FALSE;
1972    end if;
1973
1974    if  (-32767_ radix  2) <> "-111111111111111" or
1975        (-59048_ radix  3) <> "-2222222222" or
1976        (-16383_ radix  4) <> "-3333333" or
1977        (-15624_ radix  5) <> "-444444" or
1978        (-46655_ radix  6) <> "-555555" or
1979        (-16806_ radix  7) <> "-66666" or
1980        (-32767_ radix  8) <> "-77777" or
1981        (-59048_ radix  9) <> "-88888" or
1982        ( -9999_ radix 10) <> "-9999" or
1983        (-14640_ radix 11) <> "-aaaa" or
1984        (-20735_ radix 12) <> "-bbbb" or
1985        (-28560_ radix 13) <> "-cccc" or
1986        (-38415_ radix 14) <> "-dddd" or
1987        (-50624_ radix 15) <> "-eeee" or
1988        ( -4095_ radix 16) <> "-fff" or
1989        ( -4912_ radix 17) <> "-ggg" or
1990        ( -5831_ radix 18) <> "-hhh" or
1991        ( -6858_ radix 19) <> "-iii" or
1992        ( -7999_ radix 20) <> "-jjj" or
1993        ( -9260_ radix 21) <> "-kkk" or
1994        (-10647_ radix 22) <> "-lll" or
1995        (-12166_ radix 23) <> "-mmm" or
1996        (-13823_ radix 24) <> "-nnn" or
1997        (-15624_ radix 25) <> "-ooo" or
1998        (-17575_ radix 26) <> "-ppp" or
1999        (-19682_ radix 27) <> "-qqq" or
2000        (-21951_ radix 28) <> "-rrr" or
2001        (-24388_ radix 29) <> "-sss" or
2002        (-26999_ radix 30) <> "-ttt" or
2003        (-29790_ radix 31) <> "-uuu" or
2004        (-32767_ radix 32) <> "-vvv" or
2005        (-35936_ radix 33) <> "-www" or
2006        (-39303_ radix 34) <> "-xxx" or
2007        (-42874_ radix 35) <> "-yyy" or
2008        (-46655_ radix 36) <> "-zzz" or
2009        (-32768_ radix  2) <> "-1000000000000000" or
2010        (-59049_ radix  3) <> "-10000000000" or
2011        (-16384_ radix  4) <> "-10000000" or
2012        (-15625_ radix  5) <> "-1000000" or
2013        (-46656_ radix  6) <> "-1000000" or
2014        (-16807_ radix  7) <> "-100000" or
2015        (-32768_ radix  8) <> "-100000" or
2016        (-59049_ radix  9) <> "-100000" or
2017        (-10000_ radix 10) <> "-10000" or
2018        (-14641_ radix 11) <> "-10000" or
2019        (-20736_ radix 12) <> "-10000" or
2020        (-28561_ radix 13) <> "-10000" or
2021        (-38416_ radix 14) <> "-10000" or
2022        (-50625_ radix 15) <> "-10000" or
2023        ( -4096_ radix 16) <> "-1000" or
2024        ( -4913_ radix 17) <> "-1000" or
2025        ( -5832_ radix 18) <> "-1000" or
2026        ( -6859_ radix 19) <> "-1000" or
2027        ( -8000_ radix 20) <> "-1000" or
2028        ( -9261_ radix 21) <> "-1000" or
2029        (-10648_ radix 22) <> "-1000" or
2030        (-12167_ radix 23) <> "-1000" or
2031        (-13824_ radix 24) <> "-1000" or
2032        (-15625_ radix 25) <> "-1000" or
2033        (-17576_ radix 26) <> "-1000" or
2034        (-19683_ radix 27) <> "-1000" or
2035        (-21952_ radix 28) <> "-1000" or
2036        (-24389_ radix 29) <> "-1000" or
2037        (-27000_ radix 30) <> "-1000" or
2038        (-29791_ radix 31) <> "-1000" or
2039        (-32768_ radix 32) <> "-1000" or
2040        (-35937_ radix 33) <> "-1000" or
2041        (-39304_ radix 34) <> "-1000" or
2042        (-42875_ radix 35) <> "-1000" or
2043        (-46656_ radix 36) <> "-1000" or
2044        (-2147483647_ radix  2) <> "-1111111111111111111111111111111" or
2045        (-3486784400_ radix  3) <> "-22222222222222222222" or
2046        (-1073741823_ radix  4) <> "-333333333333333" or
2047        (-1220703124_ radix  5) <> "-4444444444444" or
2048        (-2176782335_ radix  6) <> "-555555555555" or
2049        (-1977326742_ radix  7) <> "-66666666666" or
2050        (-1073741823_ radix  8) <> "-7777777777" or
2051        (-3486784400_ radix  9) <> "-8888888888" or
2052        ( -999999999_ radix 10) <> "-999999999" or
2053        (-2357947690_ radix 11) <> "-aaaaaaaaa" or
2054        ( -429981695_ radix 12) <> "-bbbbbbbb" or
2055        ( -815730720_ radix 13) <> "-cccccccc" or
2056        (-1475789055_ radix 14) <> "-dddddddd" or
2057        (-2562890624_ radix 15) <> "-eeeeeeee" or
2058        ( -268435455_ radix 16) <> "-fffffff" or
2059        ( -410338672_ radix 17) <> "-ggggggg" or
2060        ( -612220031_ radix 18) <> "-hhhhhhh" or
2061        ( -893871738_ radix 19) <> "-iiiiiii" or
2062        (-1279999999_ radix 20) <> "-jjjjjjj" or
2063        (-1801088540_ radix 21) <> "-kkkkkkk" or
2064        (-2494357887_ radix 22) <> "-lllllll" or
2065        (-3404825446_ radix 23) <> "-mmmmmmm" or
2066        ( -191102975_ radix 24) <> "-nnnnnn" or
2067        ( -244140624_ radix 25) <> "-oooooo" or
2068        ( -308915775_ radix 26) <> "-pppppp" or
2069        ( -387420488_ radix 27) <> "-qqqqqq" or
2070        ( -481890303_ radix 28) <> "-rrrrrr" or
2071        ( -594823320_ radix 29) <> "-ssssss" or
2072        ( -728999999_ radix 30) <> "-tttttt" or
2073        ( -887503680_ radix 31) <> "-uuuuuu" or
2074        (-1073741823_ radix 32) <> "-vvvvvv" or
2075        (-1291467968_ radix 33) <> "-wwwwww" or
2076        (-1544804415_ radix 34) <> "-xxxxxx" or
2077        (-1838265624_ radix 35) <> "-yyyyyy" or
2078        (-2176782335_ radix 36) <> "-zzzzzz" or
2079        (-2147483648_ radix  2) <> "-10000000000000000000000000000000" or
2080        (-3486784401_ radix  3) <> "-100000000000000000000" or
2081        (-1073741824_ radix  4) <> "-1000000000000000" or
2082        (-1220703125_ radix  5) <> "-10000000000000" or
2083        (-2176782336_ radix  6) <> "-1000000000000" or
2084        (-1977326743_ radix  7) <> "-100000000000" or
2085        (-1073741824_ radix  8) <> "-10000000000" or
2086        (-3486784401_ radix  9) <> "-10000000000" or
2087        (-1000000000_ radix 10) <> "-1000000000" or
2088        (-2357947691_ radix 11) <> "-1000000000" or
2089        ( -429981696_ radix 12) <> "-100000000" or
2090        ( -815730721_ radix 13) <> "-100000000" or
2091        (-1475789056_ radix 14) <> "-100000000" or
2092        (-2562890625_ radix 15) <> "-100000000" or
2093        ( -268435456_ radix 16) <> "-10000000" or
2094        ( -410338673_ radix 17) <> "-10000000" or
2095        ( -612220032_ radix 18) <> "-10000000" or
2096        ( -893871739_ radix 19) <> "-10000000" or
2097        (-1280000000_ radix 20) <> "-10000000" or
2098        (-1801088541_ radix 21) <> "-10000000" or
2099        (-2494357888_ radix 22) <> "-10000000" or
2100        (-3404825447_ radix 23) <> "-10000000" or
2101        ( -191102976_ radix 24) <> "-1000000" or
2102        ( -244140625_ radix 25) <> "-1000000" or
2103        ( -308915776_ radix 26) <> "-1000000" or
2104        ( -387420489_ radix 27) <> "-1000000" or
2105        ( -481890304_ radix 28) <> "-1000000" or
2106        ( -594823321_ radix 29) <> "-1000000" or
2107        ( -729000000_ radix 30) <> "-1000000" or
2108        ( -887503681_ radix 31) <> "-1000000" or
2109        (-1073741824_ radix 32) <> "-1000000" or
2110        (-1291467969_ radix 33) <> "-1000000" or
2111        (-1544804416_ radix 34) <> "-1000000" or
2112        (-1838265625_ radix 35) <> "-1000000" or
2113        (-2176782336_ radix 36) <> "-1000000" or
2114        ( -4611686016279904256_ radix  2) <> "-11111111111111111111111111111110000000000000000000000000000000" or
2115        (-12157665455570144400_ radix  3) <> "-2222222222222222222200000000000000000000" or
2116        ( -1152921503533105152_ radix  4) <> "-333333333333333000000000000000" or
2117        ( -1490116118164062500_ radix  5) <> "-44444444444440000000000000" or
2118        ( -4738381336144834560_ radix  6) <> "-555555555555000000000000" or
2119        ( -3909821046605661306_ radix  7) <> "-6666666666600000000000" or
2120        ( -1152921503533105152_ radix  8) <> "-77777777770000000000" or
2121        (-12157665455570144400_ radix  9) <> "-88888888880000000000" or
2122        (  -999999999000000000_ radix 10) <> "-999999999000000000" or
2123        ( -5559917311134283790_ radix 11) <> "-aaaaaaaaa000000000" or
2124        (  -184884258465054720_ radix 12) <> "-bbbbbbbb00000000" or
2125        (  -665416608367449120_ radix 13) <> "-cccccccc00000000" or
2126        ( -2177953336333582080_ radix 14) <> "-dddddddd00000000" or
2127        ( -6568408353150000000_ radix 15) <> "-eeeeeeee00000000" or
2128        (   -72057593769492480_ radix 16) <> "-fffffff0000000" or
2129        (  -168377826149062256_ radix 17) <> "-ggggggg0000000" or
2130        (  -374813366969860992_ radix 18) <> "-hhhhhhh0000000" or
2131        (  -799006684889012382_ radix 19) <> "-iiiiiii0000000" or
2132        ( -1638399998720000000_ radix 20) <> "-jjjjjjj0000000" or
2133        ( -3243919930720420140_ radix 21) <> "-kkkkkkk0000000" or
2134        ( -6221821270933462656_ radix 22) <> "-lllllll0000000" or
2135        (-11592836321133924362_ radix 23) <> "-mmmmmmm0000000" or
2136        (   -36520347244953600_ radix 24) <> "-nnnnnn000000" or
2137        (   -59604644531250000_ radix 25) <> "-oooooo000000" or
2138        (   -95428956352766400_ radix 26) <> "-pppppp000000" or
2139        (  -150094634909578632_ radix 27) <> "-qqqqqq000000" or
2140        (  -232218264607322112_ radix 28) <> "-rrrrrr000000" or
2141        (  -353814782610645720_ radix 29) <> "-ssssss000000" or
2142        (  -531440999271000000_ radix 30) <> "-tttttt000000" or
2143        (  -787662782901046080_ radix 31) <> "-uuuuuu000000" or
2144        ( -1152921503533105152_ radix 32) <> "-vvvvvv000000" or
2145        ( -1667889513661516992_ radix 33) <> "-wwwwww000000" or
2146        ( -2386420682148296640_ radix 34) <> "-xxxxxx000000" or
2147        ( -3379220506218375000_ radix 35) <> "-yyyyyy000000" or
2148        ( -4738381336144834560_ radix 36) <> "-zzzzzz000000" or
2149        ( -4611686018427387903_ radix  2) <> "-11111111111111111111111111111111111111111111111111111111111111" or
2150        (-12157665459056928800_ radix  3) <> "-2222222222222222222222222222222222222222" or
2151        ( -1152921504606846975_ radix  4) <> "-333333333333333333333333333333" or
2152        ( -1490116119384765624_ radix  5) <> "-44444444444444444444444444" or
2153        ( -4738381338321616895_ radix  6) <> "-555555555555555555555555" or
2154        ( -3909821048582988048_ radix  7) <> "-6666666666666666666666" or
2155        ( -1152921504606846975_ radix  8) <> "-77777777777777777777" or
2156        (-12157665459056928800_ radix  9) <> "-88888888888888888888" or
2157        (  -999999999999999999_ radix 10) <> "-999999999999999999" or
2158        ( -5559917313492231480_ radix 11) <> "-aaaaaaaaaaaaaaaaaa" or
2159        (  -184884258895036415_ radix 12) <> "-bbbbbbbbbbbbbbbb" or
2160        (  -665416609183179840_ radix 13) <> "-cccccccccccccccc" or
2161        ( -2177953337809371135_ radix 14) <> "-dddddddddddddddd" or
2162        ( -6568408355712890624_ radix 15) <> "-eeeeeeeeeeeeeeee" or
2163        (   -72057594037927935_ radix 16) <> "-ffffffffffffff" or
2164        (  -168377826559400928_ radix 17) <> "-gggggggggggggg" or
2165        (  -374813367582081023_ radix 18) <> "-hhhhhhhhhhhhhh" or
2166        (  -799006685782884120_ radix 19) <> "-iiiiiiiiiiiiii" or
2167        ( -1638399999999999999_ radix 20) <> "-jjjjjjjjjjjjjj" or
2168        ( -3243919932521508680_ radix 21) <> "-kkkkkkkkkkkkkk" or
2169        ( -6221821273427820543_ radix 22) <> "-llllllllllllll" or
2170        (-11592836324538749808_ radix 23) <> "-mmmmmmmmmmmmmm" or
2171        (   -36520347436056575_ radix 24) <> "-nnnnnnnnnnnn" or
2172        (   -59604644775390624_ radix 25) <> "-oooooooooooo" or
2173        (   -95428956661682175_ radix 26) <> "-pppppppppppp" or
2174        (  -150094635296999120_ radix 27) <> "-qqqqqqqqqqqq" or
2175        (  -232218265089212415_ radix 28) <> "-rrrrrrrrrrrr" or
2176        (  -353814783205469040_ radix 29) <> "-ssssssssssss" or
2177        (  -531440999999999999_ radix 30) <> "-tttttttttttt" or
2178        (  -787662783788549760_ radix 31) <> "-uuuuuuuuuuuu" or
2179        ( -1152921504606846975_ radix 32) <> "-vvvvvvvvvvvv" or
2180        ( -1667889514952984960_ radix 33) <> "-wwwwwwwwwwww" or
2181        ( -2386420683693101055_ radix 34) <> "-xxxxxxxxxxxx" or
2182        ( -3379220508056640624_ radix 35) <> "-yyyyyyyyyyyy" or
2183        ( -4738381338321616895_ radix 36) <> "-zzzzzzzzzzzz" or
2184        ( -4611686018427387904_ radix  2) <> "-100000000000000000000000000000000000000000000000000000000000000" or
2185        (-12157665459056928801_ radix  3) <> "-10000000000000000000000000000000000000000" or
2186        ( -1152921504606846976_ radix  4) <> "-1000000000000000000000000000000" or
2187        ( -1490116119384765625_ radix  5) <> "-100000000000000000000000000" or
2188        ( -4738381338321616896_ radix  6) <> "-1000000000000000000000000" or
2189        ( -3909821048582988049_ radix  7) <> "-10000000000000000000000" or
2190        ( -1152921504606846976_ radix  8) <> "-100000000000000000000" or
2191        (-12157665459056928801_ radix  9) <> "-100000000000000000000" or
2192        ( -1000000000000000000_ radix 10) <> "-1000000000000000000" or
2193        ( -5559917313492231481_ radix 11) <> "-1000000000000000000" or
2194        (  -184884258895036416_ radix 12) <> "-10000000000000000" or
2195        (  -665416609183179841_ radix 13) <> "-10000000000000000" or
2196        ( -2177953337809371136_ radix 14) <> "-10000000000000000" or
2197        ( -6568408355712890625_ radix 15) <> "-10000000000000000" or
2198        (   -72057594037927936_ radix 16) <> "-100000000000000" or
2199        (  -168377826559400929_ radix 17) <> "-100000000000000" or
2200        (  -374813367582081024_ radix 18) <> "-100000000000000" or
2201        (  -799006685782884121_ radix 19) <> "-100000000000000" or
2202        ( -1638400000000000000_ radix 20) <> "-100000000000000" or
2203        ( -3243919932521508681_ radix 21) <> "-100000000000000" or
2204        ( -6221821273427820544_ radix 22) <> "-100000000000000" or
2205        (-11592836324538749809_ radix 23) <> "-100000000000000" or
2206        (   -36520347436056576_ radix 24) <> "-1000000000000" or
2207        (   -59604644775390625_ radix 25) <> "-1000000000000" or
2208        (   -95428956661682176_ radix 26) <> "-1000000000000" or
2209        (  -150094635296999121_ radix 27) <> "-1000000000000" or
2210        (  -232218265089212416_ radix 28) <> "-1000000000000" or
2211        (  -353814783205469041_ radix 29) <> "-1000000000000" or
2212        (  -531441000000000000_ radix 30) <> "-1000000000000" or
2213        (  -787662783788549761_ radix 31) <> "-1000000000000" or
2214        ( -1152921504606846976_ radix 32) <> "-1000000000000" or
2215        ( -1667889514952984961_ radix 33) <> "-1000000000000" or
2216        ( -2386420683693101056_ radix 34) <> "-1000000000000" or
2217        ( -3379220508056640625_ radix 35) <> "-1000000000000" or
2218        ( -4738381338321616896_ radix 36) <> "-1000000000000" or
2219        ( -4611686020574871551_ radix  2) <> "-100000000000000000000000000000001111111111111111111111111111111" or
2220        (-12157665462543713201_ radix  3) <> "-10000000000000000000022222222222222222222" or
2221        ( -1152921505680588799_ radix  4) <> "-1000000000000000333333333333333" or
2222        ( -1490116120605468749_ radix  5) <> "-100000000000004444444444444" or
2223        ( -4738381340498399231_ radix  6) <> "-1000000000000555555555555" or
2224        ( -3909821050560314791_ radix  7) <> "-10000000000066666666666" or
2225        ( -1152921505680588799_ radix  8) <> "-100000000007777777777" or
2226        (-12157665462543713201_ radix  9) <> "-100000000008888888888" or
2227        ( -1000000000999999999_ radix 10) <> "-1000000000999999999" or
2228        ( -5559917315850179171_ radix 11) <> "-1000000000aaaaaaaaa" or
2229        (  -184884259325018111_ radix 12) <> "-100000000bbbbbbbb" or
2230        (  -665416609998910561_ radix 13) <> "-100000000cccccccc" or
2231        ( -2177953339285160191_ radix 14) <> "-100000000dddddddd" or
2232        ( -6568408358275781249_ radix 15) <> "-100000000eeeeeeee" or
2233        (   -72057594306363391_ radix 16) <> "-10000000fffffff" or
2234        (  -168377826969739601_ radix 17) <> "-10000000ggggggg" or
2235        (  -374813368194301055_ radix 18) <> "-10000000hhhhhhh" or
2236        (  -799006686676755859_ radix 19) <> "-10000000iiiiiii" or
2237        ( -1638400001279999999_ radix 20) <> "-10000000jjjjjjj" or
2238        ( -3243919934322597221_ radix 21) <> "-10000000kkkkkkk" or
2239        ( -6221821275922178431_ radix 22) <> "-10000000lllllll" or
2240        (-11592836327943575255_ radix 23) <> "-10000000mmmmmmm" or
2241        (   -36520347627159551_ radix 24) <> "-1000000nnnnnn" or
2242        (   -59604645019531249_ radix 25) <> "-1000000oooooo" or
2243        (   -95428956970597951_ radix 26) <> "-1000000pppppp" or
2244        (  -150094635684419609_ radix 27) <> "-1000000qqqqqq" or
2245        (  -232218265571102719_ radix 28) <> "-1000000rrrrrr" or
2246        (  -353814783800292361_ radix 29) <> "-1000000ssssss" or
2247        (  -531441000728999999_ radix 30) <> "-1000000tttttt" or
2248        (  -787662784676053441_ radix 31) <> "-1000000uuuuuu" or
2249        ( -1152921505680588799_ radix 32) <> "-1000000vvvvvv" or
2250        ( -1667889516244452929_ radix 33) <> "-1000000wwwwww" or
2251        ( -2386420685237905471_ radix 34) <> "-1000000xxxxxx" or
2252        ( -3379220509894906249_ radix 35) <> "-1000000yyyyyy" or
2253        ( -4738381340498399231_ radix 36) <> "-1000000zzzzzz" or
2254        ( -4611686020574871552_ radix  2) <> "-100000000000000000000000000000010000000000000000000000000000000" or
2255        (-12157665462543713202_ radix  3) <> "-10000000000000000000100000000000000000000" or
2256        ( -1152921505680588800_ radix  4) <> "-1000000000000001000000000000000" or
2257        ( -1490116120605468750_ radix  5) <> "-100000000000010000000000000" or
2258        ( -4738381340498399232_ radix  6) <> "-1000000000001000000000000" or
2259        ( -3909821050560314792_ radix  7) <> "-10000000000100000000000" or
2260        ( -1152921505680588800_ radix  8) <> "-100000000010000000000" or
2261        (-12157665462543713202_ radix  9) <> "-100000000010000000000" or
2262        ( -1000000001000000000_ radix 10) <> "-1000000001000000000" or
2263        ( -5559917315850179172_ radix 11) <> "-1000000001000000000" or
2264        (  -184884259325018112_ radix 12) <> "-10000000100000000" or
2265        (  -665416609998910562_ radix 13) <> "-10000000100000000" or
2266        ( -2177953339285160192_ radix 14) <> "-10000000100000000" or
2267        ( -6568408358275781250_ radix 15) <> "-10000000100000000" or
2268        (   -72057594306363392_ radix 16) <> "-100000010000000" or
2269        (  -168377826969739602_ radix 17) <> "-100000010000000" or
2270        (  -374813368194301056_ radix 18) <> "-100000010000000" or
2271        (  -799006686676755860_ radix 19) <> "-100000010000000" or
2272        ( -1638400001280000000_ radix 20) <> "-100000010000000" or
2273        ( -3243919934322597222_ radix 21) <> "-100000010000000" or
2274        ( -6221821275922178432_ radix 22) <> "-100000010000000" or
2275        (-11592836327943575256_ radix 23) <> "-100000010000000" or
2276        (   -36520347627159552_ radix 24) <> "-1000001000000" or
2277        (   -59604645019531250_ radix 25) <> "-1000001000000" or
2278        (   -95428956970597952_ radix 26) <> "-1000001000000" or
2279        (  -150094635684419610_ radix 27) <> "-1000001000000" or
2280        (  -232218265571102720_ radix 28) <> "-1000001000000" or
2281        (  -353814783800292362_ radix 29) <> "-1000001000000" or
2282        (  -531441000729000000_ radix 30) <> "-1000001000000" or
2283        (  -787662784676053442_ radix 31) <> "-1000001000000" or
2284        ( -1152921505680588800_ radix 32) <> "-1000001000000" or
2285        ( -1667889516244452930_ radix 33) <> "-1000001000000" or
2286        ( -2386420685237905472_ radix 34) <> "-1000001000000" or
2287        ( -3379220509894906250_ radix 35) <> "-1000001000000" or
2288        ( -4738381340498399232_ radix 36) <> "-1000001000000" or
2289        (-100000000000000000000000000319_ radix  2) <> "-1010000110001111000001111101011100110110101110010000101111100101010100000000000000000000100111111" or
2290        (-100000000000000000000000000319_ radix  3) <> "-2100200200212000022212220120022010001221202000002022000220112" or
2291        (-100000000000000000000000000319_ radix  4) <> "-1100301320033223212311302011330222200000000010333" or
2292        (-100000000000000000000000000319_ radix  5) <> "-204441433212200000000000000000000000002234" or
2293        (-100000000000000000000000000319_ radix  6) <> "-13410053220220505231115301204001140235" or
2294        (-100000000000000000000000000319_ radix  7) <> "-15635454446002645363053156623005412" or
2295        (-100000000000000000000000000319_ radix  8) <> "-120617017534665620574524000000477" or
2296        (-100000000000000000000000000319_ radix  9) <> "-2320625008786508101852002260815" or
2297        (-100000000000000000000000000319_ radix 10) <> "-100000000000000000000000000319" or
2298        (-100000000000000000000000000319_ radix 11) <> "-769a618102a154016670a237962a" or
2299        (-100000000000000000000000000319_ radix 12) <> "-889ab3137a3b54451601162a67b" or
2300        (-100000000000000000000000000319_ radix 13) <> "-1122ca73297a54c075c32b0230b" or
2301        (-100000000000000000000000000319_ radix 14) <> "-2317d25dba3b3d12d48933db79" or
2302        (-100000000000000000000000000319_ radix 15) <> "-5e1889d6d71b3e0dc36589ace" or
2303        (-100000000000000000000000000319_ radix 16) <> "-1431e0fae6d7217caa000013f" or
2304        (-100000000000000000000000000319_ radix 17) <> "-5025f49e1fg7a601df34ebe7" or
2305        (-100000000000000000000000000319_ radix 18) <> "-163e400hgce02ecage96a455" or
2306        (-100000000000000000000000000319_ radix 19) <> "-770579101b5d9f940bc733a" or
2307        (-100000000000000000000000000319_ radix 20) <> "-27dd9eaca000000000000fj" or
2308        (-100000000000000000000000000319_ radix 21) <> "-h290bbh0jjc15bk46095j2" or
2309        (-100000000000000000000000000319_ radix 22) <> "-69gef0gk1ggel7e7d3k9hl" or
2310        (-100000000000000000000000000319_ radix 23) <> "-2c64g5i7i2395emd7dcj1b" or
2311        (-100000000000000000000000000319_ radix 24) <> "-10l09dbii6c9eme651g7fn" or
2312        (-100000000000000000000000000319_ radix 25) <> "-aolnh7a000000000000cj" or
2313        (-100000000000000000000000000319_ radix 26) <> "-50c4m3pm8jamaee6loh0b" or
2314        (-100000000000000000000000000319_ radix 27) <> "-29iin08nof831pk0280oe" or
2315        (-100000000000000000000000000319_ radix 28) <> "-13phe5j1kdhobiief3dan" or
2316        (-100000000000000000000000000319_ radix 29) <> "-gb4f0pjcrjblceq2cmpa" or
2317        (-100000000000000000000000000319_ radix 30) <> "-8i3fls3pqmq0btbqnldt" or
2318        (-100000000000000000000000000319_ radix 31) <> "-4j1hhmj57rlnnsf4ito6" or
2319        (-100000000000000000000000000319_ radix 32) <> "-2gou1un6qsgnpag0009v" or
2320        (-100000000000000000000000000319_ radix 33) <> "-1de0gbkuognupu9fnj0w" or
2321        (-100000000000000000000000000319_ radix 34) <> "-r496vggek1grfuv3wo7" or
2322        (-100000000000000000000000000319_ radix 35) <> "-g3f6xlpcxahu7f49rl9" or
2323        (-100000000000000000000000000319_ radix 36) <> "-9p0xe2cuwj7x1co1a2n" then
2324      writeln(" ***** The radix operator for bigInteger does not work correct for negative values.");
2325      okay := FALSE;
2326    end if;
2327
2328    if  (-18446744069414584320_ radix  2) <> "-1111111111111111111111111111111100000000000000000000000000000000" or
2329        (-18446744069414584320_ radix  4) <> "-33333333333333330000000000000000" or
2330        (-18446744069414584320_ radix  8) <> "-1777777777740000000000" or
2331        (-18446744069414584320_ radix 16) <> "-ffffffff00000000" or
2332        (-18446744069414584320_ radix 32) <> "-fvvvvvs000000" then
2333      writeln(" ***** The radix operator for bigInteger does not work correct for negative values.");
2334      okay := FALSE;
2335    end if;
2336
2337    if  (                                                        2_ RADIX  2) <>                                   "10" or
2338        (                                                       21_ RADIX  3) <>                                  "210" or
2339        (                                                      228_ RADIX  4) <>                                 "3210" or
2340        (                                                     2930_ RADIX  5) <>                                "43210" or
2341        (                                                    44790_ RADIX  6) <>                               "543210" or
2342        (                                                   800667_ RADIX  7) <>                              "6543210" or
2343        (                                                 16434824_ RADIX  8) <>                             "76543210" or
2344        (                                                381367044_ RADIX  9) <>                            "876543210" or
2345        (                                               9876543210_ RADIX 10) <>                           "9876543210" or
2346        (                                             282458553905_ RADIX 11) <>                          "A9876543210" or
2347        (                                            8842413667692_ RADIX 12) <>                         "BA9876543210" or
2348        (                                          300771807240918_ RADIX 13) <>                        "CBA9876543210" or
2349        (                                        11046255305880158_ RADIX 14) <>                       "DCBA9876543210" or
2350        (                                       435659737878916215_ RADIX 15) <>                      "EDCBA9876543210" or
2351        (                                     18364758544493064720_ RADIX 16) <>                     "FEDCBA9876543210" or
2352        (                                    824008854613343261192_ RADIX 17) <>                    "GFEDCBA9876543210" or
2353        (                                  39210261334551566857170_ RADIX 18) <>                   "HGFEDCBA9876543210" or
2354        (                                1972313422155189164466189_ RADIX 19) <>                  "IHGFEDCBA9876543210" or
2355        (                              104567135734072022160664820_ RADIX 20) <>                 "JIHGFEDCBA9876543210" or
2356        (                             5827980550840017565077671610_ RADIX 21) <>                "KJIHGFEDCBA9876543210" or
2357        (                           340653664490377789692799452102_ RADIX 22) <>               "LKJIHGFEDCBA9876543210" or
2358        (                         20837326537038308910317109288851_ RADIX 23) <>              "MLKJIHGFEDCBA9876543210" or
2359        (                       1331214537196502869015340298036888_ RADIX 24) <>             "NMLKJIHGFEDCBA9876543210" or
2360        (                      88663644327703473714387251271141900_ RADIX 25) <>            "ONMLKJIHGFEDCBA9876543210" or
2361        (                    6146269788878825859099399609538763450_ RADIX 26) <>           "PONMLKJIHGFEDCBA9876543210" or
2362        (                  442770531899482980347734468443677777577_ RADIX 27) <>          "QPONMLKJIHGFEDCBA9876543210" or
2363        (                33100056003358651440264672384704297711484_ RADIX 28) <>         "RQPONMLKJIHGFEDCBA9876543210" or
2364        (              2564411043271974895869785066497940850811934_ RADIX 29) <>        "SRQPONMLKJIHGFEDCBA9876543210" or
2365        (            205646315052919334126040428061831153388822830_ RADIX 30) <>       "TSRQPONMLKJIHGFEDCBA9876543210" or
2366        (          17050208381689099029767742314582582184093573615_ RADIX 31) <>      "UTSRQPONMLKJIHGFEDCBA9876543210" or
2367        (        1459980823972598128486511383358617792788444579872_ RADIX 32) <>     "VUTSRQPONMLKJIHGFEDCBA9876543210" or
2368        (      128983956064237823710866404905431464703849549412368_ RADIX 33) <>    "WVUTSRQPONMLKJIHGFEDCBA9876543210" or
2369        (    11745843093701610854378775891116314824081102660800418_ RADIX 34) <>   "XWVUTSRQPONMLKJIHGFEDCBA9876543210" or
2370        (  1101553773143634726491620528194292510495517905608180485_ RADIX 35) <>  "YXWVUTSRQPONMLKJIHGFEDCBA9876543210" or
2371        (106300512100105327644605138221229898724869759421181854980_ RADIX 36) <> "ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210" then
2372      writeln(" ***** The RADIX operator for bigInteger does not work correct.");
2373      okay := FALSE;
2374    end if;
2375
2376    bigNum := 123456789_ ** 12345;
2377    if  bigInteger(bigNum radix  2,  2) <> bigNum or
2378        bigInteger(bigNum RADIX  2,  2) <> bigNum or
2379        bigInteger(bigNum radix  4,  4) <> bigNum or
2380        bigInteger(bigNum RADIX  4,  4) <> bigNum or
2381        bigInteger(bigNum radix  8,  8) <> bigNum or
2382        bigInteger(bigNum RADIX  8,  8) <> bigNum or
2383        bigInteger(bigNum radix 16, 16) <> bigNum or
2384        bigInteger(bigNum RADIX 16, 16) <> bigNum or
2385        bigInteger(bigNum radix 32, 32) <> bigNum or
2386        bigInteger(bigNum RADIX 32, 32) <> bigNum then
2387      writeln(" ***** The radix operator for bigInteger does not work correct for big values.");
2388      okay := FALSE;
2389    end if;
2390
2391    bigNum := 123456789_ ** 1234;
2392    for base range 2 to 36 do
2393      if  bigInteger(bigNum radix base, base) <> bigNum or
2394          bigInteger(bigNum RADIX base, base) <> bigNum then
2395        writeln(" ***** The radix operator for large bigInteger does not work correct.");
2396        okay := FALSE;
2397      end if;
2398    end for;
2399
2400    bigNum := 123_;
2401    if  not raisesRangeError(        bigNum   radix         integer.first ) or
2402        not raisesRangeError(        bigNum   radix                    -1 ) or
2403        not raisesRangeError(        bigNum   radix                     0 ) or
2404        not raisesRangeError(        bigNum   radix                     1 ) or
2405        not raisesRangeError(        bigNum   radix                    37 ) or
2406        not raisesRangeError(        bigNum   radix                    38 ) or
2407        not raisesRangeError(        bigNum   radix          integer.last ) or
2408        not raisesRangeError(           123_  radix         integer.first ) or
2409        not raisesRangeError(           123_  radix                    -1 ) or
2410        not raisesRangeError(           123_  radix                     0 ) or
2411        not raisesRangeError(           123_  radix                     1 ) or
2412        not raisesRangeError(           123_  radix                    37 ) or
2413        not raisesRangeError(           123_  radix                    38 ) or
2414        not raisesRangeError(           123_  radix          integer.last ) or
2415        not raisesRangeError(bigintExpr(123_) radix         integer.first ) or
2416        not raisesRangeError(bigintExpr(123_) radix                    -1 ) or
2417        not raisesRangeError(bigintExpr(123_) radix                     0 ) or
2418        not raisesRangeError(bigintExpr(123_) radix                     1 ) or
2419        not raisesRangeError(bigintExpr(123_) radix                    37 ) or
2420        not raisesRangeError(bigintExpr(123_) radix                    38 ) or
2421        not raisesRangeError(bigintExpr(123_) radix          integer.last ) or
2422        not raisesRangeError(        bigNum   radix intExpr(integer.first )) or
2423        not raisesRangeError(        bigNum   radix intExpr(           -1 )) or
2424        not raisesRangeError(        bigNum   radix intExpr(            0 )) or
2425        not raisesRangeError(        bigNum   radix intExpr(            1 )) or
2426        not raisesRangeError(        bigNum   radix intExpr(           37 )) or
2427        not raisesRangeError(        bigNum   radix intExpr(           38 )) or
2428        not raisesRangeError(        bigNum   radix intExpr( integer.last )) or
2429        not raisesRangeError(           123_  radix intExpr(integer.first )) or
2430        not raisesRangeError(           123_  radix intExpr(           -1 )) or
2431        not raisesRangeError(           123_  radix intExpr(            0 )) or
2432        not raisesRangeError(           123_  radix intExpr(            1 )) or
2433        not raisesRangeError(           123_  radix intExpr(           37 )) or
2434        not raisesRangeError(           123_  radix intExpr(           38 )) or
2435        not raisesRangeError(           123_  radix intExpr( integer.last )) or
2436        not raisesRangeError(bigintExpr(123_) radix intExpr(integer.first )) or
2437        not raisesRangeError(bigintExpr(123_) radix intExpr(           -1 )) or
2438        not raisesRangeError(bigintExpr(123_) radix intExpr(            0 )) or
2439        not raisesRangeError(bigintExpr(123_) radix intExpr(            1 )) or
2440        not raisesRangeError(bigintExpr(123_) radix intExpr(           37 )) or
2441        not raisesRangeError(bigintExpr(123_) radix intExpr(           38 )) or
2442        not raisesRangeError(bigintExpr(123_) radix intExpr( integer.last )) then
2443      writeln(" ***** The radix operator does not raise RANGE_ERROR for an illegal base.");
2444      okay := FALSE;
2445    end if;
2446
2447    bigNum := 123_;
2448    if  not raisesRangeError(        bigNum   RADIX         integer.first ) or
2449        not raisesRangeError(        bigNum   RADIX                    -1 ) or
2450        not raisesRangeError(        bigNum   RADIX                     0 ) or
2451        not raisesRangeError(        bigNum   RADIX                     1 ) or
2452        not raisesRangeError(        bigNum   RADIX                    37 ) or
2453        not raisesRangeError(        bigNum   RADIX                    38 ) or
2454        not raisesRangeError(        bigNum   RADIX          integer.last ) or
2455        not raisesRangeError(           123_  RADIX         integer.first ) or
2456        not raisesRangeError(           123_  RADIX                    -1 ) or
2457        not raisesRangeError(           123_  RADIX                     0 ) or
2458        not raisesRangeError(           123_  RADIX                     1 ) or
2459        not raisesRangeError(           123_  RADIX                    37 ) or
2460        not raisesRangeError(           123_  RADIX                    38 ) or
2461        not raisesRangeError(           123_  RADIX          integer.last ) or
2462        not raisesRangeError(bigintExpr(123_) RADIX         integer.first ) or
2463        not raisesRangeError(bigintExpr(123_) RADIX                    -1 ) or
2464        not raisesRangeError(bigintExpr(123_) RADIX                     0 ) or
2465        not raisesRangeError(bigintExpr(123_) RADIX                     1 ) or
2466        not raisesRangeError(bigintExpr(123_) RADIX                    37 ) or
2467        not raisesRangeError(bigintExpr(123_) RADIX                    38 ) or
2468        not raisesRangeError(bigintExpr(123_) RADIX          integer.last ) or
2469        not raisesRangeError(        bigNum   RADIX intExpr(integer.first )) or
2470        not raisesRangeError(        bigNum   RADIX intExpr(           -1 )) or
2471        not raisesRangeError(        bigNum   RADIX intExpr(            0 )) or
2472        not raisesRangeError(        bigNum   RADIX intExpr(            1 )) or
2473        not raisesRangeError(        bigNum   RADIX intExpr(           37 )) or
2474        not raisesRangeError(        bigNum   RADIX intExpr(           38 )) or
2475        not raisesRangeError(        bigNum   RADIX intExpr( integer.last )) or
2476        not raisesRangeError(           123_  RADIX intExpr(integer.first )) or
2477        not raisesRangeError(           123_  RADIX intExpr(           -1 )) or
2478        not raisesRangeError(           123_  RADIX intExpr(            0 )) or
2479        not raisesRangeError(           123_  RADIX intExpr(            1 )) or
2480        not raisesRangeError(           123_  RADIX intExpr(           37 )) or
2481        not raisesRangeError(           123_  RADIX intExpr(           38 )) or
2482        not raisesRangeError(           123_  RADIX intExpr( integer.last )) or
2483        not raisesRangeError(bigintExpr(123_) RADIX intExpr(integer.first )) or
2484        not raisesRangeError(bigintExpr(123_) RADIX intExpr(           -1 )) or
2485        not raisesRangeError(bigintExpr(123_) RADIX intExpr(            0 )) or
2486        not raisesRangeError(bigintExpr(123_) RADIX intExpr(            1 )) or
2487        not raisesRangeError(bigintExpr(123_) RADIX intExpr(           37 )) or
2488        not raisesRangeError(bigintExpr(123_) RADIX intExpr(           38 )) or
2489        not raisesRangeError(bigintExpr(123_) RADIX intExpr( integer.last )) then
2490      writeln(" ***** The RADIX operator does not raise RANGE_ERROR for an illegal base.");
2491      okay := FALSE;
2492    end if;
2493
2494    if okay then
2495      writeln("The radix operator for bigInteger works correct.");
2496    else
2497      writeln(" ***** The radix operator for bigInteger does not work correct.");
2498      writeln;
2499    end if;
2500  end func;
2501
2502
2503const proc: chkOrd is func
2504  local
2505    var boolean: okay is TRUE;
2506  begin
2507    if  ord(         0_) <>          0 or
2508        ord(         1_) <>          1 or
2509        ord(         2_) <>          2 or
2510        ord(         8_) <>          8 or
2511        ord(         9_) <>          9 or
2512        ord(        10_) <>         10 or
2513        ord(        11_) <>         11 or
2514        ord(        12_) <>         12 or
2515        ord(        98_) <>         98 or
2516        ord(        99_) <>         99 or
2517        ord(       100_) <>        100 or
2518        ord(       101_) <>        101 or
2519        ord(       102_) <>        102 or
2520        ord(       126_) <>        126 or
2521        ord(       127_) <>        127 or
2522        ord(       128_) <>        128 or
2523        ord(       129_) <>        129 or
2524        ord(       130_) <>        130 or
2525        ord(       254_) <>        254 or
2526        ord(       255_) <>        255 or
2527        ord(       256_) <>        256 or
2528        ord(       257_) <>        257 or
2529        ord(       258_) <>        258 or
2530        ord(       998_) <>        998 or
2531        ord(       999_) <>        999 or
2532        ord(      1000_) <>       1000 or
2533        ord(      1001_) <>       1001 or
2534        ord(      1002_) <>       1002 or
2535        ord(      9998_) <>       9998 or
2536        ord(      9999_) <>       9999 or
2537        ord(     10000_) <>      10000 or
2538        ord(     10001_) <>      10001 or
2539        ord(     10002_) <>      10002 or
2540        ord(     32766_) <>      32766 or
2541        ord(     32767_) <>      32767 or
2542        ord(     32768_) <>      32768 or
2543        ord(     32769_) <>      32769 or
2544        ord(     32770_) <>      32770 or
2545        ord(     65534_) <>      65534 or
2546        ord(     65535_) <>      65535 or
2547        ord(     65536_) <>      65536 or
2548        ord(     65537_) <>      65537 or
2549        ord(     65538_) <>      65538 or
2550        ord(     99998_) <>      99998 or
2551        ord(     99999_) <>      99999 or
2552        ord(    100000_) <>     100000 or
2553        ord(    100001_) <>     100001 or
2554        ord(    100002_) <>     100002 or
2555        ord(    999998_) <>     999998 or
2556        ord(    999999_) <>     999999 or
2557        ord(   1000000_) <>    1000000 or
2558        ord(   1000001_) <>    1000001 or
2559        ord(   1000002_) <>    1000002 or
2560        ord(   8388606_) <>    8388606 or
2561        ord(   8388607_) <>    8388607 or
2562        ord(   8388608_) <>    8388608 or
2563        ord(   8388609_) <>    8388609 or
2564        ord(   8388610_) <>    8388610 or
2565        ord(   9999998_) <>    9999998 or
2566        ord(   9999999_) <>    9999999 or
2567        ord(  10000000_) <>   10000000 or
2568        ord(  10000001_) <>   10000001 or
2569        ord(  10000002_) <>   10000002 or
2570        ord(  16777214_) <>   16777214 or
2571        ord(  16777215_) <>   16777215 or
2572        ord(  16777216_) <>   16777216 or
2573        ord(  16777217_) <>   16777217 or
2574        ord(  16777218_) <>   16777218 or
2575        ord(  99999998_) <>   99999998 or
2576        ord(  99999999_) <>   99999999 or
2577        ord( 100000000_) <>  100000000 or
2578        ord( 100000001_) <>  100000001 or
2579        ord( 100000002_) <>  100000002 or
2580        ord( 999999998_) <>  999999998 or
2581        ord( 999999999_) <>  999999999 or
2582        ord(1000000000_) <> 1000000000 or
2583        ord(1000000001_) <> 1000000001 or
2584        ord(1000000002_) <> 1000000002 or
2585        ord(2147483646_) <> 2147483646 or
2586        ord(2147483647_) <> 2147483647 or
2587        ord(1234567890123456_) <> 1234567890123456 then
2588      writeln("Conversion of a positive bigInteger to integer does not work correct.");
2589      okay := FALSE;
2590    end if;
2591
2592    if  ord(         -1_) <>          -1 or
2593        ord(         -2_) <>          -2 or
2594        ord(         -8_) <>          -8 or
2595        ord(         -9_) <>          -9 or
2596        ord(        -10_) <>         -10 or
2597        ord(        -11_) <>         -11 or
2598        ord(        -12_) <>         -12 or
2599        ord(        -98_) <>         -98 or
2600        ord(        -99_) <>         -99 or
2601        ord(       -100_) <>        -100 or
2602        ord(       -101_) <>        -101 or
2603        ord(       -102_) <>        -102 or
2604        ord(       -126_) <>        -126 or
2605        ord(       -127_) <>        -127 or
2606        ord(       -128_) <>        -128 or
2607        ord(       -129_) <>        -129 or
2608        ord(       -130_) <>        -130 or
2609        ord(       -254_) <>        -254 or
2610        ord(       -255_) <>        -255 or
2611        ord(       -256_) <>        -256 or
2612        ord(       -257_) <>        -257 or
2613        ord(       -258_) <>        -258 or
2614        ord(       -998_) <>        -998 or
2615        ord(       -999_) <>        -999 or
2616        ord(      -1000_) <>       -1000 or
2617        ord(      -1001_) <>       -1001 or
2618        ord(      -1002_) <>       -1002 or
2619        ord(      -9998_) <>       -9998 or
2620        ord(      -9999_) <>       -9999 or
2621        ord(     -10000_) <>      -10000 or
2622        ord(     -10001_) <>      -10001 or
2623        ord(     -10002_) <>      -10002 or
2624        ord(     -32766_) <>      -32766 or
2625        ord(     -32767_) <>      -32767 or
2626        ord(     -32768_) <>      -32768 or
2627        ord(     -32769_) <>      -32769 or
2628        ord(     -32770_) <>      -32770 or
2629        ord(     -65534_) <>      -65534 or
2630        ord(     -65535_) <>      -65535 or
2631        ord(     -65536_) <>      -65536 or
2632        ord(     -65537_) <>      -65537 or
2633        ord(     -65538_) <>      -65538 or
2634        ord(     -99998_) <>      -99998 or
2635        ord(     -99999_) <>      -99999 or
2636        ord(    -100000_) <>     -100000 or
2637        ord(    -100001_) <>     -100001 or
2638        ord(    -100002_) <>     -100002 or
2639        ord(    -999998_) <>     -999998 or
2640        ord(    -999999_) <>     -999999 or
2641        ord(   -1000000_) <>    -1000000 or
2642        ord(   -1000001_) <>    -1000001 or
2643        ord(   -1000002_) <>    -1000002 or
2644        ord(   -8388606_) <>    -8388606 or
2645        ord(   -8388607_) <>    -8388607 or
2646        ord(   -8388608_) <>    -8388608 or
2647        ord(   -8388609_) <>    -8388609 or
2648        ord(   -8388610_) <>    -8388610 or
2649        ord(   -9999998_) <>    -9999998 or
2650        ord(   -9999999_) <>    -9999999 or
2651        ord(  -10000000_) <>   -10000000 or
2652        ord(  -10000001_) <>   -10000001 or
2653        ord(  -10000002_) <>   -10000002 or
2654        ord(  -16777214_) <>   -16777214 or
2655        ord(  -16777215_) <>   -16777215 or
2656        ord(  -16777216_) <>   -16777216 or
2657        ord(  -16777217_) <>   -16777217 or
2658        ord(  -16777218_) <>   -16777218 or
2659        ord(  -99999998_) <>   -99999998 or
2660        ord(  -99999999_) <>   -99999999 or
2661        ord( -100000000_) <>  -100000000 or
2662        ord( -100000001_) <>  -100000001 or
2663        ord( -100000002_) <>  -100000002 or
2664        ord( -999999998_) <>  -999999998 or
2665        ord( -999999999_) <>  -999999999 or
2666        ord(-1000000000_) <> -1000000000 or
2667        ord(-1000000001_) <> -1000000001 or
2668        ord(-1000000002_) <> -1000000002 or
2669        ord(-2147483646_) <> -2147483646 or
2670        ord(-2147483647_) <> -2147483647 or
2671        ord(-2147483648_) <> pred(-2147483647) or
2672        ord(-1234567890123456_) <> -1234567890123456 then
2673      writeln("Conversion of a negative bigInteger to integer does not work correct.");
2674      okay := FALSE;
2675    end if;
2676
2677    if okay then
2678      writeln("Conversion of bigInteger to integer works correct.");
2679    else
2680      writeln(" ***** Conversion of bigInteger to integer does not work correct.");
2681      writeln;
2682    end if;
2683  end func;
2684
2685
2686const proc: chkBigOrdWithBigMod is func
2687  local
2688    const integer: aPositive1 is 3552952533233593397;
2689    const integer: aPositive2 is 5074619335926251242;
2690    const integer: aPositive3 is 3745810425333604960;
2691    const integer: aPositive4 is 2207119669289072373;
2692    const integer: aNegative1 is -5670419503621182411;
2693    const integer: aNegative2 is -4148752700928524566;
2694    const integer: aNegative3 is -5477561611521170848;
2695    const integer: aNegative4 is -7016252367565703435;
2696    const bigInteger: aBig1 is 123456789012345678901_;
2697    const bigInteger: aBig2 is 198765432109876543210_;
2698    const bigInteger: aBig3 is  31415926535897932384_;
2699    const bigInteger: aBig4 is  48323979853562951413_;
2700    const bigInteger: powTwo63 is 2_**63;
2701    const bigInteger: powTwo60 is 2_**60;
2702    var boolean: okay is TRUE;
2703  begin
2704    if  ord(           aBig1  mod powTwo63) <> 3552952533233593397 or
2705        ord(           aBig2  mod powTwo63) <> 5074619335926251242 or
2706        ord(           aBig3  mod powTwo63) <> 3745810425333604960 or
2707        ord(           aBig4  mod powTwo63) <> 2207119669289072373 or
2708        ord(bigintExpr(aBig1) mod powTwo63) <> 3552952533233593397 or
2709        ord(bigintExpr(aBig2) mod powTwo63) <> 5074619335926251242 or
2710        ord(bigintExpr(aBig3) mod powTwo63) <> 3745810425333604960 or
2711        ord(bigintExpr(aBig4) mod powTwo63) <> 2207119669289072373 then
2712      writeln(" ***** ord(aBigInt mod 2_**63) does not work correct.");
2713      okay := FALSE;
2714    end if;
2715
2716    if  ord(bigInteger(        aPositive1 ) mod powTwo63) <> 3552952533233593397 or
2717        ord(bigInteger(        aPositive2 ) mod powTwo63) <> 5074619335926251242 or
2718        ord(bigInteger(        aPositive3 ) mod powTwo63) <> 3745810425333604960 or
2719        ord(bigInteger(        aPositive4 ) mod powTwo63) <> 2207119669289072373 or
2720        ord(bigInteger(intExpr(aPositive1)) mod powTwo63) <> 3552952533233593397 or
2721        ord(bigInteger(intExpr(aPositive2)) mod powTwo63) <> 5074619335926251242 or
2722        ord(bigInteger(intExpr(aPositive3)) mod powTwo63) <> 3745810425333604960 or
2723        ord(bigInteger(intExpr(aPositive4)) mod powTwo63) <> 2207119669289072373 then
2724      writeln(" ***** ord(bigInteger(aPositive1) mod 2_**63) does not work correct.");
2725      okay := FALSE;
2726    end if;
2727
2728    if  ord(bigInteger(        aNegative1 ) mod powTwo63) <> 3552952533233593397 or
2729        ord(bigInteger(        aNegative2 ) mod powTwo63) <> 5074619335926251242 or
2730        ord(bigInteger(        aNegative3 ) mod powTwo63) <> 3745810425333604960 or
2731        ord(bigInteger(        aNegative4 ) mod powTwo63) <> 2207119669289072373 or
2732        ord(bigInteger(intExpr(aNegative1)) mod powTwo63) <> 3552952533233593397 or
2733        ord(bigInteger(intExpr(aNegative2)) mod powTwo63) <> 5074619335926251242 or
2734        ord(bigInteger(intExpr(aNegative3)) mod powTwo63) <> 3745810425333604960 or
2735        ord(bigInteger(intExpr(aNegative4)) mod powTwo63) <> 2207119669289072373 then
2736      writeln(" ***** ord(bigInteger(number) mod 2_**63) does not work correct.");
2737      okay := FALSE;
2738    end if;
2739
2740    if  ord(bigInteger conv         aNegative1  mod powTwo63) <> 3552952533233593397 or
2741        ord(bigInteger conv         aNegative2  mod powTwo63) <> 5074619335926251242 or
2742        ord(bigInteger conv         aNegative3  mod powTwo63) <> 3745810425333604960 or
2743        ord(bigInteger conv         aNegative4  mod powTwo63) <> 2207119669289072373 or
2744        ord(bigInteger conv intExpr(aNegative1) mod powTwo63) <> 3552952533233593397 or
2745        ord(bigInteger conv intExpr(aNegative2) mod powTwo63) <> 5074619335926251242 or
2746        ord(bigInteger conv intExpr(aNegative3) mod powTwo63) <> 3745810425333604960 or
2747        ord(bigInteger conv intExpr(aNegative4) mod powTwo63) <> 2207119669289072373 then
2748      writeln(" ***** ord(bigInteger conv number mod 2_**63) does not work correct.");
2749      okay := FALSE;
2750    end if;
2751
2752    if  ord(           aBig1  mod powTwo60) <>   94188019413052469 or
2753        ord(           aBig2  mod powTwo60) <>  462933317498863338 or
2754        ord(           aBig3  mod powTwo60) <>  287045911513064032 or
2755        ord(           aBig4  mod powTwo60) <> 1054198164682225397 or
2756        ord(bigintExpr(aBig1) mod powTwo60) <>   94188019413052469 or
2757        ord(bigintExpr(aBig2) mod powTwo60) <>  462933317498863338 or
2758        ord(bigintExpr(aBig3) mod powTwo60) <>  287045911513064032 or
2759        ord(bigintExpr(aBig4) mod powTwo60) <> 1054198164682225397 then
2760      writeln(" ***** ord(aBigInt mod 2_**60) does not work correct.");
2761      okay := FALSE;
2762    end if;
2763
2764    if  ord(bigInteger(        aPositive1 ) mod powTwo60) <>   94188019413052469 or
2765        ord(bigInteger(        aPositive2 ) mod powTwo60) <>  462933317498863338 or
2766        ord(bigInteger(        aPositive3 ) mod powTwo60) <>  287045911513064032 or
2767        ord(bigInteger(        aPositive4 ) mod powTwo60) <> 1054198164682225397 or
2768        ord(bigInteger(intExpr(aPositive1)) mod powTwo60) <>   94188019413052469 or
2769        ord(bigInteger(intExpr(aPositive2)) mod powTwo60) <>  462933317498863338 or
2770        ord(bigInteger(intExpr(aPositive3)) mod powTwo60) <>  287045911513064032 or
2771        ord(bigInteger(intExpr(aPositive4)) mod powTwo60) <> 1054198164682225397 then
2772      writeln(" ***** ord(bigInteger(aPositive1) mod 2_**60) does not work correct.");
2773      okay := FALSE;
2774    end if;
2775
2776    if  ord(bigInteger(        aNegative1 ) mod powTwo60) <>   94188019413052469 or
2777        ord(bigInteger(        aNegative2 ) mod powTwo60) <>  462933317498863338 or
2778        ord(bigInteger(        aNegative3 ) mod powTwo60) <>  287045911513064032 or
2779        ord(bigInteger(        aNegative4 ) mod powTwo60) <> 1054198164682225397 or
2780        ord(bigInteger(intExpr(aNegative1)) mod powTwo60) <>   94188019413052469 or
2781        ord(bigInteger(intExpr(aNegative2)) mod powTwo60) <>  462933317498863338 or
2782        ord(bigInteger(intExpr(aNegative3)) mod powTwo60) <>  287045911513064032 or
2783        ord(bigInteger(intExpr(aNegative4)) mod powTwo60) <> 1054198164682225397 then
2784      writeln(" ***** ord(bigInteger(number) mod 2_**60) does not work correct.");
2785      okay := FALSE;
2786    end if;
2787
2788    if  ord(bigInteger conv         aNegative1  mod powTwo60) <>   94188019413052469 or
2789        ord(bigInteger conv         aNegative2  mod powTwo60) <>  462933317498863338 or
2790        ord(bigInteger conv         aNegative3  mod powTwo60) <>  287045911513064032 or
2791        ord(bigInteger conv         aNegative4  mod powTwo60) <> 1054198164682225397 or
2792        ord(bigInteger conv intExpr(aNegative1) mod powTwo60) <>   94188019413052469 or
2793        ord(bigInteger conv intExpr(aNegative2) mod powTwo60) <>  462933317498863338 or
2794        ord(bigInteger conv intExpr(aNegative3) mod powTwo60) <>  287045911513064032 or
2795        ord(bigInteger conv intExpr(aNegative4) mod powTwo60) <> 1054198164682225397 then
2796      writeln(" ***** ord(bigInteger conv number mod 2_**60) does not work correct.");
2797      okay := FALSE;
2798    end if;
2799
2800    if  ord((           aBig1  +            aBig2 ) mod powTwo63) <> 8627571869159844639 or
2801        ord((           aBig1  + bigintExpr(aBig2)) mod powTwo63) <> 8627571869159844639 or
2802        ord((bigintExpr(aBig1) +            aBig2 ) mod powTwo63) <> 8627571869159844639 or
2803        ord((bigintExpr(aBig1) + bigintExpr(aBig2)) mod powTwo63) <> 8627571869159844639 or
2804        ord((           aBig3  +            aBig4 ) mod powTwo63) <> 5952930094622677333 or
2805        ord((           aBig3  + bigintExpr(aBig4)) mod powTwo63) <> 5952930094622677333 or
2806        ord((bigintExpr(aBig3) +            aBig4 ) mod powTwo63) <> 5952930094622677333 or
2807        ord((bigintExpr(aBig3) + bigintExpr(aBig4)) mod powTwo63) <> 5952930094622677333 then
2808      writeln(" ***** ord((aBigInt1 + aBigInt2) mod 2_**63) does not work correct.");
2809      okay := FALSE;
2810    end if;
2811
2812    if  ord((bigInteger(        aPositive1 ) + bigInteger(        aPositive2 )) mod powTwo63) <> 8627571869159844639 or
2813        ord((bigInteger(        aPositive1 ) + bigInteger(intExpr(aPositive2))) mod powTwo63) <> 8627571869159844639 or
2814        ord((bigInteger(intExpr(aPositive1)) + bigInteger(        aPositive2 )) mod powTwo63) <> 8627571869159844639 or
2815        ord((bigInteger(intExpr(aPositive1)) + bigInteger(intExpr(aPositive2))) mod powTwo63) <> 8627571869159844639 or
2816        ord((bigInteger(        aPositive3 ) + bigInteger(        aPositive4 )) mod powTwo63) <> 5952930094622677333 or
2817        ord((bigInteger(        aPositive3 ) + bigInteger(intExpr(aPositive4))) mod powTwo63) <> 5952930094622677333 or
2818        ord((bigInteger(intExpr(aPositive3)) + bigInteger(        aPositive4 )) mod powTwo63) <> 5952930094622677333 or
2819        ord((bigInteger(intExpr(aPositive3)) + bigInteger(intExpr(aPositive4))) mod powTwo63) <> 5952930094622677333 then
2820      writeln(" ***** ord((bigInteger(aPositive1) + bigInteger(aPositive2) mod 2_**63) does not work correct.");
2821      okay := FALSE;
2822    end if;
2823
2824    if  ord((bigInteger(        aNegative1 ) + bigInteger(        aNegative2 )) mod powTwo63) <> 8627571869159844639 or
2825        ord((bigInteger(        aNegative1 ) + bigInteger(intExpr(aNegative2))) mod powTwo63) <> 8627571869159844639 or
2826        ord((bigInteger(intExpr(aNegative1)) + bigInteger(        aNegative2 )) mod powTwo63) <> 8627571869159844639 or
2827        ord((bigInteger(intExpr(aNegative1)) + bigInteger(intExpr(aNegative2))) mod powTwo63) <> 8627571869159844639 or
2828        ord((bigInteger(        aNegative3 ) + bigInteger(        aNegative4 )) mod powTwo63) <> 5952930094622677333 or
2829        ord((bigInteger(        aNegative3 ) + bigInteger(intExpr(aNegative4))) mod powTwo63) <> 5952930094622677333 or
2830        ord((bigInteger(intExpr(aNegative3)) + bigInteger(        aNegative4 )) mod powTwo63) <> 5952930094622677333 or
2831        ord((bigInteger(intExpr(aNegative3)) + bigInteger(intExpr(aNegative4))) mod powTwo63) <> 5952930094622677333 then
2832      writeln(" ***** ord((bigInteger(aNegative1) + bigInteger(aNegative2) mod 2_**63) does not work correct.");
2833      okay := FALSE;
2834    end if;
2835
2836    if  ord((bigInteger(        aNegative1 ) + bigInteger conv         aNegative2 ) mod powTwo63) <> 8627571869159844639 or
2837        ord((bigInteger(        aNegative1 ) + bigInteger conv intExpr(aNegative2)) mod powTwo63) <> 8627571869159844639 or
2838        ord((bigInteger(intExpr(aNegative1)) + bigInteger conv         aNegative2 ) mod powTwo63) <> 8627571869159844639 or
2839        ord((bigInteger(intExpr(aNegative1)) + bigInteger conv intExpr(aNegative2)) mod powTwo63) <> 8627571869159844639 or
2840        ord((bigInteger(        aNegative3 ) + bigInteger conv         aNegative4 ) mod powTwo63) <> 5952930094622677333 or
2841        ord((bigInteger(        aNegative3 ) + bigInteger conv intExpr(aNegative4)) mod powTwo63) <> 5952930094622677333 or
2842        ord((bigInteger(intExpr(aNegative3)) + bigInteger conv         aNegative4 ) mod powTwo63) <> 5952930094622677333 or
2843        ord((bigInteger(intExpr(aNegative3)) + bigInteger conv intExpr(aNegative4)) mod powTwo63) <> 5952930094622677333 then
2844      writeln(" ***** ord((bigInteger(aNegative1) + bigInteger conv aNegative2) mod 2_**63) does not work correct.");
2845      okay := FALSE;
2846    end if;
2847
2848    if  ord((bigInteger conv         aNegative1  + bigInteger(        aNegative2 )) mod powTwo63) <> 8627571869159844639 or
2849        ord((bigInteger conv         aNegative1  + bigInteger(intExpr(aNegative2))) mod powTwo63) <> 8627571869159844639 or
2850        ord((bigInteger conv intExpr(aNegative1) + bigInteger(        aNegative2 )) mod powTwo63) <> 8627571869159844639 or
2851        ord((bigInteger conv intExpr(aNegative1) + bigInteger(intExpr(aNegative2))) mod powTwo63) <> 8627571869159844639 or
2852        ord((bigInteger conv         aNegative3  + bigInteger(        aNegative4 )) mod powTwo63) <> 5952930094622677333 or
2853        ord((bigInteger conv         aNegative3  + bigInteger(intExpr(aNegative4))) mod powTwo63) <> 5952930094622677333 or
2854        ord((bigInteger conv intExpr(aNegative3) + bigInteger(        aNegative4 )) mod powTwo63) <> 5952930094622677333 or
2855        ord((bigInteger conv intExpr(aNegative3) + bigInteger(intExpr(aNegative4))) mod powTwo63) <> 5952930094622677333 then
2856      writeln(" ***** ord((bigInteger conv aNegative1 + bigInteger(aNegative2)) mod 2_**63) does not work correct.");
2857      okay := FALSE;
2858    end if;
2859
2860    if  ord((bigInteger conv         aNegative1  + bigInteger conv         aNegative2 ) mod powTwo63) <> 8627571869159844639 or
2861        ord((bigInteger conv         aNegative1  + bigInteger conv intExpr(aNegative2)) mod powTwo63) <> 8627571869159844639 or
2862        ord((bigInteger conv intExpr(aNegative1) + bigInteger conv         aNegative2 ) mod powTwo63) <> 8627571869159844639 or
2863        ord((bigInteger conv intExpr(aNegative1) + bigInteger conv intExpr(aNegative2)) mod powTwo63) <> 8627571869159844639 or
2864        ord((bigInteger conv         aNegative3  + bigInteger conv         aNegative4 ) mod powTwo63) <> 5952930094622677333 or
2865        ord((bigInteger conv         aNegative3  + bigInteger conv intExpr(aNegative4)) mod powTwo63) <> 5952930094622677333 or
2866        ord((bigInteger conv intExpr(aNegative3) + bigInteger conv         aNegative4 ) mod powTwo63) <> 5952930094622677333 or
2867        ord((bigInteger conv intExpr(aNegative3) + bigInteger conv intExpr(aNegative4)) mod powTwo63) <> 5952930094622677333 then
2868      writeln(" ***** ord((bigInteger conv aNegative1 + bigInteger conv aNegative2) mod 2_**63) does not work correct.");
2869      okay := FALSE;
2870    end if;
2871
2872    if  ord((           aBig1  +            aBig2 ) mod powTwo60) <> 557121336911915807 or
2873        ord((           aBig1  + bigintExpr(aBig2)) mod powTwo60) <> 557121336911915807 or
2874        ord((bigintExpr(aBig1) +            aBig2 ) mod powTwo60) <> 557121336911915807 or
2875        ord((bigintExpr(aBig1) + bigintExpr(aBig2)) mod powTwo60) <> 557121336911915807 or
2876        ord((           aBig3  +            aBig4 ) mod powTwo60) <> 188322571588442453 or
2877        ord((           aBig3  + bigintExpr(aBig4)) mod powTwo60) <> 188322571588442453 or
2878        ord((bigintExpr(aBig3) +            aBig4 ) mod powTwo60) <> 188322571588442453 or
2879        ord((bigintExpr(aBig3) + bigintExpr(aBig4)) mod powTwo60) <> 188322571588442453 then
2880      writeln(" ***** ord((aBigInt1 + aBigInt2) mod 2_**60) does not work correct.");
2881      okay := FALSE;
2882    end if;
2883
2884    if  ord((bigInteger(        aPositive1 ) + bigInteger(        aPositive2 )) mod powTwo60) <> 557121336911915807 or
2885        ord((bigInteger(        aPositive1 ) + bigInteger(intExpr(aPositive2))) mod powTwo60) <> 557121336911915807 or
2886        ord((bigInteger(intExpr(aPositive1)) + bigInteger(        aPositive2 )) mod powTwo60) <> 557121336911915807 or
2887        ord((bigInteger(intExpr(aPositive1)) + bigInteger(intExpr(aPositive2))) mod powTwo60) <> 557121336911915807 or
2888        ord((bigInteger(        aPositive3 ) + bigInteger(        aPositive4 )) mod powTwo60) <> 188322571588442453 or
2889        ord((bigInteger(        aPositive3 ) + bigInteger(intExpr(aPositive4))) mod powTwo60) <> 188322571588442453 or
2890        ord((bigInteger(intExpr(aPositive3)) + bigInteger(        aPositive4 )) mod powTwo60) <> 188322571588442453 or
2891        ord((bigInteger(intExpr(aPositive3)) + bigInteger(intExpr(aPositive4))) mod powTwo60) <> 188322571588442453 then
2892      writeln(" ***** ord((bigInteger(aPositive1) + bigInteger(aPositive2) mod 2_**60) does not work correct.");
2893      okay := FALSE;
2894    end if;
2895
2896    if  ord((bigInteger(        aNegative1 ) + bigInteger(        aNegative2 )) mod powTwo60) <> 557121336911915807 or
2897        ord((bigInteger(        aNegative1 ) + bigInteger(intExpr(aNegative2))) mod powTwo60) <> 557121336911915807 or
2898        ord((bigInteger(intExpr(aNegative1)) + bigInteger(        aNegative2 )) mod powTwo60) <> 557121336911915807 or
2899        ord((bigInteger(intExpr(aNegative1)) + bigInteger(intExpr(aNegative2))) mod powTwo60) <> 557121336911915807 or
2900        ord((bigInteger(        aNegative3 ) + bigInteger(        aNegative4 )) mod powTwo60) <> 188322571588442453 or
2901        ord((bigInteger(        aNegative3 ) + bigInteger(intExpr(aNegative4))) mod powTwo60) <> 188322571588442453 or
2902        ord((bigInteger(intExpr(aNegative3)) + bigInteger(        aNegative4 )) mod powTwo60) <> 188322571588442453 or
2903        ord((bigInteger(intExpr(aNegative3)) + bigInteger(intExpr(aNegative4))) mod powTwo60) <> 188322571588442453 then
2904      writeln(" ***** ord((bigInteger(aNegative1) + bigInteger(aNegative2)) mod 2_**60) does not work correct.");
2905      okay := FALSE;
2906    end if;
2907
2908    if  ord((bigInteger(        aNegative1 ) + bigInteger conv         aNegative2 ) mod powTwo60) <> 557121336911915807 or
2909        ord((bigInteger(        aNegative1 ) + bigInteger conv intExpr(aNegative2)) mod powTwo60) <> 557121336911915807 or
2910        ord((bigInteger(intExpr(aNegative1)) + bigInteger conv         aNegative2 ) mod powTwo60) <> 557121336911915807 or
2911        ord((bigInteger(intExpr(aNegative1)) + bigInteger conv intExpr(aNegative2)) mod powTwo60) <> 557121336911915807 or
2912        ord((bigInteger(        aNegative3 ) + bigInteger conv         aNegative4 ) mod powTwo60) <> 188322571588442453 or
2913        ord((bigInteger(        aNegative3 ) + bigInteger conv intExpr(aNegative4)) mod powTwo60) <> 188322571588442453 or
2914        ord((bigInteger(intExpr(aNegative3)) + bigInteger conv         aNegative4 ) mod powTwo60) <> 188322571588442453 or
2915        ord((bigInteger(intExpr(aNegative3)) + bigInteger conv intExpr(aNegative4)) mod powTwo60) <> 188322571588442453 then
2916      writeln(" ***** ord((bigInteger(aNegative1) + bigInteger conv aNegative2) mod 2_**60) does not work correct.");
2917      okay := FALSE;
2918    end if;
2919
2920    if  ord((bigInteger conv         aNegative1  + bigInteger(        aNegative2 )) mod powTwo60) <> 557121336911915807 or
2921        ord((bigInteger conv         aNegative1  + bigInteger(intExpr(aNegative2))) mod powTwo60) <> 557121336911915807 or
2922        ord((bigInteger conv intExpr(aNegative1) + bigInteger(        aNegative2 )) mod powTwo60) <> 557121336911915807 or
2923        ord((bigInteger conv intExpr(aNegative1) + bigInteger(intExpr(aNegative2))) mod powTwo60) <> 557121336911915807 or
2924        ord((bigInteger conv         aNegative3  + bigInteger(        aNegative4 )) mod powTwo60) <> 188322571588442453 or
2925        ord((bigInteger conv         aNegative3  + bigInteger(intExpr(aNegative4))) mod powTwo60) <> 188322571588442453 or
2926        ord((bigInteger conv intExpr(aNegative3) + bigInteger(        aNegative4 )) mod powTwo60) <> 188322571588442453 or
2927        ord((bigInteger conv intExpr(aNegative3) + bigInteger(intExpr(aNegative4))) mod powTwo60) <> 188322571588442453 then
2928      writeln(" ***** ord((bigInteger conv aNegative1 + bigInteger(aNegative2)) mod 2_**60) does not work correct.");
2929      okay := FALSE;
2930    end if;
2931
2932    if  ord((bigInteger conv         aNegative1  + bigInteger conv         aNegative2 ) mod powTwo60) <> 557121336911915807 or
2933        ord((bigInteger conv         aNegative1  + bigInteger conv intExpr(aNegative2)) mod powTwo60) <> 557121336911915807 or
2934        ord((bigInteger conv intExpr(aNegative1) + bigInteger conv         aNegative2 ) mod powTwo60) <> 557121336911915807 or
2935        ord((bigInteger conv intExpr(aNegative1) + bigInteger conv intExpr(aNegative2)) mod powTwo60) <> 557121336911915807 or
2936        ord((bigInteger conv         aNegative3  + bigInteger conv         aNegative4 ) mod powTwo60) <> 188322571588442453 or
2937        ord((bigInteger conv         aNegative3  + bigInteger conv intExpr(aNegative4)) mod powTwo60) <> 188322571588442453 or
2938        ord((bigInteger conv intExpr(aNegative3) + bigInteger conv         aNegative4 ) mod powTwo60) <> 188322571588442453 or
2939        ord((bigInteger conv intExpr(aNegative3) + bigInteger conv intExpr(aNegative4)) mod powTwo60) <> 188322571588442453 then
2940      writeln(" ***** ord((bigInteger conv aNegative1 + bigInteger conv aNegative2) mod 2_**60) does not work correct.");
2941      okay := FALSE;
2942    end if;
2943
2944    if okay then
2945      writeln("ord(aBigInteger mod 2_**y) works correct.");
2946    end if;
2947  end func;
2948
2949
2950const proc: chkConv is func
2951  local
2952    var boolean: okay is TRUE;
2953  begin
2954    if  bigInteger(         0) <>          0_ or
2955        bigInteger(         1) <>          1_ or
2956        bigInteger(         2) <>          2_ or
2957        bigInteger(         8) <>          8_ or
2958        bigInteger(         9) <>          9_ or
2959        bigInteger(        10) <>         10_ or
2960        bigInteger(        11) <>         11_ or
2961        bigInteger(        12) <>         12_ or
2962        bigInteger(        98) <>         98_ or
2963        bigInteger(        99) <>         99_ or
2964        bigInteger(       100) <>        100_ or
2965        bigInteger(       101) <>        101_ or
2966        bigInteger(       102) <>        102_ or
2967        bigInteger(       126) <>        126_ or
2968        bigInteger(       127) <>        127_ or
2969        bigInteger(       128) <>        128_ or
2970        bigInteger(       129) <>        129_ or
2971        bigInteger(       130) <>        130_ or
2972        bigInteger(       254) <>        254_ or
2973        bigInteger(       255) <>        255_ or
2974        bigInteger(       256) <>        256_ or
2975        bigInteger(       257) <>        257_ or
2976        bigInteger(       258) <>        258_ or
2977        bigInteger(       998) <>        998_ or
2978        bigInteger(       999) <>        999_ or
2979        bigInteger(      1000) <>       1000_ or
2980        bigInteger(      1001) <>       1001_ or
2981        bigInteger(      1002) <>       1002_ or
2982        bigInteger(      9998) <>       9998_ or
2983        bigInteger(      9999) <>       9999_ or
2984        bigInteger(     10000) <>      10000_ or
2985        bigInteger(     10001) <>      10001_ or
2986        bigInteger(     10002) <>      10002_ or
2987        bigInteger(     32766) <>      32766_ or
2988        bigInteger(     32767) <>      32767_ or
2989        bigInteger(     32768) <>      32768_ or
2990        bigInteger(     32769) <>      32769_ or
2991        bigInteger(     32770) <>      32770_ or
2992        bigInteger(     65534) <>      65534_ or
2993        bigInteger(     65535) <>      65535_ or
2994        bigInteger(     65536) <>      65536_ or
2995        bigInteger(     65537) <>      65537_ or
2996        bigInteger(     65538) <>      65538_ or
2997        bigInteger(     99998) <>      99998_ or
2998        bigInteger(     99999) <>      99999_ or
2999        bigInteger(    100000) <>     100000_ or
3000        bigInteger(    100001) <>     100001_ or
3001        bigInteger(    100002) <>     100002_ or
3002        bigInteger(    999998) <>     999998_ or
3003        bigInteger(    999999) <>     999999_ or
3004        bigInteger(   1000000) <>    1000000_ or
3005        bigInteger(   1000001) <>    1000001_ or
3006        bigInteger(   1000002) <>    1000002_ or
3007        bigInteger(   8388606) <>    8388606_ or
3008        bigInteger(   8388607) <>    8388607_ or
3009        bigInteger(   8388608) <>    8388608_ or
3010        bigInteger(   8388609) <>    8388609_ or
3011        bigInteger(   8388610) <>    8388610_ or
3012        bigInteger(   9999998) <>    9999998_ or
3013        bigInteger(   9999999) <>    9999999_ or
3014        bigInteger(  10000000) <>   10000000_ or
3015        bigInteger(  10000001) <>   10000001_ or
3016        bigInteger(  10000002) <>   10000002_ or
3017        bigInteger(  16777214) <>   16777214_ or
3018        bigInteger(  16777215) <>   16777215_ or
3019        bigInteger(  16777216) <>   16777216_ or
3020        bigInteger(  16777217) <>   16777217_ or
3021        bigInteger(  16777218) <>   16777218_ or
3022        bigInteger(  99999998) <>   99999998_ or
3023        bigInteger(  99999999) <>   99999999_ or
3024        bigInteger( 100000000) <>  100000000_ or
3025        bigInteger( 100000001) <>  100000001_ or
3026        bigInteger( 100000002) <>  100000002_ or
3027        bigInteger( 999999998) <>  999999998_ or
3028        bigInteger( 999999999) <>  999999999_ or
3029        bigInteger(1000000000) <> 1000000000_ or
3030        bigInteger(1000000001) <> 1000000001_ or
3031        bigInteger(1000000002) <> 1000000002_ or
3032        bigInteger(2147483646) <> 2147483646_ or
3033        bigInteger(2147483647) <> 2147483647_ or
3034        bigInteger(1234567890123456) <> 1234567890123456_ or
3035        bigInteger(9223372036854775806) <> 9223372036854775806_ or
3036        bigInteger(9223372036854775807) <> 9223372036854775807_ then
3037      writeln("Conversion of a positive integer to bigInteger does not work correct.");
3038      okay := FALSE;
3039    end if;
3040
3041    if  bigInteger(         -1) <>          -1_ or
3042        bigInteger(         -2) <>          -2_ or
3043        bigInteger(         -8) <>          -8_ or
3044        bigInteger(         -9) <>          -9_ or
3045        bigInteger(        -10) <>         -10_ or
3046        bigInteger(        -11) <>         -11_ or
3047        bigInteger(        -12) <>         -12_ or
3048        bigInteger(        -98) <>         -98_ or
3049        bigInteger(        -99) <>         -99_ or
3050        bigInteger(       -100) <>        -100_ or
3051        bigInteger(       -101) <>        -101_ or
3052        bigInteger(       -102) <>        -102_ or
3053        bigInteger(       -126) <>        -126_ or
3054        bigInteger(       -127) <>        -127_ or
3055        bigInteger(       -128) <>        -128_ or
3056        bigInteger(       -129) <>        -129_ or
3057        bigInteger(       -130) <>        -130_ or
3058        bigInteger(       -254) <>        -254_ or
3059        bigInteger(       -255) <>        -255_ or
3060        bigInteger(       -256) <>        -256_ or
3061        bigInteger(       -257) <>        -257_ or
3062        bigInteger(       -258) <>        -258_ or
3063        bigInteger(       -998) <>        -998_ or
3064        bigInteger(       -999) <>        -999_ or
3065        bigInteger(      -1000) <>       -1000_ or
3066        bigInteger(      -1001) <>       -1001_ or
3067        bigInteger(      -1002) <>       -1002_ or
3068        bigInteger(      -9998) <>       -9998_ or
3069        bigInteger(      -9999) <>       -9999_ or
3070        bigInteger(     -10000) <>      -10000_ or
3071        bigInteger(     -10001) <>      -10001_ or
3072        bigInteger(     -10002) <>      -10002_ or
3073        bigInteger(     -32766) <>      -32766_ or
3074        bigInteger(     -32767) <>      -32767_ or
3075        bigInteger(     -32768) <>      -32768_ or
3076        bigInteger(     -32769) <>      -32769_ or
3077        bigInteger(     -32770) <>      -32770_ or
3078        bigInteger(     -65534) <>      -65534_ or
3079        bigInteger(     -65535) <>      -65535_ or
3080        bigInteger(     -65536) <>      -65536_ or
3081        bigInteger(     -65537) <>      -65537_ or
3082        bigInteger(     -65538) <>      -65538_ or
3083        bigInteger(     -99998) <>      -99998_ or
3084        bigInteger(     -99999) <>      -99999_ or
3085        bigInteger(    -100000) <>     -100000_ or
3086        bigInteger(    -100001) <>     -100001_ or
3087        bigInteger(    -100002) <>     -100002_ or
3088        bigInteger(    -999998) <>     -999998_ or
3089        bigInteger(    -999999) <>     -999999_ or
3090        bigInteger(   -1000000) <>    -1000000_ or
3091        bigInteger(   -1000001) <>    -1000001_ or
3092        bigInteger(   -1000002) <>    -1000002_ or
3093        bigInteger(   -8388606) <>    -8388606_ or
3094        bigInteger(   -8388607) <>    -8388607_ or
3095        bigInteger(   -8388608) <>    -8388608_ or
3096        bigInteger(   -8388609) <>    -8388609_ or
3097        bigInteger(   -8388610) <>    -8388610_ or
3098        bigInteger(   -9999998) <>    -9999998_ or
3099        bigInteger(   -9999999) <>    -9999999_ or
3100        bigInteger(  -10000000) <>   -10000000_ or
3101        bigInteger(  -10000001) <>   -10000001_ or
3102        bigInteger(  -10000002) <>   -10000002_ or
3103        bigInteger(  -16777214) <>   -16777214_ or
3104        bigInteger(  -16777215) <>   -16777215_ or
3105        bigInteger(  -16777216) <>   -16777216_ or
3106        bigInteger(  -16777217) <>   -16777217_ or
3107        bigInteger(  -16777218) <>   -16777218_ or
3108        bigInteger(  -99999998) <>   -99999998_ or
3109        bigInteger(  -99999999) <>   -99999999_ or
3110        bigInteger( -100000000) <>  -100000000_ or
3111        bigInteger( -100000001) <>  -100000001_ or
3112        bigInteger( -100000002) <>  -100000002_ or
3113        bigInteger( -999999998) <>  -999999998_ or
3114        bigInteger( -999999999) <>  -999999999_ or
3115        bigInteger(-1000000000) <> -1000000000_ or
3116        bigInteger(-1000000001) <> -1000000001_ or
3117        bigInteger(-1000000002) <> -1000000002_ or
3118        bigInteger(-2147483646) <> -2147483646_ or
3119        bigInteger(-2147483647) <> -2147483647_ or
3120        bigInteger(-2147483648) <> -2147483648_ or
3121        bigInteger(-1234567890123456) <> -1234567890123456_ or
3122        bigInteger(-9223372036854775807) <> -9223372036854775807_ or
3123        bigInteger(pred(-9223372036854775807)) <> -9223372036854775808_ then
3124      writeln("Conversion of a negative integer to bigInteger does not work correct.");
3125      okay := FALSE;
3126    end if;
3127
3128    if  bigInteger conv          0 <>          0_ or
3129        bigInteger conv          1 <>          1_ or
3130        bigInteger conv          2 <>          2_ or
3131        bigInteger conv          8 <>          8_ or
3132        bigInteger conv          9 <>          9_ or
3133        bigInteger conv         10 <>         10_ or
3134        bigInteger conv         11 <>         11_ or
3135        bigInteger conv         12 <>         12_ or
3136        bigInteger conv         98 <>         98_ or
3137        bigInteger conv         99 <>         99_ or
3138        bigInteger conv        100 <>        100_ or
3139        bigInteger conv        101 <>        101_ or
3140        bigInteger conv        102 <>        102_ or
3141        bigInteger conv        126 <>        126_ or
3142        bigInteger conv        127 <>        127_ or
3143        bigInteger conv        128 <>        128_ or
3144        bigInteger conv        129 <>        129_ or
3145        bigInteger conv        130 <>        130_ or
3146        bigInteger conv        254 <>        254_ or
3147        bigInteger conv        255 <>        255_ or
3148        bigInteger conv        256 <>        256_ or
3149        bigInteger conv        257 <>        257_ or
3150        bigInteger conv        258 <>        258_ or
3151        bigInteger conv        998 <>        998_ or
3152        bigInteger conv        999 <>        999_ or
3153        bigInteger conv       1000 <>       1000_ or
3154        bigInteger conv       1001 <>       1001_ or
3155        bigInteger conv       1002 <>       1002_ or
3156        bigInteger conv       9998 <>       9998_ or
3157        bigInteger conv       9999 <>       9999_ or
3158        bigInteger conv      10000 <>      10000_ or
3159        bigInteger conv      10001 <>      10001_ or
3160        bigInteger conv      10002 <>      10002_ or
3161        bigInteger conv      32766 <>      32766_ or
3162        bigInteger conv      32767 <>      32767_ or
3163        bigInteger conv      32768 <>      32768_ or
3164        bigInteger conv      32769 <>      32769_ or
3165        bigInteger conv      32770 <>      32770_ or
3166        bigInteger conv      65534 <>      65534_ or
3167        bigInteger conv      65535 <>      65535_ or
3168        bigInteger conv      65536 <>      65536_ or
3169        bigInteger conv      65537 <>      65537_ or
3170        bigInteger conv      65538 <>      65538_ or
3171        bigInteger conv      99998 <>      99998_ or
3172        bigInteger conv      99999 <>      99999_ or
3173        bigInteger conv     100000 <>     100000_ or
3174        bigInteger conv     100001 <>     100001_ or
3175        bigInteger conv     100002 <>     100002_ or
3176        bigInteger conv     999998 <>     999998_ or
3177        bigInteger conv     999999 <>     999999_ or
3178        bigInteger conv    1000000 <>    1000000_ or
3179        bigInteger conv    1000001 <>    1000001_ or
3180        bigInteger conv    1000002 <>    1000002_ or
3181        bigInteger conv    8388606 <>    8388606_ or
3182        bigInteger conv    8388607 <>    8388607_ or
3183        bigInteger conv    8388608 <>    8388608_ or
3184        bigInteger conv    8388609 <>    8388609_ or
3185        bigInteger conv    8388610 <>    8388610_ or
3186        bigInteger conv    9999998 <>    9999998_ or
3187        bigInteger conv    9999999 <>    9999999_ or
3188        bigInteger conv   10000000 <>   10000000_ or
3189        bigInteger conv   10000001 <>   10000001_ or
3190        bigInteger conv   10000002 <>   10000002_ or
3191        bigInteger conv   16777214 <>   16777214_ or
3192        bigInteger conv   16777215 <>   16777215_ or
3193        bigInteger conv   16777216 <>   16777216_ or
3194        bigInteger conv   16777217 <>   16777217_ or
3195        bigInteger conv   16777218 <>   16777218_ or
3196        bigInteger conv   99999998 <>   99999998_ or
3197        bigInteger conv   99999999 <>   99999999_ or
3198        bigInteger conv  100000000 <>  100000000_ or
3199        bigInteger conv  100000001 <>  100000001_ or
3200        bigInteger conv  100000002 <>  100000002_ or
3201        bigInteger conv  999999998 <>  999999998_ or
3202        bigInteger conv  999999999 <>  999999999_ or
3203        bigInteger conv 1000000000 <> 1000000000_ or
3204        bigInteger conv 1000000001 <> 1000000001_ or
3205        bigInteger conv 1000000002 <> 1000000002_ or
3206        bigInteger conv 2147483646 <> 2147483646_ or
3207        bigInteger conv 2147483647 <> 2147483647_ or
3208        bigInteger conv 1234567890123456 <> 1234567890123456_ or
3209        bigInteger conv 9223372036854775806 <> 9223372036854775806_ or
3210        bigInteger conv 9223372036854775807 <> 9223372036854775807_ then
3211      writeln("Conversion of a positive integer to bigInteger does not work correct.");
3212      okay := FALSE;
3213    end if;
3214
3215    if  bigInteger conv (         -1) <>          -1_ or
3216        bigInteger conv (         -2) <>          -2_ or
3217        bigInteger conv (         -8) <>          -8_ or
3218        bigInteger conv (         -9) <>          -9_ or
3219        bigInteger conv (        -10) <>         -10_ or
3220        bigInteger conv (        -11) <>         -11_ or
3221        bigInteger conv (        -12) <>         -12_ or
3222        bigInteger conv (        -98) <>         -98_ or
3223        bigInteger conv (        -99) <>         -99_ or
3224        bigInteger conv (       -100) <>        -100_ or
3225        bigInteger conv (       -101) <>        -101_ or
3226        bigInteger conv (       -102) <>        -102_ or
3227        bigInteger conv (       -126) <>        -126_ or
3228        bigInteger conv (       -127) <>        -127_ or
3229        bigInteger conv (       -128) <>        -128_ or
3230        bigInteger conv (       -129) <>        -129_ or
3231        bigInteger conv (       -130) <>        -130_ or
3232        bigInteger conv (       -254) <>        -254_ or
3233        bigInteger conv (       -255) <>        -255_ or
3234        bigInteger conv (       -256) <>        -256_ or
3235        bigInteger conv (       -257) <>        -257_ or
3236        bigInteger conv (       -258) <>        -258_ or
3237        bigInteger conv (       -998) <>        -998_ or
3238        bigInteger conv (       -999) <>        -999_ or
3239        bigInteger conv (      -1000) <>       -1000_ or
3240        bigInteger conv (      -1001) <>       -1001_ or
3241        bigInteger conv (      -1002) <>       -1002_ or
3242        bigInteger conv (      -9998) <>       -9998_ or
3243        bigInteger conv (      -9999) <>       -9999_ or
3244        bigInteger conv (     -10000) <>      -10000_ or
3245        bigInteger conv (     -10001) <>      -10001_ or
3246        bigInteger conv (     -10002) <>      -10002_ or
3247        bigInteger conv (     -32766) <>      -32766_ or
3248        bigInteger conv (     -32767) <>      -32767_ or
3249        bigInteger conv (     -32768) <>      -32768_ or
3250        bigInteger conv (     -32769) <>      -32769_ or
3251        bigInteger conv (     -32770) <>      -32770_ or
3252        bigInteger conv (     -65534) <>      -65534_ or
3253        bigInteger conv (     -65535) <>      -65535_ or
3254        bigInteger conv (     -65536) <>      -65536_ or
3255        bigInteger conv (     -65537) <>      -65537_ or
3256        bigInteger conv (     -65538) <>      -65538_ or
3257        bigInteger conv (     -99998) <>      -99998_ or
3258        bigInteger conv (     -99999) <>      -99999_ or
3259        bigInteger conv (    -100000) <>     -100000_ or
3260        bigInteger conv (    -100001) <>     -100001_ or
3261        bigInteger conv (    -100002) <>     -100002_ or
3262        bigInteger conv (    -999998) <>     -999998_ or
3263        bigInteger conv (    -999999) <>     -999999_ or
3264        bigInteger conv (   -1000000) <>    -1000000_ or
3265        bigInteger conv (   -1000001) <>    -1000001_ or
3266        bigInteger conv (   -1000002) <>    -1000002_ or
3267        bigInteger conv (   -8388606) <>    -8388606_ or
3268        bigInteger conv (   -8388607) <>    -8388607_ or
3269        bigInteger conv (   -8388608) <>    -8388608_ or
3270        bigInteger conv (   -8388609) <>    -8388609_ or
3271        bigInteger conv (   -8388610) <>    -8388610_ or
3272        bigInteger conv (   -9999998) <>    -9999998_ or
3273        bigInteger conv (   -9999999) <>    -9999999_ or
3274        bigInteger conv (  -10000000) <>   -10000000_ or
3275        bigInteger conv (  -10000001) <>   -10000001_ or
3276        bigInteger conv (  -10000002) <>   -10000002_ or
3277        bigInteger conv (  -16777214) <>   -16777214_ or
3278        bigInteger conv (  -16777215) <>   -16777215_ or
3279        bigInteger conv (  -16777216) <>   -16777216_ or
3280        bigInteger conv (  -16777217) <>   -16777217_ or
3281        bigInteger conv (  -16777218) <>   -16777218_ or
3282        bigInteger conv (  -99999998) <>   -99999998_ or
3283        bigInteger conv (  -99999999) <>   -99999999_ or
3284        bigInteger conv ( -100000000) <>  -100000000_ or
3285        bigInteger conv ( -100000001) <>  -100000001_ or
3286        bigInteger conv ( -100000002) <>  -100000002_ or
3287        bigInteger conv ( -999999998) <>  -999999998_ or
3288        bigInteger conv ( -999999999) <>  -999999999_ or
3289        bigInteger conv (-1000000000) <> -1000000000_ or
3290        bigInteger conv (-1000000001) <> -1000000001_ or
3291        bigInteger conv (-1000000002) <> -1000000002_ or
3292        bigInteger conv (-2147483646) <> -2147483646_ or
3293        bigInteger conv (-2147483647) <> -2147483647_ or
3294        bigInteger conv (-2147483648) <> -2147483648_ or
3295        bigInteger conv (-1234567890123456) <> -1234567890123456_ or
3296        bigInteger conv (-9223372036854775807) <> -9223372036854775807_ or
3297        bigInteger conv pred(-9223372036854775807) <> -9223372036854775808_ then
3298      writeln("Conversion of a negative integer to bigInteger does not work correct.");
3299      okay := FALSE;
3300    end if;
3301
3302    if okay then
3303      writeln("Conversion of integer to bigInteger works correct.");
3304    else
3305      writeln(" ***** Conversion of integer to bigInteger does not work correct.");
3306      writeln;
3307    end if;
3308  end func;
3309
3310
3311const proc: chkBytesBe is func
3312  local
3313    var boolean: okay is TRUE;
3314  begin
3315    if  bytes(-1208925819614629174706177_, SIGNED, BE) <> "\254;\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3316        bytes(-1208925819614629174706176_, SIGNED, BE) <> "\255;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3317        bytes( -604462909807314587353089_, SIGNED, BE) <> "\255;\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3318        bytes( -604462909807314587353088_, SIGNED, BE) <>      "\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3319        bytes(   -4722366482869645213697_, SIGNED, BE) <>      "\254;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3320        bytes(   -4722366482869645213696_, SIGNED, BE) <>      "\255;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3321        bytes(   -2361183241434822606849_, SIGNED, BE) <>      "\255;\127;\255;\255;\255;\255;\255;\255;\255;\255;" or
3322        bytes(   -2361183241434822606848_, SIGNED, BE) <>           "\128;\000;\000;\000;\000;\000;\000;\000;\000;" or
3323        bytes(     -18446744073709551617_, SIGNED, BE) <>           "\254;\255;\255;\255;\255;\255;\255;\255;\255;" or
3324        bytes(     -18446744073709551616_, SIGNED, BE) <>           "\255;\000;\000;\000;\000;\000;\000;\000;\000;" or
3325        bytes(      -9223372036854775809_, SIGNED, BE) <>           "\255;\127;\255;\255;\255;\255;\255;\255;\255;" or
3326        bytes(      -9223372036854775808_, SIGNED, BE) <>                "\128;\000;\000;\000;\000;\000;\000;\000;" or
3327        bytes(        -72057594037927937_, SIGNED, BE) <>                "\254;\255;\255;\255;\255;\255;\255;\255;" or
3328        bytes(        -72057594037927936_, SIGNED, BE) <>                "\255;\000;\000;\000;\000;\000;\000;\000;" or
3329        bytes(        -36028797018963969_, SIGNED, BE) <>                "\255;\127;\255;\255;\255;\255;\255;\255;" or
3330        bytes(        -36028797018963968_, SIGNED, BE) <>                     "\128;\000;\000;\000;\000;\000;\000;" or
3331        bytes(          -281474976710657_, SIGNED, BE) <>                     "\254;\255;\255;\255;\255;\255;\255;" or
3332        bytes(          -281474976710656_, SIGNED, BE) <>                     "\255;\000;\000;\000;\000;\000;\000;" or
3333        bytes(          -140737488355329_, SIGNED, BE) <>                     "\255;\127;\255;\255;\255;\255;\255;" or
3334        bytes(          -140737488355328_, SIGNED, BE) <>                          "\128;\000;\000;\000;\000;\000;" or
3335        bytes(            -1099511627777_, SIGNED, BE) <>                          "\254;\255;\255;\255;\255;\255;" or
3336        bytes(            -1099511627776_, SIGNED, BE) <>                          "\255;\000;\000;\000;\000;\000;" or
3337        bytes(             -549755813889_, SIGNED, BE) <>                          "\255;\127;\255;\255;\255;\255;" or
3338        bytes(             -549755813888_, SIGNED, BE) <>                               "\128;\000;\000;\000;\000;" or
3339        bytes(               -4294967297_, SIGNED, BE) <>                               "\254;\255;\255;\255;\255;" or
3340        bytes(               -4294967296_, SIGNED, BE) <>                               "\255;\000;\000;\000;\000;" or
3341        bytes(               -2147483649_, SIGNED, BE) <>                               "\255;\127;\255;\255;\255;" or
3342        bytes(               -2147483648_, SIGNED, BE) <>                                    "\128;\000;\000;\000;" or
3343        bytes(                 -16777217_, SIGNED, BE) <>                                    "\254;\255;\255;\255;" or
3344        bytes(                 -16777216_, SIGNED, BE) <>                                    "\255;\000;\000;\000;" or
3345        bytes(                  -8388609_, SIGNED, BE) <>                                    "\255;\127;\255;\255;" or
3346        bytes(                  -8388608_, SIGNED, BE) <>                                         "\128;\000;\000;" or
3347        bytes(                    -65537_, SIGNED, BE) <>                                         "\254;\255;\255;" or
3348        bytes(                    -65536_, SIGNED, BE) <>                                         "\255;\000;\000;" or
3349        bytes(                    -65281_, SIGNED, BE) <>                                         "\255;\000;\255;" or
3350        bytes(                    -65280_, SIGNED, BE) <>                                         "\255;\001;\000;" or
3351        bytes(                    -65025_, SIGNED, BE) <>                                         "\255;\001;\255;" or
3352        bytes(                    -65024_, SIGNED, BE) <>                                         "\255;\002;\000;" or
3353        bytes(                    -32770_, SIGNED, BE) <>                                         "\255;\127;\254;" or
3354        bytes(                    -32769_, SIGNED, BE) <>                                         "\255;\127;\255;" or
3355        bytes(                    -32768_, SIGNED, BE) <>                                              "\128;\000;" or
3356        bytes(                    -32767_, SIGNED, BE) <>                                              "\128;\001;" or
3357        bytes(                    -32514_, SIGNED, BE) <>                                              "\128;\254;" or
3358        bytes(                    -32513_, SIGNED, BE) <>                                              "\128;\255;" or
3359        bytes(                    -32512_, SIGNED, BE) <>                                              "\129;\000;" or
3360        bytes(                    -32511_, SIGNED, BE) <>                                              "\129;\001;" or
3361        bytes(                    -32258_, SIGNED, BE) <>                                              "\129;\254;" or
3362        bytes(                    -32257_, SIGNED, BE) <>                                              "\129;\255;" or
3363        bytes(                    -32256_, SIGNED, BE) <>                                              "\130;\000;" or
3364        bytes(                    -32255_, SIGNED, BE) <>                                              "\130;\001;" or
3365        bytes(                      -514_, SIGNED, BE) <>                                              "\253;\254;" or
3366        bytes(                      -513_, SIGNED, BE) <>                                              "\253;\255;" or
3367        bytes(                      -512_, SIGNED, BE) <>                                              "\254;\000;" or
3368        bytes(                      -511_, SIGNED, BE) <>                                              "\254;\001;" or
3369        bytes(                      -258_, SIGNED, BE) <>                                              "\254;\254;" or
3370        bytes(                      -257_, SIGNED, BE) <>                                              "\254;\255;" or
3371        bytes(                      -256_, SIGNED, BE) <>                                              "\255;\000;" or
3372        bytes(                      -255_, SIGNED, BE) <>                                              "\255;\001;" or
3373        bytes(                      -130_, SIGNED, BE) <>                                              "\255;\126;" or
3374        bytes(                      -129_, SIGNED, BE) <>                                              "\255;\127;" or
3375        bytes(                      -128_, SIGNED, BE) <>                                                   "\128;" or
3376        bytes(                      -127_, SIGNED, BE) <>                                                   "\129;" or
3377        bytes(                        -2_, SIGNED, BE) <>                                                   "\254;" or
3378        bytes(                        -1_, SIGNED, BE) <>                                                   "\255;" or
3379        bytes(                         0_, SIGNED, BE) <>                                                   "\000;" or
3380        bytes(                         1_, SIGNED, BE) <>                                                   "\001;" or
3381        bytes(                         2_, SIGNED, BE) <>                                                   "\002;" or
3382        bytes(                       126_, SIGNED, BE) <>                                                   "\126;" or
3383        bytes(                       127_, SIGNED, BE) <>                                                   "\127;" or
3384        bytes(                       128_, SIGNED, BE) <>                                              "\000;\128;" or
3385        bytes(                       129_, SIGNED, BE) <>                                              "\000;\129;" or
3386        bytes(                       254_, SIGNED, BE) <>                                              "\000;\254;" or
3387        bytes(                       255_, SIGNED, BE) <>                                              "\000;\255;" or
3388        bytes(                       256_, SIGNED, BE) <>                                              "\001;\000;" or
3389        bytes(                       257_, SIGNED, BE) <>                                              "\001;\001;" or
3390        bytes(                       510_, SIGNED, BE) <>                                              "\001;\254;" or
3391        bytes(                       511_, SIGNED, BE) <>                                              "\001;\255;" or
3392        bytes(                       512_, SIGNED, BE) <>                                              "\002;\000;" or
3393        bytes(                       513_, SIGNED, BE) <>                                              "\002;\001;" or
3394        bytes(                     32254_, SIGNED, BE) <>                                              "\125;\254;" or
3395        bytes(                     32255_, SIGNED, BE) <>                                              "\125;\255;" or
3396        bytes(                     32256_, SIGNED, BE) <>                                              "\126;\000;" or
3397        bytes(                     32257_, SIGNED, BE) <>                                              "\126;\001;" or
3398        bytes(                     32510_, SIGNED, BE) <>                                              "\126;\254;" or
3399        bytes(                     32511_, SIGNED, BE) <>                                              "\126;\255;" or
3400        bytes(                     32512_, SIGNED, BE) <>                                              "\127;\000;" or
3401        bytes(                     32513_, SIGNED, BE) <>                                              "\127;\001;" or
3402        bytes(                     32766_, SIGNED, BE) <>                                              "\127;\254;" or
3403        bytes(                     32767_, SIGNED, BE) <>                                              "\127;\255;" or
3404        bytes(                     32768_, SIGNED, BE) <>                                         "\000;\128;\000;" or
3405        bytes(                     32769_, SIGNED, BE) <>                                         "\000;\128;\001;" or
3406        bytes(                     65023_, SIGNED, BE) <>                                         "\000;\253;\255;" or
3407        bytes(                     65024_, SIGNED, BE) <>                                         "\000;\254;\000;" or
3408        bytes(                     65279_, SIGNED, BE) <>                                         "\000;\254;\255;" or
3409        bytes(                     65280_, SIGNED, BE) <>                                         "\000;\255;\000;" or
3410        bytes(                     65535_, SIGNED, BE) <>                                         "\000;\255;\255;" or
3411        bytes(                     65536_, SIGNED, BE) <>                                         "\001;\000;\000;" or
3412        bytes(                   8388607_, SIGNED, BE) <>                                         "\127;\255;\255;" or
3413        bytes(                   8388608_, SIGNED, BE) <>                                    "\000;\128;\000;\000;" or
3414        bytes(                  16777215_, SIGNED, BE) <>                                    "\000;\255;\255;\255;" or
3415        bytes(                  16777216_, SIGNED, BE) <>                                    "\001;\000;\000;\000;" or
3416        bytes(                2147483647_, SIGNED, BE) <>                                    "\127;\255;\255;\255;" or
3417        bytes(                2147483648_, SIGNED, BE) <>                               "\000;\128;\000;\000;\000;" or
3418        bytes(                4294967295_, SIGNED, BE) <>                               "\000;\255;\255;\255;\255;" or
3419        bytes(                4294967296_, SIGNED, BE) <>                               "\001;\000;\000;\000;\000;" or
3420        bytes(              549755813887_, SIGNED, BE) <>                               "\127;\255;\255;\255;\255;" or
3421        bytes(              549755813888_, SIGNED, BE) <>                          "\000;\128;\000;\000;\000;\000;" or
3422        bytes(             1099511627775_, SIGNED, BE) <>                          "\000;\255;\255;\255;\255;\255;" or
3423        bytes(             1099511627776_, SIGNED, BE) <>                          "\001;\000;\000;\000;\000;\000;" or
3424        bytes(           140737488355327_, SIGNED, BE) <>                          "\127;\255;\255;\255;\255;\255;" or
3425        bytes(           140737488355328_, SIGNED, BE) <>                     "\000;\128;\000;\000;\000;\000;\000;" or
3426        bytes(           281474976710655_, SIGNED, BE) <>                     "\000;\255;\255;\255;\255;\255;\255;" or
3427        bytes(           281474976710656_, SIGNED, BE) <>                     "\001;\000;\000;\000;\000;\000;\000;" or
3428        bytes(         36028797018963967_, SIGNED, BE) <>                     "\127;\255;\255;\255;\255;\255;\255;" or
3429        bytes(         36028797018963968_, SIGNED, BE) <>                "\000;\128;\000;\000;\000;\000;\000;\000;" or
3430        bytes(         72057594037927935_, SIGNED, BE) <>                "\000;\255;\255;\255;\255;\255;\255;\255;" or
3431        bytes(         72057594037927936_, SIGNED, BE) <>                "\001;\000;\000;\000;\000;\000;\000;\000;" or
3432        bytes(       9223372036854775807_, SIGNED, BE) <>                "\127;\255;\255;\255;\255;\255;\255;\255;" or
3433        bytes(       9223372036854775808_, SIGNED, BE) <>           "\000;\128;\000;\000;\000;\000;\000;\000;\000;" or
3434        bytes(      18446744073709551615_, SIGNED, BE) <>           "\000;\255;\255;\255;\255;\255;\255;\255;\255;" or
3435        bytes(      18446744073709551616_, SIGNED, BE) <>           "\001;\000;\000;\000;\000;\000;\000;\000;\000;" or
3436        bytes(    2361183241434822606847_, SIGNED, BE) <>           "\127;\255;\255;\255;\255;\255;\255;\255;\255;" or
3437        bytes(    2361183241434822606848_, SIGNED, BE) <>      "\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;" or
3438        bytes(    4722366482869645213695_, SIGNED, BE) <>      "\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3439        bytes(    4722366482869645213696_, SIGNED, BE) <>      "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3440        bytes(  604462909807314587353087_, SIGNED, BE) <>      "\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3441        bytes(  604462909807314587353088_, SIGNED, BE) <> "\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3442        bytes( 1208925819614629174706175_, SIGNED, BE) <> "\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3443        bytes( 1208925819614629174706176_, SIGNED, BE) <> "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;" then
3444      writeln("Conversion of bigInteger to big endian byte string does not work correct.");
3445      okay := FALSE;
3446    end if;
3447
3448    if  bytes(                                     258_, SIGNED, BE) <>                                                      "\1;\2;" or
3449        bytes(                                   66051_, SIGNED, BE) <>                                                   "\1;\2;\3;" or
3450        bytes(                                16909060_, SIGNED, BE) <>                                                "\1;\2;\3;\4;" or
3451        bytes(                              4328719365_, SIGNED, BE) <>                                             "\1;\2;\3;\4;\5;" or
3452        bytes(                           1108152157446_, SIGNED, BE) <>                                          "\1;\2;\3;\4;\5;\6;" or
3453        bytes(                         283686952306183_, SIGNED, BE) <>                                       "\1;\2;\3;\4;\5;\6;\7;" or
3454        bytes(                       72623859790382856_, SIGNED, BE) <>                                    "\1;\2;\3;\4;\5;\6;\7;\8;" or
3455        bytes(                    18591708106338011145_, SIGNED, BE) <>                                 "\1;\2;\3;\4;\5;\6;\7;\8;\9;" or
3456        bytes(                  4759477275222530853130_, SIGNED, BE) <>                             "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;" or
3457        bytes(               1218426182456967898401291_, SIGNED, BE) <>                         "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;" or
3458        bytes(             311917102708983781990730508_, SIGNED, BE) <>                     "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;" or
3459        bytes(           79850778293499848189627010061_, SIGNED, BE) <>                 "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;" or
3460        bytes(        20441799243135961136544514575630_, SIGNED, BE) <>             "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;" or
3461        bytes(      5233100606242806050955395731361295_, SIGNED, BE) <>         "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
3462        bytes(   1339673755198158349044581307228491536_, SIGNED, BE) <>     "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;" or
3463        bytes( 342956481330728537355412814650493833233_, SIGNED, BE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;" or
3464        bytes(                                     513_, SIGNED, BE) <>                                                      "\2;\1;" or
3465        bytes(                                  197121_, SIGNED, BE) <>                                                   "\3;\2;\1;" or
3466        bytes(                                67305985_, SIGNED, BE) <>                                                "\4;\3;\2;\1;" or
3467        bytes(                             21542142465_, SIGNED, BE) <>                                             "\5;\4;\3;\2;\1;" or
3468        bytes(                           6618611909121_, SIGNED, BE) <>                                          "\6;\5;\4;\3;\2;\1;" or
3469        bytes(                        1976943448883713_, SIGNED, BE) <>                                       "\7;\6;\5;\4;\3;\2;\1;" or
3470        bytes(                      578437695752307201_, SIGNED, BE) <>                                    "\8;\7;\6;\5;\4;\3;\2;\1;" or
3471        bytes(                   166599134359138271745_, SIGNED, BE) <>                                 "\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3472        bytes(                 47390263963055590408705_, SIGNED, BE) <>                             "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3473        bytes(              13345574279723976512176641_, SIGNED, BE) <>                         "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3474        bytes(            3727165692135864801209549313_, SIGNED, BE) <>                     "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3475        bytes(         1033693278377572253517280903681_, SIGNED, BE) <>                 "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3476        bytes(       284987427729500958188778798907905_, SIGNED, BE) <>             "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3477        bytes(     78169440305751915386146223737209345_, SIGNED, BE) <>         "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3478        bytes(  21345817372864405881847059188222722561_, SIGNED, BE) <>     "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3479        bytes(5806146055028818284759215385528282317313_, SIGNED, BE) <> "\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" then
3480      writeln("Conversion of bigInteger to big endian byte string does not work correct.");
3481      okay := FALSE;
3482    end if;
3483
3484    if  bytes(                                    -255_, SIGNED, BE) <>                                                     "\255;\1;" or
3485        bytes(                                  -65278_, SIGNED, BE) <>                                                  "\255;\1;\2;" or
3486        bytes(                               -16711165_, SIGNED, BE) <>                                               "\255;\1;\2;\3;" or
3487        bytes(                             -4278058236_, SIGNED, BE) <>                                            "\255;\1;\2;\3;\4;" or
3488        bytes(                          -1095182908411_, SIGNED, BE) <>                                         "\255;\1;\2;\3;\4;\5;" or
3489        bytes(                        -280366824553210_, SIGNED, BE) <>                                      "\255;\1;\2;\3;\4;\5;\6;" or
3490        bytes(                      -71773907085621753_, SIGNED, BE) <>                                   "\255;\1;\2;\3;\4;\5;\6;\7;" or
3491        bytes(                   -18374120213919168760_, SIGNED, BE) <>                                "\255;\1;\2;\3;\4;\5;\6;\7;\8;" or
3492        bytes(                 -4703774774763307202551_, SIGNED, BE) <>                             "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;" or
3493        bytes(              -1204166342339406643853046_, SIGNED, BE) <>                         "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;" or
3494        bytes(            -308266583638888100826379765_, SIGNED, BE) <>                     "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;" or
3495        bytes(          -78916245411555353811553219828_, SIGNED, BE) <>                 "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;" or
3496        bytes(       -20202558825358170575757624275955_, SIGNED, BE) <>             "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;" or
3497        bytes(     -5171855059291691667393951814644466_, SIGNED, BE) <>         "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;" or
3498        bytes(  -1323994895178673066852851664548983281_, SIGNED, BE) <>     "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
3499        bytes(-338942693165740305114330026124539719920_, SIGNED, BE) <> "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;" or
3500        bytes(                                    -255_, SIGNED, BE) <>                                                     "\255;\1;" or
3501        bytes(                                  -65023_, SIGNED, BE) <>                                                  "\255;\2;\1;" or
3502        bytes(                               -16580095_, SIGNED, BE) <>                                               "\255;\3;\2;\1;" or
3503        bytes(                             -4227661311_, SIGNED, BE) <>                                            "\255;\4;\3;\2;\1;" or
3504        bytes(                          -1077969485311_, SIGNED, BE) <>                                         "\255;\5;\4;\3;\2;\1;" or
3505        bytes(                        -274856364801535_, SIGNED, BE) <>                                      "\255;\6;\5;\4;\3;\2;\1;" or
3506        bytes(                      -70080650589044223_, SIGNED, BE) <>                                   "\255;\7;\6;\5;\4;\3;\2;\1;" or
3507        bytes(                   -17868306377957244415_, SIGNED, BE) <>                                "\255;\8;\7;\6;\5;\4;\3;\2;\1;" or
3508        bytes(                 -4555767348510506941951_, SIGNED, BE) <>                             "\255;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3509        bytes(              -1161535555651573584297471_, SIGNED, BE) <>                         "\255;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3510        bytes(            -296139435541621092212604415_, SIGNED, BE) <>                     "\255;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3511        bytes(          -75500996822128472792334401023_, SIGNED, BE) <>                 "\255;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3512        bytes(       -19248716325274098170429970382335_, SIGNED, BE) <>             "\255;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3513        bytes(     -4907309430805326670341717530312191_, SIGNED, BE) <>         "\255;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3514        bytes(  -1251058555479163957517660836543135231_, SIGNED, BE) <>     "\255;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3515        bytes(-318936549548074057581527548243545488895_, SIGNED, BE) <> "\255;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" then
3516      writeln("Conversion of bigInteger to big endian byte string does not work correct.");
3517      okay := FALSE;
3518    end if;
3519
3520    if  bytes(                        0_, UNSIGNED, BE) <>                                                   "\000;" or
3521        bytes(                        1_, UNSIGNED, BE) <>                                                   "\001;" or
3522        bytes(                        2_, UNSIGNED, BE) <>                                                   "\002;" or
3523        bytes(                      126_, UNSIGNED, BE) <>                                                   "\126;" or
3524        bytes(                      127_, UNSIGNED, BE) <>                                                   "\127;" or
3525        bytes(                      128_, UNSIGNED, BE) <>                                                   "\128;" or
3526        bytes(                      129_, UNSIGNED, BE) <>                                                   "\129;" or
3527        bytes(                      254_, UNSIGNED, BE) <>                                                   "\254;" or
3528        bytes(                      255_, UNSIGNED, BE) <>                                                   "\255;" or
3529        bytes(                      256_, UNSIGNED, BE) <>                                              "\001;\000;" or
3530        bytes(                      257_, UNSIGNED, BE) <>                                              "\001;\001;" or
3531        bytes(                      510_, UNSIGNED, BE) <>                                              "\001;\254;" or
3532        bytes(                      511_, UNSIGNED, BE) <>                                              "\001;\255;" or
3533        bytes(                      512_, UNSIGNED, BE) <>                                              "\002;\000;" or
3534        bytes(                      513_, UNSIGNED, BE) <>                                              "\002;\001;" or
3535        bytes(                    32254_, UNSIGNED, BE) <>                                              "\125;\254;" or
3536        bytes(                    32255_, UNSIGNED, BE) <>                                              "\125;\255;" or
3537        bytes(                    32256_, UNSIGNED, BE) <>                                              "\126;\000;" or
3538        bytes(                    32257_, UNSIGNED, BE) <>                                              "\126;\001;" or
3539        bytes(                    32510_, UNSIGNED, BE) <>                                              "\126;\254;" or
3540        bytes(                    32511_, UNSIGNED, BE) <>                                              "\126;\255;" or
3541        bytes(                    32512_, UNSIGNED, BE) <>                                              "\127;\000;" or
3542        bytes(                    32513_, UNSIGNED, BE) <>                                              "\127;\001;" or
3543        bytes(                    32766_, UNSIGNED, BE) <>                                              "\127;\254;" or
3544        bytes(                    32767_, UNSIGNED, BE) <>                                              "\127;\255;" or
3545        bytes(                    32768_, UNSIGNED, BE) <>                                              "\128;\000;" or
3546        bytes(                    32769_, UNSIGNED, BE) <>                                              "\128;\001;" or
3547        bytes(                    65023_, UNSIGNED, BE) <>                                              "\253;\255;" or
3548        bytes(                    65024_, UNSIGNED, BE) <>                                              "\254;\000;" or
3549        bytes(                    65279_, UNSIGNED, BE) <>                                              "\254;\255;" or
3550        bytes(                    65280_, UNSIGNED, BE) <>                                              "\255;\000;" or
3551        bytes(                    65535_, UNSIGNED, BE) <>                                              "\255;\255;" or
3552        bytes(                    65536_, UNSIGNED, BE) <>                                         "\001;\000;\000;" or
3553        bytes(                  8388607_, UNSIGNED, BE) <>                                         "\127;\255;\255;" or
3554        bytes(                  8388608_, UNSIGNED, BE) <>                                         "\128;\000;\000;" or
3555        bytes(                 16777215_, UNSIGNED, BE) <>                                         "\255;\255;\255;" or
3556        bytes(                 16777216_, UNSIGNED, BE) <>                                    "\001;\000;\000;\000;" or
3557        bytes(               2147483647_, UNSIGNED, BE) <>                                    "\127;\255;\255;\255;" or
3558        bytes(               2147483648_, UNSIGNED, BE) <>                                    "\128;\000;\000;\000;" or
3559        bytes(               4294967295_, UNSIGNED, BE) <>                                    "\255;\255;\255;\255;" or
3560        bytes(               4294967296_, UNSIGNED, BE) <>                               "\001;\000;\000;\000;\000;" or
3561        bytes(             549755813887_, UNSIGNED, BE) <>                               "\127;\255;\255;\255;\255;" or
3562        bytes(             549755813888_, UNSIGNED, BE) <>                               "\128;\000;\000;\000;\000;" or
3563        bytes(            1099511627775_, UNSIGNED, BE) <>                               "\255;\255;\255;\255;\255;" or
3564        bytes(            1099511627776_, UNSIGNED, BE) <>                          "\001;\000;\000;\000;\000;\000;" or
3565        bytes(          140737488355327_, UNSIGNED, BE) <>                          "\127;\255;\255;\255;\255;\255;" or
3566        bytes(          140737488355328_, UNSIGNED, BE) <>                          "\128;\000;\000;\000;\000;\000;" or
3567        bytes(          281474976710655_, UNSIGNED, BE) <>                          "\255;\255;\255;\255;\255;\255;" or
3568        bytes(          281474976710656_, UNSIGNED, BE) <>                     "\001;\000;\000;\000;\000;\000;\000;" or
3569        bytes(        36028797018963967_, UNSIGNED, BE) <>                     "\127;\255;\255;\255;\255;\255;\255;" or
3570        bytes(        36028797018963968_, UNSIGNED, BE) <>                     "\128;\000;\000;\000;\000;\000;\000;" or
3571        bytes(        72057594037927935_, UNSIGNED, BE) <>                     "\255;\255;\255;\255;\255;\255;\255;" or
3572        bytes(        72057594037927936_, UNSIGNED, BE) <>                "\001;\000;\000;\000;\000;\000;\000;\000;" or
3573        bytes(      9223372036854775807_, UNSIGNED, BE) <>                "\127;\255;\255;\255;\255;\255;\255;\255;" or
3574        bytes(      9223372036854775808_, UNSIGNED, BE) <>                "\128;\000;\000;\000;\000;\000;\000;\000;" or
3575        bytes(     18446744073709551615_, UNSIGNED, BE) <>                "\255;\255;\255;\255;\255;\255;\255;\255;" or
3576        bytes(     18446744073709551616_, UNSIGNED, BE) <>           "\001;\000;\000;\000;\000;\000;\000;\000;\000;" or
3577        bytes(   2361183241434822606847_, UNSIGNED, BE) <>           "\127;\255;\255;\255;\255;\255;\255;\255;\255;" or
3578        bytes(   2361183241434822606848_, UNSIGNED, BE) <>           "\128;\000;\000;\000;\000;\000;\000;\000;\000;" or
3579        bytes(   4722366482869645213695_, UNSIGNED, BE) <>           "\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3580        bytes(   4722366482869645213696_, UNSIGNED, BE) <>      "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3581        bytes( 604462909807314587353087_, UNSIGNED, BE) <>      "\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3582        bytes( 604462909807314587353088_, UNSIGNED, BE) <>      "\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;" or
3583        bytes(1208925819614629174706175_, UNSIGNED, BE) <>      "\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;" or
3584        bytes(1208925819614629174706176_, UNSIGNED, BE) <> "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;" then
3585      writeln("Conversion of bigInteger to unsigned big endian byte string does not work correct.");
3586      okay := FALSE;
3587    end if;
3588
3589    if  bytes(                                     258_, UNSIGNED, BE) <>                                                      "\1;\2;" or
3590        bytes(                                   66051_, UNSIGNED, BE) <>                                                   "\1;\2;\3;" or
3591        bytes(                                16909060_, UNSIGNED, BE) <>                                                "\1;\2;\3;\4;" or
3592        bytes(                              4328719365_, UNSIGNED, BE) <>                                             "\1;\2;\3;\4;\5;" or
3593        bytes(                           1108152157446_, UNSIGNED, BE) <>                                          "\1;\2;\3;\4;\5;\6;" or
3594        bytes(                         283686952306183_, UNSIGNED, BE) <>                                       "\1;\2;\3;\4;\5;\6;\7;" or
3595        bytes(                       72623859790382856_, UNSIGNED, BE) <>                                    "\1;\2;\3;\4;\5;\6;\7;\8;" or
3596        bytes(                    18591708106338011145_, UNSIGNED, BE) <>                                 "\1;\2;\3;\4;\5;\6;\7;\8;\9;" or
3597        bytes(                  4759477275222530853130_, UNSIGNED, BE) <>                             "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;" or
3598        bytes(               1218426182456967898401291_, UNSIGNED, BE) <>                         "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;" or
3599        bytes(             311917102708983781990730508_, UNSIGNED, BE) <>                     "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;" or
3600        bytes(           79850778293499848189627010061_, UNSIGNED, BE) <>                 "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;" or
3601        bytes(        20441799243135961136544514575630_, UNSIGNED, BE) <>             "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;" or
3602        bytes(      5233100606242806050955395731361295_, UNSIGNED, BE) <>         "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
3603        bytes(   1339673755198158349044581307228491536_, UNSIGNED, BE) <>     "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;" or
3604        bytes( 342956481330728537355412814650493833233_, UNSIGNED, BE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;" or
3605        bytes(                                     513_, UNSIGNED, BE) <>                                                      "\2;\1;" or
3606        bytes(                                  197121_, UNSIGNED, BE) <>                                                   "\3;\2;\1;" or
3607        bytes(                                67305985_, UNSIGNED, BE) <>                                                "\4;\3;\2;\1;" or
3608        bytes(                             21542142465_, UNSIGNED, BE) <>                                             "\5;\4;\3;\2;\1;" or
3609        bytes(                           6618611909121_, UNSIGNED, BE) <>                                          "\6;\5;\4;\3;\2;\1;" or
3610        bytes(                        1976943448883713_, UNSIGNED, BE) <>                                       "\7;\6;\5;\4;\3;\2;\1;" or
3611        bytes(                      578437695752307201_, UNSIGNED, BE) <>                                    "\8;\7;\6;\5;\4;\3;\2;\1;" or
3612        bytes(                   166599134359138271745_, UNSIGNED, BE) <>                                 "\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3613        bytes(                 47390263963055590408705_, UNSIGNED, BE) <>                             "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3614        bytes(              13345574279723976512176641_, UNSIGNED, BE) <>                         "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3615        bytes(            3727165692135864801209549313_, UNSIGNED, BE) <>                     "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3616        bytes(         1033693278377572253517280903681_, UNSIGNED, BE) <>                 "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3617        bytes(       284987427729500958188778798907905_, UNSIGNED, BE) <>             "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3618        bytes(     78169440305751915386146223737209345_, UNSIGNED, BE) <>         "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3619        bytes(  21345817372864405881847059188222722561_, UNSIGNED, BE) <>     "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3620        bytes(5806146055028818284759215385528282317313_, UNSIGNED, BE) <> "\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" then
3621      writeln("Conversion of bigInteger to unsigned big endian byte string does not work correct.");
3622      okay := FALSE;
3623    end if;
3624
3625    if  bytes(                                    65281_, UNSIGNED, BE) <>                                                     "\255;\1;" or
3626        bytes(                                 16711938_, UNSIGNED, BE) <>                                                  "\255;\1;\2;" or
3627        bytes(                               4278256131_, UNSIGNED, BE) <>                                               "\255;\1;\2;\3;" or
3628        bytes(                            1095233569540_, UNSIGNED, BE) <>                                            "\255;\1;\2;\3;\4;" or
3629        bytes(                          280379793802245_, UNSIGNED, BE) <>                                         "\255;\1;\2;\3;\4;\5;" or
3630        bytes(                        71777227213374726_, UNSIGNED, BE) <>                                      "\255;\1;\2;\3;\4;\5;\6;" or
3631        bytes(                     18374970166623929863_, UNSIGNED, BE) <>                                   "\255;\1;\2;\3;\4;\5;\6;\7;" or
3632        bytes(                   4703992362655726044936_, UNSIGNED, BE) <>                                "\255;\1;\2;\3;\4;\5;\6;\7;\8;" or
3633        bytes(                1204222044839865867503625_, UNSIGNED, BE) <>                             "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;" or
3634        bytes(              308280843479005662080928010_, UNSIGNED, BE) <>                         "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;" or
3635        bytes(            78919895930625449492717570571_, UNSIGNED, BE) <>                     "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;" or
3636        bytes(         20203493358240115070135698066188_, UNSIGNED, BE) <>                 "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;" or
3637        bytes(       5172094299709469457954738704944141_, UNSIGNED, BE) <>             "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;" or
3638        bytes(    1324056140725624181236413108465700110_, UNSIGNED, BE) <>         "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;" or
3639        bytes(  338958372025759790396521755767219228175_, UNSIGNED, BE) <>     "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;" or
3640        bytes(86773343238594506341509569476408122412816_, UNSIGNED, BE) <> "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;" or
3641        bytes(                                    65281_, UNSIGNED, BE) <>                                                     "\255;\1;" or
3642        bytes(                                 16712193_, UNSIGNED, BE) <>                                                  "\255;\2;\1;" or
3643        bytes(                               4278387201_, UNSIGNED, BE) <>                                               "\255;\3;\2;\1;" or
3644        bytes(                            1095283966465_, UNSIGNED, BE) <>                                            "\255;\4;\3;\2;\1;" or
3645        bytes(                          280397007225345_, UNSIGNED, BE) <>                                         "\255;\5;\4;\3;\2;\1;" or
3646        bytes(                        71782737673126401_, UNSIGNED, BE) <>                                      "\255;\6;\5;\4;\3;\2;\1;" or
3647        bytes(                     18376663423120507393_, UNSIGNED, BE) <>                                   "\255;\7;\6;\5;\4;\3;\2;\1;" or
3648        bytes(                   4704498176491687969281_, UNSIGNED, BE) <>                                "\255;\8;\7;\6;\5;\4;\3;\2;\1;" or
3649        bytes(                1204370052266118667764225_, UNSIGNED, BE) <>                             "\255;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3650        bytes(              308323474265693495140483585_, UNSIGNED, BE) <>                         "\255;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3651        bytes(            78932023078722716501331345921_, UNSIGNED, BE) <>                     "\255;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3652        bytes(         20206908606829541951154916884993_, UNSIGNED, BE) <>                 "\255;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3653        bytes(       5173048142209553530360066358837761_, UNSIGNED, BE) <>             "\255;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3654        bytes(    1324320686354110546233465342750032385_, UNSIGNED, BE) <>         "\255;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3655        bytes(  339031308365459299505856946595225076225_, UNSIGNED, BE) <>     "\255;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3656        bytes(86793349382212172589042371954289116643841_, UNSIGNED, BE) <> "\255;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" then
3657      writeln("Conversion of bigInteger to unsigned big endian byte string does not work correct.");
3658      okay := FALSE;
3659    end if;
3660
3661    if  bytes( 1413829460_,                    SIGNED,   BE) <> "TEST"            or
3662        bytes( 1330331993_,                    SIGNED,   BE) <> "OKAY"            or
3663        bytes(-24410099243900992862068771469_, SIGNED,   BE) <> "± plus-minus"    or
3664        bytes( 54818063270363344731475178867_, SIGNED,   BE) <> "\0;± plus-minus" or
3665        bytes( 54818063270363344731475178867_, UNSIGNED, BE) <> "± plus-minus"    or
3666        bytes( 5292891159410142067_,           UNSIGNED, BE) <> "It works"        then
3667      writeln("Conversion of bigInteger to byte string does not work correct.");
3668      okay := FALSE;
3669    end if;
3670
3671    if  not raisesRangeError(bytes(-1_, UNSIGNED, BE)) then
3672      writeln("Conversion of negative bigInteger to unsigned big endian byte string does not raise RANGE_ERROR.");
3673      okay := FALSE;
3674    end if;
3675
3676    if okay then
3677      writeln("Conversion of bigInteger to big endian byte string works correct.");
3678    else
3679      writeln(" ***** Conversion of bigInteger to big endian byte string does not work correct.");
3680      writeln;
3681    end if;
3682  end func;
3683
3684
3685const proc: chkBytesLe is func
3686  local
3687    var boolean: okay is TRUE;
3688  begin
3689    if  bytes(-1208925819614629174706177_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;\254;" or
3690        bytes(-1208925819614629174706176_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\255;" or
3691        bytes( -604462909807314587353089_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;\255;" or
3692        bytes( -604462909807314587353088_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;"      or
3693        bytes(   -4722366482869645213697_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\254;"      or
3694        bytes(   -4722366482869645213696_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\255;"      or
3695        bytes(   -2361183241434822606849_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\127;\255;"      or
3696        bytes(   -2361183241434822606848_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\128;"           or
3697        bytes(     -18446744073709551617_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\254;"           or
3698        bytes(     -18446744073709551616_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\255;"           or
3699        bytes(      -9223372036854775809_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\127;\255;"           or
3700        bytes(      -9223372036854775808_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\128;"                or
3701        bytes(        -72057594037927937_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\254;"                or
3702        bytes(        -72057594037927936_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\255;"                or
3703        bytes(        -36028797018963969_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\127;\255;"                or
3704        bytes(        -36028797018963968_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\128;"                     or
3705        bytes(          -281474976710657_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\254;"                     or
3706        bytes(          -281474976710656_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\255;"                     or
3707        bytes(          -140737488355329_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\127;\255;"                     or
3708        bytes(          -140737488355328_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\128;"                          or
3709        bytes(            -1099511627777_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\254;"                          or
3710        bytes(            -1099511627776_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\255;"                          or
3711        bytes(             -549755813889_, SIGNED, LE) <> "\255;\255;\255;\255;\127;\255;"                          or
3712        bytes(             -549755813888_, SIGNED, LE) <> "\000;\000;\000;\000;\128;"                               or
3713        bytes(               -4294967297_, SIGNED, LE) <> "\255;\255;\255;\255;\254;"                               or
3714        bytes(               -4294967296_, SIGNED, LE) <> "\000;\000;\000;\000;\255;"                               or
3715        bytes(               -2147483649_, SIGNED, LE) <> "\255;\255;\255;\127;\255;"                               or
3716        bytes(               -2147483648_, SIGNED, LE) <> "\000;\000;\000;\128;"                                    or
3717        bytes(                 -16777217_, SIGNED, LE) <> "\255;\255;\255;\254;"                                    or
3718        bytes(                 -16777216_, SIGNED, LE) <> "\000;\000;\000;\255;"                                    or
3719        bytes(                  -8388609_, SIGNED, LE) <> "\255;\255;\127;\255;"                                    or
3720        bytes(                  -8388608_, SIGNED, LE) <> "\000;\000;\128;"                                         or
3721        bytes(                    -65537_, SIGNED, LE) <> "\255;\255;\254;"                                         or
3722        bytes(                    -65536_, SIGNED, LE) <> "\000;\000;\255;"                                         or
3723        bytes(                    -65281_, SIGNED, LE) <> "\255;\000;\255;"                                         or
3724        bytes(                    -65280_, SIGNED, LE) <> "\000;\001;\255;"                                         or
3725        bytes(                    -65025_, SIGNED, LE) <> "\255;\001;\255;"                                         or
3726        bytes(                    -65024_, SIGNED, LE) <> "\000;\002;\255;"                                         or
3727        bytes(                    -32770_, SIGNED, LE) <> "\254;\127;\255;"                                         or
3728        bytes(                    -32769_, SIGNED, LE) <> "\255;\127;\255;"                                         or
3729        bytes(                    -32768_, SIGNED, LE) <> "\000;\128;"                                              or
3730        bytes(                    -32767_, SIGNED, LE) <> "\001;\128;"                                              or
3731        bytes(                    -32514_, SIGNED, LE) <> "\254;\128;"                                              or
3732        bytes(                    -32513_, SIGNED, LE) <> "\255;\128;"                                              or
3733        bytes(                    -32512_, SIGNED, LE) <> "\000;\129;"                                              or
3734        bytes(                    -32511_, SIGNED, LE) <> "\001;\129;"                                              or
3735        bytes(                    -32258_, SIGNED, LE) <> "\254;\129;"                                              or
3736        bytes(                    -32257_, SIGNED, LE) <> "\255;\129;"                                              or
3737        bytes(                    -32256_, SIGNED, LE) <> "\000;\130;"                                              or
3738        bytes(                    -32255_, SIGNED, LE) <> "\001;\130;"                                              or
3739        bytes(                      -514_, SIGNED, LE) <> "\254;\253;"                                              or
3740        bytes(                      -513_, SIGNED, LE) <> "\255;\253;"                                              or
3741        bytes(                      -512_, SIGNED, LE) <> "\000;\254;"                                              or
3742        bytes(                      -511_, SIGNED, LE) <> "\001;\254;"                                              or
3743        bytes(                      -258_, SIGNED, LE) <> "\254;\254;"                                              or
3744        bytes(                      -257_, SIGNED, LE) <> "\255;\254;"                                              or
3745        bytes(                      -256_, SIGNED, LE) <> "\000;\255;"                                              or
3746        bytes(                      -255_, SIGNED, LE) <> "\001;\255;"                                              or
3747        bytes(                      -130_, SIGNED, LE) <> "\126;\255;"                                              or
3748        bytes(                      -129_, SIGNED, LE) <> "\127;\255;"                                              or
3749        bytes(                      -128_, SIGNED, LE) <> "\128;"                                                   or
3750        bytes(                      -127_, SIGNED, LE) <> "\129;"                                                   or
3751        bytes(                        -2_, SIGNED, LE) <> "\254;"                                                   or
3752        bytes(                        -1_, SIGNED, LE) <> "\255;"                                                   or
3753        bytes(                         0_, SIGNED, LE) <> "\000;"                                                   or
3754        bytes(                         1_, SIGNED, LE) <> "\001;"                                                   or
3755        bytes(                         2_, SIGNED, LE) <> "\002;"                                                   or
3756        bytes(                       126_, SIGNED, LE) <> "\126;"                                                   or
3757        bytes(                       127_, SIGNED, LE) <> "\127;"                                                   or
3758        bytes(                       128_, SIGNED, LE) <> "\128;\000;"                                              or
3759        bytes(                       129_, SIGNED, LE) <> "\129;\000;"                                              or
3760        bytes(                       254_, SIGNED, LE) <> "\254;\000;"                                              or
3761        bytes(                       255_, SIGNED, LE) <> "\255;\000;"                                              or
3762        bytes(                       256_, SIGNED, LE) <> "\000;\001;"                                              or
3763        bytes(                       257_, SIGNED, LE) <> "\001;\001;"                                              or
3764        bytes(                       510_, SIGNED, LE) <> "\254;\001;"                                              or
3765        bytes(                       511_, SIGNED, LE) <> "\255;\001;"                                              or
3766        bytes(                       512_, SIGNED, LE) <> "\000;\002;"                                              or
3767        bytes(                       513_, SIGNED, LE) <> "\001;\002;"                                              or
3768        bytes(                     32254_, SIGNED, LE) <> "\254;\125;"                                              or
3769        bytes(                     32255_, SIGNED, LE) <> "\255;\125;"                                              or
3770        bytes(                     32256_, SIGNED, LE) <> "\000;\126;"                                              or
3771        bytes(                     32257_, SIGNED, LE) <> "\001;\126;"                                              or
3772        bytes(                     32510_, SIGNED, LE) <> "\254;\126;"                                              or
3773        bytes(                     32511_, SIGNED, LE) <> "\255;\126;"                                              or
3774        bytes(                     32512_, SIGNED, LE) <> "\000;\127;"                                              or
3775        bytes(                     32513_, SIGNED, LE) <> "\001;\127;"                                              or
3776        bytes(                     32766_, SIGNED, LE) <> "\254;\127;"                                              or
3777        bytes(                     32767_, SIGNED, LE) <> "\255;\127;"                                              or
3778        bytes(                     32768_, SIGNED, LE) <> "\000;\128;\000;"                                         or
3779        bytes(                     32769_, SIGNED, LE) <> "\001;\128;\000;"                                         or
3780        bytes(                     65023_, SIGNED, LE) <> "\255;\253;\000;"                                         or
3781        bytes(                     65024_, SIGNED, LE) <> "\000;\254;\000;"                                         or
3782        bytes(                     65279_, SIGNED, LE) <> "\255;\254;\000;"                                         or
3783        bytes(                     65280_, SIGNED, LE) <> "\000;\255;\000;"                                         or
3784        bytes(                     65535_, SIGNED, LE) <> "\255;\255;\000;"                                         or
3785        bytes(                     65536_, SIGNED, LE) <> "\000;\000;\001;"                                         or
3786        bytes(                   8388607_, SIGNED, LE) <> "\255;\255;\127;"                                         or
3787        bytes(                   8388608_, SIGNED, LE) <> "\000;\000;\128;\000;"                                    or
3788        bytes(                  16777215_, SIGNED, LE) <> "\255;\255;\255;\000;"                                    or
3789        bytes(                  16777216_, SIGNED, LE) <> "\000;\000;\000;\001;"                                    or
3790        bytes(                2147483647_, SIGNED, LE) <> "\255;\255;\255;\127;"                                    or
3791        bytes(                2147483648_, SIGNED, LE) <> "\000;\000;\000;\128;\000;"                               or
3792        bytes(                4294967295_, SIGNED, LE) <> "\255;\255;\255;\255;\000;"                               or
3793        bytes(                4294967296_, SIGNED, LE) <> "\000;\000;\000;\000;\001;"                               or
3794        bytes(              549755813887_, SIGNED, LE) <> "\255;\255;\255;\255;\127;"                               or
3795        bytes(              549755813888_, SIGNED, LE) <> "\000;\000;\000;\000;\128;\000;"                          or
3796        bytes(             1099511627775_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\000;"                          or
3797        bytes(             1099511627776_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\001;"                          or
3798        bytes(           140737488355327_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\127;"                          or
3799        bytes(           140737488355328_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\128;\000;"                     or
3800        bytes(           281474976710655_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\000;"                     or
3801        bytes(           281474976710656_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\001;"                     or
3802        bytes(         36028797018963967_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\127;"                     or
3803        bytes(         36028797018963968_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\128;\000;"                or
3804        bytes(         72057594037927935_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\000;"                or
3805        bytes(         72057594037927936_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\001;"                or
3806        bytes(       9223372036854775807_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\127;"                or
3807        bytes(       9223372036854775808_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\128;\000;"           or
3808        bytes(      18446744073709551615_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\000;"           or
3809        bytes(      18446744073709551616_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\001;"           or
3810        bytes(    2361183241434822606847_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\127;"           or
3811        bytes(    2361183241434822606848_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;"      or
3812        bytes(    4722366482869645213695_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;"      or
3813        bytes(    4722366482869645213696_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;"      or
3814        bytes(  604462909807314587353087_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;"      or
3815        bytes(  604462909807314587353088_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;" or
3816        bytes( 1208925819614629174706175_, SIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;" or
3817        bytes( 1208925819614629174706176_, SIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;" then
3818      writeln("Conversion of bigInteger to little endian byte string does not work correct.");
3819      okay := FALSE;
3820    end if;
3821
3822    if  bytes(                                     258_, SIGNED, LE) <> "\2;\1;"                                                      or
3823        bytes(                                   66051_, SIGNED, LE) <> "\3;\2;\1;"                                                   or
3824        bytes(                                16909060_, SIGNED, LE) <> "\4;\3;\2;\1;"                                                or
3825        bytes(                              4328719365_, SIGNED, LE) <> "\5;\4;\3;\2;\1;"                                             or
3826        bytes(                           1108152157446_, SIGNED, LE) <> "\6;\5;\4;\3;\2;\1;"                                          or
3827        bytes(                         283686952306183_, SIGNED, LE) <> "\7;\6;\5;\4;\3;\2;\1;"                                       or
3828        bytes(                       72623859790382856_, SIGNED, LE) <> "\8;\7;\6;\5;\4;\3;\2;\1;"                                    or
3829        bytes(                    18591708106338011145_, SIGNED, LE) <> "\9;\8;\7;\6;\5;\4;\3;\2;\1;"                                 or
3830        bytes(                  4759477275222530853130_, SIGNED, LE) <> "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                             or
3831        bytes(               1218426182456967898401291_, SIGNED, LE) <> "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                         or
3832        bytes(             311917102708983781990730508_, SIGNED, LE) <> "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                     or
3833        bytes(           79850778293499848189627010061_, SIGNED, LE) <> "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                 or
3834        bytes(        20441799243135961136544514575630_, SIGNED, LE) <> "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"             or
3835        bytes(      5233100606242806050955395731361295_, SIGNED, LE) <> "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"         or
3836        bytes(   1339673755198158349044581307228491536_, SIGNED, LE) <> "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"     or
3837        bytes( 342956481330728537355412814650493833233_, SIGNED, LE) <> "\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3838        bytes(                                     513_, SIGNED, LE) <> "\1;\2;"                                                      or
3839        bytes(                                  197121_, SIGNED, LE) <> "\1;\2;\3;"                                                   or
3840        bytes(                                67305985_, SIGNED, LE) <> "\1;\2;\3;\4;"                                                or
3841        bytes(                             21542142465_, SIGNED, LE) <> "\1;\2;\3;\4;\5;"                                             or
3842        bytes(                           6618611909121_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;"                                          or
3843        bytes(                        1976943448883713_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;"                                       or
3844        bytes(                      578437695752307201_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;"                                    or
3845        bytes(                   166599134359138271745_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;"                                 or
3846        bytes(                 47390263963055590408705_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;"                             or
3847        bytes(              13345574279723976512176641_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;"                         or
3848        bytes(            3727165692135864801209549313_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;"                     or
3849        bytes(         1033693278377572253517280903681_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;"                 or
3850        bytes(       284987427729500958188778798907905_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;"             or
3851        bytes(     78169440305751915386146223737209345_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;"         or
3852        bytes(  21345817372864405881847059188222722561_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;"     or
3853        bytes(5806146055028818284759215385528282317313_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;" then
3854      writeln("Conversion of bigInteger to little endian byte string does not work correct.");
3855      okay := FALSE;
3856    end if;
3857
3858    if  bytes(                                    -255_, SIGNED, LE) <> "\1;\255;"                                                     or
3859        bytes(                                  -65278_, SIGNED, LE) <> "\2;\1;\255;"                                                  or
3860        bytes(                               -16711165_, SIGNED, LE) <> "\3;\2;\1;\255;"                                               or
3861        bytes(                             -4278058236_, SIGNED, LE) <> "\4;\3;\2;\1;\255;"                                            or
3862        bytes(                          -1095182908411_, SIGNED, LE) <> "\5;\4;\3;\2;\1;\255;"                                         or
3863        bytes(                        -280366824553210_, SIGNED, LE) <> "\6;\5;\4;\3;\2;\1;\255;"                                      or
3864        bytes(                      -71773907085621753_, SIGNED, LE) <> "\7;\6;\5;\4;\3;\2;\1;\255;"                                   or
3865        bytes(                   -18374120213919168760_, SIGNED, LE) <> "\8;\7;\6;\5;\4;\3;\2;\1;\255;"                                or
3866        bytes(                 -4703774774763307202551_, SIGNED, LE) <> "\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                             or
3867        bytes(              -1204166342339406643853046_, SIGNED, LE) <> "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                         or
3868        bytes(            -308266583638888100826379765_, SIGNED, LE) <> "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                     or
3869        bytes(          -78916245411555353811553219828_, SIGNED, LE) <> "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                 or
3870        bytes(       -20202558825358170575757624275955_, SIGNED, LE) <> "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"             or
3871        bytes(     -5171855059291691667393951814644466_, SIGNED, LE) <> "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"         or
3872        bytes(  -1323994895178673066852851664548983281_, SIGNED, LE) <> "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"     or
3873        bytes(-338942693165740305114330026124539719920_, SIGNED, LE) <> "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;" or
3874        bytes(                                    -255_, SIGNED, LE) <> "\1;\255;"                                                     or
3875        bytes(                                  -65023_, SIGNED, LE) <> "\1;\2;\255;"                                                  or
3876        bytes(                               -16580095_, SIGNED, LE) <> "\1;\2;\3;\255;"                                               or
3877        bytes(                             -4227661311_, SIGNED, LE) <> "\1;\2;\3;\4;\255;"                                            or
3878        bytes(                          -1077969485311_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\255;"                                         or
3879        bytes(                        -274856364801535_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\255;"                                      or
3880        bytes(                      -70080650589044223_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\255;"                                   or
3881        bytes(                   -17868306377957244415_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\255;"                                or
3882        bytes(                 -4555767348510506941951_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\255;"                             or
3883        bytes(              -1161535555651573584297471_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\255;"                         or
3884        bytes(            -296139435541621092212604415_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\255;"                     or
3885        bytes(          -75500996822128472792334401023_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\255;"                 or
3886        bytes(       -19248716325274098170429970382335_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\255;"             or
3887        bytes(     -4907309430805326670341717530312191_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\255;"         or
3888        bytes(  -1251058555479163957517660836543135231_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\255;"     or
3889        bytes(-318936549548074057581527548243545488895_, SIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\255;" then
3890      writeln("Conversion of bigInteger to little endian byte string does not work correct.");
3891      okay := FALSE;
3892    end if;
3893
3894    if  bytes(                        0_, UNSIGNED, LE) <> "\000;"                                                   or
3895        bytes(                        1_, UNSIGNED, LE) <> "\001;"                                                   or
3896        bytes(                        2_, UNSIGNED, LE) <> "\002;"                                                   or
3897        bytes(                      126_, UNSIGNED, LE) <> "\126;"                                                   or
3898        bytes(                      127_, UNSIGNED, LE) <> "\127;"                                                   or
3899        bytes(                      128_, UNSIGNED, LE) <> "\128;"                                                   or
3900        bytes(                      129_, UNSIGNED, LE) <> "\129;"                                                   or
3901        bytes(                      254_, UNSIGNED, LE) <> "\254;"                                                   or
3902        bytes(                      255_, UNSIGNED, LE) <> "\255;"                                                   or
3903        bytes(                      256_, UNSIGNED, LE) <> "\000;\001;"                                              or
3904        bytes(                      257_, UNSIGNED, LE) <> "\001;\001;"                                              or
3905        bytes(                      510_, UNSIGNED, LE) <> "\254;\001;"                                              or
3906        bytes(                      511_, UNSIGNED, LE) <> "\255;\001;"                                              or
3907        bytes(                      512_, UNSIGNED, LE) <> "\000;\002;"                                              or
3908        bytes(                      513_, UNSIGNED, LE) <> "\001;\002;"                                              or
3909        bytes(                    32254_, UNSIGNED, LE) <> "\254;\125;"                                              or
3910        bytes(                    32255_, UNSIGNED, LE) <> "\255;\125;"                                              or
3911        bytes(                    32256_, UNSIGNED, LE) <> "\000;\126;"                                              or
3912        bytes(                    32257_, UNSIGNED, LE) <> "\001;\126;"                                              or
3913        bytes(                    32510_, UNSIGNED, LE) <> "\254;\126;"                                              or
3914        bytes(                    32511_, UNSIGNED, LE) <> "\255;\126;"                                              or
3915        bytes(                    32512_, UNSIGNED, LE) <> "\000;\127;"                                              or
3916        bytes(                    32513_, UNSIGNED, LE) <> "\001;\127;"                                              or
3917        bytes(                    32766_, UNSIGNED, LE) <> "\254;\127;"                                              or
3918        bytes(                    32767_, UNSIGNED, LE) <> "\255;\127;"                                              or
3919        bytes(                    32768_, UNSIGNED, LE) <> "\000;\128;"                                              or
3920        bytes(                    32769_, UNSIGNED, LE) <> "\001;\128;"                                              or
3921        bytes(                    65023_, UNSIGNED, LE) <> "\255;\253;"                                              or
3922        bytes(                    65024_, UNSIGNED, LE) <> "\000;\254;"                                              or
3923        bytes(                    65279_, UNSIGNED, LE) <> "\255;\254;"                                              or
3924        bytes(                    65280_, UNSIGNED, LE) <> "\000;\255;"                                              or
3925        bytes(                    65535_, UNSIGNED, LE) <> "\255;\255;"                                              or
3926        bytes(                    65536_, UNSIGNED, LE) <> "\000;\000;\001;"                                         or
3927        bytes(                  8388607_, UNSIGNED, LE) <> "\255;\255;\127;"                                         or
3928        bytes(                  8388608_, UNSIGNED, LE) <> "\000;\000;\128;"                                         or
3929        bytes(                 16777215_, UNSIGNED, LE) <> "\255;\255;\255;"                                         or
3930        bytes(                 16777216_, UNSIGNED, LE) <> "\000;\000;\000;\001;"                                    or
3931        bytes(               2147483647_, UNSIGNED, LE) <> "\255;\255;\255;\127;"                                    or
3932        bytes(               2147483648_, UNSIGNED, LE) <> "\000;\000;\000;\128;"                                    or
3933        bytes(               4294967295_, UNSIGNED, LE) <> "\255;\255;\255;\255;"                                    or
3934        bytes(               4294967296_, UNSIGNED, LE) <> "\000;\000;\000;\000;\001;"                               or
3935        bytes(             549755813887_, UNSIGNED, LE) <> "\255;\255;\255;\255;\127;"                               or
3936        bytes(             549755813888_, UNSIGNED, LE) <> "\000;\000;\000;\000;\128;"                               or
3937        bytes(            1099511627775_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;"                               or
3938        bytes(            1099511627776_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\001;"                          or
3939        bytes(          140737488355327_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\127;"                          or
3940        bytes(          140737488355328_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\128;"                          or
3941        bytes(          281474976710655_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;"                          or
3942        bytes(          281474976710656_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\001;"                     or
3943        bytes(        36028797018963967_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\127;"                     or
3944        bytes(        36028797018963968_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\128;"                     or
3945        bytes(        72057594037927935_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;"                     or
3946        bytes(        72057594037927936_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\001;"                or
3947        bytes(      9223372036854775807_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\127;"                or
3948        bytes(      9223372036854775808_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\128;"                or
3949        bytes(     18446744073709551615_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;"                or
3950        bytes(     18446744073709551616_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\001;"           or
3951        bytes(   2361183241434822606847_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\127;"           or
3952        bytes(   2361183241434822606848_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\128;"           or
3953        bytes(   4722366482869645213695_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;"           or
3954        bytes(   4722366482869645213696_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;"      or
3955        bytes( 604462909807314587353087_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;"      or
3956        bytes( 604462909807314587353088_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;"      or
3957        bytes(1208925819614629174706175_, UNSIGNED, LE) <> "\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;"      or
3958        bytes(1208925819614629174706176_, UNSIGNED, LE) <> "\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;" then
3959      writeln("Conversion of bigInteger to unsigned little endian byte string does not work correct.");
3960      okay := FALSE;
3961    end if;
3962
3963    if  bytes(                                     258_, UNSIGNED, LE) <> "\2;\1;"                                                      or
3964        bytes(                                   66051_, UNSIGNED, LE) <> "\3;\2;\1;"                                                   or
3965        bytes(                                16909060_, UNSIGNED, LE) <> "\4;\3;\2;\1;"                                                or
3966        bytes(                              4328719365_, UNSIGNED, LE) <> "\5;\4;\3;\2;\1;"                                             or
3967        bytes(                           1108152157446_, UNSIGNED, LE) <> "\6;\5;\4;\3;\2;\1;"                                          or
3968        bytes(                         283686952306183_, UNSIGNED, LE) <> "\7;\6;\5;\4;\3;\2;\1;"                                       or
3969        bytes(                       72623859790382856_, UNSIGNED, LE) <> "\8;\7;\6;\5;\4;\3;\2;\1;"                                    or
3970        bytes(                    18591708106338011145_, UNSIGNED, LE) <> "\9;\8;\7;\6;\5;\4;\3;\2;\1;"                                 or
3971        bytes(                  4759477275222530853130_, UNSIGNED, LE) <> "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                             or
3972        bytes(               1218426182456967898401291_, UNSIGNED, LE) <> "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                         or
3973        bytes(             311917102708983781990730508_, UNSIGNED, LE) <> "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                     or
3974        bytes(           79850778293499848189627010061_, UNSIGNED, LE) <> "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"                 or
3975        bytes(        20441799243135961136544514575630_, UNSIGNED, LE) <> "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"             or
3976        bytes(      5233100606242806050955395731361295_, UNSIGNED, LE) <> "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"         or
3977        bytes(   1339673755198158349044581307228491536_, UNSIGNED, LE) <> "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;"     or
3978        bytes( 342956481330728537355412814650493833233_, UNSIGNED, LE) <> "\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;" or
3979        bytes(                                     513_, UNSIGNED, LE) <> "\1;\2;"                                                      or
3980        bytes(                                  197121_, UNSIGNED, LE) <> "\1;\2;\3;"                                                   or
3981        bytes(                                67305985_, UNSIGNED, LE) <> "\1;\2;\3;\4;"                                                or
3982        bytes(                             21542142465_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;"                                             or
3983        bytes(                           6618611909121_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;"                                          or
3984        bytes(                        1976943448883713_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;"                                       or
3985        bytes(                      578437695752307201_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;"                                    or
3986        bytes(                   166599134359138271745_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;"                                 or
3987        bytes(                 47390263963055590408705_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;"                             or
3988        bytes(              13345574279723976512176641_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;"                         or
3989        bytes(            3727165692135864801209549313_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;"                     or
3990        bytes(         1033693278377572253517280903681_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;"                 or
3991        bytes(       284987427729500958188778798907905_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;"             or
3992        bytes(     78169440305751915386146223737209345_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;"         or
3993        bytes(  21345817372864405881847059188222722561_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;"     or
3994        bytes(5806146055028818284759215385528282317313_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;" then
3995      writeln("Conversion of bigInteger to unsigned little endian byte string does not work correct.");
3996      okay := FALSE;
3997    end if;
3998
3999    if  bytes(                                    65281_, UNSIGNED, LE) <> "\1;\255;"                                                     or
4000        bytes(                                 16711938_, UNSIGNED, LE) <> "\2;\1;\255;"                                                  or
4001        bytes(                               4278256131_, UNSIGNED, LE) <> "\3;\2;\1;\255;"                                               or
4002        bytes(                            1095233569540_, UNSIGNED, LE) <> "\4;\3;\2;\1;\255;"                                            or
4003        bytes(                          280379793802245_, UNSIGNED, LE) <> "\5;\4;\3;\2;\1;\255;"                                         or
4004        bytes(                        71777227213374726_, UNSIGNED, LE) <> "\6;\5;\4;\3;\2;\1;\255;"                                      or
4005        bytes(                     18374970166623929863_, UNSIGNED, LE) <> "\7;\6;\5;\4;\3;\2;\1;\255;"                                   or
4006        bytes(                   4703992362655726044936_, UNSIGNED, LE) <> "\8;\7;\6;\5;\4;\3;\2;\1;\255;"                                or
4007        bytes(                1204222044839865867503625_, UNSIGNED, LE) <> "\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                             or
4008        bytes(              308280843479005662080928010_, UNSIGNED, LE) <> "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                         or
4009        bytes(            78919895930625449492717570571_, UNSIGNED, LE) <> "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                     or
4010        bytes(         20203493358240115070135698066188_, UNSIGNED, LE) <> "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"                 or
4011        bytes(       5172094299709469457954738704944141_, UNSIGNED, LE) <> "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"             or
4012        bytes(    1324056140725624181236413108465700110_, UNSIGNED, LE) <> "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"         or
4013        bytes(  338958372025759790396521755767219228175_, UNSIGNED, LE) <> "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;"     or
4014        bytes(86773343238594506341509569476408122412816_, UNSIGNED, LE) <> "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;" or
4015        bytes(                                    65281_, UNSIGNED, LE) <> "\1;\255;"                                                     or
4016        bytes(                                 16712193_, UNSIGNED, LE) <> "\1;\2;\255;"                                                  or
4017        bytes(                               4278387201_, UNSIGNED, LE) <> "\1;\2;\3;\255;"                                               or
4018        bytes(                            1095283966465_, UNSIGNED, LE) <> "\1;\2;\3;\4;\255;"                                            or
4019        bytes(                          280397007225345_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\255;"                                         or
4020        bytes(                        71782737673126401_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\255;"                                      or
4021        bytes(                     18376663423120507393_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\255;"                                   or
4022        bytes(                   4704498176491687969281_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\255;"                                or
4023        bytes(                1204370052266118667764225_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\255;"                             or
4024        bytes(              308323474265693495140483585_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\255;"                         or
4025        bytes(            78932023078722716501331345921_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\255;"                     or
4026        bytes(         20206908606829541951154916884993_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\255;"                 or
4027        bytes(       5173048142209553530360066358837761_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\255;"             or
4028        bytes(    1324320686354110546233465342750032385_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\255;"         or
4029        bytes(  339031308365459299505856946595225076225_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\255;"     or
4030        bytes(86793349382212172589042371954289116643841_, UNSIGNED, LE) <> "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\255;" then
4031      writeln("2 Conversion of bigInteger to unsigned little endian byte string does not work correct.");
4032      okay := FALSE;
4033    end if;
4034
4035    if  bytes( 1414743380_,                    SIGNED,   LE) <> "TEST"            or
4036        bytes( 1497451343_,                    SIGNED,   LE) <> "OKAY"            or
4037        bytes(-24410084911287995403745268624_, SIGNED,   LE) <> "plus-minus ±"    or
4038        bytes( 54818077602976342189798681712_, SIGNED,   LE) <> "plus-minus ±\0;" or
4039        bytes( 54818077602976342189798681712_, UNSIGNED, LE) <> "plus-minus ±"    or
4040        bytes( 8316866959935304777_,           UNSIGNED, LE) <> "It works"        then
4041      writeln("Conversion of bigInteger to byte string does not work correct.");
4042      okay := FALSE;
4043    end if;
4044
4045    if  not raisesRangeError(bytes(-1_, UNSIGNED, LE)) then
4046      writeln("Conversion of negative bigInteger to unsigned big endian byte string does not raise RANGE_ERROR.");
4047      okay := FALSE;
4048    end if;
4049
4050    if okay then
4051      writeln("Conversion of bigInteger to little endian byte string works correct.");
4052    else
4053      writeln(" ***** Conversion of bigInteger to little endian byte string does not work correct.");
4054      writeln;
4055    end if;
4056  end func;
4057
4058
4059const proc: chkBytesBe2BigInt is func
4060  local
4061    var boolean: okay is TRUE;
4062  begin
4063    if  bytes2BigInt("\254;\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <> -1208925819614629174706177_ or
4064        bytes2BigInt("\255;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <> -1208925819614629174706176_ or
4065        bytes2BigInt("\255;\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>  -604462909807314587353089_ or
4066        bytes2BigInt(     "\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>  -604462909807314587353088_ or
4067        bytes2BigInt(     "\254;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>    -4722366482869645213697_ or
4068        bytes2BigInt(     "\255;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>    -4722366482869645213696_ or
4069        bytes2BigInt(     "\255;\127;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>    -2361183241434822606849_ or
4070        bytes2BigInt(          "\128;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>    -2361183241434822606848_ or
4071        bytes2BigInt(          "\254;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>      -18446744073709551617_ or
4072        bytes2BigInt(          "\255;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>      -18446744073709551616_ or
4073        bytes2BigInt(          "\255;\127;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>       -9223372036854775809_ or
4074        bytes2BigInt(               "\128;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>       -9223372036854775808_ or
4075        bytes2BigInt(               "\254;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>         -72057594037927937_ or
4076        bytes2BigInt(               "\255;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>         -72057594037927936_ or
4077        bytes2BigInt(               "\255;\127;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>         -36028797018963969_ or
4078        bytes2BigInt(                    "\128;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>         -36028797018963968_ or
4079        bytes2BigInt(                    "\254;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>           -281474976710657_ or
4080        bytes2BigInt(                    "\255;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>           -281474976710656_ or
4081        bytes2BigInt(                    "\255;\127;\255;\255;\255;\255;\255;", SIGNED, BE) <>           -140737488355329_ or
4082        bytes2BigInt(                         "\128;\000;\000;\000;\000;\000;", SIGNED, BE) <>           -140737488355328_ or
4083        bytes2BigInt(                         "\254;\255;\255;\255;\255;\255;", SIGNED, BE) <>             -1099511627777_ or
4084        bytes2BigInt(                         "\255;\000;\000;\000;\000;\000;", SIGNED, BE) <>             -1099511627776_ or
4085        bytes2BigInt(                         "\255;\127;\255;\255;\255;\255;", SIGNED, BE) <>              -549755813889_ or
4086        bytes2BigInt(                              "\128;\000;\000;\000;\000;", SIGNED, BE) <>              -549755813888_ or
4087        bytes2BigInt(                              "\254;\255;\255;\255;\255;", SIGNED, BE) <>                -4294967297_ or
4088        bytes2BigInt(                              "\255;\000;\000;\000;\000;", SIGNED, BE) <>                -4294967296_ or
4089        bytes2BigInt(                              "\255;\127;\255;\255;\255;", SIGNED, BE) <>                -2147483649_ or
4090        bytes2BigInt(                                   "\128;\000;\000;\000;", SIGNED, BE) <>                -2147483648_ or
4091        bytes2BigInt(                                   "\254;\255;\255;\255;", SIGNED, BE) <>                  -16777217_ or
4092        bytes2BigInt(                                   "\255;\000;\000;\000;", SIGNED, BE) <>                  -16777216_ or
4093        bytes2BigInt(                                   "\255;\127;\255;\255;", SIGNED, BE) <>                   -8388609_ or
4094        bytes2BigInt(                                        "\128;\000;\000;", SIGNED, BE) <>                   -8388608_ or
4095        bytes2BigInt(                                        "\254;\255;\255;", SIGNED, BE) <>                     -65537_ or
4096        bytes2BigInt(                                        "\255;\000;\000;", SIGNED, BE) <>                     -65536_ or
4097        bytes2BigInt(                                        "\255;\000;\255;", SIGNED, BE) <>                     -65281_ or
4098        bytes2BigInt(                                        "\255;\001;\000;", SIGNED, BE) <>                     -65280_ or
4099        bytes2BigInt(                                        "\255;\001;\255;", SIGNED, BE) <>                     -65025_ or
4100        bytes2BigInt(                                        "\255;\002;\000;", SIGNED, BE) <>                     -65024_ or
4101        bytes2BigInt(                                        "\255;\127;\254;", SIGNED, BE) <>                     -32770_ or
4102        bytes2BigInt(                                        "\255;\127;\255;", SIGNED, BE) <>                     -32769_ or
4103        bytes2BigInt(                                             "\128;\000;", SIGNED, BE) <>                     -32768_ or
4104        bytes2BigInt(                                             "\128;\001;", SIGNED, BE) <>                     -32767_ or
4105        bytes2BigInt(                                             "\128;\254;", SIGNED, BE) <>                     -32514_ or
4106        bytes2BigInt(                                             "\128;\255;", SIGNED, BE) <>                     -32513_ or
4107        bytes2BigInt(                                             "\129;\000;", SIGNED, BE) <>                     -32512_ or
4108        bytes2BigInt(                                             "\129;\001;", SIGNED, BE) <>                     -32511_ or
4109        bytes2BigInt(                                             "\129;\254;", SIGNED, BE) <>                     -32258_ or
4110        bytes2BigInt(                                             "\129;\255;", SIGNED, BE) <>                     -32257_ or
4111        bytes2BigInt(                                             "\130;\000;", SIGNED, BE) <>                     -32256_ or
4112        bytes2BigInt(                                             "\130;\001;", SIGNED, BE) <>                     -32255_ or
4113        bytes2BigInt(                                             "\253;\254;", SIGNED, BE) <>                       -514_ or
4114        bytes2BigInt(                                             "\253;\255;", SIGNED, BE) <>                       -513_ or
4115        bytes2BigInt(                                             "\254;\000;", SIGNED, BE) <>                       -512_ or
4116        bytes2BigInt(                                             "\254;\001;", SIGNED, BE) <>                       -511_ or
4117        bytes2BigInt(                                             "\254;\254;", SIGNED, BE) <>                       -258_ or
4118        bytes2BigInt(                                             "\254;\255;", SIGNED, BE) <>                       -257_ or
4119        bytes2BigInt(                                             "\255;\000;", SIGNED, BE) <>                       -256_ or
4120        bytes2BigInt(                                             "\255;\001;", SIGNED, BE) <>                       -255_ or
4121        bytes2BigInt(                                             "\255;\126;", SIGNED, BE) <>                       -130_ or
4122        bytes2BigInt(                                             "\255;\127;", SIGNED, BE) <>                       -129_ or
4123        bytes2BigInt(                                                  "\128;", SIGNED, BE) <>                       -128_ or
4124        bytes2BigInt(                                                  "\129;", SIGNED, BE) <>                       -127_ or
4125        bytes2BigInt(                                                  "\254;", SIGNED, BE) <>                         -2_ or
4126        bytes2BigInt(                                                  "\255;", SIGNED, BE) <>                         -1_ or
4127        bytes2BigInt(                                                  "\000;", SIGNED, BE) <>                          0_ or
4128        bytes2BigInt(                                                  "\001;", SIGNED, BE) <>                          1_ or
4129        bytes2BigInt(                                                  "\002;", SIGNED, BE) <>                          2_ or
4130        bytes2BigInt(                                                  "\126;", SIGNED, BE) <>                        126_ or
4131        bytes2BigInt(                                                  "\127;", SIGNED, BE) <>                        127_ or
4132        bytes2BigInt(                                             "\000;\128;", SIGNED, BE) <>                        128_ or
4133        bytes2BigInt(                                             "\000;\129;", SIGNED, BE) <>                        129_ or
4134        bytes2BigInt(                                             "\000;\254;", SIGNED, BE) <>                        254_ or
4135        bytes2BigInt(                                             "\000;\255;", SIGNED, BE) <>                        255_ or
4136        bytes2BigInt(                                             "\001;\000;", SIGNED, BE) <>                        256_ or
4137        bytes2BigInt(                                             "\001;\001;", SIGNED, BE) <>                        257_ or
4138        bytes2BigInt(                                             "\001;\254;", SIGNED, BE) <>                        510_ or
4139        bytes2BigInt(                                             "\001;\255;", SIGNED, BE) <>                        511_ or
4140        bytes2BigInt(                                             "\002;\000;", SIGNED, BE) <>                        512_ or
4141        bytes2BigInt(                                             "\002;\001;", SIGNED, BE) <>                        513_ or
4142        bytes2BigInt(                                             "\125;\254;", SIGNED, BE) <>                      32254_ or
4143        bytes2BigInt(                                             "\125;\255;", SIGNED, BE) <>                      32255_ or
4144        bytes2BigInt(                                             "\126;\000;", SIGNED, BE) <>                      32256_ or
4145        bytes2BigInt(                                             "\126;\001;", SIGNED, BE) <>                      32257_ or
4146        bytes2BigInt(                                             "\126;\254;", SIGNED, BE) <>                      32510_ or
4147        bytes2BigInt(                                             "\126;\255;", SIGNED, BE) <>                      32511_ or
4148        bytes2BigInt(                                             "\127;\000;", SIGNED, BE) <>                      32512_ or
4149        bytes2BigInt(                                             "\127;\001;", SIGNED, BE) <>                      32513_ or
4150        bytes2BigInt(                                             "\127;\254;", SIGNED, BE) <>                      32766_ or
4151        bytes2BigInt(                                             "\127;\255;", SIGNED, BE) <>                      32767_ or
4152        bytes2BigInt(                                        "\000;\128;\000;", SIGNED, BE) <>                      32768_ or
4153        bytes2BigInt(                                        "\000;\128;\001;", SIGNED, BE) <>                      32769_ or
4154        bytes2BigInt(                                        "\000;\253;\255;", SIGNED, BE) <>                      65023_ or
4155        bytes2BigInt(                                        "\000;\254;\000;", SIGNED, BE) <>                      65024_ or
4156        bytes2BigInt(                                        "\000;\254;\255;", SIGNED, BE) <>                      65279_ or
4157        bytes2BigInt(                                        "\000;\255;\000;", SIGNED, BE) <>                      65280_ or
4158        bytes2BigInt(                                        "\000;\255;\255;", SIGNED, BE) <>                      65535_ or
4159        bytes2BigInt(                                        "\001;\000;\000;", SIGNED, BE) <>                      65536_ or
4160        bytes2BigInt(                                        "\127;\255;\255;", SIGNED, BE) <>                    8388607_ or
4161        bytes2BigInt(                                   "\000;\128;\000;\000;", SIGNED, BE) <>                    8388608_ or
4162        bytes2BigInt(                                   "\000;\255;\255;\255;", SIGNED, BE) <>                   16777215_ or
4163        bytes2BigInt(                                   "\001;\000;\000;\000;", SIGNED, BE) <>                   16777216_ or
4164        bytes2BigInt(                                   "\127;\255;\255;\255;", SIGNED, BE) <>                 2147483647_ or
4165        bytes2BigInt(                              "\000;\128;\000;\000;\000;", SIGNED, BE) <>                 2147483648_ or
4166        bytes2BigInt(                              "\000;\255;\255;\255;\255;", SIGNED, BE) <>                 4294967295_ or
4167        bytes2BigInt(                              "\001;\000;\000;\000;\000;", SIGNED, BE) <>                 4294967296_ or
4168        bytes2BigInt(                              "\127;\255;\255;\255;\255;", SIGNED, BE) <>               549755813887_ or
4169        bytes2BigInt(                         "\000;\128;\000;\000;\000;\000;", SIGNED, BE) <>               549755813888_ or
4170        bytes2BigInt(                         "\000;\255;\255;\255;\255;\255;", SIGNED, BE) <>              1099511627775_ or
4171        bytes2BigInt(                         "\001;\000;\000;\000;\000;\000;", SIGNED, BE) <>              1099511627776_ or
4172        bytes2BigInt(                         "\127;\255;\255;\255;\255;\255;", SIGNED, BE) <>            140737488355327_ or
4173        bytes2BigInt(                    "\000;\128;\000;\000;\000;\000;\000;", SIGNED, BE) <>            140737488355328_ or
4174        bytes2BigInt(                    "\000;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>            281474976710655_ or
4175        bytes2BigInt(                    "\001;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>            281474976710656_ or
4176        bytes2BigInt(                    "\127;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>          36028797018963967_ or
4177        bytes2BigInt(               "\000;\128;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>          36028797018963968_ or
4178        bytes2BigInt(               "\000;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>          72057594037927935_ or
4179        bytes2BigInt(               "\001;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>          72057594037927936_ or
4180        bytes2BigInt(               "\127;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>        9223372036854775807_ or
4181        bytes2BigInt(          "\000;\128;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>        9223372036854775808_ or
4182        bytes2BigInt(          "\000;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>       18446744073709551615_ or
4183        bytes2BigInt(          "\001;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>       18446744073709551616_ or
4184        bytes2BigInt(          "\127;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>     2361183241434822606847_ or
4185        bytes2BigInt(     "\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>     2361183241434822606848_ or
4186        bytes2BigInt(     "\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>     4722366482869645213695_ or
4187        bytes2BigInt(     "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>     4722366482869645213696_ or
4188        bytes2BigInt(     "\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>   604462909807314587353087_ or
4189        bytes2BigInt("\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>   604462909807314587353088_ or
4190        bytes2BigInt("\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>  1208925819614629174706175_ or
4191        bytes2BigInt("\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>  1208925819614629174706176_ then
4192      writeln("Conversion of big endian byte string to bigInteger does not work correct.");
4193      okay := FALSE;
4194    end if;
4195
4196    if  bytes2BigInt(                                                     "\1;\2;", SIGNED, BE) <>                                      258_ or
4197        bytes2BigInt(                                                  "\1;\2;\3;", SIGNED, BE) <>                                    66051_ or
4198        bytes2BigInt(                                               "\1;\2;\3;\4;", SIGNED, BE) <>                                 16909060_ or
4199        bytes2BigInt(                                            "\1;\2;\3;\4;\5;", SIGNED, BE) <>                               4328719365_ or
4200        bytes2BigInt(                                         "\1;\2;\3;\4;\5;\6;", SIGNED, BE) <>                            1108152157446_ or
4201        bytes2BigInt(                                      "\1;\2;\3;\4;\5;\6;\7;", SIGNED, BE) <>                          283686952306183_ or
4202        bytes2BigInt(                                   "\1;\2;\3;\4;\5;\6;\7;\8;", SIGNED, BE) <>                        72623859790382856_ or
4203        bytes2BigInt(                                "\1;\2;\3;\4;\5;\6;\7;\8;\9;", SIGNED, BE) <>                     18591708106338011145_ or
4204        bytes2BigInt(                            "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;", SIGNED, BE) <>                   4759477275222530853130_ or
4205        bytes2BigInt(                        "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;", SIGNED, BE) <>                1218426182456967898401291_ or
4206        bytes2BigInt(                    "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;", SIGNED, BE) <>              311917102708983781990730508_ or
4207        bytes2BigInt(                "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;", SIGNED, BE) <>            79850778293499848189627010061_ or
4208        bytes2BigInt(            "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;", SIGNED, BE) <>         20441799243135961136544514575630_ or
4209        bytes2BigInt(        "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;", SIGNED, BE) <>       5233100606242806050955395731361295_ or
4210        bytes2BigInt(    "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;", SIGNED, BE) <>    1339673755198158349044581307228491536_ or
4211        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;", SIGNED, BE) <>  342956481330728537355412814650493833233_ or
4212        bytes2BigInt(                                                     "\2;\1;", SIGNED, BE) <>                                      513_ or
4213        bytes2BigInt(                                                  "\3;\2;\1;", SIGNED, BE) <>                                   197121_ or
4214        bytes2BigInt(                                               "\4;\3;\2;\1;", SIGNED, BE) <>                                 67305985_ or
4215        bytes2BigInt(                                            "\5;\4;\3;\2;\1;", SIGNED, BE) <>                              21542142465_ or
4216        bytes2BigInt(                                         "\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                            6618611909121_ or
4217        bytes2BigInt(                                      "\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                         1976943448883713_ or
4218        bytes2BigInt(                                   "\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                       578437695752307201_ or
4219        bytes2BigInt(                                "\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                    166599134359138271745_ or
4220        bytes2BigInt(                            "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                  47390263963055590408705_ or
4221        bytes2BigInt(                        "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>               13345574279723976512176641_ or
4222        bytes2BigInt(                    "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>             3727165692135864801209549313_ or
4223        bytes2BigInt(                "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>          1033693278377572253517280903681_ or
4224        bytes2BigInt(            "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>        284987427729500958188778798907905_ or
4225        bytes2BigInt(        "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>      78169440305751915386146223737209345_ or
4226        bytes2BigInt(    "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>   21345817372864405881847059188222722561_ or
4227        bytes2BigInt("\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <> 5806146055028818284759215385528282317313_ then
4228      writeln("Conversion of big endian byte string to bigInteger does not work correct.");
4229      okay := FALSE;
4230    end if;
4231
4232    if  bytes2BigInt(                                                    "\255;\1;", SIGNED, BE) <>                                     -255_ or
4233        bytes2BigInt(                                                 "\255;\1;\2;", SIGNED, BE) <>                                   -65278_ or
4234        bytes2BigInt(                                              "\255;\1;\2;\3;", SIGNED, BE) <>                                -16711165_ or
4235        bytes2BigInt(                                           "\255;\1;\2;\3;\4;", SIGNED, BE) <>                              -4278058236_ or
4236        bytes2BigInt(                                        "\255;\1;\2;\3;\4;\5;", SIGNED, BE) <>                           -1095182908411_ or
4237        bytes2BigInt(                                     "\255;\1;\2;\3;\4;\5;\6;", SIGNED, BE) <>                         -280366824553210_ or
4238        bytes2BigInt(                                  "\255;\1;\2;\3;\4;\5;\6;\7;", SIGNED, BE) <>                       -71773907085621753_ or
4239        bytes2BigInt(                               "\255;\1;\2;\3;\4;\5;\6;\7;\8;", SIGNED, BE) <>                    -18374120213919168760_ or
4240        bytes2BigInt(                            "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;", SIGNED, BE) <>                  -4703774774763307202551_ or
4241        bytes2BigInt(                        "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;", SIGNED, BE) <>               -1204166342339406643853046_ or
4242        bytes2BigInt(                    "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;", SIGNED, BE) <>             -308266583638888100826379765_ or
4243        bytes2BigInt(                "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;", SIGNED, BE) <>           -78916245411555353811553219828_ or
4244        bytes2BigInt(            "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;", SIGNED, BE) <>        -20202558825358170575757624275955_ or
4245        bytes2BigInt(        "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;", SIGNED, BE) <>      -5171855059291691667393951814644466_ or
4246        bytes2BigInt(    "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;", SIGNED, BE) <>   -1323994895178673066852851664548983281_ or
4247        bytes2BigInt("\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;", SIGNED, BE) <> -338942693165740305114330026124539719920_ or
4248        bytes2BigInt(                                                    "\255;\1;", SIGNED, BE) <>                                     -255_ or
4249        bytes2BigInt(                                                 "\255;\2;\1;", SIGNED, BE) <>                                   -65023_ or
4250        bytes2BigInt(                                              "\255;\3;\2;\1;", SIGNED, BE) <>                                -16580095_ or
4251        bytes2BigInt(                                           "\255;\4;\3;\2;\1;", SIGNED, BE) <>                              -4227661311_ or
4252        bytes2BigInt(                                        "\255;\5;\4;\3;\2;\1;", SIGNED, BE) <>                           -1077969485311_ or
4253        bytes2BigInt(                                     "\255;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                         -274856364801535_ or
4254        bytes2BigInt(                                  "\255;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                       -70080650589044223_ or
4255        bytes2BigInt(                               "\255;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                    -17868306377957244415_ or
4256        bytes2BigInt(                            "\255;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>                  -4555767348510506941951_ or
4257        bytes2BigInt(                        "\255;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>               -1161535555651573584297471_ or
4258        bytes2BigInt(                    "\255;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>             -296139435541621092212604415_ or
4259        bytes2BigInt(                "\255;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>           -75500996822128472792334401023_ or
4260        bytes2BigInt(            "\255;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>        -19248716325274098170429970382335_ or
4261        bytes2BigInt(        "\255;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>      -4907309430805326670341717530312191_ or
4262        bytes2BigInt(    "\255;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <>   -1251058555479163957517660836543135231_ or
4263        bytes2BigInt("\255;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, BE) <> -318936549548074057581527548243545488895_ then
4264      writeln("Conversion of big endian byte string to bigInteger does not work correct.");
4265      okay := FALSE;
4266    end if;
4267
4268    if  bytes2BigInt("\255;\128;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <> -2361183241434822606848_ or
4269        bytes2BigInt("\255;\255;\127;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>    -9223372036854775809_ or
4270        bytes2BigInt("\255;\255;\128;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>    -9223372036854775808_ or
4271        bytes2BigInt("\255;\255;\128;\000;\000;\000;\000;\000;\000;\001;", SIGNED, BE) <>    -9223372036854775807_ or
4272        bytes2BigInt("\255;\255;\255;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>      -72057594037927936_ or
4273        bytes2BigInt("\255;\255;\255;\127;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>      -36028797018963969_ or
4274        bytes2BigInt("\255;\255;\255;\128;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>      -36028797018963968_ or
4275        bytes2BigInt(                         "\255;\255;\255;\255;\127;", SIGNED, BE) <>                    -129_ or
4276        bytes2BigInt(                              "\255;\255;\255;\127;", SIGNED, BE) <>                    -129_ or
4277        bytes2BigInt(                                   "\255;\255;\127;", SIGNED, BE) <>                    -129_ or
4278        bytes2BigInt(                         "\255;\255;\255;\255;\128;", SIGNED, BE) <>                    -128_ or
4279        bytes2BigInt(                              "\255;\255;\255;\128;", SIGNED, BE) <>                    -128_ or
4280        bytes2BigInt(                                   "\255;\255;\128;", SIGNED, BE) <>                    -128_ or
4281        bytes2BigInt(                                        "\255;\128;", SIGNED, BE) <>                    -128_ or
4282        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\254;", SIGNED, BE) <>                      -2_ or
4283        bytes2BigInt(                         "\255;\255;\255;\255;\254;", SIGNED, BE) <>                      -2_ or
4284        bytes2BigInt(                              "\255;\255;\255;\254;", SIGNED, BE) <>                      -2_ or
4285        bytes2BigInt(                                   "\255;\255;\254;", SIGNED, BE) <>                      -2_ or
4286        bytes2BigInt(                                        "\255;\254;", SIGNED, BE) <>                      -2_ or
4287        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>                      -1_ or
4288        bytes2BigInt(                         "\255;\255;\255;\255;\255;", SIGNED, BE) <>                      -1_ or
4289        bytes2BigInt(                              "\255;\255;\255;\255;", SIGNED, BE) <>                      -1_ or
4290        bytes2BigInt(                                   "\255;\255;\255;", SIGNED, BE) <>                      -1_ or
4291        bytes2BigInt(                                        "\255;\255;", SIGNED, BE) <>                      -1_ or
4292        bytes2BigInt(                                                  "", SIGNED, BE) <>                       0_ or
4293        bytes2BigInt(                                        "\000;\000;", SIGNED, BE) <>                       0_ or
4294        bytes2BigInt(                                   "\000;\000;\000;", SIGNED, BE) <>                       0_ or
4295        bytes2BigInt(                              "\000;\000;\000;\000;", SIGNED, BE) <>                       0_ or
4296        bytes2BigInt(                         "\000;\000;\000;\000;\000;", SIGNED, BE) <>                       0_ or
4297        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>                       0_ or
4298        bytes2BigInt(                                        "\000;\001;", SIGNED, BE) <>                       1_ or
4299        bytes2BigInt(                                   "\000;\000;\001;", SIGNED, BE) <>                       1_ or
4300        bytes2BigInt(                              "\000;\000;\000;\001;", SIGNED, BE) <>                       1_ or
4301        bytes2BigInt(                         "\000;\000;\000;\000;\001;", SIGNED, BE) <>                       1_ or
4302        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;", SIGNED, BE) <>                       1_ or
4303        bytes2BigInt(                                        "\000;\127;", SIGNED, BE) <>                     127_ or
4304        bytes2BigInt(                                   "\000;\000;\127;", SIGNED, BE) <>                     127_ or
4305        bytes2BigInt(                              "\000;\000;\000;\127;", SIGNED, BE) <>                     127_ or
4306        bytes2BigInt(                         "\000;\000;\000;\000;\127;", SIGNED, BE) <>                     127_ or
4307        bytes2BigInt(                                   "\000;\000;\128;", SIGNED, BE) <>                     128_ or
4308        bytes2BigInt(                              "\000;\000;\000;\128;", SIGNED, BE) <>                     128_ or
4309        bytes2BigInt(                         "\000;\000;\000;\000;\128;", SIGNED, BE) <>                     128_ or
4310        bytes2BigInt("\000;\000;\000;\127;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>       36028797018963967_ or
4311        bytes2BigInt("\000;\000;\000;\128;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>       36028797018963968_ or
4312        bytes2BigInt("\000;\000;\000;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>       72057594037927935_ or
4313        bytes2BigInt("\000;\000;\127;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>     9223372036854775807_ or
4314        bytes2BigInt("\000;\000;\128;\000;\000;\000;\000;\000;\000;\000;", SIGNED, BE) <>     9223372036854775808_ or
4315        bytes2BigInt("\000;\127;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, BE) <>  2361183241434822606847_ then
4316      writeln("Conversion of big endian byte string to bigInteger does not work correct.");
4317      okay := FALSE;
4318    end if;
4319
4320    if  bytes2BigInt(                                                  "\000;", UNSIGNED, BE) <>                         0_ or
4321        bytes2BigInt(                                                  "\001;", UNSIGNED, BE) <>                         1_ or
4322        bytes2BigInt(                                                  "\002;", UNSIGNED, BE) <>                         2_ or
4323        bytes2BigInt(                                                  "\126;", UNSIGNED, BE) <>                       126_ or
4324        bytes2BigInt(                                                  "\127;", UNSIGNED, BE) <>                       127_ or
4325        bytes2BigInt(                                             "\000;\128;", UNSIGNED, BE) <>                       128_ or
4326        bytes2BigInt(                                             "\000;\129;", UNSIGNED, BE) <>                       129_ or
4327        bytes2BigInt(                                             "\000;\254;", UNSIGNED, BE) <>                       254_ or
4328        bytes2BigInt(                                             "\000;\255;", UNSIGNED, BE) <>                       255_ or
4329        bytes2BigInt(                                             "\001;\000;", UNSIGNED, BE) <>                       256_ or
4330        bytes2BigInt(                                             "\001;\001;", UNSIGNED, BE) <>                       257_ or
4331        bytes2BigInt(                                             "\001;\254;", UNSIGNED, BE) <>                       510_ or
4332        bytes2BigInt(                                             "\001;\255;", UNSIGNED, BE) <>                       511_ or
4333        bytes2BigInt(                                             "\002;\000;", UNSIGNED, BE) <>                       512_ or
4334        bytes2BigInt(                                             "\002;\001;", UNSIGNED, BE) <>                       513_ or
4335        bytes2BigInt(                                             "\125;\254;", UNSIGNED, BE) <>                     32254_ or
4336        bytes2BigInt(                                             "\125;\255;", UNSIGNED, BE) <>                     32255_ or
4337        bytes2BigInt(                                             "\126;\000;", UNSIGNED, BE) <>                     32256_ or
4338        bytes2BigInt(                                             "\126;\001;", UNSIGNED, BE) <>                     32257_ or
4339        bytes2BigInt(                                             "\126;\254;", UNSIGNED, BE) <>                     32510_ or
4340        bytes2BigInt(                                             "\126;\255;", UNSIGNED, BE) <>                     32511_ or
4341        bytes2BigInt(                                             "\127;\000;", UNSIGNED, BE) <>                     32512_ or
4342        bytes2BigInt(                                             "\127;\001;", UNSIGNED, BE) <>                     32513_ or
4343        bytes2BigInt(                                             "\127;\254;", UNSIGNED, BE) <>                     32766_ or
4344        bytes2BigInt(                                             "\127;\255;", UNSIGNED, BE) <>                     32767_ or
4345        bytes2BigInt(                                        "\000;\128;\000;", UNSIGNED, BE) <>                     32768_ or
4346        bytes2BigInt(                                        "\000;\128;\001;", UNSIGNED, BE) <>                     32769_ or
4347        bytes2BigInt(                                        "\000;\253;\255;", UNSIGNED, BE) <>                     65023_ or
4348        bytes2BigInt(                                        "\000;\254;\000;", UNSIGNED, BE) <>                     65024_ or
4349        bytes2BigInt(                                        "\000;\254;\255;", UNSIGNED, BE) <>                     65279_ or
4350        bytes2BigInt(                                        "\000;\255;\000;", UNSIGNED, BE) <>                     65280_ or
4351        bytes2BigInt(                                        "\000;\255;\255;", UNSIGNED, BE) <>                     65535_ or
4352        bytes2BigInt(                                        "\001;\000;\000;", UNSIGNED, BE) <>                     65536_ or
4353        bytes2BigInt(                                        "\127;\255;\255;", UNSIGNED, BE) <>                   8388607_ or
4354        bytes2BigInt(                                   "\000;\128;\000;\000;", UNSIGNED, BE) <>                   8388608_ or
4355        bytes2BigInt(                                   "\000;\255;\255;\255;", UNSIGNED, BE) <>                  16777215_ or
4356        bytes2BigInt(                                   "\001;\000;\000;\000;", UNSIGNED, BE) <>                  16777216_ or
4357        bytes2BigInt(                                   "\127;\255;\255;\255;", UNSIGNED, BE) <>                2147483647_ or
4358        bytes2BigInt(                              "\000;\128;\000;\000;\000;", UNSIGNED, BE) <>                2147483648_ or
4359        bytes2BigInt(                              "\000;\255;\255;\255;\255;", UNSIGNED, BE) <>                4294967295_ or
4360        bytes2BigInt(                              "\001;\000;\000;\000;\000;", UNSIGNED, BE) <>                4294967296_ or
4361        bytes2BigInt(                              "\127;\255;\255;\255;\255;", UNSIGNED, BE) <>              549755813887_ or
4362        bytes2BigInt(                         "\000;\128;\000;\000;\000;\000;", UNSIGNED, BE) <>              549755813888_ or
4363        bytes2BigInt(                         "\000;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>             1099511627775_ or
4364        bytes2BigInt(                         "\001;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>             1099511627776_ or
4365        bytes2BigInt(                         "\127;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>           140737488355327_ or
4366        bytes2BigInt(                    "\000;\128;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>           140737488355328_ or
4367        bytes2BigInt(                    "\000;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>           281474976710655_ or
4368        bytes2BigInt(                    "\001;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>           281474976710656_ or
4369        bytes2BigInt(                    "\127;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>         36028797018963967_ or
4370        bytes2BigInt(               "\000;\128;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>         36028797018963968_ or
4371        bytes2BigInt(               "\000;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>         72057594037927935_ or
4372        bytes2BigInt(               "\001;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>         72057594037927936_ or
4373        bytes2BigInt(               "\127;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>       9223372036854775807_ or
4374        bytes2BigInt(          "\000;\128;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>       9223372036854775808_ or
4375        bytes2BigInt(          "\000;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>      18446744073709551615_ or
4376        bytes2BigInt(          "\001;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>      18446744073709551616_ or
4377        bytes2BigInt(          "\127;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>    2361183241434822606847_ or
4378        bytes2BigInt(     "\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>    2361183241434822606848_ or
4379        bytes2BigInt(     "\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>    4722366482869645213695_ or
4380        bytes2BigInt(     "\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>    4722366482869645213696_ or
4381        bytes2BigInt(     "\127;\255;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>  604462909807314587353087_ or
4382        bytes2BigInt("\000;\128;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>  604462909807314587353088_ or
4383        bytes2BigInt("\000;\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <> 1208925819614629174706175_ or
4384        bytes2BigInt("\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <> 1208925819614629174706176_ then
4385      writeln("Conversion of unsigned big endian byte string to bigInteger does not work correct.");
4386      okay := FALSE;
4387    end if;
4388
4389    if  bytes2BigInt(                                                     "\1;\2;", UNSIGNED, BE) <>                                      258_ or
4390        bytes2BigInt(                                                  "\1;\2;\3;", UNSIGNED, BE) <>                                    66051_ or
4391        bytes2BigInt(                                               "\1;\2;\3;\4;", UNSIGNED, BE) <>                                 16909060_ or
4392        bytes2BigInt(                                            "\1;\2;\3;\4;\5;", UNSIGNED, BE) <>                               4328719365_ or
4393        bytes2BigInt(                                         "\1;\2;\3;\4;\5;\6;", UNSIGNED, BE) <>                            1108152157446_ or
4394        bytes2BigInt(                                      "\1;\2;\3;\4;\5;\6;\7;", UNSIGNED, BE) <>                          283686952306183_ or
4395        bytes2BigInt(                                   "\1;\2;\3;\4;\5;\6;\7;\8;", UNSIGNED, BE) <>                        72623859790382856_ or
4396        bytes2BigInt(                                "\1;\2;\3;\4;\5;\6;\7;\8;\9;", UNSIGNED, BE) <>                     18591708106338011145_ or
4397        bytes2BigInt(                            "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;", UNSIGNED, BE) <>                   4759477275222530853130_ or
4398        bytes2BigInt(                        "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;", UNSIGNED, BE) <>                1218426182456967898401291_ or
4399        bytes2BigInt(                    "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;", UNSIGNED, BE) <>              311917102708983781990730508_ or
4400        bytes2BigInt(                "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;", UNSIGNED, BE) <>            79850778293499848189627010061_ or
4401        bytes2BigInt(            "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;", UNSIGNED, BE) <>         20441799243135961136544514575630_ or
4402        bytes2BigInt(        "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;", UNSIGNED, BE) <>       5233100606242806050955395731361295_ or
4403        bytes2BigInt(    "\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;", UNSIGNED, BE) <>    1339673755198158349044581307228491536_ or
4404        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;", UNSIGNED, BE) <>  342956481330728537355412814650493833233_ or
4405        bytes2BigInt(                                                     "\2;\1;", UNSIGNED, BE) <>                                      513_ or
4406        bytes2BigInt(                                                  "\3;\2;\1;", UNSIGNED, BE) <>                                   197121_ or
4407        bytes2BigInt(                                               "\4;\3;\2;\1;", UNSIGNED, BE) <>                                 67305985_ or
4408        bytes2BigInt(                                            "\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                              21542142465_ or
4409        bytes2BigInt(                                         "\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                            6618611909121_ or
4410        bytes2BigInt(                                      "\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                         1976943448883713_ or
4411        bytes2BigInt(                                   "\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                       578437695752307201_ or
4412        bytes2BigInt(                                "\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                    166599134359138271745_ or
4413        bytes2BigInt(                            "\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                  47390263963055590408705_ or
4414        bytes2BigInt(                        "\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>               13345574279723976512176641_ or
4415        bytes2BigInt(                    "\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>             3727165692135864801209549313_ or
4416        bytes2BigInt(                "\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>          1033693278377572253517280903681_ or
4417        bytes2BigInt(            "\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>        284987427729500958188778798907905_ or
4418        bytes2BigInt(        "\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>      78169440305751915386146223737209345_ or
4419        bytes2BigInt(    "\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>   21345817372864405881847059188222722561_ or
4420        bytes2BigInt("\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <> 5806146055028818284759215385528282317313_ then
4421      writeln("Conversion of unsigned big endian byte string to bigInteger does not work correct.");
4422      okay := FALSE;
4423    end if;
4424
4425    if  bytes2BigInt(                                                    "\255;\1;", UNSIGNED, BE) <>                                     65281_ or
4426        bytes2BigInt(                                                 "\255;\1;\2;", UNSIGNED, BE) <>                                  16711938_ or
4427        bytes2BigInt(                                              "\255;\1;\2;\3;", UNSIGNED, BE) <>                                4278256131_ or
4428        bytes2BigInt(                                           "\255;\1;\2;\3;\4;", UNSIGNED, BE) <>                             1095233569540_ or
4429        bytes2BigInt(                                        "\255;\1;\2;\3;\4;\5;", UNSIGNED, BE) <>                           280379793802245_ or
4430        bytes2BigInt(                                     "\255;\1;\2;\3;\4;\5;\6;", UNSIGNED, BE) <>                         71777227213374726_ or
4431        bytes2BigInt(                                  "\255;\1;\2;\3;\4;\5;\6;\7;", UNSIGNED, BE) <>                      18374970166623929863_ or
4432        bytes2BigInt(                               "\255;\1;\2;\3;\4;\5;\6;\7;\8;", UNSIGNED, BE) <>                    4703992362655726044936_ or
4433        bytes2BigInt(                            "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;", UNSIGNED, BE) <>                 1204222044839865867503625_ or
4434        bytes2BigInt(                        "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;", UNSIGNED, BE) <>               308280843479005662080928010_ or
4435        bytes2BigInt(                    "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;", UNSIGNED, BE) <>             78919895930625449492717570571_ or
4436        bytes2BigInt(                "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;", UNSIGNED, BE) <>          20203493358240115070135698066188_ or
4437        bytes2BigInt(            "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;", UNSIGNED, BE) <>        5172094299709469457954738704944141_ or
4438        bytes2BigInt(        "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;", UNSIGNED, BE) <>     1324056140725624181236413108465700110_ or
4439        bytes2BigInt(    "\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;", UNSIGNED, BE) <>   338958372025759790396521755767219228175_ or
4440        bytes2BigInt("\255;\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;", UNSIGNED, BE) <> 86773343238594506341509569476408122412816_ or
4441        bytes2BigInt(                                                    "\255;\1;", UNSIGNED, BE) <>                                     65281_ or
4442        bytes2BigInt(                                                 "\255;\2;\1;", UNSIGNED, BE) <>                                  16712193_ or
4443        bytes2BigInt(                                              "\255;\3;\2;\1;", UNSIGNED, BE) <>                                4278387201_ or
4444        bytes2BigInt(                                           "\255;\4;\3;\2;\1;", UNSIGNED, BE) <>                             1095283966465_ or
4445        bytes2BigInt(                                        "\255;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                           280397007225345_ or
4446        bytes2BigInt(                                     "\255;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                         71782737673126401_ or
4447        bytes2BigInt(                                  "\255;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                      18376663423120507393_ or
4448        bytes2BigInt(                               "\255;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                    4704498176491687969281_ or
4449        bytes2BigInt(                            "\255;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>                 1204370052266118667764225_ or
4450        bytes2BigInt(                        "\255;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>               308323474265693495140483585_ or
4451        bytes2BigInt(                    "\255;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>             78932023078722716501331345921_ or
4452        bytes2BigInt(                "\255;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>          20206908606829541951154916884993_ or
4453        bytes2BigInt(            "\255;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>        5173048142209553530360066358837761_ or
4454        bytes2BigInt(        "\255;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>     1324320686354110546233465342750032385_ or
4455        bytes2BigInt(    "\255;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <>   339031308365459299505856946595225076225_ or
4456        bytes2BigInt("\255;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, BE) <> 86793349382212172589042371954289116643841_ then
4457     writeln("Conversion of unsigned big endian byte string to bigInteger does not work correct.");
4458      okay := FALSE;
4459    end if;
4460
4461    if  bytes2BigInt(                                                  "", UNSIGNED, BE) <>                      0_ or
4462        bytes2BigInt(                                        "\000;\000;", UNSIGNED, BE) <>                      0_ or
4463        bytes2BigInt(                                   "\000;\000;\000;", UNSIGNED, BE) <>                      0_ or
4464        bytes2BigInt(                              "\000;\000;\000;\000;", UNSIGNED, BE) <>                      0_ or
4465        bytes2BigInt(                         "\000;\000;\000;\000;\000;", UNSIGNED, BE) <>                      0_ or
4466        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>                      0_ or
4467        bytes2BigInt(                                        "\000;\001;", UNSIGNED, BE) <>                      1_ or
4468        bytes2BigInt(                                   "\000;\000;\001;", UNSIGNED, BE) <>                      1_ or
4469        bytes2BigInt(                              "\000;\000;\000;\001;", UNSIGNED, BE) <>                      1_ or
4470        bytes2BigInt(                         "\000;\000;\000;\000;\001;", UNSIGNED, BE) <>                      1_ or
4471        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;", UNSIGNED, BE) <>                      1_ or
4472        bytes2BigInt(                                        "\000;\127;", UNSIGNED, BE) <>                    127_ or
4473        bytes2BigInt(                                   "\000;\000;\127;", UNSIGNED, BE) <>                    127_ or
4474        bytes2BigInt(                              "\000;\000;\000;\127;", UNSIGNED, BE) <>                    127_ or
4475        bytes2BigInt(                         "\000;\000;\000;\000;\127;", UNSIGNED, BE) <>                    127_ or
4476        bytes2BigInt(                                   "\000;\000;\128;", UNSIGNED, BE) <>                    128_ or
4477        bytes2BigInt(                              "\000;\000;\000;\128;", UNSIGNED, BE) <>                    128_ or
4478        bytes2BigInt(                         "\000;\000;\000;\000;\128;", UNSIGNED, BE) <>                    128_ or
4479        bytes2BigInt("\000;\000;\000;\127;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>      36028797018963967_ or
4480        bytes2BigInt("\000;\000;\000;\128;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>      36028797018963968_ or
4481        bytes2BigInt("\000;\000;\000;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>      72057594037927935_ or
4482        bytes2BigInt("\000;\000;\127;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <>    9223372036854775807_ or
4483        bytes2BigInt("\000;\000;\128;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, BE) <>    9223372036854775808_ or
4484        bytes2BigInt("\000;\127;\255;\255;\255;\255;\255;\255;\255;\255;", UNSIGNED, BE) <> 2361183241434822606847_ then
4485      writeln("Conversion of unsigned big endian byte string to bigInteger does not work correct.");
4486      okay := FALSE;
4487    end if;
4488
4489    if  bytes2BigInt("I\150;\2;\210;",     SIGNED,   BE) <>  1234567890_ or
4490        bytes2BigInt("I\150;\2;\210;",     UNSIGNED, BE) <>  1234567890_ or
4491        bytes2BigInt("\210;\2;\150;I",     SIGNED,   BE) <>  -771582391_ or
4492        bytes2BigInt("\210;\2;\150;I",     UNSIGNED, BE) <>  3523384905_ or
4493        bytes2BigInt(":\222;h\177;",       SIGNED,   BE) <>   987654321_ or
4494        bytes2BigInt(":\222;h\177;",       UNSIGNED, BE) <>   987654321_ or
4495        bytes2BigInt("\139;\208;\3;\152;", SIGNED,   BE) <> -1949301864_ or
4496        bytes2BigInt("\139;\208;\3;\152;", UNSIGNED, BE) <>  2345665432_ or
4497        bytes2BigInt("\152;\3;\208;\139;", SIGNED,   BE) <> -1744580469_ or
4498        bytes2BigInt("\152;\3;\208;\139;", UNSIGNED, BE) <>  2550386827_ then
4499      writeln("Conversion of big endian byte string to bigInteger does not work correct.");
4500      okay := FALSE;
4501    end if;
4502
4503    if okay then
4504      writeln("Conversion of big endian byte string to bigInteger works correct.");
4505    else
4506      writeln(" ***** Conversion of big endian byte string to bigInteger does not work correct.");
4507      writeln;
4508    end if;
4509  end func;
4510
4511
4512const proc: chkBytesLe2BigInt is func
4513  local
4514    var boolean: okay is TRUE;
4515  begin
4516    if  bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;\254;", SIGNED, LE) <> -1208925819614629174706177_ or
4517        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\255;", SIGNED, LE) <> -1208925819614629174706176_ or
4518        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;\255;", SIGNED, LE) <>  -604462909807314587353089_ or
4519        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;",      SIGNED, LE) <>  -604462909807314587353088_ or
4520        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\254;",      SIGNED, LE) <>    -4722366482869645213697_ or
4521        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\255;",      SIGNED, LE) <>    -4722366482869645213696_ or
4522        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\127;\255;",      SIGNED, LE) <>    -2361183241434822606849_ or
4523        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\128;",           SIGNED, LE) <>    -2361183241434822606848_ or
4524        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\254;",           SIGNED, LE) <>      -18446744073709551617_ or
4525        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\255;",           SIGNED, LE) <>      -18446744073709551616_ or
4526        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;\255;",           SIGNED, LE) <>       -9223372036854775809_ or
4527        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;",                SIGNED, LE) <>       -9223372036854775808_ or
4528        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\254;",                SIGNED, LE) <>         -72057594037927937_ or
4529        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\255;",                SIGNED, LE) <>         -72057594037927936_ or
4530        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;\255;",                SIGNED, LE) <>         -36028797018963969_ or
4531        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;",                     SIGNED, LE) <>         -36028797018963968_ or
4532        bytes2BigInt("\255;\255;\255;\255;\255;\255;\254;",                     SIGNED, LE) <>           -281474976710657_ or
4533        bytes2BigInt("\000;\000;\000;\000;\000;\000;\255;",                     SIGNED, LE) <>           -281474976710656_ or
4534        bytes2BigInt("\255;\255;\255;\255;\255;\127;\255;",                     SIGNED, LE) <>           -140737488355329_ or
4535        bytes2BigInt("\000;\000;\000;\000;\000;\128;",                          SIGNED, LE) <>           -140737488355328_ or
4536        bytes2BigInt("\255;\255;\255;\255;\255;\254;",                          SIGNED, LE) <>             -1099511627777_ or
4537        bytes2BigInt("\000;\000;\000;\000;\000;\255;",                          SIGNED, LE) <>             -1099511627776_ or
4538        bytes2BigInt("\255;\255;\255;\255;\127;\255;",                          SIGNED, LE) <>              -549755813889_ or
4539        bytes2BigInt("\000;\000;\000;\000;\128;",                               SIGNED, LE) <>              -549755813888_ or
4540        bytes2BigInt("\255;\255;\255;\255;\254;",                               SIGNED, LE) <>                -4294967297_ or
4541        bytes2BigInt("\000;\000;\000;\000;\255;",                               SIGNED, LE) <>                -4294967296_ or
4542        bytes2BigInt("\255;\255;\255;\127;\255;",                               SIGNED, LE) <>                -2147483649_ or
4543        bytes2BigInt("\000;\000;\000;\128;",                                    SIGNED, LE) <>                -2147483648_ or
4544        bytes2BigInt("\255;\255;\255;\254;",                                    SIGNED, LE) <>                  -16777217_ or
4545        bytes2BigInt("\000;\000;\000;\255;",                                    SIGNED, LE) <>                  -16777216_ or
4546        bytes2BigInt("\255;\255;\127;\255;",                                    SIGNED, LE) <>                   -8388609_ or
4547        bytes2BigInt("\000;\000;\128;",                                         SIGNED, LE) <>                   -8388608_ or
4548        bytes2BigInt("\255;\255;\254;",                                         SIGNED, LE) <>                     -65537_ or
4549        bytes2BigInt("\000;\000;\255;",                                         SIGNED, LE) <>                     -65536_ or
4550        bytes2BigInt("\255;\000;\255;",                                         SIGNED, LE) <>                     -65281_ or
4551        bytes2BigInt("\000;\001;\255;",                                         SIGNED, LE) <>                     -65280_ or
4552        bytes2BigInt("\255;\001;\255;",                                         SIGNED, LE) <>                     -65025_ or
4553        bytes2BigInt("\000;\002;\255;",                                         SIGNED, LE) <>                     -65024_ or
4554        bytes2BigInt("\254;\127;\255;",                                         SIGNED, LE) <>                     -32770_ or
4555        bytes2BigInt("\255;\127;\255;",                                         SIGNED, LE) <>                     -32769_ or
4556        bytes2BigInt("\000;\128;",                                              SIGNED, LE) <>                     -32768_ or
4557        bytes2BigInt("\001;\128;",                                              SIGNED, LE) <>                     -32767_ or
4558        bytes2BigInt("\254;\128;",                                              SIGNED, LE) <>                     -32514_ or
4559        bytes2BigInt("\255;\128;",                                              SIGNED, LE) <>                     -32513_ or
4560        bytes2BigInt("\000;\129;",                                              SIGNED, LE) <>                     -32512_ or
4561        bytes2BigInt("\001;\129;",                                              SIGNED, LE) <>                     -32511_ or
4562        bytes2BigInt("\254;\129;",                                              SIGNED, LE) <>                     -32258_ or
4563        bytes2BigInt("\255;\129;",                                              SIGNED, LE) <>                     -32257_ or
4564        bytes2BigInt("\000;\130;",                                              SIGNED, LE) <>                     -32256_ or
4565        bytes2BigInt("\001;\130;",                                              SIGNED, LE) <>                     -32255_ or
4566        bytes2BigInt("\254;\253;",                                              SIGNED, LE) <>                       -514_ or
4567        bytes2BigInt("\255;\253;",                                              SIGNED, LE) <>                       -513_ or
4568        bytes2BigInt("\000;\254;",                                              SIGNED, LE) <>                       -512_ or
4569        bytes2BigInt("\001;\254;",                                              SIGNED, LE) <>                       -511_ or
4570        bytes2BigInt("\254;\254;",                                              SIGNED, LE) <>                       -258_ or
4571        bytes2BigInt("\255;\254;",                                              SIGNED, LE) <>                       -257_ or
4572        bytes2BigInt("\000;\255;",                                              SIGNED, LE) <>                       -256_ or
4573        bytes2BigInt("\001;\255;",                                              SIGNED, LE) <>                       -255_ or
4574        bytes2BigInt("\126;\255;",                                              SIGNED, LE) <>                       -130_ or
4575        bytes2BigInt("\127;\255;",                                              SIGNED, LE) <>                       -129_ or
4576        bytes2BigInt("\128;",                                                   SIGNED, LE) <>                       -128_ or
4577        bytes2BigInt("\129;",                                                   SIGNED, LE) <>                       -127_ or
4578        bytes2BigInt("\254;",                                                   SIGNED, LE) <>                         -2_ or
4579        bytes2BigInt("\255;",                                                   SIGNED, LE) <>                         -1_ or
4580        bytes2BigInt("\000;",                                                   SIGNED, LE) <>                          0_ or
4581        bytes2BigInt("\001;",                                                   SIGNED, LE) <>                          1_ or
4582        bytes2BigInt("\002;",                                                   SIGNED, LE) <>                          2_ or
4583        bytes2BigInt("\126;",                                                   SIGNED, LE) <>                        126_ or
4584        bytes2BigInt("\127;",                                                   SIGNED, LE) <>                        127_ or
4585        bytes2BigInt("\128;\000;",                                              SIGNED, LE) <>                        128_ or
4586        bytes2BigInt("\129;\000;",                                              SIGNED, LE) <>                        129_ or
4587        bytes2BigInt("\254;\000;",                                              SIGNED, LE) <>                        254_ or
4588        bytes2BigInt("\255;\000;",                                              SIGNED, LE) <>                        255_ or
4589        bytes2BigInt("\000;\001;",                                              SIGNED, LE) <>                        256_ or
4590        bytes2BigInt("\001;\001;",                                              SIGNED, LE) <>                        257_ or
4591        bytes2BigInt("\254;\001;",                                              SIGNED, LE) <>                        510_ or
4592        bytes2BigInt("\255;\001;",                                              SIGNED, LE) <>                        511_ or
4593        bytes2BigInt("\000;\002;",                                              SIGNED, LE) <>                        512_ or
4594        bytes2BigInt("\001;\002;",                                              SIGNED, LE) <>                        513_ or
4595        bytes2BigInt("\254;\125;",                                              SIGNED, LE) <>                      32254_ or
4596        bytes2BigInt("\255;\125;",                                              SIGNED, LE) <>                      32255_ or
4597        bytes2BigInt("\000;\126;",                                              SIGNED, LE) <>                      32256_ or
4598        bytes2BigInt("\001;\126;",                                              SIGNED, LE) <>                      32257_ or
4599        bytes2BigInt("\254;\126;",                                              SIGNED, LE) <>                      32510_ or
4600        bytes2BigInt("\255;\126;",                                              SIGNED, LE) <>                      32511_ or
4601        bytes2BigInt("\000;\127;",                                              SIGNED, LE) <>                      32512_ or
4602        bytes2BigInt("\001;\127;",                                              SIGNED, LE) <>                      32513_ or
4603        bytes2BigInt("\254;\127;",                                              SIGNED, LE) <>                      32766_ or
4604        bytes2BigInt("\255;\127;",                                              SIGNED, LE) <>                      32767_ or
4605        bytes2BigInt("\000;\128;\000;",                                         SIGNED, LE) <>                      32768_ or
4606        bytes2BigInt("\001;\128;\000;",                                         SIGNED, LE) <>                      32769_ or
4607        bytes2BigInt("\255;\253;\000;",                                         SIGNED, LE) <>                      65023_ or
4608        bytes2BigInt("\000;\254;\000;",                                         SIGNED, LE) <>                      65024_ or
4609        bytes2BigInt("\255;\254;\000;",                                         SIGNED, LE) <>                      65279_ or
4610        bytes2BigInt("\000;\255;\000;",                                         SIGNED, LE) <>                      65280_ or
4611        bytes2BigInt("\255;\255;\000;",                                         SIGNED, LE) <>                      65535_ or
4612        bytes2BigInt("\000;\000;\001;",                                         SIGNED, LE) <>                      65536_ or
4613        bytes2BigInt("\255;\255;\127;",                                         SIGNED, LE) <>                    8388607_ or
4614        bytes2BigInt("\000;\000;\128;\000;",                                    SIGNED, LE) <>                    8388608_ or
4615        bytes2BigInt("\255;\255;\255;\000;",                                    SIGNED, LE) <>                   16777215_ or
4616        bytes2BigInt("\000;\000;\000;\001;",                                    SIGNED, LE) <>                   16777216_ or
4617        bytes2BigInt("\255;\255;\255;\127;",                                    SIGNED, LE) <>                 2147483647_ or
4618        bytes2BigInt("\000;\000;\000;\128;\000;",                               SIGNED, LE) <>                 2147483648_ or
4619        bytes2BigInt("\255;\255;\255;\255;\000;",                               SIGNED, LE) <>                 4294967295_ or
4620        bytes2BigInt("\000;\000;\000;\000;\001;",                               SIGNED, LE) <>                 4294967296_ or
4621        bytes2BigInt("\255;\255;\255;\255;\127;",                               SIGNED, LE) <>               549755813887_ or
4622        bytes2BigInt("\000;\000;\000;\000;\128;\000;",                          SIGNED, LE) <>               549755813888_ or
4623        bytes2BigInt("\255;\255;\255;\255;\255;\000;",                          SIGNED, LE) <>              1099511627775_ or
4624        bytes2BigInt("\000;\000;\000;\000;\000;\001;",                          SIGNED, LE) <>              1099511627776_ or
4625        bytes2BigInt("\255;\255;\255;\255;\255;\127;",                          SIGNED, LE) <>            140737488355327_ or
4626        bytes2BigInt("\000;\000;\000;\000;\000;\128;\000;",                     SIGNED, LE) <>            140737488355328_ or
4627        bytes2BigInt("\255;\255;\255;\255;\255;\255;\000;",                     SIGNED, LE) <>            281474976710655_ or
4628        bytes2BigInt("\000;\000;\000;\000;\000;\000;\001;",                     SIGNED, LE) <>            281474976710656_ or
4629        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;",                     SIGNED, LE) <>          36028797018963967_ or
4630        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;\000;",                SIGNED, LE) <>          36028797018963968_ or
4631        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\000;",                SIGNED, LE) <>          72057594037927935_ or
4632        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\001;",                SIGNED, LE) <>          72057594037927936_ or
4633        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;",                SIGNED, LE) <>        9223372036854775807_ or
4634        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;\000;",           SIGNED, LE) <>        9223372036854775808_ or
4635        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\000;",           SIGNED, LE) <>       18446744073709551615_ or
4636        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\001;",           SIGNED, LE) <>       18446744073709551616_ or
4637        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\127;",           SIGNED, LE) <>     2361183241434822606847_ or
4638        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;",      SIGNED, LE) <>     2361183241434822606848_ or
4639        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;",      SIGNED, LE) <>     4722366482869645213695_ or
4640        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;",      SIGNED, LE) <>     4722366482869645213696_ or
4641        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;",      SIGNED, LE) <>   604462909807314587353087_ or
4642        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;", SIGNED, LE) <>   604462909807314587353088_ or
4643        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;", SIGNED, LE) <>  1208925819614629174706175_ or
4644        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;", SIGNED, LE) <>  1208925819614629174706176_ then
4645      writeln("Conversion of little endian byte string to bigInteger does not work correct.");
4646      okay := FALSE;
4647    end if;
4648
4649    if  bytes2BigInt("\2;\1;",                                                      SIGNED, LE) <>                                      258_ or
4650        bytes2BigInt("\3;\2;\1;",                                                   SIGNED, LE) <>                                    66051_ or
4651        bytes2BigInt("\4;\3;\2;\1;",                                                SIGNED, LE) <>                                 16909060_ or
4652        bytes2BigInt("\5;\4;\3;\2;\1;",                                             SIGNED, LE) <>                               4328719365_ or
4653        bytes2BigInt("\6;\5;\4;\3;\2;\1;",                                          SIGNED, LE) <>                            1108152157446_ or
4654        bytes2BigInt("\7;\6;\5;\4;\3;\2;\1;",                                       SIGNED, LE) <>                          283686952306183_ or
4655        bytes2BigInt("\8;\7;\6;\5;\4;\3;\2;\1;",                                    SIGNED, LE) <>                        72623859790382856_ or
4656        bytes2BigInt("\9;\8;\7;\6;\5;\4;\3;\2;\1;",                                 SIGNED, LE) <>                     18591708106338011145_ or
4657        bytes2BigInt("\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                             SIGNED, LE) <>                   4759477275222530853130_ or
4658        bytes2BigInt("\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                         SIGNED, LE) <>                1218426182456967898401291_ or
4659        bytes2BigInt("\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                     SIGNED, LE) <>              311917102708983781990730508_ or
4660        bytes2BigInt("\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                 SIGNED, LE) <>            79850778293499848189627010061_ or
4661        bytes2BigInt("\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",             SIGNED, LE) <>         20441799243135961136544514575630_ or
4662        bytes2BigInt("\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",         SIGNED, LE) <>       5233100606242806050955395731361295_ or
4663        bytes2BigInt("\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",     SIGNED, LE) <>    1339673755198158349044581307228491536_ or
4664        bytes2BigInt("\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", SIGNED, LE) <>  342956481330728537355412814650493833233_ or
4665        bytes2BigInt("\1;\2;",                                                      SIGNED, LE) <>                                      513_ or
4666        bytes2BigInt("\1;\2;\3;",                                                   SIGNED, LE) <>                                   197121_ or
4667        bytes2BigInt("\1;\2;\3;\4;",                                                SIGNED, LE) <>                                 67305985_ or
4668        bytes2BigInt("\1;\2;\3;\4;\5;",                                             SIGNED, LE) <>                              21542142465_ or
4669        bytes2BigInt("\1;\2;\3;\4;\5;\6;",                                          SIGNED, LE) <>                            6618611909121_ or
4670        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;",                                       SIGNED, LE) <>                         1976943448883713_ or
4671        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;",                                    SIGNED, LE) <>                       578437695752307201_ or
4672        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;",                                 SIGNED, LE) <>                    166599134359138271745_ or
4673        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;",                             SIGNED, LE) <>                  47390263963055590408705_ or
4674        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;",                         SIGNED, LE) <>               13345574279723976512176641_ or
4675        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;",                     SIGNED, LE) <>             3727165692135864801209549313_ or
4676        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;",                 SIGNED, LE) <>          1033693278377572253517280903681_ or
4677        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;",             SIGNED, LE) <>        284987427729500958188778798907905_ or
4678        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;",         SIGNED, LE) <>      78169440305751915386146223737209345_ or
4679        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;",     SIGNED, LE) <>   21345817372864405881847059188222722561_ or
4680        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;", SIGNED, LE) <> 5806146055028818284759215385528282317313_ then
4681      writeln("Conversion of little endian byte string to bigInteger does not work correct.");
4682      okay := FALSE;
4683    end if;
4684
4685    if  bytes2BigInt("\1;\255;",                                                     SIGNED, LE) <>                                     -255_ or
4686        bytes2BigInt("\2;\1;\255;",                                                  SIGNED, LE) <>                                   -65278_ or
4687        bytes2BigInt("\3;\2;\1;\255;",                                               SIGNED, LE) <>                                -16711165_ or
4688        bytes2BigInt("\4;\3;\2;\1;\255;",                                            SIGNED, LE) <>                              -4278058236_ or
4689        bytes2BigInt("\5;\4;\3;\2;\1;\255;",                                         SIGNED, LE) <>                           -1095182908411_ or
4690        bytes2BigInt("\6;\5;\4;\3;\2;\1;\255;",                                      SIGNED, LE) <>                         -280366824553210_ or
4691        bytes2BigInt("\7;\6;\5;\4;\3;\2;\1;\255;",                                   SIGNED, LE) <>                       -71773907085621753_ or
4692        bytes2BigInt("\8;\7;\6;\5;\4;\3;\2;\1;\255;",                                SIGNED, LE) <>                    -18374120213919168760_ or
4693        bytes2BigInt("\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                             SIGNED, LE) <>                  -4703774774763307202551_ or
4694        bytes2BigInt("\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                         SIGNED, LE) <>               -1204166342339406643853046_ or
4695        bytes2BigInt("\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                     SIGNED, LE) <>             -308266583638888100826379765_ or
4696        bytes2BigInt("\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                 SIGNED, LE) <>           -78916245411555353811553219828_ or
4697        bytes2BigInt("\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",             SIGNED, LE) <>        -20202558825358170575757624275955_ or
4698        bytes2BigInt("\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",         SIGNED, LE) <>      -5171855059291691667393951814644466_ or
4699        bytes2BigInt("\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",     SIGNED, LE) <>   -1323994895178673066852851664548983281_ or
4700        bytes2BigInt("\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;", SIGNED, LE) <> -338942693165740305114330026124539719920_ or
4701        bytes2BigInt("\1;\255;",                                                     SIGNED, LE) <>                                     -255_ or
4702        bytes2BigInt("\1;\2;\255;",                                                  SIGNED, LE) <>                                   -65023_ or
4703        bytes2BigInt("\1;\2;\3;\255;",                                               SIGNED, LE) <>                                -16580095_ or
4704        bytes2BigInt("\1;\2;\3;\4;\255;",                                            SIGNED, LE) <>                              -4227661311_ or
4705        bytes2BigInt("\1;\2;\3;\4;\5;\255;",                                         SIGNED, LE) <>                           -1077969485311_ or
4706        bytes2BigInt("\1;\2;\3;\4;\5;\6;\255;",                                      SIGNED, LE) <>                         -274856364801535_ or
4707        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\255;",                                   SIGNED, LE) <>                       -70080650589044223_ or
4708        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\255;",                                SIGNED, LE) <>                    -17868306377957244415_ or
4709        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\255;",                             SIGNED, LE) <>                  -4555767348510506941951_ or
4710        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\255;",                         SIGNED, LE) <>               -1161535555651573584297471_ or
4711        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\255;",                     SIGNED, LE) <>             -296139435541621092212604415_ or
4712        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\255;",                 SIGNED, LE) <>           -75500996822128472792334401023_ or
4713        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\255;",             SIGNED, LE) <>        -19248716325274098170429970382335_ or
4714        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\255;",         SIGNED, LE) <>      -4907309430805326670341717530312191_ or
4715        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\255;",     SIGNED, LE) <>   -1251058555479163957517660836543135231_ or
4716        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\255;", SIGNED, LE) <> -318936549548074057581527548243545488895_ then
4717      writeln("Conversion of little endian byte string to bigInteger does not work correct.");
4718      okay := FALSE;
4719    end if;
4720
4721    if  bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\128;\255;", SIGNED, LE) <> -2361183241434822606848_ or
4722        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;\255;\255;", SIGNED, LE) <>    -9223372036854775809_ or
4723        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;\255;\255;", SIGNED, LE) <>    -9223372036854775808_ or
4724        bytes2BigInt("\001;\000;\000;\000;\000;\000;\000;\128;\255;\255;", SIGNED, LE) <>    -9223372036854775807_ or
4725        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\255;\255;\255;", SIGNED, LE) <>      -72057594037927936_ or
4726        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;\255;\255;\255;", SIGNED, LE) <>      -36028797018963969_ or
4727        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;\255;\255;\255;", SIGNED, LE) <>      -36028797018963968_ or
4728        bytes2BigInt("\127;\255;\255;\255;\255;",                          SIGNED, LE) <>                    -129_ or
4729        bytes2BigInt("\127;\255;\255;\255;",                               SIGNED, LE) <>                    -129_ or
4730        bytes2BigInt("\127;\255;\255;",                                    SIGNED, LE) <>                    -129_ or
4731        bytes2BigInt("\128;\255;\255;\255;\255;",                          SIGNED, LE) <>                    -128_ or
4732        bytes2BigInt("\128;\255;\255;\255;",                               SIGNED, LE) <>                    -128_ or
4733        bytes2BigInt("\128;\255;\255;",                                    SIGNED, LE) <>                    -128_ or
4734        bytes2BigInt("\128;\255;",                                         SIGNED, LE) <>                    -128_ or
4735        bytes2BigInt("\254;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, LE) <>                      -2_ or
4736        bytes2BigInt("\254;\255;\255;\255;\255;",                          SIGNED, LE) <>                      -2_ or
4737        bytes2BigInt("\254;\255;\255;\255;",                               SIGNED, LE) <>                      -2_ or
4738        bytes2BigInt("\254;\255;\255;",                                    SIGNED, LE) <>                      -2_ or
4739        bytes2BigInt("\254;\255;",                                         SIGNED, LE) <>                      -2_ or
4740        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;", SIGNED, LE) <>                      -1_ or
4741        bytes2BigInt("\255;\255;\255;\255;\255;",                          SIGNED, LE) <>                      -1_ or
4742        bytes2BigInt("\255;\255;\255;\255;",                               SIGNED, LE) <>                      -1_ or
4743        bytes2BigInt("\255;\255;\255;",                                    SIGNED, LE) <>                      -1_ or
4744        bytes2BigInt("\255;\255;",                                         SIGNED, LE) <>                      -1_ or
4745        bytes2BigInt("",                                                   SIGNED, LE) <>                       0_ or
4746        bytes2BigInt("\000;\000;",                                         SIGNED, LE) <>                       0_ or
4747        bytes2BigInt("\000;\000;\000;",                                    SIGNED, LE) <>                       0_ or
4748        bytes2BigInt("\000;\000;\000;\000;",                               SIGNED, LE) <>                       0_ or
4749        bytes2BigInt("\000;\000;\000;\000;\000;",                          SIGNED, LE) <>                       0_ or
4750        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, LE) <>                       0_ or
4751        bytes2BigInt("\001;\000;",                                         SIGNED, LE) <>                       1_ or
4752        bytes2BigInt("\001;\000;\000;",                                    SIGNED, LE) <>                       1_ or
4753        bytes2BigInt("\001;\000;\000;\000;",                               SIGNED, LE) <>                       1_ or
4754        bytes2BigInt("\001;\000;\000;\000;\000;",                          SIGNED, LE) <>                       1_ or
4755        bytes2BigInt("\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;", SIGNED, LE) <>                       1_ or
4756        bytes2BigInt("\127;\000;",                                         SIGNED, LE) <>                     127_ or
4757        bytes2BigInt("\127;\000;\000;",                                    SIGNED, LE) <>                     127_ or
4758        bytes2BigInt("\127;\000;\000;\000;",                               SIGNED, LE) <>                     127_ or
4759        bytes2BigInt("\127;\000;\000;\000;\000;",                          SIGNED, LE) <>                     127_ or
4760        bytes2BigInt("\128;\000;\000;",                                    SIGNED, LE) <>                     128_ or
4761        bytes2BigInt("\128;\000;\000;\000;",                               SIGNED, LE) <>                     128_ or
4762        bytes2BigInt("\128;\000;\000;\000;\000;",                          SIGNED, LE) <>                     128_ or
4763        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;\000;\000;\000;", SIGNED, LE) <>       36028797018963967_ or
4764        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;\000;\000;\000;", SIGNED, LE) <>       36028797018963968_ or
4765        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\000;\000;\000;", SIGNED, LE) <>       72057594037927935_ or
4766        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;\000;\000;", SIGNED, LE) <>     9223372036854775807_ or
4767        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;\000;\000;", SIGNED, LE) <>     9223372036854775808_ or
4768        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\127;\000;", SIGNED, LE) <>  2361183241434822606847_ then
4769      writeln("Conversion of little endian byte string to bigInteger does not work correct.");
4770      okay := FALSE;
4771    end if;
4772
4773    if  bytes2BigInt("\000;",                                                   UNSIGNED, LE) <>                         0_ or
4774        bytes2BigInt("\001;",                                                   UNSIGNED, LE) <>                         1_ or
4775        bytes2BigInt("\002;",                                                   UNSIGNED, LE) <>                         2_ or
4776        bytes2BigInt("\126;",                                                   UNSIGNED, LE) <>                       126_ or
4777        bytes2BigInt("\127;",                                                   UNSIGNED, LE) <>                       127_ or
4778        bytes2BigInt("\128;\000;",                                              UNSIGNED, LE) <>                       128_ or
4779        bytes2BigInt("\129;\000;",                                              UNSIGNED, LE) <>                       129_ or
4780        bytes2BigInt("\254;\000;",                                              UNSIGNED, LE) <>                       254_ or
4781        bytes2BigInt("\255;\000;",                                              UNSIGNED, LE) <>                       255_ or
4782        bytes2BigInt("\000;\001;",                                              UNSIGNED, LE) <>                       256_ or
4783        bytes2BigInt("\001;\001;",                                              UNSIGNED, LE) <>                       257_ or
4784        bytes2BigInt("\254;\001;",                                              UNSIGNED, LE) <>                       510_ or
4785        bytes2BigInt("\255;\001;",                                              UNSIGNED, LE) <>                       511_ or
4786        bytes2BigInt("\000;\002;",                                              UNSIGNED, LE) <>                       512_ or
4787        bytes2BigInt("\001;\002;",                                              UNSIGNED, LE) <>                       513_ or
4788        bytes2BigInt("\254;\125;",                                              UNSIGNED, LE) <>                     32254_ or
4789        bytes2BigInt("\255;\125;",                                              UNSIGNED, LE) <>                     32255_ or
4790        bytes2BigInt("\000;\126;",                                              UNSIGNED, LE) <>                     32256_ or
4791        bytes2BigInt("\001;\126;",                                              UNSIGNED, LE) <>                     32257_ or
4792        bytes2BigInt("\254;\126;",                                              UNSIGNED, LE) <>                     32510_ or
4793        bytes2BigInt("\255;\126;",                                              UNSIGNED, LE) <>                     32511_ or
4794        bytes2BigInt("\000;\127;",                                              UNSIGNED, LE) <>                     32512_ or
4795        bytes2BigInt("\001;\127;",                                              UNSIGNED, LE) <>                     32513_ or
4796        bytes2BigInt("\254;\127;",                                              UNSIGNED, LE) <>                     32766_ or
4797        bytes2BigInt("\255;\127;",                                              UNSIGNED, LE) <>                     32767_ or
4798        bytes2BigInt("\000;\128;\000;",                                         UNSIGNED, LE) <>                     32768_ or
4799        bytes2BigInt("\001;\128;\000;",                                         UNSIGNED, LE) <>                     32769_ or
4800        bytes2BigInt("\255;\253;\000;",                                         UNSIGNED, LE) <>                     65023_ or
4801        bytes2BigInt("\000;\254;\000;",                                         UNSIGNED, LE) <>                     65024_ or
4802        bytes2BigInt("\255;\254;\000;",                                         UNSIGNED, LE) <>                     65279_ or
4803        bytes2BigInt("\000;\255;\000;",                                         UNSIGNED, LE) <>                     65280_ or
4804        bytes2BigInt("\255;\255;\000;",                                         UNSIGNED, LE) <>                     65535_ or
4805        bytes2BigInt("\000;\000;\001;",                                         UNSIGNED, LE) <>                     65536_ or
4806        bytes2BigInt("\255;\255;\127;",                                         UNSIGNED, LE) <>                   8388607_ or
4807        bytes2BigInt("\000;\000;\128;\000;",                                    UNSIGNED, LE) <>                   8388608_ or
4808        bytes2BigInt("\255;\255;\255;\000;",                                    UNSIGNED, LE) <>                  16777215_ or
4809        bytes2BigInt("\000;\000;\000;\001;",                                    UNSIGNED, LE) <>                  16777216_ or
4810        bytes2BigInt("\255;\255;\255;\127;",                                    UNSIGNED, LE) <>                2147483647_ or
4811        bytes2BigInt("\000;\000;\000;\128;\000;",                               UNSIGNED, LE) <>                2147483648_ or
4812        bytes2BigInt("\255;\255;\255;\255;\000;",                               UNSIGNED, LE) <>                4294967295_ or
4813        bytes2BigInt("\000;\000;\000;\000;\001;",                               UNSIGNED, LE) <>                4294967296_ or
4814        bytes2BigInt("\255;\255;\255;\255;\127;",                               UNSIGNED, LE) <>              549755813887_ or
4815        bytes2BigInt("\000;\000;\000;\000;\128;\000;",                          UNSIGNED, LE) <>              549755813888_ or
4816        bytes2BigInt("\255;\255;\255;\255;\255;\000;",                          UNSIGNED, LE) <>             1099511627775_ or
4817        bytes2BigInt("\000;\000;\000;\000;\000;\001;",                          UNSIGNED, LE) <>             1099511627776_ or
4818        bytes2BigInt("\255;\255;\255;\255;\255;\127;",                          UNSIGNED, LE) <>           140737488355327_ or
4819        bytes2BigInt("\000;\000;\000;\000;\000;\128;\000;",                     UNSIGNED, LE) <>           140737488355328_ or
4820        bytes2BigInt("\255;\255;\255;\255;\255;\255;\000;",                     UNSIGNED, LE) <>           281474976710655_ or
4821        bytes2BigInt("\000;\000;\000;\000;\000;\000;\001;",                     UNSIGNED, LE) <>           281474976710656_ or
4822        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;",                     UNSIGNED, LE) <>         36028797018963967_ or
4823        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;\000;",                UNSIGNED, LE) <>         36028797018963968_ or
4824        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\000;",                UNSIGNED, LE) <>         72057594037927935_ or
4825        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\001;",                UNSIGNED, LE) <>         72057594037927936_ or
4826        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;",                UNSIGNED, LE) <>       9223372036854775807_ or
4827        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;\000;",           UNSIGNED, LE) <>       9223372036854775808_ or
4828        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\000;",           UNSIGNED, LE) <>      18446744073709551615_ or
4829        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\001;",           UNSIGNED, LE) <>      18446744073709551616_ or
4830        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\127;",           UNSIGNED, LE) <>    2361183241434822606847_ or
4831        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;",      UNSIGNED, LE) <>    2361183241434822606848_ or
4832        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;",      UNSIGNED, LE) <>    4722366482869645213695_ or
4833        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;",      UNSIGNED, LE) <>    4722366482869645213696_ or
4834        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\127;",      UNSIGNED, LE) <>  604462909807314587353087_ or
4835        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\128;\000;", UNSIGNED, LE) <>  604462909807314587353088_ or
4836        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\255;\255;\000;", UNSIGNED, LE) <> 1208925819614629174706175_ or
4837        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;\001;", UNSIGNED, LE) <> 1208925819614629174706176_ then
4838      writeln("Conversion of unsigned little endian byte string to bigInteger does not work correct.");
4839      okay := FALSE;
4840    end if;
4841
4842    if  bytes2BigInt("\2;\1;",                                                      UNSIGNED, LE) <>                                      258_ or
4843        bytes2BigInt("\3;\2;\1;",                                                   UNSIGNED, LE) <>                                    66051_ or
4844        bytes2BigInt("\4;\3;\2;\1;",                                                UNSIGNED, LE) <>                                 16909060_ or
4845        bytes2BigInt("\5;\4;\3;\2;\1;",                                             UNSIGNED, LE) <>                               4328719365_ or
4846        bytes2BigInt("\6;\5;\4;\3;\2;\1;",                                          UNSIGNED, LE) <>                            1108152157446_ or
4847        bytes2BigInt("\7;\6;\5;\4;\3;\2;\1;",                                       UNSIGNED, LE) <>                          283686952306183_ or
4848        bytes2BigInt("\8;\7;\6;\5;\4;\3;\2;\1;",                                    UNSIGNED, LE) <>                        72623859790382856_ or
4849        bytes2BigInt("\9;\8;\7;\6;\5;\4;\3;\2;\1;",                                 UNSIGNED, LE) <>                     18591708106338011145_ or
4850        bytes2BigInt("\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                             UNSIGNED, LE) <>                   4759477275222530853130_ or
4851        bytes2BigInt("\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                         UNSIGNED, LE) <>                1218426182456967898401291_ or
4852        bytes2BigInt("\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                     UNSIGNED, LE) <>              311917102708983781990730508_ or
4853        bytes2BigInt("\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",                 UNSIGNED, LE) <>            79850778293499848189627010061_ or
4854        bytes2BigInt("\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",             UNSIGNED, LE) <>         20441799243135961136544514575630_ or
4855        bytes2BigInt("\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",         UNSIGNED, LE) <>       5233100606242806050955395731361295_ or
4856        bytes2BigInt("\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;",     UNSIGNED, LE) <>    1339673755198158349044581307228491536_ or
4857        bytes2BigInt("\17;\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;", UNSIGNED, LE) <>  342956481330728537355412814650493833233_ or
4858        bytes2BigInt("\1;\2;",                                                      UNSIGNED, LE) <>                                      513_ or
4859        bytes2BigInt("\1;\2;\3;",                                                   UNSIGNED, LE) <>                                   197121_ or
4860        bytes2BigInt("\1;\2;\3;\4;",                                                UNSIGNED, LE) <>                                 67305985_ or
4861        bytes2BigInt("\1;\2;\3;\4;\5;",                                             UNSIGNED, LE) <>                              21542142465_ or
4862        bytes2BigInt("\1;\2;\3;\4;\5;\6;",                                          UNSIGNED, LE) <>                            6618611909121_ or
4863        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;",                                       UNSIGNED, LE) <>                         1976943448883713_ or
4864        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;",                                    UNSIGNED, LE) <>                       578437695752307201_ or
4865        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;",                                 UNSIGNED, LE) <>                    166599134359138271745_ or
4866        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;",                             UNSIGNED, LE) <>                  47390263963055590408705_ or
4867        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;",                         UNSIGNED, LE) <>               13345574279723976512176641_ or
4868        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;",                     UNSIGNED, LE) <>             3727165692135864801209549313_ or
4869        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;",                 UNSIGNED, LE) <>          1033693278377572253517280903681_ or
4870        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;",             UNSIGNED, LE) <>        284987427729500958188778798907905_ or
4871        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;",         UNSIGNED, LE) <>      78169440305751915386146223737209345_ or
4872        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;",     UNSIGNED, LE) <>   21345817372864405881847059188222722561_ or
4873        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\17;", UNSIGNED, LE) <> 5806146055028818284759215385528282317313_ then
4874      writeln("Conversion of unsigned little endian byte string to bigInteger does not work correct.");
4875      okay := FALSE;
4876    end if;
4877
4878    if  bytes2BigInt("\1;\255;",                                                     UNSIGNED, LE) <>                                     65281_ or
4879        bytes2BigInt("\2;\1;\255;",                                                  UNSIGNED, LE) <>                                  16711938_ or
4880        bytes2BigInt("\3;\2;\1;\255;",                                               UNSIGNED, LE) <>                                4278256131_ or
4881        bytes2BigInt("\4;\3;\2;\1;\255;",                                            UNSIGNED, LE) <>                             1095233569540_ or
4882        bytes2BigInt("\5;\4;\3;\2;\1;\255;",                                         UNSIGNED, LE) <>                           280379793802245_ or
4883        bytes2BigInt("\6;\5;\4;\3;\2;\1;\255;",                                      UNSIGNED, LE) <>                         71777227213374726_ or
4884        bytes2BigInt("\7;\6;\5;\4;\3;\2;\1;\255;",                                   UNSIGNED, LE) <>                      18374970166623929863_ or
4885        bytes2BigInt("\8;\7;\6;\5;\4;\3;\2;\1;\255;",                                UNSIGNED, LE) <>                    4703992362655726044936_ or
4886        bytes2BigInt("\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                             UNSIGNED, LE) <>                 1204222044839865867503625_ or
4887        bytes2BigInt("\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                         UNSIGNED, LE) <>               308280843479005662080928010_ or
4888        bytes2BigInt("\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                     UNSIGNED, LE) <>             78919895930625449492717570571_ or
4889        bytes2BigInt("\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",                 UNSIGNED, LE) <>          20203493358240115070135698066188_ or
4890        bytes2BigInt("\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",             UNSIGNED, LE) <>        5172094299709469457954738704944141_ or
4891        bytes2BigInt("\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",         UNSIGNED, LE) <>     1324056140725624181236413108465700110_ or
4892        bytes2BigInt("\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;",     UNSIGNED, LE) <>   338958372025759790396521755767219228175_ or
4893        bytes2BigInt("\16;\15;\14;\13;\12;\11;\10;\9;\8;\7;\6;\5;\4;\3;\2;\1;\255;", UNSIGNED, LE) <> 86773343238594506341509569476408122412816_ or
4894        bytes2BigInt("\1;\255;",                                                     UNSIGNED, LE) <>                                     65281_ or
4895        bytes2BigInt("\1;\2;\255;",                                                  UNSIGNED, LE) <>                                  16712193_ or
4896        bytes2BigInt("\1;\2;\3;\255;",                                               UNSIGNED, LE) <>                                4278387201_ or
4897        bytes2BigInt("\1;\2;\3;\4;\255;",                                            UNSIGNED, LE) <>                             1095283966465_ or
4898        bytes2BigInt("\1;\2;\3;\4;\5;\255;",                                         UNSIGNED, LE) <>                           280397007225345_ or
4899        bytes2BigInt("\1;\2;\3;\4;\5;\6;\255;",                                      UNSIGNED, LE) <>                         71782737673126401_ or
4900        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\255;",                                   UNSIGNED, LE) <>                      18376663423120507393_ or
4901        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\255;",                                UNSIGNED, LE) <>                    4704498176491687969281_ or
4902        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\255;",                             UNSIGNED, LE) <>                 1204370052266118667764225_ or
4903        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\255;",                         UNSIGNED, LE) <>               308323474265693495140483585_ or
4904        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\255;",                     UNSIGNED, LE) <>             78932023078722716501331345921_ or
4905        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\255;",                 UNSIGNED, LE) <>          20206908606829541951154916884993_ or
4906        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\255;",             UNSIGNED, LE) <>        5173048142209553530360066358837761_ or
4907        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\255;",         UNSIGNED, LE) <>     1324320686354110546233465342750032385_ or
4908        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\255;",     UNSIGNED, LE) <>   339031308365459299505856946595225076225_ or
4909        bytes2BigInt("\1;\2;\3;\4;\5;\6;\7;\8;\9;\10;\11;\12;\13;\14;\15;\16;\255;", UNSIGNED, LE) <> 86793349382212172589042371954289116643841_ then
4910      writeln("Conversion of unsigned little endian byte string to bigInteger does not work correct.");
4911      okay := FALSE;
4912    end if;
4913
4914    if  bytes2BigInt("",                                                   UNSIGNED, LE) <>                       0_ or
4915        bytes2BigInt("\000;\000;",                                         UNSIGNED, LE) <>                       0_ or
4916        bytes2BigInt("\000;\000;\000;",                                    UNSIGNED, LE) <>                       0_ or
4917        bytes2BigInt("\000;\000;\000;\000;",                               UNSIGNED, LE) <>                       0_ or
4918        bytes2BigInt("\000;\000;\000;\000;\000;",                          UNSIGNED, LE) <>                       0_ or
4919        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, LE) <>                       0_ or
4920        bytes2BigInt("\001;\000;",                                         UNSIGNED, LE) <>                       1_ or
4921        bytes2BigInt("\001;\000;\000;",                                    UNSIGNED, LE) <>                       1_ or
4922        bytes2BigInt("\001;\000;\000;\000;",                               UNSIGNED, LE) <>                       1_ or
4923        bytes2BigInt("\001;\000;\000;\000;\000;",                          UNSIGNED, LE) <>                       1_ or
4924        bytes2BigInt("\001;\000;\000;\000;\000;\000;\000;\000;\000;\000;", UNSIGNED, LE) <>                       1_ or
4925        bytes2BigInt("\127;\000;",                                         UNSIGNED, LE) <>                     127_ or
4926        bytes2BigInt("\127;\000;\000;",                                    UNSIGNED, LE) <>                     127_ or
4927        bytes2BigInt("\127;\000;\000;\000;",                               UNSIGNED, LE) <>                     127_ or
4928        bytes2BigInt("\127;\000;\000;\000;\000;",                          UNSIGNED, LE) <>                     127_ or
4929        bytes2BigInt("\128;\000;\000;",                                    UNSIGNED, LE) <>                     128_ or
4930        bytes2BigInt("\128;\000;\000;\000;",                               UNSIGNED, LE) <>                     128_ or
4931        bytes2BigInt("\128;\000;\000;\000;\000;",                          UNSIGNED, LE) <>                     128_ or
4932        bytes2BigInt("\255;\255;\255;\255;\255;\255;\127;\000;\000;\000;", UNSIGNED, LE) <>       36028797018963967_ or
4933        bytes2BigInt("\000;\000;\000;\000;\000;\000;\128;\000;\000;\000;", UNSIGNED, LE) <>       36028797018963968_ or
4934        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\000;\000;\000;", UNSIGNED, LE) <>       72057594037927935_ or
4935        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\127;\000;\000;", UNSIGNED, LE) <>     9223372036854775807_ or
4936        bytes2BigInt("\000;\000;\000;\000;\000;\000;\000;\128;\000;\000;", UNSIGNED, LE) <>     9223372036854775808_ or
4937        bytes2BigInt("\255;\255;\255;\255;\255;\255;\255;\255;\127;\000;", UNSIGNED, LE) <>  2361183241434822606847_ then
4938      writeln("Conversion of unsigned little endian byte string to bigInteger does not work correct.");
4939      okay := FALSE;
4940    end if;
4941
4942    if  bytes2BigInt("I\150;\2;\210;",     SIGNED,   LE) <>  -771582391_ or
4943        bytes2BigInt("I\150;\2;\210;",     UNSIGNED, LE) <>  3523384905_ or
4944        bytes2BigInt("\210;\2;\150;I",     SIGNED,   LE) <>  1234567890_ or
4945        bytes2BigInt("\210;\2;\150;I",     UNSIGNED, LE) <>  1234567890_ or
4946        bytes2BigInt(":\222;h\177;",       SIGNED,   LE) <> -1318527430_ or
4947        bytes2BigInt(":\222;h\177;",       UNSIGNED, LE) <>  2976439866_ or
4948        bytes2BigInt("\139;\208;\3;\152;", SIGNED,   LE) <> -1744580469_ or
4949        bytes2BigInt("\139;\208;\3;\152;", UNSIGNED, LE) <>  2550386827_ or
4950        bytes2BigInt("\152;\3;\208;\139;", SIGNED,   LE) <> -1949301864_ or
4951        bytes2BigInt("\152;\3;\208;\139;", UNSIGNED, LE) <>  2345665432_ then
4952      writeln("Conversion of little endian byte string to bigInteger does not work correct.");
4953      okay := FALSE;
4954    end if;
4955
4956    if okay then
4957      writeln("Conversion of little endian byte string to bigInteger works correct.");
4958    else
4959      writeln(" ***** Conversion of little endian byte string to bigInteger does not work correct.");
4960      writeln;
4961    end if;
4962  end func;
4963
4964
4965const func boolean: chkNegate (in bigInteger: big1,  in bigInteger: checkValue) is func
4966  result
4967    var boolean: wrong is FALSE;
4968  begin
4969    wrong := -big1 <> checkValue;
4970    if not wrong then
4971      wrong := -bigintExpr(big1) <> checkValue;
4972    end if;
4973  end func;
4974
4975
4976const proc: chkNegate is func
4977  local
4978    var boolean: okay is TRUE;
4979  begin
4980    if  chkNegate(                        0_, bigInteger parse                         "-0") or
4981        chkNegate(                        1_, bigInteger parse                         "-1") or
4982        chkNegate(                        2_, bigInteger parse                         "-2") or
4983        chkNegate(                        8_, bigInteger parse                         "-8") or
4984        chkNegate(                        9_, bigInteger parse                         "-9") or
4985        chkNegate(                       10_, bigInteger parse                        "-10") or
4986        chkNegate(                       11_, bigInteger parse                        "-11") or
4987        chkNegate(                       12_, bigInteger parse                        "-12") or
4988        chkNegate(                       98_, bigInteger parse                        "-98") or
4989        chkNegate(                       99_, bigInteger parse                        "-99") or
4990        chkNegate(                      100_, bigInteger parse                       "-100") or
4991        chkNegate(                      101_, bigInteger parse                       "-101") or
4992        chkNegate(                      102_, bigInteger parse                       "-102") or
4993        chkNegate(                      126_, bigInteger parse                       "-126") or
4994        chkNegate(                      127_, bigInteger parse                       "-127") or
4995        chkNegate(                      128_, bigInteger parse                       "-128") or
4996        chkNegate(                      129_, bigInteger parse                       "-129") or
4997        chkNegate(                      130_, bigInteger parse                       "-130") or
4998        chkNegate(                      254_, bigInteger parse                       "-254") or
4999        chkNegate(                      255_, bigInteger parse                       "-255") or
5000        chkNegate(                      256_, bigInteger parse                       "-256") or
5001        chkNegate(                      257_, bigInteger parse                       "-257") or
5002        chkNegate(                      258_, bigInteger parse                       "-258") or
5003        chkNegate(                      998_, bigInteger parse                       "-998") or
5004        chkNegate(                      999_, bigInteger parse                       "-999") or
5005        chkNegate(                     1000_, bigInteger parse                      "-1000") or
5006        chkNegate(                     1001_, bigInteger parse                      "-1001") or
5007        chkNegate(                     1002_, bigInteger parse                      "-1002") or
5008        chkNegate(                     9998_, bigInteger parse                      "-9998") or
5009        chkNegate(                     9999_, bigInteger parse                      "-9999") or
5010        chkNegate(                    10000_, bigInteger parse                     "-10000") or
5011        chkNegate(                    10001_, bigInteger parse                     "-10001") or
5012        chkNegate(                    10002_, bigInteger parse                     "-10002") or
5013        chkNegate(                    32766_, bigInteger parse                     "-32766") or
5014        chkNegate(                    32767_, bigInteger parse                     "-32767") or
5015        chkNegate(                    32768_, bigInteger parse                     "-32768") or
5016        chkNegate(                    32769_, bigInteger parse                     "-32769") or
5017        chkNegate(                    32770_, bigInteger parse                     "-32770") or
5018        chkNegate(                    65534_, bigInteger parse                     "-65534") or
5019        chkNegate(                    65535_, bigInteger parse                     "-65535") or
5020        chkNegate(                    65536_, bigInteger parse                     "-65536") or
5021        chkNegate(                    65537_, bigInteger parse                     "-65537") or
5022        chkNegate(                    65538_, bigInteger parse                     "-65538") or
5023        chkNegate(                    99998_, bigInteger parse                     "-99998") or
5024        chkNegate(                    99999_, bigInteger parse                     "-99999") or
5025        chkNegate(                   100000_, bigInteger parse                    "-100000") or
5026        chkNegate(                   100001_, bigInteger parse                    "-100001") or
5027        chkNegate(                   100002_, bigInteger parse                    "-100002") or
5028        chkNegate(                   999998_, bigInteger parse                    "-999998") or
5029        chkNegate(                   999999_, bigInteger parse                    "-999999") or
5030        chkNegate(                  1000000_, bigInteger parse                   "-1000000") or
5031        chkNegate(                  1000001_, bigInteger parse                   "-1000001") or
5032        chkNegate(                  1000002_, bigInteger parse                   "-1000002") or
5033        chkNegate(                  8388606_, bigInteger parse                   "-8388606") or
5034        chkNegate(                  8388607_, bigInteger parse                   "-8388607") or
5035        chkNegate(                  8388608_, bigInteger parse                   "-8388608") or
5036        chkNegate(                  8388609_, bigInteger parse                   "-8388609") or
5037        chkNegate(                  8388610_, bigInteger parse                   "-8388610") or
5038        chkNegate(                  9999998_, bigInteger parse                   "-9999998") or
5039        chkNegate(                  9999999_, bigInteger parse                   "-9999999") or
5040        chkNegate(                 10000000_, bigInteger parse                  "-10000000") or
5041        chkNegate(                 10000001_, bigInteger parse                  "-10000001") or
5042        chkNegate(                 10000002_, bigInteger parse                  "-10000002") or
5043        chkNegate(                 16777214_, bigInteger parse                  "-16777214") or
5044        chkNegate(                 16777215_, bigInteger parse                  "-16777215") or
5045        chkNegate(                 16777216_, bigInteger parse                  "-16777216") or
5046        chkNegate(                 16777217_, bigInteger parse                  "-16777217") or
5047        chkNegate(                 16777218_, bigInteger parse                  "-16777218") or
5048        chkNegate(                 99999998_, bigInteger parse                  "-99999998") or
5049        chkNegate(                 99999999_, bigInteger parse                  "-99999999") or
5050        chkNegate(                100000000_, bigInteger parse                 "-100000000") or
5051        chkNegate(                100000001_, bigInteger parse                 "-100000001") or
5052        chkNegate(                100000002_, bigInteger parse                 "-100000002") or
5053        chkNegate(                999999998_, bigInteger parse                 "-999999998") or
5054        chkNegate(                999999999_, bigInteger parse                 "-999999999") or
5055        chkNegate(               1000000000_, bigInteger parse                "-1000000000") or
5056        chkNegate(               1000000001_, bigInteger parse                "-1000000001") or
5057        chkNegate(               1000000002_, bigInteger parse                "-1000000002") or
5058        chkNegate(               2147483646_, bigInteger parse                "-2147483646") or
5059        chkNegate(               2147483647_, bigInteger parse                "-2147483647") or
5060        chkNegate(               2147483648_, bigInteger parse                "-2147483648") or
5061        chkNegate(               2147483649_, bigInteger parse                "-2147483649") or
5062        chkNegate(               2147483650_, bigInteger parse                "-2147483650") or
5063        chkNegate(               4294967294_, bigInteger parse                "-4294967294") or
5064        chkNegate(               4294967295_, bigInteger parse                "-4294967295") or
5065        chkNegate(               4294967296_, bigInteger parse                "-4294967296") or
5066        chkNegate(               4294967297_, bigInteger parse                "-4294967297") or
5067        chkNegate(               4294967298_, bigInteger parse                "-4294967298") or
5068        chkNegate(               9999999998_, bigInteger parse                "-9999999998") or
5069        chkNegate(               9999999999_, bigInteger parse                "-9999999999") or
5070        chkNegate(              10000000000_, bigInteger parse               "-10000000000") or
5071        chkNegate(              10000000001_, bigInteger parse               "-10000000001") or
5072        chkNegate(              10000000002_, bigInteger parse               "-10000000002") or
5073        chkNegate(              99999999998_, bigInteger parse               "-99999999998") or
5074        chkNegate(              99999999999_, bigInteger parse               "-99999999999") or
5075        chkNegate(             100000000000_, bigInteger parse              "-100000000000") or
5076        chkNegate(             100000000001_, bigInteger parse              "-100000000001") or
5077        chkNegate(             100000000002_, bigInteger parse              "-100000000002") or
5078        chkNegate(             549755813886_, bigInteger parse              "-549755813886") or
5079        chkNegate(             549755813887_, bigInteger parse              "-549755813887") or
5080        chkNegate(             549755813888_, bigInteger parse              "-549755813888") or
5081        chkNegate(             549755813889_, bigInteger parse              "-549755813889") or
5082        chkNegate(             549755813890_, bigInteger parse              "-549755813890") or
5083        chkNegate(             999999999998_, bigInteger parse              "-999999999998") or
5084        chkNegate(             999999999999_, bigInteger parse              "-999999999999") or
5085        chkNegate(            1000000000000_, bigInteger parse             "-1000000000000") or
5086        chkNegate(            1000000000001_, bigInteger parse             "-1000000000001") or
5087        chkNegate(            1000000000002_, bigInteger parse             "-1000000000002") or
5088        chkNegate(            1099511627774_, bigInteger parse             "-1099511627774") or
5089        chkNegate(            1099511627775_, bigInteger parse             "-1099511627775") or
5090        chkNegate(            1099511627776_, bigInteger parse             "-1099511627776") or
5091        chkNegate(            1099511627777_, bigInteger parse             "-1099511627777") or
5092        chkNegate(            1099511627778_, bigInteger parse             "-1099511627778") or
5093        chkNegate(          140737488355326_, bigInteger parse           "-140737488355326") or
5094        chkNegate(          140737488355327_, bigInteger parse           "-140737488355327") or
5095        chkNegate(          140737488355328_, bigInteger parse           "-140737488355328") or
5096        chkNegate(          140737488355329_, bigInteger parse           "-140737488355329") or
5097        chkNegate(          140737488355330_, bigInteger parse           "-140737488355330") or
5098        chkNegate(          281474976710654_, bigInteger parse           "-281474976710654") or
5099        chkNegate(          281474976710655_, bigInteger parse           "-281474976710655") or
5100        chkNegate(          281474976710656_, bigInteger parse           "-281474976710656") or
5101        chkNegate(          281474976710657_, bigInteger parse           "-281474976710657") or
5102        chkNegate(          281474976710658_, bigInteger parse           "-281474976710658") or
5103        chkNegate(        36028797018963966_, bigInteger parse         "-36028797018963966") or
5104        chkNegate(        36028797018963967_, bigInteger parse         "-36028797018963967") or
5105        chkNegate(        36028797018963968_, bigInteger parse         "-36028797018963968") or
5106        chkNegate(        36028797018963969_, bigInteger parse         "-36028797018963969") or
5107        chkNegate(        36028797018963970_, bigInteger parse         "-36028797018963970") or
5108        chkNegate(        72057594037927934_, bigInteger parse         "-72057594037927934") or
5109        chkNegate(        72057594037927935_, bigInteger parse         "-72057594037927935") or
5110        chkNegate(        72057594037927936_, bigInteger parse         "-72057594037927936") or
5111        chkNegate(        72057594037927937_, bigInteger parse         "-72057594037927937") or
5112        chkNegate(        72057594037927938_, bigInteger parse         "-72057594037927938") or
5113        chkNegate(      9223372036854775806_, bigInteger parse       "-9223372036854775806") or
5114        chkNegate(      9223372036854775807_, bigInteger parse       "-9223372036854775807") or
5115        chkNegate(      9223372036854775808_, bigInteger parse       "-9223372036854775808") or
5116        chkNegate(      9223372036854775809_, bigInteger parse       "-9223372036854775809") or
5117        chkNegate(      9223372036854775810_, bigInteger parse       "-9223372036854775810") or
5118        chkNegate(     18446744073709551614_, bigInteger parse      "-18446744073709551614") or
5119        chkNegate(     18446744073709551615_, bigInteger parse      "-18446744073709551615") or
5120        chkNegate(     18446744073709551616_, bigInteger parse      "-18446744073709551616") or
5121        chkNegate(     18446744073709551617_, bigInteger parse      "-18446744073709551617") or
5122        chkNegate(     18446744073709551618_, bigInteger parse      "-18446744073709551618") or
5123        chkNegate(   2361183241434822606846_, bigInteger parse    "-2361183241434822606846") or
5124        chkNegate(   2361183241434822606847_, bigInteger parse    "-2361183241434822606847") or
5125        chkNegate(   2361183241434822606848_, bigInteger parse    "-2361183241434822606848") or
5126        chkNegate(   2361183241434822606849_, bigInteger parse    "-2361183241434822606849") or
5127        chkNegate(   2361183241434822606850_, bigInteger parse    "-2361183241434822606850") or
5128        chkNegate(   4722366482869645213694_, bigInteger parse    "-4722366482869645213694") or
5129        chkNegate(   4722366482869645213695_, bigInteger parse    "-4722366482869645213695") or
5130        chkNegate(   4722366482869645213696_, bigInteger parse    "-4722366482869645213696") or
5131        chkNegate(   4722366482869645213697_, bigInteger parse    "-4722366482869645213697") or
5132        chkNegate(   4722366482869645213698_, bigInteger parse    "-4722366482869645213698") or
5133        chkNegate( 604462909807314587353086_, bigInteger parse  "-604462909807314587353086") or
5134        chkNegate( 604462909807314587353087_, bigInteger parse  "-604462909807314587353087") or
5135        chkNegate( 604462909807314587353088_, bigInteger parse  "-604462909807314587353088") or
5136        chkNegate( 604462909807314587353089_, bigInteger parse  "-604462909807314587353089") or
5137        chkNegate( 604462909807314587353090_, bigInteger parse  "-604462909807314587353090") or
5138        chkNegate(1208925819614629174706174_, bigInteger parse "-1208925819614629174706174") or
5139        chkNegate(1208925819614629174706175_, bigInteger parse "-1208925819614629174706175") or
5140        chkNegate(1208925819614629174706176_, bigInteger parse "-1208925819614629174706176") or
5141        chkNegate(1208925819614629174706177_, bigInteger parse "-1208925819614629174706177") or
5142        chkNegate(1208925819614629174706178_, bigInteger parse "-1208925819614629174706178") then
5143      writeln("Negation of a positive bigInteger does not work correct.");
5144      okay := FALSE;
5145    end if;
5146
5147    if  chkNegate(bigInteger parse                         "-0",                         0_) or
5148        chkNegate(bigInteger parse                         "-1",                         1_) or
5149        chkNegate(bigInteger parse                         "-2",                         2_) or
5150        chkNegate(bigInteger parse                         "-8",                         8_) or
5151        chkNegate(bigInteger parse                         "-9",                         9_) or
5152        chkNegate(bigInteger parse                        "-10",                        10_) or
5153        chkNegate(bigInteger parse                        "-11",                        11_) or
5154        chkNegate(bigInteger parse                        "-12",                        12_) or
5155        chkNegate(bigInteger parse                        "-98",                        98_) or
5156        chkNegate(bigInteger parse                        "-99",                        99_) or
5157        chkNegate(bigInteger parse                       "-100",                       100_) or
5158        chkNegate(bigInteger parse                       "-101",                       101_) or
5159        chkNegate(bigInteger parse                       "-102",                       102_) or
5160        chkNegate(bigInteger parse                       "-126",                       126_) or
5161        chkNegate(bigInteger parse                       "-127",                       127_) or
5162        chkNegate(bigInteger parse                       "-128",                       128_) or
5163        chkNegate(bigInteger parse                       "-129",                       129_) or
5164        chkNegate(bigInteger parse                       "-130",                       130_) or
5165        chkNegate(bigInteger parse                       "-254",                       254_) or
5166        chkNegate(bigInteger parse                       "-255",                       255_) or
5167        chkNegate(bigInteger parse                       "-256",                       256_) or
5168        chkNegate(bigInteger parse                       "-257",                       257_) or
5169        chkNegate(bigInteger parse                       "-258",                       258_) or
5170        chkNegate(bigInteger parse                       "-998",                       998_) or
5171        chkNegate(bigInteger parse                       "-999",                       999_) or
5172        chkNegate(bigInteger parse                      "-1000",                      1000_) or
5173        chkNegate(bigInteger parse                      "-1001",                      1001_) or
5174        chkNegate(bigInteger parse                      "-1002",                      1002_) or
5175        chkNegate(bigInteger parse                      "-9998",                      9998_) or
5176        chkNegate(bigInteger parse                      "-9999",                      9999_) or
5177        chkNegate(bigInteger parse                     "-10000",                     10000_) or
5178        chkNegate(bigInteger parse                     "-10001",                     10001_) or
5179        chkNegate(bigInteger parse                     "-10002",                     10002_) or
5180        chkNegate(bigInteger parse                     "-32766",                     32766_) or
5181        chkNegate(bigInteger parse                     "-32767",                     32767_) or
5182        chkNegate(bigInteger parse                     "-32768",                     32768_) or
5183        chkNegate(bigInteger parse                     "-32769",                     32769_) or
5184        chkNegate(bigInteger parse                     "-32770",                     32770_) or
5185        chkNegate(bigInteger parse                     "-65534",                     65534_) or
5186        chkNegate(bigInteger parse                     "-65535",                     65535_) or
5187        chkNegate(bigInteger parse                     "-65536",                     65536_) or
5188        chkNegate(bigInteger parse                     "-65537",                     65537_) or
5189        chkNegate(bigInteger parse                     "-65538",                     65538_) or
5190        chkNegate(bigInteger parse                     "-99998",                     99998_) or
5191        chkNegate(bigInteger parse                     "-99999",                     99999_) or
5192        chkNegate(bigInteger parse                    "-100000",                    100000_) or
5193        chkNegate(bigInteger parse                    "-100001",                    100001_) or
5194        chkNegate(bigInteger parse                    "-100002",                    100002_) or
5195        chkNegate(bigInteger parse                    "-999998",                    999998_) or
5196        chkNegate(bigInteger parse                    "-999999",                    999999_) or
5197        chkNegate(bigInteger parse                   "-1000000",                   1000000_) or
5198        chkNegate(bigInteger parse                   "-1000001",                   1000001_) or
5199        chkNegate(bigInteger parse                   "-1000002",                   1000002_) or
5200        chkNegate(bigInteger parse                   "-8388606",                   8388606_) or
5201        chkNegate(bigInteger parse                   "-8388607",                   8388607_) or
5202        chkNegate(bigInteger parse                   "-8388608",                   8388608_) or
5203        chkNegate(bigInteger parse                   "-8388609",                   8388609_) or
5204        chkNegate(bigInteger parse                   "-8388610",                   8388610_) or
5205        chkNegate(bigInteger parse                   "-9999998",                   9999998_) or
5206        chkNegate(bigInteger parse                   "-9999999",                   9999999_) or
5207        chkNegate(bigInteger parse                  "-10000000",                  10000000_) or
5208        chkNegate(bigInteger parse                  "-10000001",                  10000001_) or
5209        chkNegate(bigInteger parse                  "-10000002",                  10000002_) or
5210        chkNegate(bigInteger parse                  "-16777214",                  16777214_) or
5211        chkNegate(bigInteger parse                  "-16777215",                  16777215_) or
5212        chkNegate(bigInteger parse                  "-16777216",                  16777216_) or
5213        chkNegate(bigInteger parse                  "-16777217",                  16777217_) or
5214        chkNegate(bigInteger parse                  "-16777218",                  16777218_) or
5215        chkNegate(bigInteger parse                  "-99999998",                  99999998_) or
5216        chkNegate(bigInteger parse                  "-99999999",                  99999999_) or
5217        chkNegate(bigInteger parse                 "-100000000",                 100000000_) or
5218        chkNegate(bigInteger parse                 "-100000001",                 100000001_) or
5219        chkNegate(bigInteger parse                 "-100000002",                 100000002_) or
5220        chkNegate(bigInteger parse                 "-999999998",                 999999998_) or
5221        chkNegate(bigInteger parse                 "-999999999",                 999999999_) or
5222        chkNegate(bigInteger parse                "-1000000000",                1000000000_) or
5223        chkNegate(bigInteger parse                "-1000000001",                1000000001_) or
5224        chkNegate(bigInteger parse                "-1000000002",                1000000002_) or
5225        chkNegate(bigInteger parse                "-2147483646",                2147483646_) or
5226        chkNegate(bigInteger parse                "-2147483647",                2147483647_) or
5227        chkNegate(bigInteger parse                "-2147483648",                2147483648_) or
5228        chkNegate(bigInteger parse                "-2147483649",                2147483649_) or
5229        chkNegate(bigInteger parse                "-2147483650",                2147483650_) or
5230        chkNegate(bigInteger parse                "-4294967294",                4294967294_) or
5231        chkNegate(bigInteger parse                "-4294967295",                4294967295_) or
5232        chkNegate(bigInteger parse                "-4294967296",                4294967296_) or
5233        chkNegate(bigInteger parse                "-4294967297",                4294967297_) or
5234        chkNegate(bigInteger parse                "-4294967298",                4294967298_) or
5235        chkNegate(bigInteger parse                "-9999999998",                9999999998_) or
5236        chkNegate(bigInteger parse                "-9999999999",                9999999999_) or
5237        chkNegate(bigInteger parse               "-10000000000",               10000000000_) or
5238        chkNegate(bigInteger parse               "-10000000001",               10000000001_) or
5239        chkNegate(bigInteger parse               "-10000000002",               10000000002_) or
5240        chkNegate(bigInteger parse               "-99999999998",               99999999998_) or
5241        chkNegate(bigInteger parse               "-99999999999",               99999999999_) or
5242        chkNegate(bigInteger parse              "-100000000000",              100000000000_) or
5243        chkNegate(bigInteger parse              "-100000000001",              100000000001_) or
5244        chkNegate(bigInteger parse              "-100000000002",              100000000002_) or
5245        chkNegate(bigInteger parse              "-549755813886",              549755813886_) or
5246        chkNegate(bigInteger parse              "-549755813887",              549755813887_) or
5247        chkNegate(bigInteger parse              "-549755813888",              549755813888_) or
5248        chkNegate(bigInteger parse              "-549755813889",              549755813889_) or
5249        chkNegate(bigInteger parse              "-549755813890",              549755813890_) or
5250        chkNegate(bigInteger parse              "-999999999998",              999999999998_) or
5251        chkNegate(bigInteger parse              "-999999999999",              999999999999_) or
5252        chkNegate(bigInteger parse             "-1000000000000",             1000000000000_) or
5253        chkNegate(bigInteger parse             "-1000000000001",             1000000000001_) or
5254        chkNegate(bigInteger parse             "-1000000000002",             1000000000002_) or
5255        chkNegate(bigInteger parse             "-1099511627774",             1099511627774_) or
5256        chkNegate(bigInteger parse             "-1099511627775",             1099511627775_) or
5257        chkNegate(bigInteger parse             "-1099511627776",             1099511627776_) or
5258        chkNegate(bigInteger parse             "-1099511627777",             1099511627777_) or
5259        chkNegate(bigInteger parse             "-1099511627778",             1099511627778_) or
5260        chkNegate(bigInteger parse           "-140737488355326",           140737488355326_) or
5261        chkNegate(bigInteger parse           "-140737488355327",           140737488355327_) or
5262        chkNegate(bigInteger parse           "-140737488355328",           140737488355328_) or
5263        chkNegate(bigInteger parse           "-140737488355329",           140737488355329_) or
5264        chkNegate(bigInteger parse           "-140737488355330",           140737488355330_) or
5265        chkNegate(bigInteger parse           "-281474976710654",           281474976710654_) or
5266        chkNegate(bigInteger parse           "-281474976710655",           281474976710655_) or
5267        chkNegate(bigInteger parse           "-281474976710656",           281474976710656_) or
5268        chkNegate(bigInteger parse           "-281474976710657",           281474976710657_) or
5269        chkNegate(bigInteger parse           "-281474976710658",           281474976710658_) or
5270        chkNegate(bigInteger parse         "-36028797018963966",         36028797018963966_) or
5271        chkNegate(bigInteger parse         "-36028797018963967",         36028797018963967_) or
5272        chkNegate(bigInteger parse         "-36028797018963968",         36028797018963968_) or
5273        chkNegate(bigInteger parse         "-36028797018963969",         36028797018963969_) or
5274        chkNegate(bigInteger parse         "-36028797018963970",         36028797018963970_) or
5275        chkNegate(bigInteger parse         "-72057594037927934",         72057594037927934_) or
5276        chkNegate(bigInteger parse         "-72057594037927935",         72057594037927935_) or
5277        chkNegate(bigInteger parse         "-72057594037927936",         72057594037927936_) or
5278        chkNegate(bigInteger parse         "-72057594037927937",         72057594037927937_) or
5279        chkNegate(bigInteger parse         "-72057594037927938",         72057594037927938_) or
5280        chkNegate(bigInteger parse       "-9223372036854775806",       9223372036854775806_) or
5281        chkNegate(bigInteger parse       "-9223372036854775807",       9223372036854775807_) or
5282        chkNegate(bigInteger parse       "-9223372036854775808",       9223372036854775808_) or
5283        chkNegate(bigInteger parse       "-9223372036854775809",       9223372036854775809_) or
5284        chkNegate(bigInteger parse       "-9223372036854775810",       9223372036854775810_) or
5285        chkNegate(bigInteger parse      "-18446744073709551614",      18446744073709551614_) or
5286        chkNegate(bigInteger parse      "-18446744073709551615",      18446744073709551615_) or
5287        chkNegate(bigInteger parse      "-18446744073709551616",      18446744073709551616_) or
5288        chkNegate(bigInteger parse      "-18446744073709551617",      18446744073709551617_) or
5289        chkNegate(bigInteger parse      "-18446744073709551618",      18446744073709551618_) or
5290        chkNegate(bigInteger parse    "-2361183241434822606846",    2361183241434822606846_) or
5291        chkNegate(bigInteger parse    "-2361183241434822606847",    2361183241434822606847_) or
5292        chkNegate(bigInteger parse    "-2361183241434822606848",    2361183241434822606848_) or
5293        chkNegate(bigInteger parse    "-2361183241434822606849",    2361183241434822606849_) or
5294        chkNegate(bigInteger parse    "-2361183241434822606850",    2361183241434822606850_) or
5295        chkNegate(bigInteger parse    "-4722366482869645213694",    4722366482869645213694_) or
5296        chkNegate(bigInteger parse    "-4722366482869645213695",    4722366482869645213695_) or
5297        chkNegate(bigInteger parse    "-4722366482869645213696",    4722366482869645213696_) or
5298        chkNegate(bigInteger parse    "-4722366482869645213697",    4722366482869645213697_) or
5299        chkNegate(bigInteger parse    "-4722366482869645213698",    4722366482869645213698_) or
5300        chkNegate(bigInteger parse  "-604462909807314587353086",  604462909807314587353086_) or
5301        chkNegate(bigInteger parse  "-604462909807314587353087",  604462909807314587353087_) or
5302        chkNegate(bigInteger parse  "-604462909807314587353088",  604462909807314587353088_) or
5303        chkNegate(bigInteger parse  "-604462909807314587353089",  604462909807314587353089_) or
5304        chkNegate(bigInteger parse  "-604462909807314587353090",  604462909807314587353090_) or
5305        chkNegate(bigInteger parse "-1208925819614629174706174", 1208925819614629174706174_) or
5306        chkNegate(bigInteger parse "-1208925819614629174706175", 1208925819614629174706175_) or
5307        chkNegate(bigInteger parse "-1208925819614629174706176", 1208925819614629174706176_) or
5308        chkNegate(bigInteger parse "-1208925819614629174706177", 1208925819614629174706177_) or
5309        chkNegate(bigInteger parse "-1208925819614629174706178", 1208925819614629174706178_) then
5310      writeln("Negation of a negative bigInteger does not work correct.");
5311      okay := FALSE;
5312    end if;
5313
5314    if                          -0_ <> bigInteger parse                         "-0" or
5315                                -1_ <> bigInteger parse                         "-1" or
5316                                -2_ <> bigInteger parse                         "-2" or
5317                                -8_ <> bigInteger parse                         "-8" or
5318                                -9_ <> bigInteger parse                         "-9" or
5319                               -10_ <> bigInteger parse                        "-10" or
5320                               -11_ <> bigInteger parse                        "-11" or
5321                               -12_ <> bigInteger parse                        "-12" or
5322                               -98_ <> bigInteger parse                        "-98" or
5323                               -99_ <> bigInteger parse                        "-99" or
5324                              -100_ <> bigInteger parse                       "-100" or
5325                              -101_ <> bigInteger parse                       "-101" or
5326                              -102_ <> bigInteger parse                       "-102" or
5327                              -126_ <> bigInteger parse                       "-126" or
5328                              -127_ <> bigInteger parse                       "-127" or
5329                              -128_ <> bigInteger parse                       "-128" or
5330                              -129_ <> bigInteger parse                       "-129" or
5331                              -130_ <> bigInteger parse                       "-130" or
5332                              -254_ <> bigInteger parse                       "-254" or
5333                              -255_ <> bigInteger parse                       "-255" or
5334                              -256_ <> bigInteger parse                       "-256" or
5335                              -257_ <> bigInteger parse                       "-257" or
5336                              -258_ <> bigInteger parse                       "-258" or
5337                              -998_ <> bigInteger parse                       "-998" or
5338                              -999_ <> bigInteger parse                       "-999" or
5339                             -1000_ <> bigInteger parse                      "-1000" or
5340                             -1001_ <> bigInteger parse                      "-1001" or
5341                             -1002_ <> bigInteger parse                      "-1002" or
5342                             -9998_ <> bigInteger parse                      "-9998" or
5343                             -9999_ <> bigInteger parse                      "-9999" or
5344                            -10000_ <> bigInteger parse                     "-10000" or
5345                            -10001_ <> bigInteger parse                     "-10001" or
5346                            -10002_ <> bigInteger parse                     "-10002" or
5347                            -32766_ <> bigInteger parse                     "-32766" or
5348                            -32767_ <> bigInteger parse                     "-32767" or
5349                            -32768_ <> bigInteger parse                     "-32768" or
5350                            -32769_ <> bigInteger parse                     "-32769" or
5351                            -32770_ <> bigInteger parse                     "-32770" or
5352                            -65534_ <> bigInteger parse                     "-65534" or
5353                            -65535_ <> bigInteger parse                     "-65535" or
5354                            -65536_ <> bigInteger parse                     "-65536" or
5355                            -65537_ <> bigInteger parse                     "-65537" or
5356                            -65538_ <> bigInteger parse                     "-65538" or
5357                            -99998_ <> bigInteger parse                     "-99998" or
5358                            -99999_ <> bigInteger parse                     "-99999" or
5359                           -100000_ <> bigInteger parse                    "-100000" or
5360                           -100001_ <> bigInteger parse                    "-100001" or
5361                           -100002_ <> bigInteger parse                    "-100002" or
5362                           -999998_ <> bigInteger parse                    "-999998" or
5363                           -999999_ <> bigInteger parse                    "-999999" or
5364                          -1000000_ <> bigInteger parse                   "-1000000" or
5365                          -1000001_ <> bigInteger parse                   "-1000001" or
5366                          -1000002_ <> bigInteger parse                   "-1000002" or
5367                          -8388606_ <> bigInteger parse                   "-8388606" or
5368                          -8388607_ <> bigInteger parse                   "-8388607" or
5369                          -8388608_ <> bigInteger parse                   "-8388608" or
5370                          -8388609_ <> bigInteger parse                   "-8388609" or
5371                          -8388610_ <> bigInteger parse                   "-8388610" or
5372                          -9999998_ <> bigInteger parse                   "-9999998" or
5373                          -9999999_ <> bigInteger parse                   "-9999999" or
5374                         -10000000_ <> bigInteger parse                  "-10000000" or
5375                         -10000001_ <> bigInteger parse                  "-10000001" or
5376                         -10000002_ <> bigInteger parse                  "-10000002" or
5377                         -16777214_ <> bigInteger parse                  "-16777214" or
5378                         -16777215_ <> bigInteger parse                  "-16777215" or
5379                         -16777216_ <> bigInteger parse                  "-16777216" or
5380                         -16777217_ <> bigInteger parse                  "-16777217" or
5381                         -16777218_ <> bigInteger parse                  "-16777218" or
5382                         -99999998_ <> bigInteger parse                  "-99999998" or
5383                         -99999999_ <> bigInteger parse                  "-99999999" or
5384                        -100000000_ <> bigInteger parse                 "-100000000" or
5385                        -100000001_ <> bigInteger parse                 "-100000001" or
5386                        -100000002_ <> bigInteger parse                 "-100000002" or
5387                        -999999998_ <> bigInteger parse                 "-999999998" or
5388                        -999999999_ <> bigInteger parse                 "-999999999" or
5389                       -1000000000_ <> bigInteger parse                "-1000000000" or
5390                       -1000000001_ <> bigInteger parse                "-1000000001" or
5391                       -1000000002_ <> bigInteger parse                "-1000000002" or
5392                       -2147483646_ <> bigInteger parse                "-2147483646" or
5393                       -2147483647_ <> bigInteger parse                "-2147483647" or
5394                       -2147483648_ <> bigInteger parse                "-2147483648" or
5395                       -2147483649_ <> bigInteger parse                "-2147483649" or
5396                       -2147483650_ <> bigInteger parse                "-2147483650" or
5397                       -4294967294_ <> bigInteger parse                "-4294967294" or
5398                       -4294967295_ <> bigInteger parse                "-4294967295" or
5399                       -4294967296_ <> bigInteger parse                "-4294967296" or
5400                       -4294967297_ <> bigInteger parse                "-4294967297" or
5401                       -4294967298_ <> bigInteger parse                "-4294967298" or
5402                       -9999999998_ <> bigInteger parse                "-9999999998" or
5403                       -9999999999_ <> bigInteger parse                "-9999999999" or
5404                      -10000000000_ <> bigInteger parse               "-10000000000" or
5405                      -10000000001_ <> bigInteger parse               "-10000000001" or
5406                      -10000000002_ <> bigInteger parse               "-10000000002" or
5407                      -99999999998_ <> bigInteger parse               "-99999999998" or
5408                      -99999999999_ <> bigInteger parse               "-99999999999" or
5409                     -100000000000_ <> bigInteger parse              "-100000000000" or
5410                     -100000000001_ <> bigInteger parse              "-100000000001" or
5411                     -100000000002_ <> bigInteger parse              "-100000000002" or
5412                     -549755813886_ <> bigInteger parse              "-549755813886" or
5413                     -549755813887_ <> bigInteger parse              "-549755813887" or
5414                     -549755813888_ <> bigInteger parse              "-549755813888" or
5415                     -549755813889_ <> bigInteger parse              "-549755813889" or
5416                     -549755813890_ <> bigInteger parse              "-549755813890" or
5417                     -999999999998_ <> bigInteger parse              "-999999999998" or
5418                     -999999999999_ <> bigInteger parse              "-999999999999" or
5419                    -1000000000000_ <> bigInteger parse             "-1000000000000" or
5420                    -1000000000001_ <> bigInteger parse             "-1000000000001" or
5421                    -1000000000002_ <> bigInteger parse             "-1000000000002" or
5422                    -1099511627774_ <> bigInteger parse             "-1099511627774" or
5423                    -1099511627775_ <> bigInteger parse             "-1099511627775" or
5424                    -1099511627776_ <> bigInteger parse             "-1099511627776" or
5425                    -1099511627777_ <> bigInteger parse             "-1099511627777" or
5426                    -1099511627778_ <> bigInteger parse             "-1099511627778" or
5427                  -140737488355326_ <> bigInteger parse           "-140737488355326" or
5428                  -140737488355327_ <> bigInteger parse           "-140737488355327" or
5429                  -140737488355328_ <> bigInteger parse           "-140737488355328" or
5430                  -140737488355329_ <> bigInteger parse           "-140737488355329" or
5431                  -140737488355330_ <> bigInteger parse           "-140737488355330" or
5432                  -281474976710654_ <> bigInteger parse           "-281474976710654" or
5433                  -281474976710655_ <> bigInteger parse           "-281474976710655" or
5434                  -281474976710656_ <> bigInteger parse           "-281474976710656" or
5435                  -281474976710657_ <> bigInteger parse           "-281474976710657" or
5436                  -281474976710658_ <> bigInteger parse           "-281474976710658" or
5437                -36028797018963966_ <> bigInteger parse         "-36028797018963966" or
5438                -36028797018963967_ <> bigInteger parse         "-36028797018963967" or
5439                -36028797018963968_ <> bigInteger parse         "-36028797018963968" or
5440                -36028797018963969_ <> bigInteger parse         "-36028797018963969" or
5441                -36028797018963970_ <> bigInteger parse         "-36028797018963970" or
5442                -72057594037927934_ <> bigInteger parse         "-72057594037927934" or
5443                -72057594037927935_ <> bigInteger parse         "-72057594037927935" or
5444                -72057594037927936_ <> bigInteger parse         "-72057594037927936" or
5445                -72057594037927937_ <> bigInteger parse         "-72057594037927937" or
5446                -72057594037927938_ <> bigInteger parse         "-72057594037927938" or
5447              -9223372036854775806_ <> bigInteger parse       "-9223372036854775806" or
5448              -9223372036854775807_ <> bigInteger parse       "-9223372036854775807" or
5449              -9223372036854775808_ <> bigInteger parse       "-9223372036854775808" or
5450              -9223372036854775809_ <> bigInteger parse       "-9223372036854775809" or
5451              -9223372036854775810_ <> bigInteger parse       "-9223372036854775810" or
5452             -18446744073709551614_ <> bigInteger parse      "-18446744073709551614" or
5453             -18446744073709551615_ <> bigInteger parse      "-18446744073709551615" or
5454             -18446744073709551616_ <> bigInteger parse      "-18446744073709551616" or
5455             -18446744073709551617_ <> bigInteger parse      "-18446744073709551617" or
5456             -18446744073709551618_ <> bigInteger parse      "-18446744073709551618" or
5457           -2361183241434822606846_ <> bigInteger parse    "-2361183241434822606846" or
5458           -2361183241434822606847_ <> bigInteger parse    "-2361183241434822606847" or
5459           -2361183241434822606848_ <> bigInteger parse    "-2361183241434822606848" or
5460           -2361183241434822606849_ <> bigInteger parse    "-2361183241434822606849" or
5461           -2361183241434822606850_ <> bigInteger parse    "-2361183241434822606850" or
5462           -4722366482869645213694_ <> bigInteger parse    "-4722366482869645213694" or
5463           -4722366482869645213695_ <> bigInteger parse    "-4722366482869645213695" or
5464           -4722366482869645213696_ <> bigInteger parse    "-4722366482869645213696" or
5465           -4722366482869645213697_ <> bigInteger parse    "-4722366482869645213697" or
5466           -4722366482869645213698_ <> bigInteger parse    "-4722366482869645213698" or
5467         -604462909807314587353086_ <> bigInteger parse  "-604462909807314587353086" or
5468         -604462909807314587353087_ <> bigInteger parse  "-604462909807314587353087" or
5469         -604462909807314587353088_ <> bigInteger parse  "-604462909807314587353088" or
5470         -604462909807314587353089_ <> bigInteger parse  "-604462909807314587353089" or
5471         -604462909807314587353090_ <> bigInteger parse  "-604462909807314587353090" or
5472        -1208925819614629174706174_ <> bigInteger parse "-1208925819614629174706174" or
5473        -1208925819614629174706175_ <> bigInteger parse "-1208925819614629174706175" or
5474        -1208925819614629174706176_ <> bigInteger parse "-1208925819614629174706176" or
5475        -1208925819614629174706177_ <> bigInteger parse "-1208925819614629174706177" or
5476        -1208925819614629174706178_ <> bigInteger parse "-1208925819614629174706178" then
5477      writeln("Negation of a positive bigInteger does not work correct.");
5478      okay := FALSE;
5479    end if;
5480
5481    if  -                         -0_ <>                         0_ or
5482        -                         -1_ <>                         1_ or
5483        -                         -2_ <>                         2_ or
5484        -                         -8_ <>                         8_ or
5485        -                         -9_ <>                         9_ or
5486        -                        -10_ <>                        10_ or
5487        -                        -11_ <>                        11_ or
5488        -                        -12_ <>                        12_ or
5489        -                        -98_ <>                        98_ or
5490        -                        -99_ <>                        99_ or
5491        -                       -100_ <>                       100_ or
5492        -                       -101_ <>                       101_ or
5493        -                       -102_ <>                       102_ or
5494        -                       -126_ <>                       126_ or
5495        -                       -127_ <>                       127_ or
5496        -                       -128_ <>                       128_ or
5497        -                       -129_ <>                       129_ or
5498        -                       -130_ <>                       130_ or
5499        -                       -254_ <>                       254_ or
5500        -                       -255_ <>                       255_ or
5501        -                       -256_ <>                       256_ or
5502        -                       -257_ <>                       257_ or
5503        -                       -258_ <>                       258_ or
5504        -                       -998_ <>                       998_ or
5505        -                       -999_ <>                       999_ or
5506        -                      -1000_ <>                      1000_ or
5507        -                      -1001_ <>                      1001_ or
5508        -                      -1002_ <>                      1002_ or
5509        -                      -9998_ <>                      9998_ or
5510        -                      -9999_ <>                      9999_ or
5511        -                     -10000_ <>                     10000_ or
5512        -                     -10001_ <>                     10001_ or
5513        -                     -10002_ <>                     10002_ or
5514        -                     -32766_ <>                     32766_ or
5515        -                     -32767_ <>                     32767_ or
5516        -                     -32768_ <>                     32768_ or
5517        -                     -32769_ <>                     32769_ or
5518        -                     -32770_ <>                     32770_ or
5519        -                     -65534_ <>                     65534_ or
5520        -                     -65535_ <>                     65535_ or
5521        -                     -65536_ <>                     65536_ or
5522        -                     -65537_ <>                     65537_ or
5523        -                     -65538_ <>                     65538_ or
5524        -                     -99998_ <>                     99998_ or
5525        -                     -99999_ <>                     99999_ or
5526        -                    -100000_ <>                    100000_ or
5527        -                    -100001_ <>                    100001_ or
5528        -                    -100002_ <>                    100002_ or
5529        -                    -999998_ <>                    999998_ or
5530        -                    -999999_ <>                    999999_ or
5531        -                   -1000000_ <>                   1000000_ or
5532        -                   -1000001_ <>                   1000001_ or
5533        -                   -1000002_ <>                   1000002_ or
5534        -                   -8388606_ <>                   8388606_ or
5535        -                   -8388607_ <>                   8388607_ or
5536        -                   -8388608_ <>                   8388608_ or
5537        -                   -8388609_ <>                   8388609_ or
5538        -                   -8388610_ <>                   8388610_ or
5539        -                   -9999998_ <>                   9999998_ or
5540        -                   -9999999_ <>                   9999999_ or
5541        -                  -10000000_ <>                  10000000_ or
5542        -                  -10000001_ <>                  10000001_ or
5543        -                  -10000002_ <>                  10000002_ or
5544        -                  -16777214_ <>                  16777214_ or
5545        -                  -16777215_ <>                  16777215_ or
5546        -                  -16777216_ <>                  16777216_ or
5547        -                  -16777217_ <>                  16777217_ or
5548        -                  -16777218_ <>                  16777218_ or
5549        -                  -99999998_ <>                  99999998_ or
5550        -                  -99999999_ <>                  99999999_ or
5551        -                 -100000000_ <>                 100000000_ or
5552        -                 -100000001_ <>                 100000001_ or
5553        -                 -100000002_ <>                 100000002_ or
5554        -                 -999999998_ <>                 999999998_ or
5555        -                 -999999999_ <>                 999999999_ or
5556        -                -1000000000_ <>                1000000000_ or
5557        -                -1000000001_ <>                1000000001_ or
5558        -                -1000000002_ <>                1000000002_ or
5559        -                -2147483646_ <>                2147483646_ or
5560        -                -2147483647_ <>                2147483647_ or
5561        -                -2147483648_ <>                2147483648_ or
5562        -                -2147483649_ <>                2147483649_ or
5563        -                -2147483650_ <>                2147483650_ or
5564        -                -4294967294_ <>                4294967294_ or
5565        -                -4294967295_ <>                4294967295_ or
5566        -                -4294967296_ <>                4294967296_ or
5567        -                -4294967297_ <>                4294967297_ or
5568        -                -4294967298_ <>                4294967298_ or
5569        -                -9999999998_ <>                9999999998_ or
5570        -                -9999999999_ <>                9999999999_ or
5571        -               -10000000000_ <>               10000000000_ or
5572        -               -10000000001_ <>               10000000001_ or
5573        -               -10000000002_ <>               10000000002_ or
5574        -               -99999999998_ <>               99999999998_ or
5575        -               -99999999999_ <>               99999999999_ or
5576        -              -100000000000_ <>              100000000000_ or
5577        -              -100000000001_ <>              100000000001_ or
5578        -              -100000000002_ <>              100000000002_ or
5579        -              -549755813886_ <>              549755813886_ or
5580        -              -549755813887_ <>              549755813887_ or
5581        -              -549755813888_ <>              549755813888_ or
5582        -              -549755813889_ <>              549755813889_ or
5583        -              -549755813890_ <>              549755813890_ or
5584        -              -999999999998_ <>              999999999998_ or
5585        -              -999999999999_ <>              999999999999_ or
5586        -             -1000000000000_ <>             1000000000000_ or
5587        -             -1000000000001_ <>             1000000000001_ or
5588        -             -1000000000002_ <>             1000000000002_ or
5589        -             -1099511627774_ <>             1099511627774_ or
5590        -             -1099511627775_ <>             1099511627775_ or
5591        -             -1099511627776_ <>             1099511627776_ or
5592        -             -1099511627777_ <>             1099511627777_ or
5593        -             -1099511627778_ <>             1099511627778_ or
5594        -           -140737488355326_ <>           140737488355326_ or
5595        -           -140737488355327_ <>           140737488355327_ or
5596        -           -140737488355328_ <>           140737488355328_ or
5597        -           -140737488355329_ <>           140737488355329_ or
5598        -           -140737488355330_ <>           140737488355330_ or
5599        -           -281474976710654_ <>           281474976710654_ or
5600        -           -281474976710655_ <>           281474976710655_ or
5601        -           -281474976710656_ <>           281474976710656_ or
5602        -           -281474976710657_ <>           281474976710657_ or
5603        -           -281474976710658_ <>           281474976710658_ or
5604        -         -36028797018963966_ <>         36028797018963966_ or
5605        -         -36028797018963967_ <>         36028797018963967_ or
5606        -         -36028797018963968_ <>         36028797018963968_ or
5607        -         -36028797018963969_ <>         36028797018963969_ or
5608        -         -36028797018963970_ <>         36028797018963970_ or
5609        -         -72057594037927934_ <>         72057594037927934_ or
5610        -         -72057594037927935_ <>         72057594037927935_ or
5611        -         -72057594037927936_ <>         72057594037927936_ or
5612        -         -72057594037927937_ <>         72057594037927937_ or
5613        -         -72057594037927938_ <>         72057594037927938_ or
5614        -       -9223372036854775806_ <>       9223372036854775806_ or
5615        -       -9223372036854775807_ <>       9223372036854775807_ or
5616        -       -9223372036854775808_ <>       9223372036854775808_ or
5617        -       -9223372036854775809_ <>       9223372036854775809_ or
5618        -       -9223372036854775810_ <>       9223372036854775810_ or
5619        -      -18446744073709551614_ <>      18446744073709551614_ or
5620        -      -18446744073709551615_ <>      18446744073709551615_ or
5621        -      -18446744073709551616_ <>      18446744073709551616_ or
5622        -      -18446744073709551617_ <>      18446744073709551617_ or
5623        -      -18446744073709551618_ <>      18446744073709551618_ or
5624        -    -2361183241434822606846_ <>    2361183241434822606846_ or
5625        -    -2361183241434822606847_ <>    2361183241434822606847_ or
5626        -    -2361183241434822606848_ <>    2361183241434822606848_ or
5627        -    -2361183241434822606849_ <>    2361183241434822606849_ or
5628        -    -2361183241434822606850_ <>    2361183241434822606850_ or
5629        -    -4722366482869645213694_ <>    4722366482869645213694_ or
5630        -    -4722366482869645213695_ <>    4722366482869645213695_ or
5631        -    -4722366482869645213696_ <>    4722366482869645213696_ or
5632        -    -4722366482869645213697_ <>    4722366482869645213697_ or
5633        -    -4722366482869645213698_ <>    4722366482869645213698_ or
5634        -  -604462909807314587353086_ <>  604462909807314587353086_ or
5635        -  -604462909807314587353087_ <>  604462909807314587353087_ or
5636        -  -604462909807314587353088_ <>  604462909807314587353088_ or
5637        -  -604462909807314587353089_ <>  604462909807314587353089_ or
5638        -  -604462909807314587353090_ <>  604462909807314587353090_ or
5639        - -1208925819614629174706174_ <> 1208925819614629174706174_ or
5640        - -1208925819614629174706175_ <> 1208925819614629174706175_ or
5641        - -1208925819614629174706176_ <> 1208925819614629174706176_ or
5642        - -1208925819614629174706177_ <> 1208925819614629174706177_ or
5643        - -1208925819614629174706178_ <> 1208925819614629174706178_ then
5644      writeln("Negation of a negative bigInteger does not work correct.");
5645      okay := FALSE;
5646    end if;
5647
5648    if okay then
5649      writeln("The bigInteger negation works correct.");
5650    else
5651      writeln(" ***** The bigInteger negation does not work correct.");
5652      writeln;
5653    end if;
5654  end func;
5655
5656
5657const proc: chkPlus is func
5658  local
5659    var boolean: okay is TRUE;
5660  begin
5661    if                          +0_ <>                         0_ or
5662                                +1_ <>                         1_ or
5663                                +2_ <>                         2_ or
5664                                +8_ <>                         8_ or
5665                                +9_ <>                         9_ or
5666                               +10_ <>                        10_ or
5667                               +11_ <>                        11_ or
5668                               +12_ <>                        12_ or
5669                               +98_ <>                        98_ or
5670                               +99_ <>                        99_ or
5671                              +100_ <>                       100_ or
5672                              +101_ <>                       101_ or
5673                              +102_ <>                       102_ or
5674                              +126_ <>                       126_ or
5675                              +127_ <>                       127_ or
5676                              +128_ <>                       128_ or
5677                              +129_ <>                       129_ or
5678                              +130_ <>                       130_ or
5679                              +254_ <>                       254_ or
5680                              +255_ <>                       255_ or
5681                              +256_ <>                       256_ or
5682                              +257_ <>                       257_ or
5683                              +258_ <>                       258_ or
5684                              +998_ <>                       998_ or
5685                              +999_ <>                       999_ or
5686                             +1000_ <>                      1000_ or
5687                             +1001_ <>                      1001_ or
5688                             +1002_ <>                      1002_ or
5689                             +9998_ <>                      9998_ or
5690                             +9999_ <>                      9999_ or
5691                            +10000_ <>                     10000_ or
5692                            +10001_ <>                     10001_ or
5693                            +10002_ <>                     10002_ or
5694                            +32766_ <>                     32766_ or
5695                            +32767_ <>                     32767_ or
5696                            +32768_ <>                     32768_ or
5697                            +32769_ <>                     32769_ or
5698                            +32770_ <>                     32770_ or
5699                            +65534_ <>                     65534_ or
5700                            +65535_ <>                     65535_ or
5701                            +65536_ <>                     65536_ or
5702                            +65537_ <>                     65537_ or
5703                            +65538_ <>                     65538_ or
5704                            +99998_ <>                     99998_ or
5705                            +99999_ <>                     99999_ or
5706                           +100000_ <>                    100000_ or
5707                           +100001_ <>                    100001_ or
5708                           +100002_ <>                    100002_ or
5709                           +999998_ <>                    999998_ or
5710                           +999999_ <>                    999999_ or
5711                          +1000000_ <>                   1000000_ or
5712                          +1000001_ <>                   1000001_ or
5713                          +1000002_ <>                   1000002_ or
5714                          +8388606_ <>                   8388606_ or
5715                          +8388607_ <>                   8388607_ or
5716                          +8388608_ <>                   8388608_ or
5717                          +8388609_ <>                   8388609_ or
5718                          +8388610_ <>                   8388610_ or
5719                          +9999998_ <>                   9999998_ or
5720                          +9999999_ <>                   9999999_ or
5721                         +10000000_ <>                  10000000_ or
5722                         +10000001_ <>                  10000001_ or
5723                         +10000002_ <>                  10000002_ or
5724                         +16777214_ <>                  16777214_ or
5725                         +16777215_ <>                  16777215_ or
5726                         +16777216_ <>                  16777216_ or
5727                         +16777217_ <>                  16777217_ or
5728                         +16777218_ <>                  16777218_ or
5729                         +99999998_ <>                  99999998_ or
5730                         +99999999_ <>                  99999999_ or
5731                        +100000000_ <>                 100000000_ or
5732                        +100000001_ <>                 100000001_ or
5733                        +100000002_ <>                 100000002_ or
5734                        +999999998_ <>                 999999998_ or
5735                        +999999999_ <>                 999999999_ or
5736                       +1000000000_ <>                1000000000_ or
5737                       +1000000001_ <>                1000000001_ or
5738                       +1000000002_ <>                1000000002_ or
5739                       +2147483646_ <>                2147483646_ or
5740                       +2147483647_ <>                2147483647_ or
5741                       +2147483648_ <>                2147483648_ or
5742                       +2147483649_ <>                2147483649_ or
5743                       +2147483650_ <>                2147483650_ or
5744                       +4294967294_ <>                4294967294_ or
5745                       +4294967295_ <>                4294967295_ or
5746                       +4294967296_ <>                4294967296_ or
5747                       +4294967297_ <>                4294967297_ or
5748                       +4294967298_ <>                4294967298_ or
5749                       +9999999998_ <>                9999999998_ or
5750                       +9999999999_ <>                9999999999_ or
5751                      +10000000000_ <>               10000000000_ or
5752                      +10000000001_ <>               10000000001_ or
5753                      +10000000002_ <>               10000000002_ or
5754                      +99999999998_ <>               99999999998_ or
5755                      +99999999999_ <>               99999999999_ or
5756                     +100000000000_ <>              100000000000_ or
5757                     +100000000001_ <>              100000000001_ or
5758                     +100000000002_ <>              100000000002_ or
5759                     +549755813886_ <>              549755813886_ or
5760                     +549755813887_ <>              549755813887_ or
5761                     +549755813888_ <>              549755813888_ or
5762                     +549755813889_ <>              549755813889_ or
5763                     +549755813890_ <>              549755813890_ or
5764                     +999999999998_ <>              999999999998_ or
5765                     +999999999999_ <>              999999999999_ or
5766                    +1000000000000_ <>             1000000000000_ or
5767                    +1000000000001_ <>             1000000000001_ or
5768                    +1000000000002_ <>             1000000000002_ or
5769                    +1099511627774_ <>             1099511627774_ or
5770                    +1099511627775_ <>             1099511627775_ or
5771                    +1099511627776_ <>             1099511627776_ or
5772                    +1099511627777_ <>             1099511627777_ or
5773                    +1099511627778_ <>             1099511627778_ or
5774                  +140737488355326_ <>           140737488355326_ or
5775                  +140737488355327_ <>           140737488355327_ or
5776                  +140737488355328_ <>           140737488355328_ or
5777                  +140737488355329_ <>           140737488355329_ or
5778                  +140737488355330_ <>           140737488355330_ or
5779                  +281474976710654_ <>           281474976710654_ or
5780                  +281474976710655_ <>           281474976710655_ or
5781                  +281474976710656_ <>           281474976710656_ or
5782                  +281474976710657_ <>           281474976710657_ or
5783                  +281474976710658_ <>           281474976710658_ or
5784                +36028797018963966_ <>         36028797018963966_ or
5785                +36028797018963967_ <>         36028797018963967_ or
5786                +36028797018963968_ <>         36028797018963968_ or
5787                +36028797018963969_ <>         36028797018963969_ or
5788                +36028797018963970_ <>         36028797018963970_ or
5789                +72057594037927934_ <>         72057594037927934_ or
5790                +72057594037927935_ <>         72057594037927935_ or
5791                +72057594037927936_ <>         72057594037927936_ or
5792                +72057594037927937_ <>         72057594037927937_ or
5793                +72057594037927938_ <>         72057594037927938_ or
5794              +9223372036854775806_ <>       9223372036854775806_ or
5795              +9223372036854775807_ <>       9223372036854775807_ or
5796              +9223372036854775808_ <>       9223372036854775808_ or
5797              +9223372036854775809_ <>       9223372036854775809_ or
5798              +9223372036854775810_ <>       9223372036854775810_ or
5799             +18446744073709551614_ <>      18446744073709551614_ or
5800             +18446744073709551615_ <>      18446744073709551615_ or
5801             +18446744073709551616_ <>      18446744073709551616_ or
5802             +18446744073709551617_ <>      18446744073709551617_ or
5803             +18446744073709551618_ <>      18446744073709551618_ or
5804           +2361183241434822606846_ <>    2361183241434822606846_ or
5805           +2361183241434822606847_ <>    2361183241434822606847_ or
5806           +2361183241434822606848_ <>    2361183241434822606848_ or
5807           +2361183241434822606849_ <>    2361183241434822606849_ or
5808           +2361183241434822606850_ <>    2361183241434822606850_ or
5809           +4722366482869645213694_ <>    4722366482869645213694_ or
5810           +4722366482869645213695_ <>    4722366482869645213695_ or
5811           +4722366482869645213696_ <>    4722366482869645213696_ or
5812           +4722366482869645213697_ <>    4722366482869645213697_ or
5813           +4722366482869645213698_ <>    4722366482869645213698_ or
5814         +604462909807314587353086_ <>  604462909807314587353086_ or
5815         +604462909807314587353087_ <>  604462909807314587353087_ or
5816         +604462909807314587353088_ <>  604462909807314587353088_ or
5817         +604462909807314587353089_ <>  604462909807314587353089_ or
5818         +604462909807314587353090_ <>  604462909807314587353090_ or
5819        +1208925819614629174706174_ <> 1208925819614629174706174_ or
5820        +1208925819614629174706175_ <> 1208925819614629174706175_ or
5821        +1208925819614629174706176_ <> 1208925819614629174706176_ or
5822        +1208925819614629174706177_ <> 1208925819614629174706177_ or
5823        +1208925819614629174706178_ <> 1208925819614629174706178_ then
5824      writeln("The plus sign for bigInteger does not work correct.");
5825      okay := FALSE;
5826    end if;
5827
5828    if                          + -0_ <>                          0_ or
5829                                + -1_ <>                         -1_ or
5830                                + -2_ <>                         -2_ or
5831                                + -8_ <>                         -8_ or
5832                                + -9_ <>                         -9_ or
5833                               + -10_ <>                        -10_ or
5834                               + -11_ <>                        -11_ or
5835                               + -12_ <>                        -12_ or
5836                               + -98_ <>                        -98_ or
5837                               + -99_ <>                        -99_ or
5838                              + -100_ <>                       -100_ or
5839                              + -101_ <>                       -101_ or
5840                              + -102_ <>                       -102_ or
5841                              + -126_ <>                       -126_ or
5842                              + -127_ <>                       -127_ or
5843                              + -128_ <>                       -128_ or
5844                              + -129_ <>                       -129_ or
5845                              + -130_ <>                       -130_ or
5846                              + -254_ <>                       -254_ or
5847                              + -255_ <>                       -255_ or
5848                              + -256_ <>                       -256_ or
5849                              + -257_ <>                       -257_ or
5850                              + -258_ <>                       -258_ or
5851                              + -998_ <>                       -998_ or
5852                              + -999_ <>                       -999_ or
5853                             + -1000_ <>                      -1000_ or
5854                             + -1001_ <>                      -1001_ or
5855                             + -1002_ <>                      -1002_ or
5856                             + -9998_ <>                      -9998_ or
5857                             + -9999_ <>                      -9999_ or
5858                            + -10000_ <>                     -10000_ or
5859                            + -10001_ <>                     -10001_ or
5860                            + -10002_ <>                     -10002_ or
5861                            + -32766_ <>                     -32766_ or
5862                            + -32767_ <>                     -32767_ or
5863                            + -32768_ <>                     -32768_ or
5864                            + -32769_ <>                     -32769_ or
5865                            + -32770_ <>                     -32770_ or
5866                            + -65534_ <>                     -65534_ or
5867                            + -65535_ <>                     -65535_ or
5868                            + -65536_ <>                     -65536_ or
5869                            + -65537_ <>                     -65537_ or
5870                            + -65538_ <>                     -65538_ or
5871                            + -99998_ <>                     -99998_ or
5872                            + -99999_ <>                     -99999_ or
5873                           + -100000_ <>                    -100000_ or
5874                           + -100001_ <>                    -100001_ or
5875                           + -100002_ <>                    -100002_ or
5876                           + -999998_ <>                    -999998_ or
5877                           + -999999_ <>                    -999999_ or
5878                          + -1000000_ <>                   -1000000_ or
5879                          + -1000001_ <>                   -1000001_ or
5880                          + -1000002_ <>                   -1000002_ or
5881                          + -8388606_ <>                   -8388606_ or
5882                          + -8388607_ <>                   -8388607_ or
5883                          + -8388608_ <>                   -8388608_ or
5884                          + -8388609_ <>                   -8388609_ or
5885                          + -8388610_ <>                   -8388610_ or
5886                          + -9999998_ <>                   -9999998_ or
5887                          + -9999999_ <>                   -9999999_ or
5888                         + -10000000_ <>                  -10000000_ or
5889                         + -10000001_ <>                  -10000001_ or
5890                         + -10000002_ <>                  -10000002_ or
5891                         + -16777214_ <>                  -16777214_ or
5892                         + -16777215_ <>                  -16777215_ or
5893                         + -16777216_ <>                  -16777216_ or
5894                         + -16777217_ <>                  -16777217_ or
5895                         + -16777218_ <>                  -16777218_ or
5896                         + -99999998_ <>                  -99999998_ or
5897                         + -99999999_ <>                  -99999999_ or
5898                        + -100000000_ <>                 -100000000_ or
5899                        + -100000001_ <>                 -100000001_ or
5900                        + -100000002_ <>                 -100000002_ or
5901                        + -999999998_ <>                 -999999998_ or
5902                        + -999999999_ <>                 -999999999_ or
5903                       + -1000000000_ <>                -1000000000_ or
5904                       + -1000000001_ <>                -1000000001_ or
5905                       + -1000000002_ <>                -1000000002_ or
5906                       + -2147483646_ <>                -2147483646_ or
5907                       + -2147483647_ <>                -2147483647_ or
5908                       + -2147483648_ <>                -2147483648_ or
5909                       + -2147483649_ <>                -2147483649_ or
5910                       + -2147483650_ <>                -2147483650_ or
5911                       + -4294967294_ <>                -4294967294_ or
5912                       + -4294967295_ <>                -4294967295_ or
5913                       + -4294967296_ <>                -4294967296_ or
5914                       + -4294967297_ <>                -4294967297_ or
5915                       + -4294967298_ <>                -4294967298_ or
5916                       + -9999999998_ <>                -9999999998_ or
5917                       + -9999999999_ <>                -9999999999_ or
5918                      + -10000000000_ <>               -10000000000_ or
5919                      + -10000000001_ <>               -10000000001_ or
5920                      + -10000000002_ <>               -10000000002_ or
5921                      + -99999999998_ <>               -99999999998_ or
5922                      + -99999999999_ <>               -99999999999_ or
5923                     + -100000000000_ <>              -100000000000_ or
5924                     + -100000000001_ <>              -100000000001_ or
5925                     + -100000000002_ <>              -100000000002_ or
5926                     + -549755813886_ <>              -549755813886_ or
5927                     + -549755813887_ <>              -549755813887_ or
5928                     + -549755813888_ <>              -549755813888_ or
5929                     + -549755813889_ <>              -549755813889_ or
5930                     + -549755813890_ <>              -549755813890_ or
5931                     + -999999999998_ <>              -999999999998_ or
5932                     + -999999999999_ <>              -999999999999_ or
5933                    + -1000000000000_ <>             -1000000000000_ or
5934                    + -1000000000001_ <>             -1000000000001_ or
5935                    + -1000000000002_ <>             -1000000000002_ or
5936                    + -1099511627774_ <>             -1099511627774_ or
5937                    + -1099511627775_ <>             -1099511627775_ or
5938                    + -1099511627776_ <>             -1099511627776_ or
5939                    + -1099511627777_ <>             -1099511627777_ or
5940                    + -1099511627778_ <>             -1099511627778_ or
5941                  + -140737488355326_ <>           -140737488355326_ or
5942                  + -140737488355327_ <>           -140737488355327_ or
5943                  + -140737488355328_ <>           -140737488355328_ or
5944                  + -140737488355329_ <>           -140737488355329_ or
5945                  + -140737488355330_ <>           -140737488355330_ or
5946                  + -281474976710654_ <>           -281474976710654_ or
5947                  + -281474976710655_ <>           -281474976710655_ or
5948                  + -281474976710656_ <>           -281474976710656_ or
5949                  + -281474976710657_ <>           -281474976710657_ or
5950                  + -281474976710658_ <>           -281474976710658_ or
5951                + -36028797018963966_ <>         -36028797018963966_ or
5952                + -36028797018963967_ <>         -36028797018963967_ or
5953                + -36028797018963968_ <>         -36028797018963968_ or
5954                + -36028797018963969_ <>         -36028797018963969_ or
5955                + -36028797018963970_ <>         -36028797018963970_ or
5956                + -72057594037927934_ <>         -72057594037927934_ or
5957                + -72057594037927935_ <>         -72057594037927935_ or
5958                + -72057594037927936_ <>         -72057594037927936_ or
5959                + -72057594037927937_ <>         -72057594037927937_ or
5960                + -72057594037927938_ <>         -72057594037927938_ or
5961              + -9223372036854775806_ <>       -9223372036854775806_ or
5962              + -9223372036854775807_ <>       -9223372036854775807_ or
5963              + -9223372036854775808_ <>       -9223372036854775808_ or
5964              + -9223372036854775809_ <>       -9223372036854775809_ or
5965              + -9223372036854775810_ <>       -9223372036854775810_ or
5966             + -18446744073709551614_ <>      -18446744073709551614_ or
5967             + -18446744073709551615_ <>      -18446744073709551615_ or
5968             + -18446744073709551616_ <>      -18446744073709551616_ or
5969             + -18446744073709551617_ <>      -18446744073709551617_ or
5970             + -18446744073709551618_ <>      -18446744073709551618_ or
5971           + -2361183241434822606846_ <>    -2361183241434822606846_ or
5972           + -2361183241434822606847_ <>    -2361183241434822606847_ or
5973           + -2361183241434822606848_ <>    -2361183241434822606848_ or
5974           + -2361183241434822606849_ <>    -2361183241434822606849_ or
5975           + -2361183241434822606850_ <>    -2361183241434822606850_ or
5976           + -4722366482869645213694_ <>    -4722366482869645213694_ or
5977           + -4722366482869645213695_ <>    -4722366482869645213695_ or
5978           + -4722366482869645213696_ <>    -4722366482869645213696_ or
5979           + -4722366482869645213697_ <>    -4722366482869645213697_ or
5980           + -4722366482869645213698_ <>    -4722366482869645213698_ or
5981         + -604462909807314587353086_ <>  -604462909807314587353086_ or
5982         + -604462909807314587353087_ <>  -604462909807314587353087_ or
5983         + -604462909807314587353088_ <>  -604462909807314587353088_ or
5984         + -604462909807314587353089_ <>  -604462909807314587353089_ or
5985         + -604462909807314587353090_ <>  -604462909807314587353090_ or
5986        + -1208925819614629174706174_ <> -1208925819614629174706174_ or
5987        + -1208925819614629174706175_ <> -1208925819614629174706175_ or
5988        + -1208925819614629174706176_ <> -1208925819614629174706176_ or
5989        + -1208925819614629174706177_ <> -1208925819614629174706177_ or
5990        + -1208925819614629174706178_ <> -1208925819614629174706178_ then
5991      writeln("The plus sign for bigInteger does not work correct.");
5992      okay := FALSE;
5993    end if;
5994
5995    if okay then
5996      writeln("The plus sign for bigInteger works correct.");
5997    else
5998      writeln(" ***** The plus sign for bigInteger does not work correct.");
5999      writeln;
6000    end if;
6001  end func;
6002
6003
6004const proc: chkSucc is func
6005  local
6006    var boolean: okay is TRUE;
6007  begin
6008    if  succ(                        0_) <>                         1_ or
6009        succ(                        1_) <>                         2_ or
6010        succ(                        2_) <>                         3_ or
6011        succ(                        8_) <>                         9_ or
6012        succ(                        9_) <>                        10_ or
6013        succ(                       10_) <>                        11_ or
6014        succ(                       11_) <>                        12_ or
6015        succ(                       12_) <>                        13_ or
6016        succ(                       98_) <>                        99_ or
6017        succ(                       99_) <>                       100_ or
6018        succ(                      100_) <>                       101_ or
6019        succ(                      101_) <>                       102_ or
6020        succ(                      102_) <>                       103_ or
6021        succ(                      126_) <>                       127_ or
6022        succ(                      127_) <>                       128_ or
6023        succ(                      128_) <>                       129_ or
6024        succ(                      129_) <>                       130_ or
6025        succ(                      130_) <>                       131_ or
6026        succ(                      254_) <>                       255_ or
6027        succ(                      255_) <>                       256_ or
6028        succ(                      256_) <>                       257_ or
6029        succ(                      257_) <>                       258_ or
6030        succ(                      258_) <>                       259_ or
6031        succ(                      998_) <>                       999_ or
6032        succ(                      999_) <>                      1000_ or
6033        succ(                     1000_) <>                      1001_ or
6034        succ(                     1001_) <>                      1002_ or
6035        succ(                     1002_) <>                      1003_ or
6036        succ(                     9998_) <>                      9999_ or
6037        succ(                     9999_) <>                     10000_ or
6038        succ(                    10000_) <>                     10001_ or
6039        succ(                    10001_) <>                     10002_ or
6040        succ(                    10002_) <>                     10003_ or
6041        succ(                    32766_) <>                     32767_ or
6042        succ(                    32767_) <>                     32768_ or
6043        succ(                    32768_) <>                     32769_ or
6044        succ(                    32769_) <>                     32770_ or
6045        succ(                    32770_) <>                     32771_ or
6046        succ(                    65534_) <>                     65535_ or
6047        succ(                    65535_) <>                     65536_ or
6048        succ(                    65536_) <>                     65537_ or
6049        succ(                    65537_) <>                     65538_ or
6050        succ(                    65538_) <>                     65539_ or
6051        succ(                    99998_) <>                     99999_ or
6052        succ(                    99999_) <>                    100000_ or
6053        succ(                   100000_) <>                    100001_ or
6054        succ(                   100001_) <>                    100002_ or
6055        succ(                   100002_) <>                    100003_ or
6056        succ(                   999998_) <>                    999999_ or
6057        succ(                   999999_) <>                   1000000_ or
6058        succ(                  1000000_) <>                   1000001_ or
6059        succ(                  1000001_) <>                   1000002_ or
6060        succ(                  1000002_) <>                   1000003_ or
6061        succ(                  8388606_) <>                   8388607_ or
6062        succ(                  8388607_) <>                   8388608_ or
6063        succ(                  8388608_) <>                   8388609_ or
6064        succ(                  8388609_) <>                   8388610_ or
6065        succ(                  8388610_) <>                   8388611_ or
6066        succ(                  9999998_) <>                   9999999_ or
6067        succ(                  9999999_) <>                  10000000_ or
6068        succ(                 10000000_) <>                  10000001_ or
6069        succ(                 10000001_) <>                  10000002_ or
6070        succ(                 10000002_) <>                  10000003_ or
6071        succ(                 16777214_) <>                  16777215_ or
6072        succ(                 16777215_) <>                  16777216_ or
6073        succ(                 16777216_) <>                  16777217_ or
6074        succ(                 16777217_) <>                  16777218_ or
6075        succ(                 16777218_) <>                  16777219_ or
6076        succ(                 99999998_) <>                  99999999_ or
6077        succ(                 99999999_) <>                 100000000_ or
6078        succ(                100000000_) <>                 100000001_ or
6079        succ(                100000001_) <>                 100000002_ or
6080        succ(                100000002_) <>                 100000003_ or
6081        succ(                999999998_) <>                 999999999_ or
6082        succ(                999999999_) <>                1000000000_ or
6083        succ(               1000000000_) <>                1000000001_ or
6084        succ(               1000000001_) <>                1000000002_ or
6085        succ(               1000000002_) <>                1000000003_ or
6086        succ(               2147483646_) <>                2147483647_ or
6087        succ(               2147483647_) <>                2147483648_ or
6088        succ(               2147483648_) <>                2147483649_ or
6089        succ(               2147483649_) <>                2147483650_ or
6090        succ(               2147483650_) <>                2147483651_ or
6091        succ(               4294967294_) <>                4294967295_ or
6092        succ(               4294967295_) <>                4294967296_ or
6093        succ(               4294967296_) <>                4294967297_ or
6094        succ(               4294967297_) <>                4294967298_ or
6095        succ(               4294967298_) <>                4294967299_ or
6096        succ(               9999999998_) <>                9999999999_ or
6097        succ(               9999999999_) <>               10000000000_ or
6098        succ(              10000000000_) <>               10000000001_ or
6099        succ(              10000000001_) <>               10000000002_ or
6100        succ(              10000000002_) <>               10000000003_ or
6101        succ(              99999999998_) <>               99999999999_ or
6102        succ(              99999999999_) <>              100000000000_ or
6103        succ(             100000000000_) <>              100000000001_ or
6104        succ(             100000000001_) <>              100000000002_ or
6105        succ(             100000000002_) <>              100000000003_ or
6106        succ(             549755813886_) <>              549755813887_ or
6107        succ(             549755813887_) <>              549755813888_ or
6108        succ(             549755813888_) <>              549755813889_ or
6109        succ(             549755813889_) <>              549755813890_ or
6110        succ(             549755813890_) <>              549755813891_ or
6111        succ(             999999999998_) <>              999999999999_ or
6112        succ(             999999999999_) <>             1000000000000_ or
6113        succ(            1000000000000_) <>             1000000000001_ or
6114        succ(            1000000000001_) <>             1000000000002_ or
6115        succ(            1000000000002_) <>             1000000000003_ or
6116        succ(            1099511627774_) <>             1099511627775_ or
6117        succ(            1099511627775_) <>             1099511627776_ or
6118        succ(            1099511627776_) <>             1099511627777_ or
6119        succ(            1099511627777_) <>             1099511627778_ or
6120        succ(            1099511627778_) <>             1099511627779_ or
6121        succ(          140737488355326_) <>           140737488355327_ or
6122        succ(          140737488355327_) <>           140737488355328_ or
6123        succ(          140737488355328_) <>           140737488355329_ or
6124        succ(          140737488355329_) <>           140737488355330_ or
6125        succ(          140737488355330_) <>           140737488355331_ or
6126        succ(          281474976710654_) <>           281474976710655_ or
6127        succ(          281474976710655_) <>           281474976710656_ or
6128        succ(          281474976710656_) <>           281474976710657_ or
6129        succ(          281474976710657_) <>           281474976710658_ or
6130        succ(          281474976710658_) <>           281474976710659_ or
6131        succ(        36028797018963966_) <>         36028797018963967_ or
6132        succ(        36028797018963967_) <>         36028797018963968_ or
6133        succ(        36028797018963968_) <>         36028797018963969_ or
6134        succ(        36028797018963969_) <>         36028797018963970_ or
6135        succ(        36028797018963970_) <>         36028797018963971_ or
6136        succ(        72057594037927934_) <>         72057594037927935_ or
6137        succ(        72057594037927935_) <>         72057594037927936_ or
6138        succ(        72057594037927936_) <>         72057594037927937_ or
6139        succ(        72057594037927937_) <>         72057594037927938_ or
6140        succ(        72057594037927938_) <>         72057594037927939_ or
6141        succ(      9223372036854775806_) <>       9223372036854775807_ or
6142        succ(      9223372036854775807_) <>       9223372036854775808_ or
6143        succ(      9223372036854775808_) <>       9223372036854775809_ or
6144        succ(      9223372036854775809_) <>       9223372036854775810_ or
6145        succ(      9223372036854775810_) <>       9223372036854775811_ or
6146        succ(     18446744073709551614_) <>      18446744073709551615_ or
6147        succ(     18446744073709551615_) <>      18446744073709551616_ or
6148        succ(     18446744073709551616_) <>      18446744073709551617_ or
6149        succ(     18446744073709551617_) <>      18446744073709551618_ or
6150        succ(     18446744073709551618_) <>      18446744073709551619_ or
6151        succ(   2361183241434822606846_) <>    2361183241434822606847_ or
6152        succ(   2361183241434822606847_) <>    2361183241434822606848_ or
6153        succ(   2361183241434822606848_) <>    2361183241434822606849_ or
6154        succ(   2361183241434822606849_) <>    2361183241434822606850_ or
6155        succ(   2361183241434822606850_) <>    2361183241434822606851_ or
6156        succ(   4722366482869645213694_) <>    4722366482869645213695_ or
6157        succ(   4722366482869645213695_) <>    4722366482869645213696_ or
6158        succ(   4722366482869645213696_) <>    4722366482869645213697_ or
6159        succ(   4722366482869645213697_) <>    4722366482869645213698_ or
6160        succ(   4722366482869645213698_) <>    4722366482869645213699_ or
6161        succ( 604462909807314587353086_) <>  604462909807314587353087_ or
6162        succ( 604462909807314587353087_) <>  604462909807314587353088_ or
6163        succ( 604462909807314587353088_) <>  604462909807314587353089_ or
6164        succ( 604462909807314587353089_) <>  604462909807314587353090_ or
6165        succ( 604462909807314587353090_) <>  604462909807314587353091_ or
6166        succ(1208925819614629174706174_) <> 1208925819614629174706175_ or
6167        succ(1208925819614629174706175_) <> 1208925819614629174706176_ or
6168        succ(1208925819614629174706176_) <> 1208925819614629174706177_ or
6169        succ(1208925819614629174706177_) <> 1208925819614629174706178_ or
6170        succ(1208925819614629174706178_) <> 1208925819614629174706179_ then
6171      writeln("Successor of a positive bigInteger does not work correct.");
6172      okay := FALSE;
6173    end if;
6174
6175    if  succ(                        -0_) <>                          1_ or
6176        succ(                        -1_) <>                          0_ or
6177        succ(                        -2_) <>                         -1_ or
6178        succ(                        -8_) <>                         -7_ or
6179        succ(                        -9_) <>                         -8_ or
6180        succ(                       -10_) <>                         -9_ or
6181        succ(                       -11_) <>                        -10_ or
6182        succ(                       -12_) <>                        -11_ or
6183        succ(                       -98_) <>                        -97_ or
6184        succ(                       -99_) <>                        -98_ or
6185        succ(                      -100_) <>                        -99_ or
6186        succ(                      -101_) <>                       -100_ or
6187        succ(                      -102_) <>                       -101_ or
6188        succ(                      -126_) <>                       -125_ or
6189        succ(                      -127_) <>                       -126_ or
6190        succ(                      -128_) <>                       -127_ or
6191        succ(                      -129_) <>                       -128_ or
6192        succ(                      -130_) <>                       -129_ or
6193        succ(                      -254_) <>                       -253_ or
6194        succ(                      -255_) <>                       -254_ or
6195        succ(                      -256_) <>                       -255_ or
6196        succ(                      -257_) <>                       -256_ or
6197        succ(                      -258_) <>                       -257_ or
6198        succ(                      -998_) <>                       -997_ or
6199        succ(                      -999_) <>                       -998_ or
6200        succ(                     -1000_) <>                       -999_ or
6201        succ(                     -1001_) <>                      -1000_ or
6202        succ(                     -1002_) <>                      -1001_ or
6203        succ(                     -9998_) <>                      -9997_ or
6204        succ(                     -9999_) <>                      -9998_ or
6205        succ(                    -10000_) <>                      -9999_ or
6206        succ(                    -10001_) <>                     -10000_ or
6207        succ(                    -10002_) <>                     -10001_ or
6208        succ(                    -32766_) <>                     -32765_ or
6209        succ(                    -32767_) <>                     -32766_ or
6210        succ(                    -32768_) <>                     -32767_ or
6211        succ(                    -32769_) <>                     -32768_ or
6212        succ(                    -32770_) <>                     -32769_ or
6213        succ(                    -65534_) <>                     -65533_ or
6214        succ(                    -65535_) <>                     -65534_ or
6215        succ(                    -65536_) <>                     -65535_ or
6216        succ(                    -65537_) <>                     -65536_ or
6217        succ(                    -65538_) <>                     -65537_ or
6218        succ(                    -99998_) <>                     -99997_ or
6219        succ(                    -99999_) <>                     -99998_ or
6220        succ(                   -100000_) <>                     -99999_ or
6221        succ(                   -100001_) <>                    -100000_ or
6222        succ(                   -100002_) <>                    -100001_ or
6223        succ(                   -999998_) <>                    -999997_ or
6224        succ(                   -999999_) <>                    -999998_ or
6225        succ(                  -1000000_) <>                    -999999_ or
6226        succ(                  -1000001_) <>                   -1000000_ or
6227        succ(                  -1000002_) <>                   -1000001_ or
6228        succ(                  -8388606_) <>                   -8388605_ or
6229        succ(                  -8388607_) <>                   -8388606_ or
6230        succ(                  -8388608_) <>                   -8388607_ or
6231        succ(                  -8388609_) <>                   -8388608_ or
6232        succ(                  -8388610_) <>                   -8388609_ or
6233        succ(                  -9999998_) <>                   -9999997_ or
6234        succ(                  -9999999_) <>                   -9999998_ or
6235        succ(                 -10000000_) <>                   -9999999_ or
6236        succ(                 -10000001_) <>                  -10000000_ or
6237        succ(                 -10000002_) <>                  -10000001_ or
6238        succ(                 -16777214_) <>                  -16777213_ or
6239        succ(                 -16777215_) <>                  -16777214_ or
6240        succ(                 -16777216_) <>                  -16777215_ or
6241        succ(                 -16777217_) <>                  -16777216_ or
6242        succ(                 -16777218_) <>                  -16777217_ or
6243        succ(                 -99999998_) <>                  -99999997_ or
6244        succ(                 -99999999_) <>                  -99999998_ or
6245        succ(                -100000000_) <>                  -99999999_ or
6246        succ(                -100000001_) <>                 -100000000_ or
6247        succ(                -100000002_) <>                 -100000001_ or
6248        succ(                -999999998_) <>                 -999999997_ or
6249        succ(                -999999999_) <>                 -999999998_ or
6250        succ(               -1000000000_) <>                 -999999999_ or
6251        succ(               -1000000001_) <>                -1000000000_ or
6252        succ(               -1000000002_) <>                -1000000001_ or
6253        succ(               -2147483646_) <>                -2147483645_ or
6254        succ(               -2147483647_) <>                -2147483646_ or
6255        succ(               -2147483648_) <>                -2147483647_ or
6256        succ(               -2147483649_) <>                -2147483648_ or
6257        succ(               -2147483650_) <>                -2147483649_ or
6258        succ(               -4294967294_) <>                -4294967293_ or
6259        succ(               -4294967295_) <>                -4294967294_ or
6260        succ(               -4294967296_) <>                -4294967295_ or
6261        succ(               -4294967297_) <>                -4294967296_ or
6262        succ(               -4294967298_) <>                -4294967297_ or
6263        succ(               -9999999998_) <>                -9999999997_ or
6264        succ(               -9999999999_) <>                -9999999998_ or
6265        succ(              -10000000000_) <>                -9999999999_ or
6266        succ(              -10000000001_) <>               -10000000000_ or
6267        succ(              -10000000002_) <>               -10000000001_ or
6268        succ(              -99999999998_) <>               -99999999997_ or
6269        succ(              -99999999999_) <>               -99999999998_ or
6270        succ(             -100000000000_) <>               -99999999999_ or
6271        succ(             -100000000001_) <>              -100000000000_ or
6272        succ(             -100000000002_) <>              -100000000001_ or
6273        succ(             -549755813886_) <>              -549755813885_ or
6274        succ(             -549755813887_) <>              -549755813886_ or
6275        succ(             -549755813888_) <>              -549755813887_ or
6276        succ(             -549755813889_) <>              -549755813888_ or
6277        succ(             -549755813890_) <>              -549755813889_ or
6278        succ(             -999999999998_) <>              -999999999997_ or
6279        succ(             -999999999999_) <>              -999999999998_ or
6280        succ(            -1000000000000_) <>              -999999999999_ or
6281        succ(            -1000000000001_) <>             -1000000000000_ or
6282        succ(            -1000000000002_) <>             -1000000000001_ or
6283        succ(            -1099511627774_) <>             -1099511627773_ or
6284        succ(            -1099511627775_) <>             -1099511627774_ or
6285        succ(            -1099511627776_) <>             -1099511627775_ or
6286        succ(            -1099511627777_) <>             -1099511627776_ or
6287        succ(            -1099511627778_) <>             -1099511627777_ or
6288        succ(          -140737488355326_) <>           -140737488355325_ or
6289        succ(          -140737488355327_) <>           -140737488355326_ or
6290        succ(          -140737488355328_) <>           -140737488355327_ or
6291        succ(          -140737488355329_) <>           -140737488355328_ or
6292        succ(          -140737488355330_) <>           -140737488355329_ or
6293        succ(          -281474976710654_) <>           -281474976710653_ or
6294        succ(          -281474976710655_) <>           -281474976710654_ or
6295        succ(          -281474976710656_) <>           -281474976710655_ or
6296        succ(          -281474976710657_) <>           -281474976710656_ or
6297        succ(          -281474976710658_) <>           -281474976710657_ or
6298        succ(        -36028797018963966_) <>         -36028797018963965_ or
6299        succ(        -36028797018963967_) <>         -36028797018963966_ or
6300        succ(        -36028797018963968_) <>         -36028797018963967_ or
6301        succ(        -36028797018963969_) <>         -36028797018963968_ or
6302        succ(        -36028797018963970_) <>         -36028797018963969_ or
6303        succ(        -72057594037927934_) <>         -72057594037927933_ or
6304        succ(        -72057594037927935_) <>         -72057594037927934_ or
6305        succ(        -72057594037927936_) <>         -72057594037927935_ or
6306        succ(        -72057594037927937_) <>         -72057594037927936_ or
6307        succ(        -72057594037927938_) <>         -72057594037927937_ or
6308        succ(      -9223372036854775806_) <>       -9223372036854775805_ or
6309        succ(      -9223372036854775807_) <>       -9223372036854775806_ or
6310        succ(      -9223372036854775808_) <>       -9223372036854775807_ or
6311        succ(      -9223372036854775809_) <>       -9223372036854775808_ or
6312        succ(      -9223372036854775810_) <>       -9223372036854775809_ or
6313        succ(     -18446744073709551614_) <>      -18446744073709551613_ or
6314        succ(     -18446744073709551615_) <>      -18446744073709551614_ or
6315        succ(     -18446744073709551616_) <>      -18446744073709551615_ or
6316        succ(     -18446744073709551617_) <>      -18446744073709551616_ or
6317        succ(     -18446744073709551618_) <>      -18446744073709551617_ or
6318        succ(   -2361183241434822606846_) <>    -2361183241434822606845_ or
6319        succ(   -2361183241434822606847_) <>    -2361183241434822606846_ or
6320        succ(   -2361183241434822606848_) <>    -2361183241434822606847_ or
6321        succ(   -2361183241434822606849_) <>    -2361183241434822606848_ or
6322        succ(   -2361183241434822606850_) <>    -2361183241434822606849_ or
6323        succ(   -4722366482869645213694_) <>    -4722366482869645213693_ or
6324        succ(   -4722366482869645213695_) <>    -4722366482869645213694_ or
6325        succ(   -4722366482869645213696_) <>    -4722366482869645213695_ or
6326        succ(   -4722366482869645213697_) <>    -4722366482869645213696_ or
6327        succ(   -4722366482869645213698_) <>    -4722366482869645213697_ or
6328        succ( -604462909807314587353086_) <>  -604462909807314587353085_ or
6329        succ( -604462909807314587353087_) <>  -604462909807314587353086_ or
6330        succ( -604462909807314587353088_) <>  -604462909807314587353087_ or
6331        succ( -604462909807314587353089_) <>  -604462909807314587353088_ or
6332        succ( -604462909807314587353090_) <>  -604462909807314587353089_ or
6333        succ(-1208925819614629174706174_) <> -1208925819614629174706173_ or
6334        succ(-1208925819614629174706175_) <> -1208925819614629174706174_ or
6335        succ(-1208925819614629174706176_) <> -1208925819614629174706175_ or
6336        succ(-1208925819614629174706177_) <> -1208925819614629174706176_ or
6337        succ(-1208925819614629174706178_) <> -1208925819614629174706177_ then
6338      writeln("Successor of a negative bigInteger does not work correct.");
6339      okay := FALSE;
6340    end if;
6341
6342    if okay then
6343      writeln("Successor of bigInteger works correct.");
6344    else
6345      writeln(" ***** Successor of bigInteger does not work correct.");
6346      writeln;
6347    end if;
6348  end func;
6349
6350
6351const proc: chkPred is func
6352  local
6353    var boolean: okay is TRUE;
6354  begin
6355    if  pred(                        0_) <>                        -1_ or
6356        pred(                        1_) <>                         0_ or
6357        pred(                        2_) <>                         1_ or
6358        pred(                        8_) <>                         7_ or
6359        pred(                        9_) <>                         8_ or
6360        pred(                       10_) <>                         9_ or
6361        pred(                       11_) <>                        10_ or
6362        pred(                       12_) <>                        11_ or
6363        pred(                       98_) <>                        97_ or
6364        pred(                       99_) <>                        98_ or
6365        pred(                      100_) <>                        99_ or
6366        pred(                      101_) <>                       100_ or
6367        pred(                      102_) <>                       101_ or
6368        pred(                      126_) <>                       125_ or
6369        pred(                      127_) <>                       126_ or
6370        pred(                      128_) <>                       127_ or
6371        pred(                      129_) <>                       128_ or
6372        pred(                      130_) <>                       129_ or
6373        pred(                      254_) <>                       253_ or
6374        pred(                      255_) <>                       254_ or
6375        pred(                      256_) <>                       255_ or
6376        pred(                      257_) <>                       256_ or
6377        pred(                      258_) <>                       257_ or
6378        pred(                      998_) <>                       997_ or
6379        pred(                      999_) <>                       998_ or
6380        pred(                     1000_) <>                       999_ or
6381        pred(                     1001_) <>                      1000_ or
6382        pred(                     1002_) <>                      1001_ or
6383        pred(                     9998_) <>                      9997_ or
6384        pred(                     9999_) <>                      9998_ or
6385        pred(                    10000_) <>                      9999_ or
6386        pred(                    10001_) <>                     10000_ or
6387        pred(                    10002_) <>                     10001_ or
6388        pred(                    32766_) <>                     32765_ or
6389        pred(                    32767_) <>                     32766_ or
6390        pred(                    32768_) <>                     32767_ or
6391        pred(                    32769_) <>                     32768_ or
6392        pred(                    32770_) <>                     32769_ or
6393        pred(                    65534_) <>                     65533_ or
6394        pred(                    65535_) <>                     65534_ or
6395        pred(                    65536_) <>                     65535_ or
6396        pred(                    65537_) <>                     65536_ or
6397        pred(                    65538_) <>                     65537_ or
6398        pred(                    99998_) <>                     99997_ or
6399        pred(                    99999_) <>                     99998_ or
6400        pred(                   100000_) <>                     99999_ or
6401        pred(                   100001_) <>                    100000_ or
6402        pred(                   100002_) <>                    100001_ or
6403        pred(                   999998_) <>                    999997_ or
6404        pred(                   999999_) <>                    999998_ or
6405        pred(                  1000000_) <>                    999999_ or
6406        pred(                  1000001_) <>                   1000000_ or
6407        pred(                  1000002_) <>                   1000001_ or
6408        pred(                  8388606_) <>                   8388605_ or
6409        pred(                  8388607_) <>                   8388606_ or
6410        pred(                  8388608_) <>                   8388607_ or
6411        pred(                  8388609_) <>                   8388608_ or
6412        pred(                  8388610_) <>                   8388609_ or
6413        pred(                  9999998_) <>                   9999997_ or
6414        pred(                  9999999_) <>                   9999998_ or
6415        pred(                 10000000_) <>                   9999999_ or
6416        pred(                 10000001_) <>                  10000000_ or
6417        pred(                 10000002_) <>                  10000001_ or
6418        pred(                 16777214_) <>                  16777213_ or
6419        pred(                 16777215_) <>                  16777214_ or
6420        pred(                 16777216_) <>                  16777215_ or
6421        pred(                 16777217_) <>                  16777216_ or
6422        pred(                 16777218_) <>                  16777217_ or
6423        pred(                 99999998_) <>                  99999997_ or
6424        pred(                 99999999_) <>                  99999998_ or
6425        pred(                100000000_) <>                  99999999_ or
6426        pred(                100000001_) <>                 100000000_ or
6427        pred(                100000002_) <>                 100000001_ or
6428        pred(                999999998_) <>                 999999997_ or
6429        pred(                999999999_) <>                 999999998_ or
6430        pred(               1000000000_) <>                 999999999_ or
6431        pred(               1000000001_) <>                1000000000_ or
6432        pred(               1000000002_) <>                1000000001_ or
6433        pred(               2147483646_) <>                2147483645_ or
6434        pred(               2147483647_) <>                2147483646_ or
6435        pred(               2147483648_) <>                2147483647_ or
6436        pred(               2147483649_) <>                2147483648_ or
6437        pred(               2147483650_) <>                2147483649_ or
6438        pred(               4294967294_) <>                4294967293_ or
6439        pred(               4294967295_) <>                4294967294_ or
6440        pred(               4294967296_) <>                4294967295_ or
6441        pred(               4294967297_) <>                4294967296_ or
6442        pred(               4294967298_) <>                4294967297_ or
6443        pred(               9999999998_) <>                9999999997_ or
6444        pred(               9999999999_) <>                9999999998_ or
6445        pred(              10000000000_) <>                9999999999_ or
6446        pred(              10000000001_) <>               10000000000_ or
6447        pred(              10000000002_) <>               10000000001_ or
6448        pred(              99999999998_) <>               99999999997_ or
6449        pred(              99999999999_) <>               99999999998_ or
6450        pred(             100000000000_) <>               99999999999_ or
6451        pred(             100000000001_) <>              100000000000_ or
6452        pred(             100000000002_) <>              100000000001_ or
6453        pred(             549755813886_) <>              549755813885_ or
6454        pred(             549755813887_) <>              549755813886_ or
6455        pred(             549755813888_) <>              549755813887_ or
6456        pred(             549755813889_) <>              549755813888_ or
6457        pred(             549755813890_) <>              549755813889_ or
6458        pred(             999999999998_) <>              999999999997_ or
6459        pred(             999999999999_) <>              999999999998_ or
6460        pred(            1000000000000_) <>              999999999999_ or
6461        pred(            1000000000001_) <>             1000000000000_ or
6462        pred(            1000000000002_) <>             1000000000001_ or
6463        pred(            1099511627774_) <>             1099511627773_ or
6464        pred(            1099511627775_) <>             1099511627774_ or
6465        pred(            1099511627776_) <>             1099511627775_ or
6466        pred(            1099511627777_) <>             1099511627776_ or
6467        pred(            1099511627778_) <>             1099511627777_ or
6468        pred(          140737488355326_) <>           140737488355325_ or
6469        pred(          140737488355327_) <>           140737488355326_ or
6470        pred(          140737488355328_) <>           140737488355327_ or
6471        pred(          140737488355329_) <>           140737488355328_ or
6472        pred(          140737488355330_) <>           140737488355329_ or
6473        pred(          281474976710654_) <>           281474976710653_ or
6474        pred(          281474976710655_) <>           281474976710654_ or
6475        pred(          281474976710656_) <>           281474976710655_ or
6476        pred(          281474976710657_) <>           281474976710656_ or
6477        pred(          281474976710658_) <>           281474976710657_ or
6478        pred(        36028797018963966_) <>         36028797018963965_ or
6479        pred(        36028797018963967_) <>         36028797018963966_ or
6480        pred(        36028797018963968_) <>         36028797018963967_ or
6481        pred(        36028797018963969_) <>         36028797018963968_ or
6482        pred(        36028797018963970_) <>         36028797018963969_ or
6483        pred(        72057594037927934_) <>         72057594037927933_ or
6484        pred(        72057594037927935_) <>         72057594037927934_ or
6485        pred(        72057594037927936_) <>         72057594037927935_ or
6486        pred(        72057594037927937_) <>         72057594037927936_ or
6487        pred(        72057594037927938_) <>         72057594037927937_ or
6488        pred(      9223372036854775806_) <>       9223372036854775805_ or
6489        pred(      9223372036854775807_) <>       9223372036854775806_ or
6490        pred(      9223372036854775808_) <>       9223372036854775807_ or
6491        pred(      9223372036854775809_) <>       9223372036854775808_ or
6492        pred(      9223372036854775810_) <>       9223372036854775809_ or
6493        pred(     18446744073709551614_) <>      18446744073709551613_ or
6494        pred(     18446744073709551615_) <>      18446744073709551614_ or
6495        pred(     18446744073709551616_) <>      18446744073709551615_ or
6496        pred(     18446744073709551617_) <>      18446744073709551616_ or
6497        pred(     18446744073709551618_) <>      18446744073709551617_ or
6498        pred(   2361183241434822606846_) <>    2361183241434822606845_ or
6499        pred(   2361183241434822606847_) <>    2361183241434822606846_ or
6500        pred(   2361183241434822606848_) <>    2361183241434822606847_ or
6501        pred(   2361183241434822606849_) <>    2361183241434822606848_ or
6502        pred(   2361183241434822606850_) <>    2361183241434822606849_ or
6503        pred(   4722366482869645213694_) <>    4722366482869645213693_ or
6504        pred(   4722366482869645213695_) <>    4722366482869645213694_ or
6505        pred(   4722366482869645213696_) <>    4722366482869645213695_ or
6506        pred(   4722366482869645213697_) <>    4722366482869645213696_ or
6507        pred(   4722366482869645213698_) <>    4722366482869645213697_ or
6508        pred( 604462909807314587353086_) <>  604462909807314587353085_ or
6509        pred( 604462909807314587353087_) <>  604462909807314587353086_ or
6510        pred( 604462909807314587353088_) <>  604462909807314587353087_ or
6511        pred( 604462909807314587353089_) <>  604462909807314587353088_ or
6512        pred( 604462909807314587353090_) <>  604462909807314587353089_ or
6513        pred(1208925819614629174706174_) <> 1208925819614629174706173_ or
6514        pred(1208925819614629174706175_) <> 1208925819614629174706174_ or
6515        pred(1208925819614629174706176_) <> 1208925819614629174706175_ or
6516        pred(1208925819614629174706177_) <> 1208925819614629174706176_ or
6517        pred(1208925819614629174706178_) <> 1208925819614629174706177_ then
6518      writeln("Predecessor of a positive bigInteger does not work correct.");
6519      okay := FALSE;
6520    end if;
6521
6522    if  pred(                        -0_) <>                         -1_ or
6523        pred(                        -1_) <>                         -2_ or
6524        pred(                        -2_) <>                         -3_ or
6525        pred(                        -8_) <>                         -9_ or
6526        pred(                        -9_) <>                        -10_ or
6527        pred(                       -10_) <>                        -11_ or
6528        pred(                       -11_) <>                        -12_ or
6529        pred(                       -12_) <>                        -13_ or
6530        pred(                       -98_) <>                        -99_ or
6531        pred(                       -99_) <>                       -100_ or
6532        pred(                      -100_) <>                       -101_ or
6533        pred(                      -101_) <>                       -102_ or
6534        pred(                      -102_) <>                       -103_ or
6535        pred(                      -126_) <>                       -127_ or
6536        pred(                      -127_) <>                       -128_ or
6537        pred(                      -128_) <>                       -129_ or
6538        pred(                      -129_) <>                       -130_ or
6539        pred(                      -130_) <>                       -131_ or
6540        pred(                      -254_) <>                       -255_ or
6541        pred(                      -255_) <>                       -256_ or
6542        pred(                      -256_) <>                       -257_ or
6543        pred(                      -257_) <>                       -258_ or
6544        pred(                      -258_) <>                       -259_ or
6545        pred(                      -998_) <>                       -999_ or
6546        pred(                      -999_) <>                      -1000_ or
6547        pred(                     -1000_) <>                      -1001_ or
6548        pred(                     -1001_) <>                      -1002_ or
6549        pred(                     -1002_) <>                      -1003_ or
6550        pred(                     -9998_) <>                      -9999_ or
6551        pred(                     -9999_) <>                     -10000_ or
6552        pred(                    -10000_) <>                     -10001_ or
6553        pred(                    -10001_) <>                     -10002_ or
6554        pred(                    -10002_) <>                     -10003_ or
6555        pred(                    -32766_) <>                     -32767_ or
6556        pred(                    -32767_) <>                     -32768_ or
6557        pred(                    -32768_) <>                     -32769_ or
6558        pred(                    -32769_) <>                     -32770_ or
6559        pred(                    -32770_) <>                     -32771_ or
6560        pred(                    -65534_) <>                     -65535_ or
6561        pred(                    -65535_) <>                     -65536_ or
6562        pred(                    -65536_) <>                     -65537_ or
6563        pred(                    -65537_) <>                     -65538_ or
6564        pred(                    -65538_) <>                     -65539_ or
6565        pred(                    -99998_) <>                     -99999_ or
6566        pred(                    -99999_) <>                    -100000_ or
6567        pred(                   -100000_) <>                    -100001_ or
6568        pred(                   -100001_) <>                    -100002_ or
6569        pred(                   -100002_) <>                    -100003_ or
6570        pred(                   -999998_) <>                    -999999_ or
6571        pred(                   -999999_) <>                   -1000000_ or
6572        pred(                  -1000000_) <>                   -1000001_ or
6573        pred(                  -1000001_) <>                   -1000002_ or
6574        pred(                  -1000002_) <>                   -1000003_ or
6575        pred(                  -8388606_) <>                   -8388607_ or
6576        pred(                  -8388607_) <>                   -8388608_ or
6577        pred(                  -8388608_) <>                   -8388609_ or
6578        pred(                  -8388609_) <>                   -8388610_ or
6579        pred(                  -8388610_) <>                   -8388611_ or
6580        pred(                  -9999998_) <>                   -9999999_ or
6581        pred(                  -9999999_) <>                  -10000000_ or
6582        pred(                 -10000000_) <>                  -10000001_ or
6583        pred(                 -10000001_) <>                  -10000002_ or
6584        pred(                 -10000002_) <>                  -10000003_ or
6585        pred(                 -16777214_) <>                  -16777215_ or
6586        pred(                 -16777215_) <>                  -16777216_ or
6587        pred(                 -16777216_) <>                  -16777217_ or
6588        pred(                 -16777217_) <>                  -16777218_ or
6589        pred(                 -16777218_) <>                  -16777219_ or
6590        pred(                 -99999998_) <>                  -99999999_ or
6591        pred(                 -99999999_) <>                 -100000000_ or
6592        pred(                -100000000_) <>                 -100000001_ or
6593        pred(                -100000001_) <>                 -100000002_ or
6594        pred(                -100000002_) <>                 -100000003_ or
6595        pred(                -999999998_) <>                 -999999999_ or
6596        pred(                -999999999_) <>                -1000000000_ or
6597        pred(               -1000000000_) <>                -1000000001_ or
6598        pred(               -1000000001_) <>                -1000000002_ or
6599        pred(               -1000000002_) <>                -1000000003_ or
6600        pred(               -2147483646_) <>                -2147483647_ or
6601        pred(               -2147483647_) <>                -2147483648_ or
6602        pred(               -2147483648_) <>                -2147483649_ or
6603        pred(               -2147483649_) <>                -2147483650_ or
6604        pred(               -2147483650_) <>                -2147483651_ or
6605        pred(               -4294967294_) <>                -4294967295_ or
6606        pred(               -4294967295_) <>                -4294967296_ or
6607        pred(               -4294967296_) <>                -4294967297_ or
6608        pred(               -4294967297_) <>                -4294967298_ or
6609        pred(               -4294967298_) <>                -4294967299_ or
6610        pred(               -9999999998_) <>                -9999999999_ or
6611        pred(               -9999999999_) <>               -10000000000_ or
6612        pred(              -10000000000_) <>               -10000000001_ or
6613        pred(              -10000000001_) <>               -10000000002_ or
6614        pred(              -10000000002_) <>               -10000000003_ or
6615        pred(              -99999999998_) <>               -99999999999_ or
6616        pred(              -99999999999_) <>              -100000000000_ or
6617        pred(             -100000000000_) <>              -100000000001_ or
6618        pred(             -100000000001_) <>              -100000000002_ or
6619        pred(             -100000000002_) <>              -100000000003_ or
6620        pred(             -549755813886_) <>              -549755813887_ or
6621        pred(             -549755813887_) <>              -549755813888_ or
6622        pred(             -549755813888_) <>              -549755813889_ or
6623        pred(             -549755813889_) <>              -549755813890_ or
6624        pred(             -549755813890_) <>              -549755813891_ or
6625        pred(             -999999999998_) <>              -999999999999_ or
6626        pred(             -999999999999_) <>             -1000000000000_ or
6627        pred(            -1000000000000_) <>             -1000000000001_ or
6628        pred(            -1000000000001_) <>             -1000000000002_ or
6629        pred(            -1000000000002_) <>             -1000000000003_ or
6630        pred(            -1099511627774_) <>             -1099511627775_ or
6631        pred(            -1099511627775_) <>             -1099511627776_ or
6632        pred(            -1099511627776_) <>             -1099511627777_ or
6633        pred(            -1099511627777_) <>             -1099511627778_ or
6634        pred(            -1099511627778_) <>             -1099511627779_ or
6635        pred(          -140737488355326_) <>           -140737488355327_ or
6636        pred(          -140737488355327_) <>           -140737488355328_ or
6637        pred(          -140737488355328_) <>           -140737488355329_ or
6638        pred(          -140737488355329_) <>           -140737488355330_ or
6639        pred(          -140737488355330_) <>           -140737488355331_ or
6640        pred(          -281474976710654_) <>           -281474976710655_ or
6641        pred(          -281474976710655_) <>           -281474976710656_ or
6642        pred(          -281474976710656_) <>           -281474976710657_ or
6643        pred(          -281474976710657_) <>           -281474976710658_ or
6644        pred(          -281474976710658_) <>           -281474976710659_ or
6645        pred(        -36028797018963966_) <>         -36028797018963967_ or
6646        pred(        -36028797018963967_) <>         -36028797018963968_ or
6647        pred(        -36028797018963968_) <>         -36028797018963969_ or
6648        pred(        -36028797018963969_) <>         -36028797018963970_ or
6649        pred(        -36028797018963970_) <>         -36028797018963971_ or
6650        pred(        -72057594037927934_) <>         -72057594037927935_ or
6651        pred(        -72057594037927935_) <>         -72057594037927936_ or
6652        pred(        -72057594037927936_) <>         -72057594037927937_ or
6653        pred(        -72057594037927937_) <>         -72057594037927938_ or
6654        pred(        -72057594037927938_) <>         -72057594037927939_ or
6655        pred(      -9223372036854775806_) <>       -9223372036854775807_ or
6656        pred(      -9223372036854775807_) <>       -9223372036854775808_ or
6657        pred(      -9223372036854775808_) <>       -9223372036854775809_ or
6658        pred(      -9223372036854775809_) <>       -9223372036854775810_ or
6659        pred(      -9223372036854775810_) <>       -9223372036854775811_ or
6660        pred(     -18446744073709551614_) <>      -18446744073709551615_ or
6661        pred(     -18446744073709551615_) <>      -18446744073709551616_ or
6662        pred(     -18446744073709551616_) <>      -18446744073709551617_ or
6663        pred(     -18446744073709551617_) <>      -18446744073709551618_ or
6664        pred(     -18446744073709551618_) <>      -18446744073709551619_ or
6665        pred(   -2361183241434822606846_) <>    -2361183241434822606847_ or
6666        pred(   -2361183241434822606847_) <>    -2361183241434822606848_ or
6667        pred(   -2361183241434822606848_) <>    -2361183241434822606849_ or
6668        pred(   -2361183241434822606849_) <>    -2361183241434822606850_ or
6669        pred(   -2361183241434822606850_) <>    -2361183241434822606851_ or
6670        pred(   -4722366482869645213694_) <>    -4722366482869645213695_ or
6671        pred(   -4722366482869645213695_) <>    -4722366482869645213696_ or
6672        pred(   -4722366482869645213696_) <>    -4722366482869645213697_ or
6673        pred(   -4722366482869645213697_) <>    -4722366482869645213698_ or
6674        pred(   -4722366482869645213698_) <>    -4722366482869645213699_ or
6675        pred( -604462909807314587353086_) <>  -604462909807314587353087_ or
6676        pred( -604462909807314587353087_) <>  -604462909807314587353088_ or
6677        pred( -604462909807314587353088_) <>  -604462909807314587353089_ or
6678        pred( -604462909807314587353089_) <>  -604462909807314587353090_ or
6679        pred( -604462909807314587353090_) <>  -604462909807314587353091_ or
6680        pred(-1208925819614629174706174_) <> -1208925819614629174706175_ or
6681        pred(-1208925819614629174706175_) <> -1208925819614629174706176_ or
6682        pred(-1208925819614629174706176_) <> -1208925819614629174706177_ or
6683        pred(-1208925819614629174706177_) <> -1208925819614629174706178_ or
6684        pred(-1208925819614629174706178_) <> -1208925819614629174706179_ then
6685      writeln("Predecessor of a negative bigInteger does not work correct.");
6686      okay := FALSE;
6687    end if;
6688
6689    if okay then
6690      writeln("Predecessor of bigInteger works correct.");
6691    else
6692      writeln(" ***** Predecessor of bigInteger does not work correct.");
6693      writeln;
6694    end if;
6695  end func;
6696
6697
6698const func bigInteger: testIncr (in var bigInteger: number) is func
6699  result
6700    var bigInteger: exprResult is bigInteger.value;
6701  begin
6702    incr(number);
6703    exprResult := number;
6704  end func;
6705
6706
6707const proc: chkIncr is func
6708  local
6709    var boolean: okay is TRUE;
6710  begin
6711    if  testIncr(                        0_) <>                         1_ or
6712        testIncr(                        1_) <>                         2_ or
6713        testIncr(                        2_) <>                         3_ or
6714        testIncr(                        8_) <>                         9_ or
6715        testIncr(                        9_) <>                        10_ or
6716        testIncr(                       10_) <>                        11_ or
6717        testIncr(                       11_) <>                        12_ or
6718        testIncr(                       12_) <>                        13_ or
6719        testIncr(                       98_) <>                        99_ or
6720        testIncr(                       99_) <>                       100_ or
6721        testIncr(                      100_) <>                       101_ or
6722        testIncr(                      101_) <>                       102_ or
6723        testIncr(                      102_) <>                       103_ or
6724        testIncr(                      126_) <>                       127_ or
6725        testIncr(                      127_) <>                       128_ or
6726        testIncr(                      128_) <>                       129_ or
6727        testIncr(                      129_) <>                       130_ or
6728        testIncr(                      130_) <>                       131_ or
6729        testIncr(                      254_) <>                       255_ or
6730        testIncr(                      255_) <>                       256_ or
6731        testIncr(                      256_) <>                       257_ or
6732        testIncr(                      257_) <>                       258_ or
6733        testIncr(                      258_) <>                       259_ or
6734        testIncr(                      998_) <>                       999_ or
6735        testIncr(                      999_) <>                      1000_ or
6736        testIncr(                     1000_) <>                      1001_ or
6737        testIncr(                     1001_) <>                      1002_ or
6738        testIncr(                     1002_) <>                      1003_ or
6739        testIncr(                     9998_) <>                      9999_ or
6740        testIncr(                     9999_) <>                     10000_ or
6741        testIncr(                    10000_) <>                     10001_ or
6742        testIncr(                    10001_) <>                     10002_ or
6743        testIncr(                    10002_) <>                     10003_ or
6744        testIncr(                    32766_) <>                     32767_ or
6745        testIncr(                    32767_) <>                     32768_ or
6746        testIncr(                    32768_) <>                     32769_ or
6747        testIncr(                    32769_) <>                     32770_ or
6748        testIncr(                    32770_) <>                     32771_ or
6749        testIncr(                    65534_) <>                     65535_ or
6750        testIncr(                    65535_) <>                     65536_ or
6751        testIncr(                    65536_) <>                     65537_ or
6752        testIncr(                    65537_) <>                     65538_ or
6753        testIncr(                    65538_) <>                     65539_ or
6754        testIncr(                    99998_) <>                     99999_ or
6755        testIncr(                    99999_) <>                    100000_ or
6756        testIncr(                   100000_) <>                    100001_ or
6757        testIncr(                   100001_) <>                    100002_ or
6758        testIncr(                   100002_) <>                    100003_ or
6759        testIncr(                   999998_) <>                    999999_ or
6760        testIncr(                   999999_) <>                   1000000_ or
6761        testIncr(                  1000000_) <>                   1000001_ or
6762        testIncr(                  1000001_) <>                   1000002_ or
6763        testIncr(                  1000002_) <>                   1000003_ or
6764        testIncr(                  8388606_) <>                   8388607_ or
6765        testIncr(                  8388607_) <>                   8388608_ or
6766        testIncr(                  8388608_) <>                   8388609_ or
6767        testIncr(                  8388609_) <>                   8388610_ or
6768        testIncr(                  8388610_) <>                   8388611_ or
6769        testIncr(                  9999998_) <>                   9999999_ or
6770        testIncr(                  9999999_) <>                  10000000_ or
6771        testIncr(                 10000000_) <>                  10000001_ or
6772        testIncr(                 10000001_) <>                  10000002_ or
6773        testIncr(                 10000002_) <>                  10000003_ or
6774        testIncr(                 16777214_) <>                  16777215_ or
6775        testIncr(                 16777215_) <>                  16777216_ or
6776        testIncr(                 16777216_) <>                  16777217_ or
6777        testIncr(                 16777217_) <>                  16777218_ or
6778        testIncr(                 16777218_) <>                  16777219_ or
6779        testIncr(                 99999998_) <>                  99999999_ or
6780        testIncr(                 99999999_) <>                 100000000_ or
6781        testIncr(                100000000_) <>                 100000001_ or
6782        testIncr(                100000001_) <>                 100000002_ or
6783        testIncr(                100000002_) <>                 100000003_ or
6784        testIncr(                999999998_) <>                 999999999_ or
6785        testIncr(                999999999_) <>                1000000000_ or
6786        testIncr(               1000000000_) <>                1000000001_ or
6787        testIncr(               1000000001_) <>                1000000002_ or
6788        testIncr(               1000000002_) <>                1000000003_ or
6789        testIncr(               2147483646_) <>                2147483647_ or
6790        testIncr(               2147483647_) <>                2147483648_ or
6791        testIncr(               2147483648_) <>                2147483649_ or
6792        testIncr(               2147483649_) <>                2147483650_ or
6793        testIncr(               2147483650_) <>                2147483651_ or
6794        testIncr(               4294967294_) <>                4294967295_ or
6795        testIncr(               4294967295_) <>                4294967296_ or
6796        testIncr(               4294967296_) <>                4294967297_ or
6797        testIncr(               4294967297_) <>                4294967298_ or
6798        testIncr(               4294967298_) <>                4294967299_ or
6799        testIncr(               9999999998_) <>                9999999999_ or
6800        testIncr(               9999999999_) <>               10000000000_ or
6801        testIncr(              10000000000_) <>               10000000001_ or
6802        testIncr(              10000000001_) <>               10000000002_ or
6803        testIncr(              10000000002_) <>               10000000003_ or
6804        testIncr(              99999999998_) <>               99999999999_ or
6805        testIncr(              99999999999_) <>              100000000000_ or
6806        testIncr(             100000000000_) <>              100000000001_ or
6807        testIncr(             100000000001_) <>              100000000002_ or
6808        testIncr(             100000000002_) <>              100000000003_ or
6809        testIncr(             549755813886_) <>              549755813887_ or
6810        testIncr(             549755813887_) <>              549755813888_ or
6811        testIncr(             549755813888_) <>              549755813889_ or
6812        testIncr(             549755813889_) <>              549755813890_ or
6813        testIncr(             549755813890_) <>              549755813891_ or
6814        testIncr(             999999999998_) <>              999999999999_ or
6815        testIncr(             999999999999_) <>             1000000000000_ or
6816        testIncr(            1000000000000_) <>             1000000000001_ or
6817        testIncr(            1000000000001_) <>             1000000000002_ or
6818        testIncr(            1000000000002_) <>             1000000000003_ or
6819        testIncr(            1099511627774_) <>             1099511627775_ or
6820        testIncr(            1099511627775_) <>             1099511627776_ or
6821        testIncr(            1099511627776_) <>             1099511627777_ or
6822        testIncr(            1099511627777_) <>             1099511627778_ or
6823        testIncr(            1099511627778_) <>             1099511627779_ or
6824        testIncr(          140737488355326_) <>           140737488355327_ or
6825        testIncr(          140737488355327_) <>           140737488355328_ or
6826        testIncr(          140737488355328_) <>           140737488355329_ or
6827        testIncr(          140737488355329_) <>           140737488355330_ or
6828        testIncr(          140737488355330_) <>           140737488355331_ or
6829        testIncr(          281474976710654_) <>           281474976710655_ or
6830        testIncr(          281474976710655_) <>           281474976710656_ or
6831        testIncr(          281474976710656_) <>           281474976710657_ or
6832        testIncr(          281474976710657_) <>           281474976710658_ or
6833        testIncr(          281474976710658_) <>           281474976710659_ or
6834        testIncr(        36028797018963966_) <>         36028797018963967_ or
6835        testIncr(        36028797018963967_) <>         36028797018963968_ or
6836        testIncr(        36028797018963968_) <>         36028797018963969_ or
6837        testIncr(        36028797018963969_) <>         36028797018963970_ or
6838        testIncr(        36028797018963970_) <>         36028797018963971_ or
6839        testIncr(        72057594037927934_) <>         72057594037927935_ or
6840        testIncr(        72057594037927935_) <>         72057594037927936_ or
6841        testIncr(        72057594037927936_) <>         72057594037927937_ or
6842        testIncr(        72057594037927937_) <>         72057594037927938_ or
6843        testIncr(        72057594037927938_) <>         72057594037927939_ or
6844        testIncr(      9223372036854775806_) <>       9223372036854775807_ or
6845        testIncr(      9223372036854775807_) <>       9223372036854775808_ or
6846        testIncr(      9223372036854775808_) <>       9223372036854775809_ or
6847        testIncr(      9223372036854775809_) <>       9223372036854775810_ or
6848        testIncr(      9223372036854775810_) <>       9223372036854775811_ or
6849        testIncr(     18446744073709551614_) <>      18446744073709551615_ or
6850        testIncr(     18446744073709551615_) <>      18446744073709551616_ or
6851        testIncr(     18446744073709551616_) <>      18446744073709551617_ or
6852        testIncr(     18446744073709551617_) <>      18446744073709551618_ or
6853        testIncr(     18446744073709551618_) <>      18446744073709551619_ or
6854        testIncr(   2361183241434822606846_) <>    2361183241434822606847_ or
6855        testIncr(   2361183241434822606847_) <>    2361183241434822606848_ or
6856        testIncr(   2361183241434822606848_) <>    2361183241434822606849_ or
6857        testIncr(   2361183241434822606849_) <>    2361183241434822606850_ or
6858        testIncr(   2361183241434822606850_) <>    2361183241434822606851_ or
6859        testIncr(   4722366482869645213694_) <>    4722366482869645213695_ or
6860        testIncr(   4722366482869645213695_) <>    4722366482869645213696_ or
6861        testIncr(   4722366482869645213696_) <>    4722366482869645213697_ or
6862        testIncr(   4722366482869645213697_) <>    4722366482869645213698_ or
6863        testIncr(   4722366482869645213698_) <>    4722366482869645213699_ or
6864        testIncr( 604462909807314587353086_) <>  604462909807314587353087_ or
6865        testIncr( 604462909807314587353087_) <>  604462909807314587353088_ or
6866        testIncr( 604462909807314587353088_) <>  604462909807314587353089_ or
6867        testIncr( 604462909807314587353089_) <>  604462909807314587353090_ or
6868        testIncr( 604462909807314587353090_) <>  604462909807314587353091_ or
6869        testIncr(1208925819614629174706174_) <> 1208925819614629174706175_ or
6870        testIncr(1208925819614629174706175_) <> 1208925819614629174706176_ or
6871        testIncr(1208925819614629174706176_) <> 1208925819614629174706177_ or
6872        testIncr(1208925819614629174706177_) <> 1208925819614629174706178_ or
6873        testIncr(1208925819614629174706178_) <> 1208925819614629174706179_ then
6874      writeln("Increment of a positive bigInteger does not work correct.");
6875      okay := FALSE;
6876    end if;
6877
6878    if  testIncr(                        -0_) <>                          1_ or
6879        testIncr(                        -1_) <>                          0_ or
6880        testIncr(                        -2_) <>                         -1_ or
6881        testIncr(                        -8_) <>                         -7_ or
6882        testIncr(                        -9_) <>                         -8_ or
6883        testIncr(                       -10_) <>                         -9_ or
6884        testIncr(                       -11_) <>                        -10_ or
6885        testIncr(                       -12_) <>                        -11_ or
6886        testIncr(                       -98_) <>                        -97_ or
6887        testIncr(                       -99_) <>                        -98_ or
6888        testIncr(                      -100_) <>                        -99_ or
6889        testIncr(                      -101_) <>                       -100_ or
6890        testIncr(                      -102_) <>                       -101_ or
6891        testIncr(                      -126_) <>                       -125_ or
6892        testIncr(                      -127_) <>                       -126_ or
6893        testIncr(                      -128_) <>                       -127_ or
6894        testIncr(                      -129_) <>                       -128_ or
6895        testIncr(                      -130_) <>                       -129_ or
6896        testIncr(                      -254_) <>                       -253_ or
6897        testIncr(                      -255_) <>                       -254_ or
6898        testIncr(                      -256_) <>                       -255_ or
6899        testIncr(                      -257_) <>                       -256_ or
6900        testIncr(                      -258_) <>                       -257_ or
6901        testIncr(                      -998_) <>                       -997_ or
6902        testIncr(                      -999_) <>                       -998_ or
6903        testIncr(                     -1000_) <>                       -999_ or
6904        testIncr(                     -1001_) <>                      -1000_ or
6905        testIncr(                     -1002_) <>                      -1001_ or
6906        testIncr(                     -9998_) <>                      -9997_ or
6907        testIncr(                     -9999_) <>                      -9998_ or
6908        testIncr(                    -10000_) <>                      -9999_ or
6909        testIncr(                    -10001_) <>                     -10000_ or
6910        testIncr(                    -10002_) <>                     -10001_ or
6911        testIncr(                    -32766_) <>                     -32765_ or
6912        testIncr(                    -32767_) <>                     -32766_ or
6913        testIncr(                    -32768_) <>                     -32767_ or
6914        testIncr(                    -32769_) <>                     -32768_ or
6915        testIncr(                    -32770_) <>                     -32769_ or
6916        testIncr(                    -65534_) <>                     -65533_ or
6917        testIncr(                    -65535_) <>                     -65534_ or
6918        testIncr(                    -65536_) <>                     -65535_ or
6919        testIncr(                    -65537_) <>                     -65536_ or
6920        testIncr(                    -65538_) <>                     -65537_ or
6921        testIncr(                    -99998_) <>                     -99997_ or
6922        testIncr(                    -99999_) <>                     -99998_ or
6923        testIncr(                   -100000_) <>                     -99999_ or
6924        testIncr(                   -100001_) <>                    -100000_ or
6925        testIncr(                   -100002_) <>                    -100001_ or
6926        testIncr(                   -999998_) <>                    -999997_ or
6927        testIncr(                   -999999_) <>                    -999998_ or
6928        testIncr(                  -1000000_) <>                    -999999_ or
6929        testIncr(                  -1000001_) <>                   -1000000_ or
6930        testIncr(                  -1000002_) <>                   -1000001_ or
6931        testIncr(                  -8388606_) <>                   -8388605_ or
6932        testIncr(                  -8388607_) <>                   -8388606_ or
6933        testIncr(                  -8388608_) <>                   -8388607_ or
6934        testIncr(                  -8388609_) <>                   -8388608_ or
6935        testIncr(                  -8388610_) <>                   -8388609_ or
6936        testIncr(                  -9999998_) <>                   -9999997_ or
6937        testIncr(                  -9999999_) <>                   -9999998_ or
6938        testIncr(                 -10000000_) <>                   -9999999_ or
6939        testIncr(                 -10000001_) <>                  -10000000_ or
6940        testIncr(                 -10000002_) <>                  -10000001_ or
6941        testIncr(                 -16777214_) <>                  -16777213_ or
6942        testIncr(                 -16777215_) <>                  -16777214_ or
6943        testIncr(                 -16777216_) <>                  -16777215_ or
6944        testIncr(                 -16777217_) <>                  -16777216_ or
6945        testIncr(                 -16777218_) <>                  -16777217_ or
6946        testIncr(                 -99999998_) <>                  -99999997_ or
6947        testIncr(                 -99999999_) <>                  -99999998_ or
6948        testIncr(                -100000000_) <>                  -99999999_ or
6949        testIncr(                -100000001_) <>                 -100000000_ or
6950        testIncr(                -100000002_) <>                 -100000001_ or
6951        testIncr(                -999999998_) <>                 -999999997_ or
6952        testIncr(                -999999999_) <>                 -999999998_ or
6953        testIncr(               -1000000000_) <>                 -999999999_ or
6954        testIncr(               -1000000001_) <>                -1000000000_ or
6955        testIncr(               -1000000002_) <>                -1000000001_ or
6956        testIncr(               -2147483646_) <>                -2147483645_ or
6957        testIncr(               -2147483647_) <>                -2147483646_ or
6958        testIncr(               -2147483648_) <>                -2147483647_ or
6959        testIncr(               -2147483649_) <>                -2147483648_ or
6960        testIncr(               -2147483650_) <>                -2147483649_ or
6961        testIncr(               -4294967294_) <>                -4294967293_ or
6962        testIncr(               -4294967295_) <>                -4294967294_ or
6963        testIncr(               -4294967296_) <>                -4294967295_ or
6964        testIncr(               -4294967297_) <>                -4294967296_ or
6965        testIncr(               -4294967298_) <>                -4294967297_ or
6966        testIncr(               -9999999998_) <>                -9999999997_ or
6967        testIncr(               -9999999999_) <>                -9999999998_ or
6968        testIncr(              -10000000000_) <>                -9999999999_ or
6969        testIncr(              -10000000001_) <>               -10000000000_ or
6970        testIncr(              -10000000002_) <>               -10000000001_ or
6971        testIncr(              -99999999998_) <>               -99999999997_ or
6972        testIncr(              -99999999999_) <>               -99999999998_ or
6973        testIncr(             -100000000000_) <>               -99999999999_ or
6974        testIncr(             -100000000001_) <>              -100000000000_ or
6975        testIncr(             -100000000002_) <>              -100000000001_ or
6976        testIncr(             -549755813886_) <>              -549755813885_ or
6977        testIncr(             -549755813887_) <>              -549755813886_ or
6978        testIncr(             -549755813888_) <>              -549755813887_ or
6979        testIncr(             -549755813889_) <>              -549755813888_ or
6980        testIncr(             -549755813890_) <>              -549755813889_ or
6981        testIncr(             -999999999998_) <>              -999999999997_ or
6982        testIncr(             -999999999999_) <>              -999999999998_ or
6983        testIncr(            -1000000000000_) <>              -999999999999_ or
6984        testIncr(            -1000000000001_) <>             -1000000000000_ or
6985        testIncr(            -1000000000002_) <>             -1000000000001_ or
6986        testIncr(            -1099511627774_) <>             -1099511627773_ or
6987        testIncr(            -1099511627775_) <>             -1099511627774_ or
6988        testIncr(            -1099511627776_) <>             -1099511627775_ or
6989        testIncr(            -1099511627777_) <>             -1099511627776_ or
6990        testIncr(            -1099511627778_) <>             -1099511627777_ or
6991        testIncr(          -140737488355326_) <>           -140737488355325_ or
6992        testIncr(          -140737488355327_) <>           -140737488355326_ or
6993        testIncr(          -140737488355328_) <>           -140737488355327_ or
6994        testIncr(          -140737488355329_) <>           -140737488355328_ or
6995        testIncr(          -140737488355330_) <>           -140737488355329_ or
6996        testIncr(          -281474976710654_) <>           -281474976710653_ or
6997        testIncr(          -281474976710655_) <>           -281474976710654_ or
6998        testIncr(          -281474976710656_) <>           -281474976710655_ or
6999        testIncr(          -281474976710657_) <>           -281474976710656_ or
7000        testIncr(          -281474976710658_) <>           -281474976710657_ or
7001        testIncr(        -36028797018963966_) <>         -36028797018963965_ or
7002        testIncr(        -36028797018963967_) <>         -36028797018963966_ or
7003        testIncr(        -36028797018963968_) <>         -36028797018963967_ or
7004        testIncr(        -36028797018963969_) <>         -36028797018963968_ or
7005        testIncr(        -36028797018963970_) <>         -36028797018963969_ or
7006        testIncr(        -72057594037927934_) <>         -72057594037927933_ or
7007        testIncr(        -72057594037927935_) <>         -72057594037927934_ or
7008        testIncr(        -72057594037927936_) <>         -72057594037927935_ or
7009        testIncr(        -72057594037927937_) <>         -72057594037927936_ or
7010        testIncr(        -72057594037927938_) <>         -72057594037927937_ or
7011        testIncr(      -9223372036854775806_) <>       -9223372036854775805_ or
7012        testIncr(      -9223372036854775807_) <>       -9223372036854775806_ or
7013        testIncr(      -9223372036854775808_) <>       -9223372036854775807_ or
7014        testIncr(      -9223372036854775809_) <>       -9223372036854775808_ or
7015        testIncr(      -9223372036854775810_) <>       -9223372036854775809_ or
7016        testIncr(     -18446744073709551614_) <>      -18446744073709551613_ or
7017        testIncr(     -18446744073709551615_) <>      -18446744073709551614_ or
7018        testIncr(     -18446744073709551616_) <>      -18446744073709551615_ or
7019        testIncr(     -18446744073709551617_) <>      -18446744073709551616_ or
7020        testIncr(     -18446744073709551618_) <>      -18446744073709551617_ or
7021        testIncr(   -2361183241434822606846_) <>    -2361183241434822606845_ or
7022        testIncr(   -2361183241434822606847_) <>    -2361183241434822606846_ or
7023        testIncr(   -2361183241434822606848_) <>    -2361183241434822606847_ or
7024        testIncr(   -2361183241434822606849_) <>    -2361183241434822606848_ or
7025        testIncr(   -2361183241434822606850_) <>    -2361183241434822606849_ or
7026        testIncr(   -4722366482869645213694_) <>    -4722366482869645213693_ or
7027        testIncr(   -4722366482869645213695_) <>    -4722366482869645213694_ or
7028        testIncr(   -4722366482869645213696_) <>    -4722366482869645213695_ or
7029        testIncr(   -4722366482869645213697_) <>    -4722366482869645213696_ or
7030        testIncr(   -4722366482869645213698_) <>    -4722366482869645213697_ or
7031        testIncr( -604462909807314587353086_) <>  -604462909807314587353085_ or
7032        testIncr( -604462909807314587353087_) <>  -604462909807314587353086_ or
7033        testIncr( -604462909807314587353088_) <>  -604462909807314587353087_ or
7034        testIncr( -604462909807314587353089_) <>  -604462909807314587353088_ or
7035        testIncr( -604462909807314587353090_) <>  -604462909807314587353089_ or
7036        testIncr(-1208925819614629174706174_) <> -1208925819614629174706173_ or
7037        testIncr(-1208925819614629174706175_) <> -1208925819614629174706174_ or
7038        testIncr(-1208925819614629174706176_) <> -1208925819614629174706175_ or
7039        testIncr(-1208925819614629174706177_) <> -1208925819614629174706176_ or
7040        testIncr(-1208925819614629174706178_) <> -1208925819614629174706177_ then
7041      writeln("Increment of a negative bigInteger does not work correct.");
7042      okay := FALSE;
7043    end if;
7044
7045    if okay then
7046      writeln("Increment of bigInteger works correct.");
7047    else
7048      writeln(" ***** Increment of bigInteger does not work correct.");
7049      writeln;
7050    end if;
7051  end func;
7052
7053
7054const func bigInteger: testDecr (in var bigInteger: number) is func
7055  result
7056    var bigInteger: exprResult is bigInteger.value;
7057  begin
7058    decr(number);
7059    exprResult := number;
7060  end func;
7061
7062
7063const proc: chkDecr is func
7064  local
7065    var boolean: okay is TRUE;
7066  begin
7067    if  testDecr(                        0_) <>                        -1_ or
7068        testDecr(                        1_) <>                         0_ or
7069        testDecr(                        2_) <>                         1_ or
7070        testDecr(                        8_) <>                         7_ or
7071        testDecr(                        9_) <>                         8_ or
7072        testDecr(                       10_) <>                         9_ or
7073        testDecr(                       11_) <>                        10_ or
7074        testDecr(                       12_) <>                        11_ or
7075        testDecr(                       98_) <>                        97_ or
7076        testDecr(                       99_) <>                        98_ or
7077        testDecr(                      100_) <>                        99_ or
7078        testDecr(                      101_) <>                       100_ or
7079        testDecr(                      102_) <>                       101_ or
7080        testDecr(                      126_) <>                       125_ or
7081        testDecr(                      127_) <>                       126_ or
7082        testDecr(                      128_) <>                       127_ or
7083        testDecr(                      129_) <>                       128_ or
7084        testDecr(                      130_) <>                       129_ or
7085        testDecr(                      254_) <>                       253_ or
7086        testDecr(                      255_) <>                       254_ or
7087        testDecr(                      256_) <>                       255_ or
7088        testDecr(                      257_) <>                       256_ or
7089        testDecr(                      258_) <>                       257_ or
7090        testDecr(                      998_) <>                       997_ or
7091        testDecr(                      999_) <>                       998_ or
7092        testDecr(                     1000_) <>                       999_ or
7093        testDecr(                     1001_) <>                      1000_ or
7094        testDecr(                     1002_) <>                      1001_ or
7095        testDecr(                     9998_) <>                      9997_ or
7096        testDecr(                     9999_) <>                      9998_ or
7097        testDecr(                    10000_) <>                      9999_ or
7098        testDecr(                    10001_) <>                     10000_ or
7099        testDecr(                    10002_) <>                     10001_ or
7100        testDecr(                    32766_) <>                     32765_ or
7101        testDecr(                    32767_) <>                     32766_ or
7102        testDecr(                    32768_) <>                     32767_ or
7103        testDecr(                    32769_) <>                     32768_ or
7104        testDecr(                    32770_) <>                     32769_ or
7105        testDecr(                    65534_) <>                     65533_ or
7106        testDecr(                    65535_) <>                     65534_ or
7107        testDecr(                    65536_) <>                     65535_ or
7108        testDecr(                    65537_) <>                     65536_ or
7109        testDecr(                    65538_) <>                     65537_ or
7110        testDecr(                    99998_) <>                     99997_ or
7111        testDecr(                    99999_) <>                     99998_ or
7112        testDecr(                   100000_) <>                     99999_ or
7113        testDecr(                   100001_) <>                    100000_ or
7114        testDecr(                   100002_) <>                    100001_ or
7115        testDecr(                   999998_) <>                    999997_ or
7116        testDecr(                   999999_) <>                    999998_ or
7117        testDecr(                  1000000_) <>                    999999_ or
7118        testDecr(                  1000001_) <>                   1000000_ or
7119        testDecr(                  1000002_) <>                   1000001_ or
7120        testDecr(                  8388606_) <>                   8388605_ or
7121        testDecr(                  8388607_) <>                   8388606_ or
7122        testDecr(                  8388608_) <>                   8388607_ or
7123        testDecr(                  8388609_) <>                   8388608_ or
7124        testDecr(                  8388610_) <>                   8388609_ or
7125        testDecr(                  9999998_) <>                   9999997_ or
7126        testDecr(                  9999999_) <>                   9999998_ or
7127        testDecr(                 10000000_) <>                   9999999_ or
7128        testDecr(                 10000001_) <>                  10000000_ or
7129        testDecr(                 10000002_) <>                  10000001_ or
7130        testDecr(                 16777214_) <>                  16777213_ or
7131        testDecr(                 16777215_) <>                  16777214_ or
7132        testDecr(                 16777216_) <>                  16777215_ or
7133        testDecr(                 16777217_) <>                  16777216_ or
7134        testDecr(                 16777218_) <>                  16777217_ or
7135        testDecr(                 99999998_) <>                  99999997_ or
7136        testDecr(                 99999999_) <>                  99999998_ or
7137        testDecr(                100000000_) <>                  99999999_ or
7138        testDecr(                100000001_) <>                 100000000_ or
7139        testDecr(                100000002_) <>                 100000001_ or
7140        testDecr(                999999998_) <>                 999999997_ or
7141        testDecr(                999999999_) <>                 999999998_ or
7142        testDecr(               1000000000_) <>                 999999999_ or
7143        testDecr(               1000000001_) <>                1000000000_ or
7144        testDecr(               1000000002_) <>                1000000001_ or
7145        testDecr(               2147483646_) <>                2147483645_ or
7146        testDecr(               2147483647_) <>                2147483646_ or
7147        testDecr(               2147483648_) <>                2147483647_ or
7148        testDecr(               2147483649_) <>                2147483648_ or
7149        testDecr(               2147483650_) <>                2147483649_ or
7150        testDecr(               4294967294_) <>                4294967293_ or
7151        testDecr(               4294967295_) <>                4294967294_ or
7152        testDecr(               4294967296_) <>                4294967295_ or
7153        testDecr(               4294967297_) <>                4294967296_ or
7154        testDecr(               4294967298_) <>                4294967297_ or
7155        testDecr(               9999999998_) <>                9999999997_ or
7156        testDecr(               9999999999_) <>                9999999998_ or
7157        testDecr(              10000000000_) <>                9999999999_ or
7158        testDecr(              10000000001_) <>               10000000000_ or
7159        testDecr(              10000000002_) <>               10000000001_ or
7160        testDecr(              99999999998_) <>               99999999997_ or
7161        testDecr(              99999999999_) <>               99999999998_ or
7162        testDecr(             100000000000_) <>               99999999999_ or
7163        testDecr(             100000000001_) <>              100000000000_ or
7164        testDecr(             100000000002_) <>              100000000001_ or
7165        testDecr(             549755813886_) <>              549755813885_ or
7166        testDecr(             549755813887_) <>              549755813886_ or
7167        testDecr(             549755813888_) <>              549755813887_ or
7168        testDecr(             549755813889_) <>              549755813888_ or
7169        testDecr(             549755813890_) <>              549755813889_ or
7170        testDecr(             999999999998_) <>              999999999997_ or
7171        testDecr(             999999999999_) <>              999999999998_ or
7172        testDecr(            1000000000000_) <>              999999999999_ or
7173        testDecr(            1000000000001_) <>             1000000000000_ or
7174        testDecr(            1000000000002_) <>             1000000000001_ or
7175        testDecr(            1099511627774_) <>             1099511627773_ or
7176        testDecr(            1099511627775_) <>             1099511627774_ or
7177        testDecr(            1099511627776_) <>             1099511627775_ or
7178        testDecr(            1099511627777_) <>             1099511627776_ or
7179        testDecr(            1099511627778_) <>             1099511627777_ or
7180        testDecr(          140737488355326_) <>           140737488355325_ or
7181        testDecr(          140737488355327_) <>           140737488355326_ or
7182        testDecr(          140737488355328_) <>           140737488355327_ or
7183        testDecr(          140737488355329_) <>           140737488355328_ or
7184        testDecr(          140737488355330_) <>           140737488355329_ or
7185        testDecr(          281474976710654_) <>           281474976710653_ or
7186        testDecr(          281474976710655_) <>           281474976710654_ or
7187        testDecr(          281474976710656_) <>           281474976710655_ or
7188        testDecr(          281474976710657_) <>           281474976710656_ or
7189        testDecr(          281474976710658_) <>           281474976710657_ or
7190        testDecr(        36028797018963966_) <>         36028797018963965_ or
7191        testDecr(        36028797018963967_) <>         36028797018963966_ or
7192        testDecr(        36028797018963968_) <>         36028797018963967_ or
7193        testDecr(        36028797018963969_) <>         36028797018963968_ or
7194        testDecr(        36028797018963970_) <>         36028797018963969_ or
7195        testDecr(        72057594037927934_) <>         72057594037927933_ or
7196        testDecr(        72057594037927935_) <>         72057594037927934_ or
7197        testDecr(        72057594037927936_) <>         72057594037927935_ or
7198        testDecr(        72057594037927937_) <>         72057594037927936_ or
7199        testDecr(        72057594037927938_) <>         72057594037927937_ or
7200        testDecr(      9223372036854775806_) <>       9223372036854775805_ or
7201        testDecr(      9223372036854775807_) <>       9223372036854775806_ or
7202        testDecr(      9223372036854775808_) <>       9223372036854775807_ or
7203        testDecr(      9223372036854775809_) <>       9223372036854775808_ or
7204        testDecr(      9223372036854775810_) <>       9223372036854775809_ or
7205        testDecr(     18446744073709551614_) <>      18446744073709551613_ or
7206        testDecr(     18446744073709551615_) <>      18446744073709551614_ or
7207        testDecr(     18446744073709551616_) <>      18446744073709551615_ or
7208        testDecr(     18446744073709551617_) <>      18446744073709551616_ or
7209        testDecr(     18446744073709551618_) <>      18446744073709551617_ or
7210        testDecr(   2361183241434822606846_) <>    2361183241434822606845_ or
7211        testDecr(   2361183241434822606847_) <>    2361183241434822606846_ or
7212        testDecr(   2361183241434822606848_) <>    2361183241434822606847_ or
7213        testDecr(   2361183241434822606849_) <>    2361183241434822606848_ or
7214        testDecr(   2361183241434822606850_) <>    2361183241434822606849_ or
7215        testDecr(   4722366482869645213694_) <>    4722366482869645213693_ or
7216        testDecr(   4722366482869645213695_) <>    4722366482869645213694_ or
7217        testDecr(   4722366482869645213696_) <>    4722366482869645213695_ or
7218        testDecr(   4722366482869645213697_) <>    4722366482869645213696_ or
7219        testDecr(   4722366482869645213698_) <>    4722366482869645213697_ or
7220        testDecr( 604462909807314587353086_) <>  604462909807314587353085_ or
7221        testDecr( 604462909807314587353087_) <>  604462909807314587353086_ or
7222        testDecr( 604462909807314587353088_) <>  604462909807314587353087_ or
7223        testDecr( 604462909807314587353089_) <>  604462909807314587353088_ or
7224        testDecr( 604462909807314587353090_) <>  604462909807314587353089_ or
7225        testDecr(1208925819614629174706174_) <> 1208925819614629174706173_ or
7226        testDecr(1208925819614629174706175_) <> 1208925819614629174706174_ or
7227        testDecr(1208925819614629174706176_) <> 1208925819614629174706175_ or
7228        testDecr(1208925819614629174706177_) <> 1208925819614629174706176_ or
7229        testDecr(1208925819614629174706178_) <> 1208925819614629174706177_ then
7230      writeln("Decrement of a positive bigInteger does not work correct.");
7231      okay := FALSE;
7232    end if;
7233
7234    if  testDecr(                        -0_) <>                         -1_ or
7235        testDecr(                        -1_) <>                         -2_ or
7236        testDecr(                        -2_) <>                         -3_ or
7237        testDecr(                        -8_) <>                         -9_ or
7238        testDecr(                        -9_) <>                        -10_ or
7239        testDecr(                       -10_) <>                        -11_ or
7240        testDecr(                       -11_) <>                        -12_ or
7241        testDecr(                       -12_) <>                        -13_ or
7242        testDecr(                       -98_) <>                        -99_ or
7243        testDecr(                       -99_) <>                       -100_ or
7244        testDecr(                      -100_) <>                       -101_ or
7245        testDecr(                      -101_) <>                       -102_ or
7246        testDecr(                      -102_) <>                       -103_ or
7247        testDecr(                      -126_) <>                       -127_ or
7248        testDecr(                      -127_) <>                       -128_ or
7249        testDecr(                      -128_) <>                       -129_ or
7250        testDecr(                      -129_) <>                       -130_ or
7251        testDecr(                      -130_) <>                       -131_ or
7252        testDecr(                      -254_) <>                       -255_ or
7253        testDecr(                      -255_) <>                       -256_ or
7254        testDecr(                      -256_) <>                       -257_ or
7255        testDecr(                      -257_) <>                       -258_ or
7256        testDecr(                      -258_) <>                       -259_ or
7257        testDecr(                      -998_) <>                       -999_ or
7258        testDecr(                      -999_) <>                      -1000_ or
7259        testDecr(                     -1000_) <>                      -1001_ or
7260        testDecr(                     -1001_) <>                      -1002_ or
7261        testDecr(                     -1002_) <>                      -1003_ or
7262        testDecr(                     -9998_) <>                      -9999_ or
7263        testDecr(                     -9999_) <>                     -10000_ or
7264        testDecr(                    -10000_) <>                     -10001_ or
7265        testDecr(                    -10001_) <>                     -10002_ or
7266        testDecr(                    -10002_) <>                     -10003_ or
7267        testDecr(                    -32766_) <>                     -32767_ or
7268        testDecr(                    -32767_) <>                     -32768_ or
7269        testDecr(                    -32768_) <>                     -32769_ or
7270        testDecr(                    -32769_) <>                     -32770_ or
7271        testDecr(                    -32770_) <>                     -32771_ or
7272        testDecr(                    -65534_) <>                     -65535_ or
7273        testDecr(                    -65535_) <>                     -65536_ or
7274        testDecr(                    -65536_) <>                     -65537_ or
7275        testDecr(                    -65537_) <>                     -65538_ or
7276        testDecr(                    -65538_) <>                     -65539_ or
7277        testDecr(                    -99998_) <>                     -99999_ or
7278        testDecr(                    -99999_) <>                    -100000_ or
7279        testDecr(                   -100000_) <>                    -100001_ or
7280        testDecr(                   -100001_) <>                    -100002_ or
7281        testDecr(                   -100002_) <>                    -100003_ or
7282        testDecr(                   -999998_) <>                    -999999_ or
7283        testDecr(                   -999999_) <>                   -1000000_ or
7284        testDecr(                  -1000000_) <>                   -1000001_ or
7285        testDecr(                  -1000001_) <>                   -1000002_ or
7286        testDecr(                  -1000002_) <>                   -1000003_ or
7287        testDecr(                  -8388606_) <>                   -8388607_ or
7288        testDecr(                  -8388607_) <>                   -8388608_ or
7289        testDecr(                  -8388608_) <>                   -8388609_ or
7290        testDecr(                  -8388609_) <>                   -8388610_ or
7291        testDecr(                  -8388610_) <>                   -8388611_ or
7292        testDecr(                  -9999998_) <>                   -9999999_ or
7293        testDecr(                  -9999999_) <>                  -10000000_ or
7294        testDecr(                 -10000000_) <>                  -10000001_ or
7295        testDecr(                 -10000001_) <>                  -10000002_ or
7296        testDecr(                 -10000002_) <>                  -10000003_ or
7297        testDecr(                 -16777214_) <>                  -16777215_ or
7298        testDecr(                 -16777215_) <>                  -16777216_ or
7299        testDecr(                 -16777216_) <>                  -16777217_ or
7300        testDecr(                 -16777217_) <>                  -16777218_ or
7301        testDecr(                 -16777218_) <>                  -16777219_ or
7302        testDecr(                 -99999998_) <>                  -99999999_ or
7303        testDecr(                 -99999999_) <>                 -100000000_ or
7304        testDecr(                -100000000_) <>                 -100000001_ or
7305        testDecr(                -100000001_) <>                 -100000002_ or
7306        testDecr(                -100000002_) <>                 -100000003_ or
7307        testDecr(                -999999998_) <>                 -999999999_ or
7308        testDecr(                -999999999_) <>                -1000000000_ or
7309        testDecr(               -1000000000_) <>                -1000000001_ or
7310        testDecr(               -1000000001_) <>                -1000000002_ or
7311        testDecr(               -1000000002_) <>                -1000000003_ or
7312        testDecr(               -2147483646_) <>                -2147483647_ or
7313        testDecr(               -2147483647_) <>                -2147483648_ or
7314        testDecr(               -2147483648_) <>                -2147483649_ or
7315        testDecr(               -2147483649_) <>                -2147483650_ or
7316        testDecr(               -2147483650_) <>                -2147483651_ or
7317        testDecr(               -4294967294_) <>                -4294967295_ or
7318        testDecr(               -4294967295_) <>                -4294967296_ or
7319        testDecr(               -4294967296_) <>                -4294967297_ or
7320        testDecr(               -4294967297_) <>                -4294967298_ or
7321        testDecr(               -4294967298_) <>                -4294967299_ or
7322        testDecr(               -9999999998_) <>                -9999999999_ or
7323        testDecr(               -9999999999_) <>               -10000000000_ or
7324        testDecr(              -10000000000_) <>               -10000000001_ or
7325        testDecr(              -10000000001_) <>               -10000000002_ or
7326        testDecr(              -10000000002_) <>               -10000000003_ or
7327        testDecr(              -99999999998_) <>               -99999999999_ or
7328        testDecr(              -99999999999_) <>              -100000000000_ or
7329        testDecr(             -100000000000_) <>              -100000000001_ or
7330        testDecr(             -100000000001_) <>              -100000000002_ or
7331        testDecr(             -100000000002_) <>              -100000000003_ or
7332        testDecr(             -549755813886_) <>              -549755813887_ or
7333        testDecr(             -549755813887_) <>              -549755813888_ or
7334        testDecr(             -549755813888_) <>              -549755813889_ or
7335        testDecr(             -549755813889_) <>              -549755813890_ or
7336        testDecr(             -549755813890_) <>              -549755813891_ or
7337        testDecr(             -999999999998_) <>              -999999999999_ or
7338        testDecr(             -999999999999_) <>             -1000000000000_ or
7339        testDecr(            -1000000000000_) <>             -1000000000001_ or
7340        testDecr(            -1000000000001_) <>             -1000000000002_ or
7341        testDecr(            -1000000000002_) <>             -1000000000003_ or
7342        testDecr(            -1099511627774_) <>             -1099511627775_ or
7343        testDecr(            -1099511627775_) <>             -1099511627776_ or
7344        testDecr(            -1099511627776_) <>             -1099511627777_ or
7345        testDecr(            -1099511627777_) <>             -1099511627778_ or
7346        testDecr(            -1099511627778_) <>             -1099511627779_ or
7347        testDecr(          -140737488355326_) <>           -140737488355327_ or
7348        testDecr(          -140737488355327_) <>           -140737488355328_ or
7349        testDecr(          -140737488355328_) <>           -140737488355329_ or
7350        testDecr(          -140737488355329_) <>           -140737488355330_ or
7351        testDecr(          -140737488355330_) <>           -140737488355331_ or
7352        testDecr(          -281474976710654_) <>           -281474976710655_ or
7353        testDecr(          -281474976710655_) <>           -281474976710656_ or
7354        testDecr(          -281474976710656_) <>           -281474976710657_ or
7355        testDecr(          -281474976710657_) <>           -281474976710658_ or
7356        testDecr(          -281474976710658_) <>           -281474976710659_ or
7357        testDecr(        -36028797018963966_) <>         -36028797018963967_ or
7358        testDecr(        -36028797018963967_) <>         -36028797018963968_ or
7359        testDecr(        -36028797018963968_) <>         -36028797018963969_ or
7360        testDecr(        -36028797018963969_) <>         -36028797018963970_ or
7361        testDecr(        -36028797018963970_) <>         -36028797018963971_ or
7362        testDecr(        -72057594037927934_) <>         -72057594037927935_ or
7363        testDecr(        -72057594037927935_) <>         -72057594037927936_ or
7364        testDecr(        -72057594037927936_) <>         -72057594037927937_ or
7365        testDecr(        -72057594037927937_) <>         -72057594037927938_ or
7366        testDecr(        -72057594037927938_) <>         -72057594037927939_ or
7367        testDecr(      -9223372036854775806_) <>       -9223372036854775807_ or
7368        testDecr(      -9223372036854775807_) <>       -9223372036854775808_ or
7369        testDecr(      -9223372036854775808_) <>       -9223372036854775809_ or
7370        testDecr(      -9223372036854775809_) <>       -9223372036854775810_ or
7371        testDecr(      -9223372036854775810_) <>       -9223372036854775811_ or
7372        testDecr(     -18446744073709551614_) <>      -18446744073709551615_ or
7373        testDecr(     -18446744073709551615_) <>      -18446744073709551616_ or
7374        testDecr(     -18446744073709551616_) <>      -18446744073709551617_ or
7375        testDecr(     -18446744073709551617_) <>      -18446744073709551618_ or
7376        testDecr(     -18446744073709551618_) <>      -18446744073709551619_ or
7377        testDecr(   -2361183241434822606846_) <>    -2361183241434822606847_ or
7378        testDecr(   -2361183241434822606847_) <>    -2361183241434822606848_ or
7379        testDecr(   -2361183241434822606848_) <>    -2361183241434822606849_ or
7380        testDecr(   -2361183241434822606849_) <>    -2361183241434822606850_ or
7381        testDecr(   -2361183241434822606850_) <>    -2361183241434822606851_ or
7382        testDecr(   -4722366482869645213694_) <>    -4722366482869645213695_ or
7383        testDecr(   -4722366482869645213695_) <>    -4722366482869645213696_ or
7384        testDecr(   -4722366482869645213696_) <>    -4722366482869645213697_ or
7385        testDecr(   -4722366482869645213697_) <>    -4722366482869645213698_ or
7386        testDecr(   -4722366482869645213698_) <>    -4722366482869645213699_ or
7387        testDecr( -604462909807314587353086_) <>  -604462909807314587353087_ or
7388        testDecr( -604462909807314587353087_) <>  -604462909807314587353088_ or
7389        testDecr( -604462909807314587353088_) <>  -604462909807314587353089_ or
7390        testDecr( -604462909807314587353089_) <>  -604462909807314587353090_ or
7391        testDecr( -604462909807314587353090_) <>  -604462909807314587353091_ or
7392        testDecr(-1208925819614629174706174_) <> -1208925819614629174706175_ or
7393        testDecr(-1208925819614629174706175_) <> -1208925819614629174706176_ or
7394        testDecr(-1208925819614629174706176_) <> -1208925819614629174706177_ or
7395        testDecr(-1208925819614629174706177_) <> -1208925819614629174706178_ or
7396        testDecr(-1208925819614629174706178_) <> -1208925819614629174706179_ then
7397      writeln("Decrement of a negative bigInteger does not work correct.");
7398      okay := FALSE;
7399    end if;
7400
7401    if okay then
7402      writeln("Decrement of bigInteger works correct.");
7403    else
7404      writeln(" ***** Decrement of bigInteger does not work correct.");
7405      writeln;
7406    end if;
7407  end func;
7408
7409
7410const proc: chkAddition is func
7411  local
7412    var bigInteger: number is 0_;
7413    var boolean: okay is TRUE;
7414  begin
7415    if  -2147483650_ + -2147483650_ <> -4294967300_ or
7416        -2147483650_ + -2147483649_ <> -4294967299_ or
7417        -2147483650_ + -2147483648_ <> -4294967298_ or
7418        -2147483650_ + -2147483647_ <> -4294967297_ or
7419        -2147483650_ +      -32770_ <> -2147516420_ or
7420        -2147483650_ +      -32769_ <> -2147516419_ or
7421        -2147483650_ +      -32768_ <> -2147516418_ or
7422        -2147483650_ +      -32767_ <> -2147516417_ or
7423        -2147483650_ +          -2_ <> -2147483652_ or
7424        -2147483650_ +          -1_ <> -2147483651_ or
7425        -2147483650_ +           0_ <> -2147483650_ or
7426        -2147483650_ +           1_ <> -2147483649_ or
7427        -2147483650_ +       32766_ <> -2147450884_ or
7428        -2147483650_ +       32767_ <> -2147450883_ or
7429        -2147483650_ +       32768_ <> -2147450882_ or
7430        -2147483650_ +       32769_ <> -2147450881_ or
7431        -2147483650_ +  2147483646_ <>          -4_ or
7432        -2147483650_ +  2147483647_ <>          -3_ or
7433        -2147483650_ +  2147483648_ <>          -2_ or
7434        -2147483650_ +  2147483649_ <>          -1_ or
7435        -2147483649_ + -2147483650_ <> -4294967299_ or
7436        -2147483649_ + -2147483649_ <> -4294967298_ or
7437        -2147483649_ + -2147483648_ <> -4294967297_ or
7438        -2147483649_ + -2147483647_ <> -4294967296_ or
7439        -2147483649_ +      -32770_ <> -2147516419_ or
7440        -2147483649_ +      -32769_ <> -2147516418_ or
7441        -2147483649_ +      -32768_ <> -2147516417_ or
7442        -2147483649_ +      -32767_ <> -2147516416_ or
7443        -2147483649_ +          -2_ <> -2147483651_ or
7444        -2147483649_ +          -1_ <> -2147483650_ or
7445        -2147483649_ +           0_ <> -2147483649_ or
7446        -2147483649_ +           1_ <> -2147483648_ or
7447        -2147483649_ +       32766_ <> -2147450883_ or
7448        -2147483649_ +       32767_ <> -2147450882_ or
7449        -2147483649_ +       32768_ <> -2147450881_ or
7450        -2147483649_ +       32769_ <> -2147450880_ or
7451        -2147483649_ +  2147483646_ <>          -3_ or
7452        -2147483649_ +  2147483647_ <>          -2_ or
7453        -2147483649_ +  2147483648_ <>          -1_ or
7454        -2147483649_ +  2147483649_ <>           0_ or
7455        -2147483648_ + -2147483650_ <> -4294967298_ or
7456        -2147483648_ + -2147483649_ <> -4294967297_ or
7457        -2147483648_ + -2147483648_ <> -4294967296_ or
7458        -2147483648_ + -2147483647_ <> -4294967295_ or
7459        -2147483648_ +      -32770_ <> -2147516418_ or
7460        -2147483648_ +      -32769_ <> -2147516417_ or
7461        -2147483648_ +      -32768_ <> -2147516416_ or
7462        -2147483648_ +      -32767_ <> -2147516415_ or
7463        -2147483648_ +          -2_ <> -2147483650_ or
7464        -2147483648_ +          -1_ <> -2147483649_ or
7465        -2147483648_ +           0_ <> -2147483648_ or
7466        -2147483648_ +           1_ <> -2147483647_ or
7467        -2147483648_ +       32766_ <> -2147450882_ or
7468        -2147483648_ +       32767_ <> -2147450881_ or
7469        -2147483648_ +       32768_ <> -2147450880_ or
7470        -2147483648_ +       32769_ <> -2147450879_ or
7471        -2147483648_ +  2147483646_ <>          -2_ or
7472        -2147483648_ +  2147483647_ <>          -1_ or
7473        -2147483648_ +  2147483648_ <>           0_ or
7474        -2147483648_ +  2147483649_ <>           1_ or
7475        -2147483647_ + -2147483650_ <> -4294967297_ or
7476        -2147483647_ + -2147483649_ <> -4294967296_ or
7477        -2147483647_ + -2147483648_ <> -4294967295_ or
7478        -2147483647_ + -2147483647_ <> -4294967294_ or
7479        -2147483647_ +      -32770_ <> -2147516417_ or
7480        -2147483647_ +      -32769_ <> -2147516416_ or
7481        -2147483647_ +      -32768_ <> -2147516415_ or
7482        -2147483647_ +      -32767_ <> -2147516414_ or
7483        -2147483647_ +          -2_ <> -2147483649_ or
7484        -2147483647_ +          -1_ <> -2147483648_ or
7485        -2147483647_ +           0_ <> -2147483647_ or
7486        -2147483647_ +           1_ <> -2147483646_ or
7487        -2147483647_ +       32766_ <> -2147450881_ or
7488        -2147483647_ +       32767_ <> -2147450880_ or
7489        -2147483647_ +       32768_ <> -2147450879_ or
7490        -2147483647_ +       32769_ <> -2147450878_ or
7491        -2147483647_ +  2147483646_ <>          -1_ or
7492        -2147483647_ +  2147483647_ <>           0_ or
7493        -2147483647_ +  2147483648_ <>           1_ or
7494        -2147483647_ +  2147483649_ <>           2_ or
7495             -32770_ + -2147483650_ <> -2147516420_ or
7496             -32770_ + -2147483649_ <> -2147516419_ or
7497             -32770_ + -2147483648_ <> -2147516418_ or
7498             -32770_ + -2147483647_ <> -2147516417_ or
7499             -32770_ +      -32770_ <>      -65540_ or
7500             -32770_ +      -32769_ <>      -65539_ or
7501             -32770_ +      -32768_ <>      -65538_ or
7502             -32770_ +      -32767_ <>      -65537_ or
7503             -32770_ +          -2_ <>      -32772_ or
7504             -32770_ +          -1_ <>      -32771_ or
7505             -32770_ +           0_ <>      -32770_ or
7506             -32770_ +           1_ <>      -32769_ or
7507             -32770_ +       32766_ <>          -4_ or
7508             -32770_ +       32767_ <>          -3_ or
7509             -32770_ +       32768_ <>          -2_ or
7510             -32770_ +       32769_ <>          -1_ or
7511             -32770_ +  2147483646_ <>  2147450876_ or
7512             -32770_ +  2147483647_ <>  2147450877_ or
7513             -32770_ +  2147483648_ <>  2147450878_ or
7514             -32770_ +  2147483649_ <>  2147450879_ or
7515             -32769_ + -2147483650_ <> -2147516419_ or
7516             -32769_ + -2147483649_ <> -2147516418_ or
7517             -32769_ + -2147483648_ <> -2147516417_ or
7518             -32769_ + -2147483647_ <> -2147516416_ or
7519             -32769_ +      -32770_ <>      -65539_ or
7520             -32769_ +      -32769_ <>      -65538_ or
7521             -32769_ +      -32768_ <>      -65537_ or
7522             -32769_ +      -32767_ <>      -65536_ or
7523             -32769_ +          -2_ <>      -32771_ or
7524             -32769_ +          -1_ <>      -32770_ or
7525             -32769_ +           0_ <>      -32769_ or
7526             -32769_ +           1_ <>      -32768_ or
7527             -32769_ +       32766_ <>          -3_ or
7528             -32769_ +       32767_ <>          -2_ or
7529             -32769_ +       32768_ <>          -1_ or
7530             -32769_ +       32769_ <>           0_ or
7531             -32769_ +  2147483646_ <>  2147450877_ or
7532             -32769_ +  2147483647_ <>  2147450878_ or
7533             -32769_ +  2147483648_ <>  2147450879_ or
7534             -32769_ +  2147483649_ <>  2147450880_ or
7535             -32768_ + -2147483650_ <> -2147516418_ or
7536             -32768_ + -2147483649_ <> -2147516417_ or
7537             -32768_ + -2147483648_ <> -2147516416_ or
7538             -32768_ + -2147483647_ <> -2147516415_ or
7539             -32768_ +      -32770_ <>      -65538_ or
7540             -32768_ +      -32769_ <>      -65537_ or
7541             -32768_ +      -32768_ <>      -65536_ or
7542             -32768_ +      -32767_ <>      -65535_ or
7543             -32768_ +          -2_ <>      -32770_ or
7544             -32768_ +          -1_ <>      -32769_ or
7545             -32768_ +           0_ <>      -32768_ or
7546             -32768_ +           1_ <>      -32767_ or
7547             -32768_ +       32766_ <>          -2_ or
7548             -32768_ +       32767_ <>          -1_ or
7549             -32768_ +       32768_ <>           0_ or
7550             -32768_ +       32769_ <>           1_ or
7551             -32768_ +  2147483646_ <>  2147450878_ or
7552             -32768_ +  2147483647_ <>  2147450879_ or
7553             -32768_ +  2147483648_ <>  2147450880_ or
7554             -32768_ +  2147483649_ <>  2147450881_ or
7555             -32767_ + -2147483650_ <> -2147516417_ or
7556             -32767_ + -2147483649_ <> -2147516416_ or
7557             -32767_ + -2147483648_ <> -2147516415_ or
7558             -32767_ + -2147483647_ <> -2147516414_ or
7559             -32767_ +      -32770_ <>      -65537_ or
7560             -32767_ +      -32769_ <>      -65536_ or
7561             -32767_ +      -32768_ <>      -65535_ or
7562             -32767_ +      -32767_ <>      -65534_ or
7563             -32767_ +          -2_ <>      -32769_ or
7564             -32767_ +          -1_ <>      -32768_ or
7565             -32767_ +           0_ <>      -32767_ or
7566             -32767_ +           1_ <>      -32766_ or
7567             -32767_ +       32766_ <>          -1_ or
7568             -32767_ +       32767_ <>           0_ or
7569             -32767_ +       32768_ <>           1_ or
7570             -32767_ +       32769_ <>           2_ or
7571             -32767_ +  2147483646_ <>  2147450879_ or
7572             -32767_ +  2147483647_ <>  2147450880_ or
7573             -32767_ +  2147483648_ <>  2147450881_ or
7574             -32767_ +  2147483649_ <>  2147450882_ or
7575                 -2_ + -2147483650_ <> -2147483652_ or
7576                 -2_ + -2147483649_ <> -2147483651_ or
7577                 -2_ + -2147483648_ <> -2147483650_ or
7578                 -2_ + -2147483647_ <> -2147483649_ or
7579                 -2_ +      -32770_ <>      -32772_ or
7580                 -2_ +      -32769_ <>      -32771_ or
7581                 -2_ +      -32768_ <>      -32770_ or
7582                 -2_ +      -32767_ <>      -32769_ or
7583                 -2_ +          -2_ <>          -4_ or
7584                 -2_ +          -1_ <>          -3_ or
7585                 -2_ +           0_ <>          -2_ or
7586                 -2_ +           1_ <>          -1_ or
7587                 -2_ +       32766_ <>       32764_ or
7588                 -2_ +       32767_ <>       32765_ or
7589                 -2_ +       32768_ <>       32766_ or
7590                 -2_ +       32769_ <>       32767_ or
7591                 -2_ +  2147483646_ <>  2147483644_ or
7592                 -2_ +  2147483647_ <>  2147483645_ or
7593                 -2_ +  2147483648_ <>  2147483646_ or
7594                 -2_ +  2147483649_ <>  2147483647_ or
7595                 -1_ + -2147483650_ <> -2147483651_ or
7596                 -1_ + -2147483649_ <> -2147483650_ or
7597                 -1_ + -2147483648_ <> -2147483649_ or
7598                 -1_ + -2147483647_ <> -2147483648_ or
7599                 -1_ +      -32770_ <>      -32771_ or
7600                 -1_ +      -32769_ <>      -32770_ or
7601                 -1_ +      -32768_ <>      -32769_ or
7602                 -1_ +      -32767_ <>      -32768_ or
7603                 -1_ +          -2_ <>          -3_ or
7604                 -1_ +          -1_ <>          -2_ or
7605                 -1_ +           0_ <>          -1_ or
7606                 -1_ +           1_ <>           0_ or
7607                 -1_ +       32766_ <>       32765_ or
7608                 -1_ +       32767_ <>       32766_ or
7609                 -1_ +       32768_ <>       32767_ or
7610                 -1_ +       32769_ <>       32768_ or
7611                 -1_ +  2147483646_ <>  2147483645_ or
7612                 -1_ +  2147483647_ <>  2147483646_ or
7613                 -1_ +  2147483648_ <>  2147483647_ or
7614                 -1_ +  2147483649_ <>  2147483648_ or
7615                  0_ + -2147483650_ <> -2147483650_ or
7616                  0_ + -2147483649_ <> -2147483649_ or
7617                  0_ + -2147483648_ <> -2147483648_ or
7618                  0_ + -2147483647_ <> -2147483647_ or
7619                  0_ +      -32770_ <>      -32770_ or
7620                  0_ +      -32769_ <>      -32769_ or
7621                  0_ +      -32768_ <>      -32768_ or
7622                  0_ +      -32767_ <>      -32767_ or
7623                  0_ +          -2_ <>          -2_ or
7624                  0_ +          -1_ <>          -1_ or
7625                  0_ +           0_ <>           0_ or
7626                  0_ +           1_ <>           1_ or
7627                  0_ +       32766_ <>       32766_ or
7628                  0_ +       32767_ <>       32767_ or
7629                  0_ +       32768_ <>       32768_ or
7630                  0_ +       32769_ <>       32769_ or
7631                  0_ +  2147483646_ <>  2147483646_ or
7632                  0_ +  2147483647_ <>  2147483647_ or
7633                  0_ +  2147483648_ <>  2147483648_ or
7634                  0_ +  2147483649_ <>  2147483649_ or
7635                  1_ + -2147483650_ <> -2147483649_ or
7636                  1_ + -2147483649_ <> -2147483648_ or
7637                  1_ + -2147483648_ <> -2147483647_ or
7638                  1_ + -2147483647_ <> -2147483646_ or
7639                  1_ +      -32770_ <>      -32769_ or
7640                  1_ +      -32769_ <>      -32768_ or
7641                  1_ +      -32768_ <>      -32767_ or
7642                  1_ +      -32767_ <>      -32766_ or
7643                  1_ +          -2_ <>          -1_ or
7644                  1_ +          -1_ <>           0_ or
7645                  1_ +           0_ <>           1_ or
7646                  1_ +           1_ <>           2_ or
7647                  1_ +       32766_ <>       32767_ or
7648                  1_ +       32767_ <>       32768_ or
7649                  1_ +       32768_ <>       32769_ or
7650                  1_ +       32769_ <>       32770_ or
7651                  1_ +  2147483646_ <>  2147483647_ or
7652                  1_ +  2147483647_ <>  2147483648_ or
7653                  1_ +  2147483648_ <>  2147483649_ or
7654                  1_ +  2147483649_ <>  2147483650_ or
7655              32766_ + -2147483650_ <> -2147450884_ or
7656              32766_ + -2147483649_ <> -2147450883_ or
7657              32766_ + -2147483648_ <> -2147450882_ or
7658              32766_ + -2147483647_ <> -2147450881_ or
7659              32766_ +      -32770_ <>          -4_ or
7660              32766_ +      -32769_ <>          -3_ or
7661              32766_ +      -32768_ <>          -2_ or
7662              32766_ +      -32767_ <>          -1_ or
7663              32766_ +          -2_ <>       32764_ or
7664              32766_ +          -1_ <>       32765_ or
7665              32766_ +           0_ <>       32766_ or
7666              32766_ +           1_ <>       32767_ or
7667              32766_ +       32766_ <>       65532_ or
7668              32766_ +       32767_ <>       65533_ or
7669              32766_ +       32768_ <>       65534_ or
7670              32766_ +       32769_ <>       65535_ or
7671              32766_ +  2147483646_ <>  2147516412_ or
7672              32766_ +  2147483647_ <>  2147516413_ or
7673              32766_ +  2147483648_ <>  2147516414_ or
7674              32766_ +  2147483649_ <>  2147516415_ or
7675              32767_ + -2147483650_ <> -2147450883_ or
7676              32767_ + -2147483649_ <> -2147450882_ or
7677              32767_ + -2147483648_ <> -2147450881_ or
7678              32767_ + -2147483647_ <> -2147450880_ or
7679              32767_ +      -32770_ <>          -3_ or
7680              32767_ +      -32769_ <>          -2_ or
7681              32767_ +      -32768_ <>          -1_ or
7682              32767_ +      -32767_ <>           0_ or
7683              32767_ +          -2_ <>       32765_ or
7684              32767_ +          -1_ <>       32766_ or
7685              32767_ +           0_ <>       32767_ or
7686              32767_ +           1_ <>       32768_ or
7687              32767_ +       32766_ <>       65533_ or
7688              32767_ +       32767_ <>       65534_ or
7689              32767_ +       32768_ <>       65535_ or
7690              32767_ +       32769_ <>       65536_ or
7691              32767_ +  2147483646_ <>  2147516413_ or
7692              32767_ +  2147483647_ <>  2147516414_ or
7693              32767_ +  2147483648_ <>  2147516415_ or
7694              32767_ +  2147483649_ <>  2147516416_ or
7695              32768_ + -2147483650_ <> -2147450882_ or
7696              32768_ + -2147483649_ <> -2147450881_ or
7697              32768_ + -2147483648_ <> -2147450880_ or
7698              32768_ + -2147483647_ <> -2147450879_ or
7699              32768_ +      -32770_ <>          -2_ or
7700              32768_ +      -32769_ <>          -1_ or
7701              32768_ +      -32768_ <>           0_ or
7702              32768_ +      -32767_ <>           1_ or
7703              32768_ +          -2_ <>       32766_ or
7704              32768_ +          -1_ <>       32767_ or
7705              32768_ +           0_ <>       32768_ or
7706              32768_ +           1_ <>       32769_ or
7707              32768_ +       32766_ <>       65534_ or
7708              32768_ +       32767_ <>       65535_ or
7709              32768_ +       32768_ <>       65536_ or
7710              32768_ +       32769_ <>       65537_ or
7711              32768_ +  2147483646_ <>  2147516414_ or
7712              32768_ +  2147483647_ <>  2147516415_ or
7713              32768_ +  2147483648_ <>  2147516416_ or
7714              32768_ +  2147483649_ <>  2147516417_ or
7715              32769_ + -2147483650_ <> -2147450881_ or
7716              32769_ + -2147483649_ <> -2147450880_ or
7717              32769_ + -2147483648_ <> -2147450879_ or
7718              32769_ + -2147483647_ <> -2147450878_ or
7719              32769_ +      -32770_ <>          -1_ or
7720              32769_ +      -32769_ <>           0_ or
7721              32769_ +      -32768_ <>           1_ or
7722              32769_ +      -32767_ <>           2_ or
7723              32769_ +          -2_ <>       32767_ or
7724              32769_ +          -1_ <>       32768_ or
7725              32769_ +           0_ <>       32769_ or
7726              32769_ +           1_ <>       32770_ or
7727              32769_ +       32766_ <>       65535_ or
7728              32769_ +       32767_ <>       65536_ or
7729              32769_ +       32768_ <>       65537_ or
7730              32769_ +       32769_ <>       65538_ or
7731              32769_ +  2147483646_ <>  2147516415_ or
7732              32769_ +  2147483647_ <>  2147516416_ or
7733              32769_ +  2147483648_ <>  2147516417_ or
7734              32769_ +  2147483649_ <>  2147516418_ or
7735         2147483646_ + -2147483650_ <>          -4_ or
7736         2147483646_ + -2147483649_ <>          -3_ or
7737         2147483646_ + -2147483648_ <>          -2_ or
7738         2147483646_ + -2147483647_ <>          -1_ or
7739         2147483646_ +      -32770_ <>  2147450876_ or
7740         2147483646_ +      -32769_ <>  2147450877_ or
7741         2147483646_ +      -32768_ <>  2147450878_ or
7742         2147483646_ +      -32767_ <>  2147450879_ or
7743         2147483646_ +          -2_ <>  2147483644_ or
7744         2147483646_ +          -1_ <>  2147483645_ or
7745         2147483646_ +           0_ <>  2147483646_ or
7746         2147483646_ +           1_ <>  2147483647_ or
7747         2147483646_ +       32766_ <>  2147516412_ or
7748         2147483646_ +       32767_ <>  2147516413_ or
7749         2147483646_ +       32768_ <>  2147516414_ or
7750         2147483646_ +       32769_ <>  2147516415_ or
7751         2147483646_ +  2147483646_ <>  4294967292_ or
7752         2147483646_ +  2147483647_ <>  4294967293_ or
7753         2147483646_ +  2147483648_ <>  4294967294_ or
7754         2147483646_ +  2147483649_ <>  4294967295_ or
7755         2147483647_ + -2147483650_ <>          -3_ or
7756         2147483647_ + -2147483649_ <>          -2_ or
7757         2147483647_ + -2147483648_ <>          -1_ or
7758         2147483647_ + -2147483647_ <>           0_ or
7759         2147483647_ +      -32770_ <>  2147450877_ or
7760         2147483647_ +      -32769_ <>  2147450878_ or
7761         2147483647_ +      -32768_ <>  2147450879_ or
7762         2147483647_ +      -32767_ <>  2147450880_ or
7763         2147483647_ +          -2_ <>  2147483645_ or
7764         2147483647_ +          -1_ <>  2147483646_ or
7765         2147483647_ +           0_ <>  2147483647_ or
7766         2147483647_ +           1_ <>  2147483648_ or
7767         2147483647_ +       32766_ <>  2147516413_ or
7768         2147483647_ +       32767_ <>  2147516414_ or
7769         2147483647_ +       32768_ <>  2147516415_ or
7770         2147483647_ +       32769_ <>  2147516416_ or
7771         2147483647_ +  2147483646_ <>  4294967293_ or
7772         2147483647_ +  2147483647_ <>  4294967294_ or
7773         2147483647_ +  2147483648_ <>  4294967295_ or
7774         2147483647_ +  2147483649_ <>  4294967296_ or
7775         2147483648_ + -2147483650_ <>          -2_ or
7776         2147483648_ + -2147483649_ <>          -1_ or
7777         2147483648_ + -2147483648_ <>           0_ or
7778         2147483648_ + -2147483647_ <>           1_ or
7779         2147483648_ +      -32770_ <>  2147450878_ or
7780         2147483648_ +      -32769_ <>  2147450879_ or
7781         2147483648_ +      -32768_ <>  2147450880_ or
7782         2147483648_ +      -32767_ <>  2147450881_ or
7783         2147483648_ +          -2_ <>  2147483646_ or
7784         2147483648_ +          -1_ <>  2147483647_ or
7785         2147483648_ +           0_ <>  2147483648_ or
7786         2147483648_ +           1_ <>  2147483649_ or
7787         2147483648_ +       32766_ <>  2147516414_ or
7788         2147483648_ +       32767_ <>  2147516415_ or
7789         2147483648_ +       32768_ <>  2147516416_ or
7790         2147483648_ +       32769_ <>  2147516417_ or
7791         2147483648_ +  2147483646_ <>  4294967294_ or
7792         2147483648_ +  2147483647_ <>  4294967295_ or
7793         2147483648_ +  2147483648_ <>  4294967296_ or
7794         2147483648_ +  2147483649_ <>  4294967297_ or
7795         2147483649_ + -2147483650_ <>          -1_ or
7796         2147483649_ + -2147483649_ <>           0_ or
7797         2147483649_ + -2147483648_ <>           1_ or
7798         2147483649_ + -2147483647_ <>           2_ or
7799         2147483649_ +      -32770_ <>  2147450879_ or
7800         2147483649_ +      -32769_ <>  2147450880_ or
7801         2147483649_ +      -32768_ <>  2147450881_ or
7802         2147483649_ +      -32767_ <>  2147450882_ or
7803         2147483649_ +          -2_ <>  2147483647_ or
7804         2147483649_ +          -1_ <>  2147483648_ or
7805         2147483649_ +           0_ <>  2147483649_ or
7806         2147483649_ +           1_ <>  2147483650_ or
7807         2147483649_ +       32766_ <>  2147516415_ or
7808         2147483649_ +       32767_ <>  2147516416_ or
7809         2147483649_ +       32768_ <>  2147516417_ or
7810         2147483649_ +       32769_ <>  2147516418_ or
7811         2147483649_ +  2147483646_ <>  4294967295_ or
7812         2147483649_ +  2147483647_ <>  4294967296_ or
7813         2147483649_ +  2147483648_ <>  4294967297_ or
7814         2147483649_ +  2147483649_ <>  4294967298_ then
7815      writeln("Addition of bigInteger does not work correct.");
7816      okay := FALSE;
7817    end if;
7818
7819    number := 1000000_;
7820    if number + number <> 2000000_ then
7821      writeln("Addition of bigInteger with itself does not work correct.");
7822      okay := FALSE;
7823    end if;
7824
7825    if number + -number <> 0_ then
7826      writeln("Addition of bigInteger with its negated value does not work correct.");
7827      okay := FALSE;
7828    end if;
7829
7830    if okay then
7831      writeln("Addition of bigInteger works correct.");
7832    else
7833      writeln(" ***** Addition of bigInteger does not work correct.");
7834      writeln;
7835    end if;
7836  end func;
7837
7838
7839const func boolean: chkAddAssignLiteral1 is func
7840  result
7841    var boolean: ok is TRUE;
7842  local
7843    var bigInteger: big1 is 0_;
7844  begin
7845    big1 := -2147483650_; big1 +:= -2147483650_; ok := ok and big1 = -4294967300_;
7846    big1 := -2147483650_; big1 +:= -2147483649_; ok := ok and big1 = -4294967299_;
7847    big1 := -2147483650_; big1 +:= -2147483648_; ok := ok and big1 = -4294967298_;
7848    big1 := -2147483650_; big1 +:= -2147483647_; ok := ok and big1 = -4294967297_;
7849    big1 := -2147483650_; big1 +:=      -32770_; ok := ok and big1 = -2147516420_;
7850    big1 := -2147483650_; big1 +:=      -32769_; ok := ok and big1 = -2147516419_;
7851    big1 := -2147483650_; big1 +:=      -32768_; ok := ok and big1 = -2147516418_;
7852    big1 := -2147483650_; big1 +:=      -32767_; ok := ok and big1 = -2147516417_;
7853    big1 := -2147483650_; big1 +:=          -2_; ok := ok and big1 = -2147483652_;
7854    big1 := -2147483650_; big1 +:=          -1_; ok := ok and big1 = -2147483651_;
7855    big1 := -2147483650_; big1 +:=           0_; ok := ok and big1 = -2147483650_;
7856    big1 := -2147483650_; big1 +:=           1_; ok := ok and big1 = -2147483649_;
7857    big1 := -2147483650_; big1 +:=           2_; ok := ok and big1 = -2147483648_;
7858    big1 := -2147483650_; big1 +:=       32766_; ok := ok and big1 = -2147450884_;
7859    big1 := -2147483650_; big1 +:=       32767_; ok := ok and big1 = -2147450883_;
7860    big1 := -2147483650_; big1 +:=       32768_; ok := ok and big1 = -2147450882_;
7861    big1 := -2147483650_; big1 +:=       32769_; ok := ok and big1 = -2147450881_;
7862    big1 := -2147483650_; big1 +:=  2147483646_; ok := ok and big1 =          -4_;
7863    big1 := -2147483650_; big1 +:=  2147483647_; ok := ok and big1 =          -3_;
7864    big1 := -2147483650_; big1 +:=  2147483648_; ok := ok and big1 =          -2_;
7865    big1 := -2147483650_; big1 +:=  2147483649_; ok := ok and big1 =          -1_;
7866    big1 := -2147483649_; big1 +:= -2147483650_; ok := ok and big1 = -4294967299_;
7867    big1 := -2147483649_; big1 +:= -2147483649_; ok := ok and big1 = -4294967298_;
7868    big1 := -2147483649_; big1 +:= -2147483648_; ok := ok and big1 = -4294967297_;
7869    big1 := -2147483649_; big1 +:= -2147483647_; ok := ok and big1 = -4294967296_;
7870    big1 := -2147483649_; big1 +:=      -32770_; ok := ok and big1 = -2147516419_;
7871    big1 := -2147483649_; big1 +:=      -32769_; ok := ok and big1 = -2147516418_;
7872    big1 := -2147483649_; big1 +:=      -32768_; ok := ok and big1 = -2147516417_;
7873    big1 := -2147483649_; big1 +:=      -32767_; ok := ok and big1 = -2147516416_;
7874    big1 := -2147483649_; big1 +:=          -2_; ok := ok and big1 = -2147483651_;
7875    big1 := -2147483649_; big1 +:=          -1_; ok := ok and big1 = -2147483650_;
7876    big1 := -2147483649_; big1 +:=           0_; ok := ok and big1 = -2147483649_;
7877    big1 := -2147483649_; big1 +:=           1_; ok := ok and big1 = -2147483648_;
7878    big1 := -2147483649_; big1 +:=           2_; ok := ok and big1 = -2147483647_;
7879    big1 := -2147483649_; big1 +:=       32766_; ok := ok and big1 = -2147450883_;
7880    big1 := -2147483649_; big1 +:=       32767_; ok := ok and big1 = -2147450882_;
7881    big1 := -2147483649_; big1 +:=       32768_; ok := ok and big1 = -2147450881_;
7882    big1 := -2147483649_; big1 +:=       32769_; ok := ok and big1 = -2147450880_;
7883    big1 := -2147483649_; big1 +:=  2147483646_; ok := ok and big1 =          -3_;
7884    big1 := -2147483649_; big1 +:=  2147483647_; ok := ok and big1 =          -2_;
7885    big1 := -2147483649_; big1 +:=  2147483648_; ok := ok and big1 =          -1_;
7886    big1 := -2147483649_; big1 +:=  2147483649_; ok := ok and big1 =           0_;
7887    big1 := -2147483648_; big1 +:= -2147483650_; ok := ok and big1 = -4294967298_;
7888    big1 := -2147483648_; big1 +:= -2147483649_; ok := ok and big1 = -4294967297_;
7889    big1 := -2147483648_; big1 +:= -2147483648_; ok := ok and big1 = -4294967296_;
7890    big1 := -2147483648_; big1 +:= -2147483647_; ok := ok and big1 = -4294967295_;
7891    big1 := -2147483648_; big1 +:=      -32770_; ok := ok and big1 = -2147516418_;
7892    big1 := -2147483648_; big1 +:=      -32769_; ok := ok and big1 = -2147516417_;
7893    big1 := -2147483648_; big1 +:=      -32768_; ok := ok and big1 = -2147516416_;
7894    big1 := -2147483648_; big1 +:=      -32767_; ok := ok and big1 = -2147516415_;
7895    big1 := -2147483648_; big1 +:=          -2_; ok := ok and big1 = -2147483650_;
7896    big1 := -2147483648_; big1 +:=          -1_; ok := ok and big1 = -2147483649_;
7897    big1 := -2147483648_; big1 +:=           0_; ok := ok and big1 = -2147483648_;
7898    big1 := -2147483648_; big1 +:=           1_; ok := ok and big1 = -2147483647_;
7899    big1 := -2147483648_; big1 +:=           2_; ok := ok and big1 = -2147483646_;
7900    big1 := -2147483648_; big1 +:=       32766_; ok := ok and big1 = -2147450882_;
7901    big1 := -2147483648_; big1 +:=       32767_; ok := ok and big1 = -2147450881_;
7902    big1 := -2147483648_; big1 +:=       32768_; ok := ok and big1 = -2147450880_;
7903    big1 := -2147483648_; big1 +:=       32769_; ok := ok and big1 = -2147450879_;
7904    big1 := -2147483648_; big1 +:=  2147483646_; ok := ok and big1 =          -2_;
7905    big1 := -2147483648_; big1 +:=  2147483647_; ok := ok and big1 =          -1_;
7906    big1 := -2147483648_; big1 +:=  2147483648_; ok := ok and big1 =           0_;
7907    big1 := -2147483648_; big1 +:=  2147483649_; ok := ok and big1 =           1_;
7908    big1 := -2147483647_; big1 +:= -2147483650_; ok := ok and big1 = -4294967297_;
7909    big1 := -2147483647_; big1 +:= -2147483649_; ok := ok and big1 = -4294967296_;
7910    big1 := -2147483647_; big1 +:= -2147483648_; ok := ok and big1 = -4294967295_;
7911    big1 := -2147483647_; big1 +:= -2147483647_; ok := ok and big1 = -4294967294_;
7912    big1 := -2147483647_; big1 +:=      -32770_; ok := ok and big1 = -2147516417_;
7913    big1 := -2147483647_; big1 +:=      -32769_; ok := ok and big1 = -2147516416_;
7914    big1 := -2147483647_; big1 +:=      -32768_; ok := ok and big1 = -2147516415_;
7915    big1 := -2147483647_; big1 +:=      -32767_; ok := ok and big1 = -2147516414_;
7916    big1 := -2147483647_; big1 +:=          -2_; ok := ok and big1 = -2147483649_;
7917    big1 := -2147483647_; big1 +:=          -1_; ok := ok and big1 = -2147483648_;
7918    big1 := -2147483647_; big1 +:=           0_; ok := ok and big1 = -2147483647_;
7919    big1 := -2147483647_; big1 +:=           1_; ok := ok and big1 = -2147483646_;
7920    big1 := -2147483647_; big1 +:=           2_; ok := ok and big1 = -2147483645_;
7921    big1 := -2147483647_; big1 +:=       32766_; ok := ok and big1 = -2147450881_;
7922    big1 := -2147483647_; big1 +:=       32767_; ok := ok and big1 = -2147450880_;
7923    big1 := -2147483647_; big1 +:=       32768_; ok := ok and big1 = -2147450879_;
7924    big1 := -2147483647_; big1 +:=       32769_; ok := ok and big1 = -2147450878_;
7925    big1 := -2147483647_; big1 +:=  2147483646_; ok := ok and big1 =          -1_;
7926    big1 := -2147483647_; big1 +:=  2147483647_; ok := ok and big1 =           0_;
7927    big1 := -2147483647_; big1 +:=  2147483648_; ok := ok and big1 =           1_;
7928    big1 := -2147483647_; big1 +:=  2147483649_; ok := ok and big1 =           2_;
7929    big1 :=      -32770_; big1 +:= -2147483650_; ok := ok and big1 = -2147516420_;
7930    big1 :=      -32770_; big1 +:= -2147483649_; ok := ok and big1 = -2147516419_;
7931    big1 :=      -32770_; big1 +:= -2147483648_; ok := ok and big1 = -2147516418_;
7932    big1 :=      -32770_; big1 +:= -2147483647_; ok := ok and big1 = -2147516417_;
7933    big1 :=      -32770_; big1 +:=      -32770_; ok := ok and big1 =      -65540_;
7934    big1 :=      -32770_; big1 +:=      -32769_; ok := ok and big1 =      -65539_;
7935    big1 :=      -32770_; big1 +:=      -32768_; ok := ok and big1 =      -65538_;
7936    big1 :=      -32770_; big1 +:=      -32767_; ok := ok and big1 =      -65537_;
7937    big1 :=      -32770_; big1 +:=          -2_; ok := ok and big1 =      -32772_;
7938    big1 :=      -32770_; big1 +:=          -1_; ok := ok and big1 =      -32771_;
7939    big1 :=      -32770_; big1 +:=           0_; ok := ok and big1 =      -32770_;
7940    big1 :=      -32770_; big1 +:=           1_; ok := ok and big1 =      -32769_;
7941    big1 :=      -32770_; big1 +:=           2_; ok := ok and big1 =      -32768_;
7942    big1 :=      -32770_; big1 +:=       32766_; ok := ok and big1 =          -4_;
7943    big1 :=      -32770_; big1 +:=       32767_; ok := ok and big1 =          -3_;
7944    big1 :=      -32770_; big1 +:=       32768_; ok := ok and big1 =          -2_;
7945    big1 :=      -32770_; big1 +:=       32769_; ok := ok and big1 =          -1_;
7946    big1 :=      -32770_; big1 +:=  2147483646_; ok := ok and big1 =  2147450876_;
7947    big1 :=      -32770_; big1 +:=  2147483647_; ok := ok and big1 =  2147450877_;
7948    big1 :=      -32770_; big1 +:=  2147483648_; ok := ok and big1 =  2147450878_;
7949    big1 :=      -32770_; big1 +:=  2147483649_; ok := ok and big1 =  2147450879_;
7950    big1 :=      -32769_; big1 +:= -2147483650_; ok := ok and big1 = -2147516419_;
7951    big1 :=      -32769_; big1 +:= -2147483649_; ok := ok and big1 = -2147516418_;
7952    big1 :=      -32769_; big1 +:= -2147483648_; ok := ok and big1 = -2147516417_;
7953    big1 :=      -32769_; big1 +:= -2147483647_; ok := ok and big1 = -2147516416_;
7954    big1 :=      -32769_; big1 +:=      -32770_; ok := ok and big1 =      -65539_;
7955    big1 :=      -32769_; big1 +:=      -32769_; ok := ok and big1 =      -65538_;
7956    big1 :=      -32769_; big1 +:=      -32768_; ok := ok and big1 =      -65537_;
7957    big1 :=      -32769_; big1 +:=      -32767_; ok := ok and big1 =      -65536_;
7958    big1 :=      -32769_; big1 +:=          -2_; ok := ok and big1 =      -32771_;
7959    big1 :=      -32769_; big1 +:=          -1_; ok := ok and big1 =      -32770_;
7960    big1 :=      -32769_; big1 +:=           0_; ok := ok and big1 =      -32769_;
7961    big1 :=      -32769_; big1 +:=           1_; ok := ok and big1 =      -32768_;
7962    big1 :=      -32769_; big1 +:=           2_; ok := ok and big1 =      -32767_;
7963    big1 :=      -32769_; big1 +:=       32766_; ok := ok and big1 =          -3_;
7964    big1 :=      -32769_; big1 +:=       32767_; ok := ok and big1 =          -2_;
7965    big1 :=      -32769_; big1 +:=       32768_; ok := ok and big1 =          -1_;
7966    big1 :=      -32769_; big1 +:=       32769_; ok := ok and big1 =           0_;
7967    big1 :=      -32769_; big1 +:=  2147483646_; ok := ok and big1 =  2147450877_;
7968    big1 :=      -32769_; big1 +:=  2147483647_; ok := ok and big1 =  2147450878_;
7969    big1 :=      -32769_; big1 +:=  2147483648_; ok := ok and big1 =  2147450879_;
7970    big1 :=      -32769_; big1 +:=  2147483649_; ok := ok and big1 =  2147450880_;
7971    big1 :=      -32768_; big1 +:= -2147483650_; ok := ok and big1 = -2147516418_;
7972    big1 :=      -32768_; big1 +:= -2147483649_; ok := ok and big1 = -2147516417_;
7973    big1 :=      -32768_; big1 +:= -2147483648_; ok := ok and big1 = -2147516416_;
7974    big1 :=      -32768_; big1 +:= -2147483647_; ok := ok and big1 = -2147516415_;
7975    big1 :=      -32768_; big1 +:=      -32770_; ok := ok and big1 =      -65538_;
7976    big1 :=      -32768_; big1 +:=      -32769_; ok := ok and big1 =      -65537_;
7977    big1 :=      -32768_; big1 +:=      -32768_; ok := ok and big1 =      -65536_;
7978    big1 :=      -32768_; big1 +:=      -32767_; ok := ok and big1 =      -65535_;
7979    big1 :=      -32768_; big1 +:=          -2_; ok := ok and big1 =      -32770_;
7980    big1 :=      -32768_; big1 +:=          -1_; ok := ok and big1 =      -32769_;
7981    big1 :=      -32768_; big1 +:=           0_; ok := ok and big1 =      -32768_;
7982    big1 :=      -32768_; big1 +:=           1_; ok := ok and big1 =      -32767_;
7983    big1 :=      -32768_; big1 +:=           2_; ok := ok and big1 =      -32766_;
7984    big1 :=      -32768_; big1 +:=       32766_; ok := ok and big1 =          -2_;
7985    big1 :=      -32768_; big1 +:=       32767_; ok := ok and big1 =          -1_;
7986    big1 :=      -32768_; big1 +:=       32768_; ok := ok and big1 =           0_;
7987    big1 :=      -32768_; big1 +:=       32769_; ok := ok and big1 =           1_;
7988    big1 :=      -32768_; big1 +:=  2147483646_; ok := ok and big1 =  2147450878_;
7989    big1 :=      -32768_; big1 +:=  2147483647_; ok := ok and big1 =  2147450879_;
7990    big1 :=      -32768_; big1 +:=  2147483648_; ok := ok and big1 =  2147450880_;
7991    big1 :=      -32768_; big1 +:=  2147483649_; ok := ok and big1 =  2147450881_;
7992    big1 :=      -32767_; big1 +:= -2147483650_; ok := ok and big1 = -2147516417_;
7993    big1 :=      -32767_; big1 +:= -2147483649_; ok := ok and big1 = -2147516416_;
7994    big1 :=      -32767_; big1 +:= -2147483648_; ok := ok and big1 = -2147516415_;
7995    big1 :=      -32767_; big1 +:= -2147483647_; ok := ok and big1 = -2147516414_;
7996    big1 :=      -32767_; big1 +:=      -32770_; ok := ok and big1 =      -65537_;
7997    big1 :=      -32767_; big1 +:=      -32769_; ok := ok and big1 =      -65536_;
7998    big1 :=      -32767_; big1 +:=      -32768_; ok := ok and big1 =      -65535_;
7999    big1 :=      -32767_; big1 +:=      -32767_; ok := ok and big1 =      -65534_;
8000    big1 :=      -32767_; big1 +:=          -2_; ok := ok and big1 =      -32769_;
8001    big1 :=      -32767_; big1 +:=          -1_; ok := ok and big1 =      -32768_;
8002    big1 :=      -32767_; big1 +:=           0_; ok := ok and big1 =      -32767_;
8003    big1 :=      -32767_; big1 +:=           1_; ok := ok and big1 =      -32766_;
8004    big1 :=      -32767_; big1 +:=       32766_; ok := ok and big1 =          -1_;
8005    big1 :=      -32767_; big1 +:=       32767_; ok := ok and big1 =           0_;
8006    big1 :=      -32767_; big1 +:=       32768_; ok := ok and big1 =           1_;
8007    big1 :=      -32767_; big1 +:=       32769_; ok := ok and big1 =           2_;
8008    big1 :=      -32767_; big1 +:=  2147483646_; ok := ok and big1 =  2147450879_;
8009    big1 :=      -32767_; big1 +:=  2147483647_; ok := ok and big1 =  2147450880_;
8010    big1 :=      -32767_; big1 +:=  2147483648_; ok := ok and big1 =  2147450881_;
8011    big1 :=      -32767_; big1 +:=  2147483649_; ok := ok and big1 =  2147450882_;
8012    big1 :=          -2_; big1 +:= -2147483650_; ok := ok and big1 = -2147483652_;
8013    big1 :=          -2_; big1 +:= -2147483649_; ok := ok and big1 = -2147483651_;
8014    big1 :=          -2_; big1 +:= -2147483648_; ok := ok and big1 = -2147483650_;
8015    big1 :=          -2_; big1 +:= -2147483647_; ok := ok and big1 = -2147483649_;
8016    big1 :=          -2_; big1 +:=      -32770_; ok := ok and big1 =      -32772_;
8017    big1 :=          -2_; big1 +:=      -32769_; ok := ok and big1 =      -32771_;
8018    big1 :=          -2_; big1 +:=      -32768_; ok := ok and big1 =      -32770_;
8019    big1 :=          -2_; big1 +:=      -32767_; ok := ok and big1 =      -32769_;
8020    big1 :=          -2_; big1 +:=          -2_; ok := ok and big1 =          -4_;
8021    big1 :=          -2_; big1 +:=          -1_; ok := ok and big1 =          -3_;
8022    big1 :=          -2_; big1 +:=           0_; ok := ok and big1 =          -2_;
8023    big1 :=          -2_; big1 +:=           1_; ok := ok and big1 =          -1_;
8024    big1 :=          -2_; big1 +:=           2_; ok := ok and big1 =           0_;
8025    big1 :=          -2_; big1 +:=       32766_; ok := ok and big1 =       32764_;
8026    big1 :=          -2_; big1 +:=       32767_; ok := ok and big1 =       32765_;
8027    big1 :=          -2_; big1 +:=       32768_; ok := ok and big1 =       32766_;
8028    big1 :=          -2_; big1 +:=       32769_; ok := ok and big1 =       32767_;
8029    big1 :=          -2_; big1 +:=  2147483646_; ok := ok and big1 =  2147483644_;
8030    big1 :=          -2_; big1 +:=  2147483647_; ok := ok and big1 =  2147483645_;
8031    big1 :=          -2_; big1 +:=  2147483648_; ok := ok and big1 =  2147483646_;
8032    big1 :=          -2_; big1 +:=  2147483649_; ok := ok and big1 =  2147483647_;
8033    big1 :=          -1_; big1 +:= -2147483650_; ok := ok and big1 = -2147483651_;
8034    big1 :=          -1_; big1 +:= -2147483649_; ok := ok and big1 = -2147483650_;
8035    big1 :=          -1_; big1 +:= -2147483648_; ok := ok and big1 = -2147483649_;
8036    big1 :=          -1_; big1 +:= -2147483647_; ok := ok and big1 = -2147483648_;
8037    big1 :=          -1_; big1 +:=      -32770_; ok := ok and big1 =      -32771_;
8038    big1 :=          -1_; big1 +:=      -32769_; ok := ok and big1 =      -32770_;
8039    big1 :=          -1_; big1 +:=      -32768_; ok := ok and big1 =      -32769_;
8040    big1 :=          -1_; big1 +:=      -32767_; ok := ok and big1 =      -32768_;
8041    big1 :=          -1_; big1 +:=          -2_; ok := ok and big1 =          -3_;
8042    big1 :=          -1_; big1 +:=          -1_; ok := ok and big1 =          -2_;
8043    big1 :=          -1_; big1 +:=           0_; ok := ok and big1 =          -1_;
8044    big1 :=          -1_; big1 +:=           1_; ok := ok and big1 =           0_;
8045    big1 :=          -1_; big1 +:=           2_; ok := ok and big1 =           1_;
8046    big1 :=          -1_; big1 +:=       32766_; ok := ok and big1 =       32765_;
8047    big1 :=          -1_; big1 +:=       32767_; ok := ok and big1 =       32766_;
8048    big1 :=          -1_; big1 +:=       32768_; ok := ok and big1 =       32767_;
8049    big1 :=          -1_; big1 +:=       32769_; ok := ok and big1 =       32768_;
8050    big1 :=          -1_; big1 +:=  2147483646_; ok := ok and big1 =  2147483645_;
8051    big1 :=          -1_; big1 +:=  2147483647_; ok := ok and big1 =  2147483646_;
8052    big1 :=          -1_; big1 +:=  2147483648_; ok := ok and big1 =  2147483647_;
8053    big1 :=          -1_; big1 +:=  2147483649_; ok := ok and big1 =  2147483648_;
8054    if not ok then
8055      writeln("Addition assignment of bigInteger with literal does not work correct. (1)");
8056    end if;
8057  end func;
8058
8059
8060const func boolean: chkAddAssignLiteral2 is func
8061  result
8062    var boolean: ok is TRUE;
8063  local
8064    var bigInteger: big1 is 0_;
8065  begin
8066    big1 :=           0_; big1 +:= -2147483650_; ok := ok and big1 = -2147483650_;
8067    big1 :=           0_; big1 +:= -2147483649_; ok := ok and big1 = -2147483649_;
8068    big1 :=           0_; big1 +:= -2147483648_; ok := ok and big1 = -2147483648_;
8069    big1 :=           0_; big1 +:= -2147483647_; ok := ok and big1 = -2147483647_;
8070    big1 :=           0_; big1 +:=      -32770_; ok := ok and big1 =      -32770_;
8071    big1 :=           0_; big1 +:=      -32769_; ok := ok and big1 =      -32769_;
8072    big1 :=           0_; big1 +:=      -32768_; ok := ok and big1 =      -32768_;
8073    big1 :=           0_; big1 +:=      -32767_; ok := ok and big1 =      -32767_;
8074    big1 :=           0_; big1 +:=          -2_; ok := ok and big1 =          -2_;
8075    big1 :=           0_; big1 +:=          -1_; ok := ok and big1 =          -1_;
8076    big1 :=           0_; big1 +:=           0_; ok := ok and big1 =           0_;
8077    big1 :=           0_; big1 +:=           1_; ok := ok and big1 =           1_;
8078    big1 :=           0_; big1 +:=           2_; ok := ok and big1 =           2_;
8079    big1 :=           0_; big1 +:=       32766_; ok := ok and big1 =       32766_;
8080    big1 :=           0_; big1 +:=       32767_; ok := ok and big1 =       32767_;
8081    big1 :=           0_; big1 +:=       32768_; ok := ok and big1 =       32768_;
8082    big1 :=           0_; big1 +:=       32769_; ok := ok and big1 =       32769_;
8083    big1 :=           0_; big1 +:=  2147483646_; ok := ok and big1 =  2147483646_;
8084    big1 :=           0_; big1 +:=  2147483647_; ok := ok and big1 =  2147483647_;
8085    big1 :=           0_; big1 +:=  2147483648_; ok := ok and big1 =  2147483648_;
8086    big1 :=           0_; big1 +:=  2147483649_; ok := ok and big1 =  2147483649_;
8087    big1 :=           1_; big1 +:= -2147483650_; ok := ok and big1 = -2147483649_;
8088    big1 :=           1_; big1 +:= -2147483649_; ok := ok and big1 = -2147483648_;
8089    big1 :=           1_; big1 +:= -2147483648_; ok := ok and big1 = -2147483647_;
8090    big1 :=           1_; big1 +:= -2147483647_; ok := ok and big1 = -2147483646_;
8091    big1 :=           1_; big1 +:=      -32770_; ok := ok and big1 =      -32769_;
8092    big1 :=           1_; big1 +:=      -32769_; ok := ok and big1 =      -32768_;
8093    big1 :=           1_; big1 +:=      -32768_; ok := ok and big1 =      -32767_;
8094    big1 :=           1_; big1 +:=      -32767_; ok := ok and big1 =      -32766_;
8095    big1 :=           1_; big1 +:=          -2_; ok := ok and big1 =          -1_;
8096    big1 :=           1_; big1 +:=          -1_; ok := ok and big1 =           0_;
8097    big1 :=           1_; big1 +:=           0_; ok := ok and big1 =           1_;
8098    big1 :=           1_; big1 +:=           1_; ok := ok and big1 =           2_;
8099    big1 :=           1_; big1 +:=           2_; ok := ok and big1 =           3_;
8100    big1 :=           1_; big1 +:=       32766_; ok := ok and big1 =       32767_;
8101    big1 :=           1_; big1 +:=       32767_; ok := ok and big1 =       32768_;
8102    big1 :=           1_; big1 +:=       32768_; ok := ok and big1 =       32769_;
8103    big1 :=           1_; big1 +:=       32769_; ok := ok and big1 =       32770_;
8104    big1 :=           1_; big1 +:=  2147483646_; ok := ok and big1 =  2147483647_;
8105    big1 :=           1_; big1 +:=  2147483647_; ok := ok and big1 =  2147483648_;
8106    big1 :=           1_; big1 +:=  2147483648_; ok := ok and big1 =  2147483649_;
8107    big1 :=           1_; big1 +:=  2147483649_; ok := ok and big1 =  2147483650_;
8108    big1 :=           2_; big1 +:= -2147483650_; ok := ok and big1 = -2147483648_;
8109    big1 :=           2_; big1 +:= -2147483649_; ok := ok and big1 = -2147483647_;
8110    big1 :=           2_; big1 +:= -2147483648_; ok := ok and big1 = -2147483646_;
8111    big1 :=           2_; big1 +:= -2147483647_; ok := ok and big1 = -2147483645_;
8112    big1 :=           2_; big1 +:=      -32770_; ok := ok and big1 =      -32768_;
8113    big1 :=           2_; big1 +:=      -32769_; ok := ok and big1 =      -32767_;
8114    big1 :=           2_; big1 +:=      -32768_; ok := ok and big1 =      -32766_;
8115    big1 :=           2_; big1 +:=      -32767_; ok := ok and big1 =      -32765_;
8116    big1 :=           2_; big1 +:=          -2_; ok := ok and big1 =           0_;
8117    big1 :=           2_; big1 +:=          -1_; ok := ok and big1 =           1_;
8118    big1 :=           2_; big1 +:=           0_; ok := ok and big1 =           2_;
8119    big1 :=           2_; big1 +:=           1_; ok := ok and big1 =           3_;
8120    big1 :=           2_; big1 +:=           2_; ok := ok and big1 =           4_;
8121    big1 :=           2_; big1 +:=       32766_; ok := ok and big1 =       32768_;
8122    big1 :=           2_; big1 +:=       32767_; ok := ok and big1 =       32769_;
8123    big1 :=           2_; big1 +:=       32768_; ok := ok and big1 =       32770_;
8124    big1 :=           2_; big1 +:=       32769_; ok := ok and big1 =       32771_;
8125    big1 :=           2_; big1 +:=  2147483646_; ok := ok and big1 =  2147483648_;
8126    big1 :=           2_; big1 +:=  2147483647_; ok := ok and big1 =  2147483649_;
8127    big1 :=           2_; big1 +:=  2147483648_; ok := ok and big1 =  2147483650_;
8128    big1 :=           2_; big1 +:=  2147483649_; ok := ok and big1 =  2147483651_;
8129    big1 :=       32766_; big1 +:= -2147483650_; ok := ok and big1 = -2147450884_;
8130    big1 :=       32766_; big1 +:= -2147483649_; ok := ok and big1 = -2147450883_;
8131    big1 :=       32766_; big1 +:= -2147483648_; ok := ok and big1 = -2147450882_;
8132    big1 :=       32766_; big1 +:= -2147483647_; ok := ok and big1 = -2147450881_;
8133    big1 :=       32766_; big1 +:=      -32770_; ok := ok and big1 =          -4_;
8134    big1 :=       32766_; big1 +:=      -32769_; ok := ok and big1 =          -3_;
8135    big1 :=       32766_; big1 +:=      -32768_; ok := ok and big1 =          -2_;
8136    big1 :=       32766_; big1 +:=      -32767_; ok := ok and big1 =          -1_;
8137    big1 :=       32766_; big1 +:=          -2_; ok := ok and big1 =       32764_;
8138    big1 :=       32766_; big1 +:=          -1_; ok := ok and big1 =       32765_;
8139    big1 :=       32766_; big1 +:=           0_; ok := ok and big1 =       32766_;
8140    big1 :=       32766_; big1 +:=           1_; ok := ok and big1 =       32767_;
8141    big1 :=       32766_; big1 +:=           2_; ok := ok and big1 =       32768_;
8142    big1 :=       32766_; big1 +:=       32766_; ok := ok and big1 =       65532_;
8143    big1 :=       32766_; big1 +:=       32767_; ok := ok and big1 =       65533_;
8144    big1 :=       32766_; big1 +:=       32768_; ok := ok and big1 =       65534_;
8145    big1 :=       32766_; big1 +:=       32769_; ok := ok and big1 =       65535_;
8146    big1 :=       32766_; big1 +:=  2147483646_; ok := ok and big1 =  2147516412_;
8147    big1 :=       32766_; big1 +:=  2147483647_; ok := ok and big1 =  2147516413_;
8148    big1 :=       32766_; big1 +:=  2147483648_; ok := ok and big1 =  2147516414_;
8149    big1 :=       32766_; big1 +:=  2147483649_; ok := ok and big1 =  2147516415_;
8150    big1 :=       32767_; big1 +:= -2147483650_; ok := ok and big1 = -2147450883_;
8151    big1 :=       32767_; big1 +:= -2147483649_; ok := ok and big1 = -2147450882_;
8152    big1 :=       32767_; big1 +:= -2147483648_; ok := ok and big1 = -2147450881_;
8153    big1 :=       32767_; big1 +:= -2147483647_; ok := ok and big1 = -2147450880_;
8154    big1 :=       32767_; big1 +:=      -32770_; ok := ok and big1 =          -3_;
8155    big1 :=       32767_; big1 +:=      -32769_; ok := ok and big1 =          -2_;
8156    big1 :=       32767_; big1 +:=      -32768_; ok := ok and big1 =          -1_;
8157    big1 :=       32767_; big1 +:=      -32767_; ok := ok and big1 =           0_;
8158    big1 :=       32767_; big1 +:=          -2_; ok := ok and big1 =       32765_;
8159    big1 :=       32767_; big1 +:=          -1_; ok := ok and big1 =       32766_;
8160    big1 :=       32767_; big1 +:=           0_; ok := ok and big1 =       32767_;
8161    big1 :=       32767_; big1 +:=           1_; ok := ok and big1 =       32768_;
8162    big1 :=       32767_; big1 +:=           2_; ok := ok and big1 =       32769_;
8163    big1 :=       32767_; big1 +:=       32766_; ok := ok and big1 =       65533_;
8164    big1 :=       32767_; big1 +:=       32767_; ok := ok and big1 =       65534_;
8165    big1 :=       32767_; big1 +:=       32768_; ok := ok and big1 =       65535_;
8166    big1 :=       32767_; big1 +:=       32769_; ok := ok and big1 =       65536_;
8167    big1 :=       32767_; big1 +:=  2147483646_; ok := ok and big1 =  2147516413_;
8168    big1 :=       32767_; big1 +:=  2147483647_; ok := ok and big1 =  2147516414_;
8169    big1 :=       32767_; big1 +:=  2147483648_; ok := ok and big1 =  2147516415_;
8170    big1 :=       32767_; big1 +:=  2147483649_; ok := ok and big1 =  2147516416_;
8171    big1 :=       32768_; big1 +:= -2147483650_; ok := ok and big1 = -2147450882_;
8172    big1 :=       32768_; big1 +:= -2147483649_; ok := ok and big1 = -2147450881_;
8173    big1 :=       32768_; big1 +:= -2147483648_; ok := ok and big1 = -2147450880_;
8174    big1 :=       32768_; big1 +:= -2147483647_; ok := ok and big1 = -2147450879_;
8175    big1 :=       32768_; big1 +:=      -32770_; ok := ok and big1 =          -2_;
8176    big1 :=       32768_; big1 +:=      -32769_; ok := ok and big1 =          -1_;
8177    big1 :=       32768_; big1 +:=      -32768_; ok := ok and big1 =           0_;
8178    big1 :=       32768_; big1 +:=      -32767_; ok := ok and big1 =           1_;
8179    big1 :=       32768_; big1 +:=          -2_; ok := ok and big1 =       32766_;
8180    big1 :=       32768_; big1 +:=          -1_; ok := ok and big1 =       32767_;
8181    big1 :=       32768_; big1 +:=           0_; ok := ok and big1 =       32768_;
8182    big1 :=       32768_; big1 +:=           1_; ok := ok and big1 =       32769_;
8183    big1 :=       32768_; big1 +:=           2_; ok := ok and big1 =       32770_;
8184    big1 :=       32768_; big1 +:=       32766_; ok := ok and big1 =       65534_;
8185    big1 :=       32768_; big1 +:=       32767_; ok := ok and big1 =       65535_;
8186    big1 :=       32768_; big1 +:=       32768_; ok := ok and big1 =       65536_;
8187    big1 :=       32768_; big1 +:=       32769_; ok := ok and big1 =       65537_;
8188    big1 :=       32768_; big1 +:=  2147483646_; ok := ok and big1 =  2147516414_;
8189    big1 :=       32768_; big1 +:=  2147483647_; ok := ok and big1 =  2147516415_;
8190    big1 :=       32768_; big1 +:=  2147483648_; ok := ok and big1 =  2147516416_;
8191    big1 :=       32768_; big1 +:=  2147483649_; ok := ok and big1 =  2147516417_;
8192    big1 :=       32769_; big1 +:= -2147483650_; ok := ok and big1 = -2147450881_;
8193    big1 :=       32769_; big1 +:= -2147483649_; ok := ok and big1 = -2147450880_;
8194    big1 :=       32769_; big1 +:= -2147483648_; ok := ok and big1 = -2147450879_;
8195    big1 :=       32769_; big1 +:= -2147483647_; ok := ok and big1 = -2147450878_;
8196    big1 :=       32769_; big1 +:=      -32770_; ok := ok and big1 =          -1_;
8197    big1 :=       32769_; big1 +:=      -32769_; ok := ok and big1 =           0_;
8198    big1 :=       32769_; big1 +:=      -32768_; ok := ok and big1 =           1_;
8199    big1 :=       32769_; big1 +:=      -32767_; ok := ok and big1 =           2_;
8200    big1 :=       32769_; big1 +:=          -2_; ok := ok and big1 =       32767_;
8201    big1 :=       32769_; big1 +:=          -1_; ok := ok and big1 =       32768_;
8202    big1 :=       32769_; big1 +:=           0_; ok := ok and big1 =       32769_;
8203    big1 :=       32769_; big1 +:=           1_; ok := ok and big1 =       32770_;
8204    big1 :=       32769_; big1 +:=           2_; ok := ok and big1 =       32771_;
8205    big1 :=       32769_; big1 +:=       32766_; ok := ok and big1 =       65535_;
8206    big1 :=       32769_; big1 +:=       32767_; ok := ok and big1 =       65536_;
8207    big1 :=       32769_; big1 +:=       32768_; ok := ok and big1 =       65537_;
8208    big1 :=       32769_; big1 +:=       32769_; ok := ok and big1 =       65538_;
8209    big1 :=       32769_; big1 +:=  2147483646_; ok := ok and big1 =  2147516415_;
8210    big1 :=       32769_; big1 +:=  2147483647_; ok := ok and big1 =  2147516416_;
8211    big1 :=       32769_; big1 +:=  2147483648_; ok := ok and big1 =  2147516417_;
8212    big1 :=       32769_; big1 +:=  2147483649_; ok := ok and big1 =  2147516418_;
8213    big1 :=  2147483646_; big1 +:= -2147483650_; ok := ok and big1 =          -4_;
8214    big1 :=  2147483646_; big1 +:= -2147483649_; ok := ok and big1 =          -3_;
8215    big1 :=  2147483646_; big1 +:= -2147483648_; ok := ok and big1 =          -2_;
8216    big1 :=  2147483646_; big1 +:= -2147483647_; ok := ok and big1 =          -1_;
8217    big1 :=  2147483646_; big1 +:=      -32770_; ok := ok and big1 =  2147450876_;
8218    big1 :=  2147483646_; big1 +:=      -32769_; ok := ok and big1 =  2147450877_;
8219    big1 :=  2147483646_; big1 +:=      -32768_; ok := ok and big1 =  2147450878_;
8220    big1 :=  2147483646_; big1 +:=      -32767_; ok := ok and big1 =  2147450879_;
8221    big1 :=  2147483646_; big1 +:=          -2_; ok := ok and big1 =  2147483644_;
8222    big1 :=  2147483646_; big1 +:=          -1_; ok := ok and big1 =  2147483645_;
8223    big1 :=  2147483646_; big1 +:=           0_; ok := ok and big1 =  2147483646_;
8224    big1 :=  2147483646_; big1 +:=           1_; ok := ok and big1 =  2147483647_;
8225    big1 :=  2147483646_; big1 +:=           2_; ok := ok and big1 =  2147483648_;
8226    big1 :=  2147483646_; big1 +:=       32766_; ok := ok and big1 =  2147516412_;
8227    big1 :=  2147483646_; big1 +:=       32767_; ok := ok and big1 =  2147516413_;
8228    big1 :=  2147483646_; big1 +:=       32768_; ok := ok and big1 =  2147516414_;
8229    big1 :=  2147483646_; big1 +:=       32769_; ok := ok and big1 =  2147516415_;
8230    big1 :=  2147483646_; big1 +:=  2147483646_; ok := ok and big1 =  4294967292_;
8231    big1 :=  2147483646_; big1 +:=  2147483647_; ok := ok and big1 =  4294967293_;
8232    big1 :=  2147483646_; big1 +:=  2147483648_; ok := ok and big1 =  4294967294_;
8233    big1 :=  2147483646_; big1 +:=  2147483649_; ok := ok and big1 =  4294967295_;
8234    big1 :=  2147483647_; big1 +:= -2147483650_; ok := ok and big1 =          -3_;
8235    big1 :=  2147483647_; big1 +:= -2147483649_; ok := ok and big1 =          -2_;
8236    big1 :=  2147483647_; big1 +:= -2147483648_; ok := ok and big1 =          -1_;
8237    big1 :=  2147483647_; big1 +:= -2147483647_; ok := ok and big1 =           0_;
8238    big1 :=  2147483647_; big1 +:=      -32770_; ok := ok and big1 =  2147450877_;
8239    big1 :=  2147483647_; big1 +:=      -32769_; ok := ok and big1 =  2147450878_;
8240    big1 :=  2147483647_; big1 +:=      -32768_; ok := ok and big1 =  2147450879_;
8241    big1 :=  2147483647_; big1 +:=      -32767_; ok := ok and big1 =  2147450880_;
8242    big1 :=  2147483647_; big1 +:=          -2_; ok := ok and big1 =  2147483645_;
8243    big1 :=  2147483647_; big1 +:=          -1_; ok := ok and big1 =  2147483646_;
8244    big1 :=  2147483647_; big1 +:=           0_; ok := ok and big1 =  2147483647_;
8245    big1 :=  2147483647_; big1 +:=           1_; ok := ok and big1 =  2147483648_;
8246    big1 :=  2147483647_; big1 +:=           2_; ok := ok and big1 =  2147483649_;
8247    big1 :=  2147483647_; big1 +:=       32766_; ok := ok and big1 =  2147516413_;
8248    big1 :=  2147483647_; big1 +:=       32767_; ok := ok and big1 =  2147516414_;
8249    big1 :=  2147483647_; big1 +:=       32768_; ok := ok and big1 =  2147516415_;
8250    big1 :=  2147483647_; big1 +:=       32769_; ok := ok and big1 =  2147516416_;
8251    big1 :=  2147483647_; big1 +:=  2147483646_; ok := ok and big1 =  4294967293_;
8252    big1 :=  2147483647_; big1 +:=  2147483647_; ok := ok and big1 =  4294967294_;
8253    big1 :=  2147483647_; big1 +:=  2147483648_; ok := ok and big1 =  4294967295_;
8254    big1 :=  2147483647_; big1 +:=  2147483649_; ok := ok and big1 =  4294967296_;
8255    big1 :=  2147483648_; big1 +:= -2147483650_; ok := ok and big1 =          -2_;
8256    big1 :=  2147483648_; big1 +:= -2147483649_; ok := ok and big1 =          -1_;
8257    big1 :=  2147483648_; big1 +:= -2147483648_; ok := ok and big1 =           0_;
8258    big1 :=  2147483648_; big1 +:= -2147483647_; ok := ok and big1 =           1_;
8259    big1 :=  2147483648_; big1 +:=      -32770_; ok := ok and big1 =  2147450878_;
8260    big1 :=  2147483648_; big1 +:=      -32769_; ok := ok and big1 =  2147450879_;
8261    big1 :=  2147483648_; big1 +:=      -32768_; ok := ok and big1 =  2147450880_;
8262    big1 :=  2147483648_; big1 +:=      -32767_; ok := ok and big1 =  2147450881_;
8263    big1 :=  2147483648_; big1 +:=          -2_; ok := ok and big1 =  2147483646_;
8264    big1 :=  2147483648_; big1 +:=          -1_; ok := ok and big1 =  2147483647_;
8265    big1 :=  2147483648_; big1 +:=           0_; ok := ok and big1 =  2147483648_;
8266    big1 :=  2147483648_; big1 +:=           1_; ok := ok and big1 =  2147483649_;
8267    big1 :=  2147483648_; big1 +:=           2_; ok := ok and big1 =  2147483650_;
8268    big1 :=  2147483648_; big1 +:=       32766_; ok := ok and big1 =  2147516414_;
8269    big1 :=  2147483648_; big1 +:=       32767_; ok := ok and big1 =  2147516415_;
8270    big1 :=  2147483648_; big1 +:=       32768_; ok := ok and big1 =  2147516416_;
8271    big1 :=  2147483648_; big1 +:=       32769_; ok := ok and big1 =  2147516417_;
8272    big1 :=  2147483648_; big1 +:=  2147483646_; ok := ok and big1 =  4294967294_;
8273    big1 :=  2147483648_; big1 +:=  2147483647_; ok := ok and big1 =  4294967295_;
8274    big1 :=  2147483648_; big1 +:=  2147483648_; ok := ok and big1 =  4294967296_;
8275    big1 :=  2147483648_; big1 +:=  2147483649_; ok := ok and big1 =  4294967297_;
8276    big1 :=  2147483649_; big1 +:= -2147483650_; ok := ok and big1 =          -1_;
8277    big1 :=  2147483649_; big1 +:= -2147483649_; ok := ok and big1 =           0_;
8278    big1 :=  2147483649_; big1 +:= -2147483648_; ok := ok and big1 =           1_;
8279    big1 :=  2147483649_; big1 +:= -2147483647_; ok := ok and big1 =           2_;
8280    big1 :=  2147483649_; big1 +:=      -32770_; ok := ok and big1 =  2147450879_;
8281    big1 :=  2147483649_; big1 +:=      -32769_; ok := ok and big1 =  2147450880_;
8282    big1 :=  2147483649_; big1 +:=      -32768_; ok := ok and big1 =  2147450881_;
8283    big1 :=  2147483649_; big1 +:=      -32767_; ok := ok and big1 =  2147450882_;
8284    big1 :=  2147483649_; big1 +:=          -2_; ok := ok and big1 =  2147483647_;
8285    big1 :=  2147483649_; big1 +:=          -1_; ok := ok and big1 =  2147483648_;
8286    big1 :=  2147483649_; big1 +:=           0_; ok := ok and big1 =  2147483649_;
8287    big1 :=  2147483649_; big1 +:=           1_; ok := ok and big1 =  2147483650_;
8288    big1 :=  2147483649_; big1 +:=           2_; ok := ok and big1 =  2147483651_;
8289    big1 :=  2147483649_; big1 +:=       32766_; ok := ok and big1 =  2147516415_;
8290    big1 :=  2147483649_; big1 +:=       32767_; ok := ok and big1 =  2147516416_;
8291    big1 :=  2147483649_; big1 +:=       32768_; ok := ok and big1 =  2147516417_;
8292    big1 :=  2147483649_; big1 +:=       32769_; ok := ok and big1 =  2147516418_;
8293    big1 :=  2147483649_; big1 +:=  2147483646_; ok := ok and big1 =  4294967295_;
8294    big1 :=  2147483649_; big1 +:=  2147483647_; ok := ok and big1 =  4294967296_;
8295    big1 :=  2147483649_; big1 +:=  2147483648_; ok := ok and big1 =  4294967297_;
8296    big1 :=  2147483649_; big1 +:=  2147483649_; ok := ok and big1 =  4294967298_;
8297    if not ok then
8298      writeln("Addition assignment of bigInteger with literal does not work correct. (2)");
8299    end if;
8300  end func;
8301
8302
8303const func boolean: chkAddAssignExpression1 is func
8304  result
8305    var boolean: ok is TRUE;
8306  local
8307    var bigInteger: big1 is 0_;
8308  begin
8309    big1 := -2147483650_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -4294967300_;
8310    big1 := -2147483650_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -4294967299_;
8311    big1 := -2147483650_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -4294967298_;
8312    big1 := -2147483650_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -4294967297_;
8313    big1 := -2147483650_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 = -2147516420_;
8314    big1 := -2147483650_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 = -2147516419_;
8315    big1 := -2147483650_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 = -2147516418_;
8316    big1 := -2147483650_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 = -2147516417_;
8317    big1 := -2147483650_; big1 +:= bigintExpr(         -2_); ok := ok and big1 = -2147483652_;
8318    big1 := -2147483650_; big1 +:= bigintExpr(         -1_); ok := ok and big1 = -2147483651_;
8319    big1 := -2147483650_; big1 +:= bigintExpr(          0_); ok := ok and big1 = -2147483650_;
8320    big1 := -2147483650_; big1 +:= bigintExpr(          1_); ok := ok and big1 = -2147483649_;
8321    big1 := -2147483650_; big1 +:= bigintExpr(          2_); ok := ok and big1 = -2147483648_;
8322    big1 := -2147483650_; big1 +:= bigintExpr(      32766_); ok := ok and big1 = -2147450884_;
8323    big1 := -2147483650_; big1 +:= bigintExpr(      32767_); ok := ok and big1 = -2147450883_;
8324    big1 := -2147483650_; big1 +:= bigintExpr(      32768_); ok := ok and big1 = -2147450882_;
8325    big1 := -2147483650_; big1 +:= bigintExpr(      32769_); ok := ok and big1 = -2147450881_;
8326    big1 := -2147483650_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =          -4_;
8327    big1 := -2147483650_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =          -3_;
8328    big1 := -2147483650_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =          -2_;
8329    big1 := -2147483650_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =          -1_;
8330    big1 := -2147483649_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -4294967299_;
8331    big1 := -2147483649_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -4294967298_;
8332    big1 := -2147483649_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -4294967297_;
8333    big1 := -2147483649_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -4294967296_;
8334    big1 := -2147483649_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 = -2147516419_;
8335    big1 := -2147483649_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 = -2147516418_;
8336    big1 := -2147483649_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 = -2147516417_;
8337    big1 := -2147483649_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 = -2147516416_;
8338    big1 := -2147483649_; big1 +:= bigintExpr(         -2_); ok := ok and big1 = -2147483651_;
8339    big1 := -2147483649_; big1 +:= bigintExpr(         -1_); ok := ok and big1 = -2147483650_;
8340    big1 := -2147483649_; big1 +:= bigintExpr(          0_); ok := ok and big1 = -2147483649_;
8341    big1 := -2147483649_; big1 +:= bigintExpr(          1_); ok := ok and big1 = -2147483648_;
8342    big1 := -2147483649_; big1 +:= bigintExpr(          2_); ok := ok and big1 = -2147483647_;
8343    big1 := -2147483649_; big1 +:= bigintExpr(      32766_); ok := ok and big1 = -2147450883_;
8344    big1 := -2147483649_; big1 +:= bigintExpr(      32767_); ok := ok and big1 = -2147450882_;
8345    big1 := -2147483649_; big1 +:= bigintExpr(      32768_); ok := ok and big1 = -2147450881_;
8346    big1 := -2147483649_; big1 +:= bigintExpr(      32769_); ok := ok and big1 = -2147450880_;
8347    big1 := -2147483649_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =          -3_;
8348    big1 := -2147483649_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =          -2_;
8349    big1 := -2147483649_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =          -1_;
8350    big1 := -2147483649_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =           0_;
8351    big1 := -2147483648_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -4294967298_;
8352    big1 := -2147483648_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -4294967297_;
8353    big1 := -2147483648_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -4294967296_;
8354    big1 := -2147483648_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -4294967295_;
8355    big1 := -2147483648_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 = -2147516418_;
8356    big1 := -2147483648_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 = -2147516417_;
8357    big1 := -2147483648_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 = -2147516416_;
8358    big1 := -2147483648_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 = -2147516415_;
8359    big1 := -2147483648_; big1 +:= bigintExpr(         -2_); ok := ok and big1 = -2147483650_;
8360    big1 := -2147483648_; big1 +:= bigintExpr(         -1_); ok := ok and big1 = -2147483649_;
8361    big1 := -2147483648_; big1 +:= bigintExpr(          0_); ok := ok and big1 = -2147483648_;
8362    big1 := -2147483648_; big1 +:= bigintExpr(          1_); ok := ok and big1 = -2147483647_;
8363    big1 := -2147483648_; big1 +:= bigintExpr(          2_); ok := ok and big1 = -2147483646_;
8364    big1 := -2147483648_; big1 +:= bigintExpr(      32766_); ok := ok and big1 = -2147450882_;
8365    big1 := -2147483648_; big1 +:= bigintExpr(      32767_); ok := ok and big1 = -2147450881_;
8366    big1 := -2147483648_; big1 +:= bigintExpr(      32768_); ok := ok and big1 = -2147450880_;
8367    big1 := -2147483648_; big1 +:= bigintExpr(      32769_); ok := ok and big1 = -2147450879_;
8368    big1 := -2147483648_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =          -2_;
8369    big1 := -2147483648_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =          -1_;
8370    big1 := -2147483648_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =           0_;
8371    big1 := -2147483648_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =           1_;
8372    big1 := -2147483647_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -4294967297_;
8373    big1 := -2147483647_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -4294967296_;
8374    big1 := -2147483647_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -4294967295_;
8375    big1 := -2147483647_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -4294967294_;
8376    big1 := -2147483647_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 = -2147516417_;
8377    big1 := -2147483647_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 = -2147516416_;
8378    big1 := -2147483647_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 = -2147516415_;
8379    big1 := -2147483647_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 = -2147516414_;
8380    big1 := -2147483647_; big1 +:= bigintExpr(         -2_); ok := ok and big1 = -2147483649_;
8381    big1 := -2147483647_; big1 +:= bigintExpr(         -1_); ok := ok and big1 = -2147483648_;
8382    big1 := -2147483647_; big1 +:= bigintExpr(          0_); ok := ok and big1 = -2147483647_;
8383    big1 := -2147483647_; big1 +:= bigintExpr(          1_); ok := ok and big1 = -2147483646_;
8384    big1 := -2147483647_; big1 +:= bigintExpr(          2_); ok := ok and big1 = -2147483645_;
8385    big1 := -2147483647_; big1 +:= bigintExpr(      32766_); ok := ok and big1 = -2147450881_;
8386    big1 := -2147483647_; big1 +:= bigintExpr(      32767_); ok := ok and big1 = -2147450880_;
8387    big1 := -2147483647_; big1 +:= bigintExpr(      32768_); ok := ok and big1 = -2147450879_;
8388    big1 := -2147483647_; big1 +:= bigintExpr(      32769_); ok := ok and big1 = -2147450878_;
8389    big1 := -2147483647_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =          -1_;
8390    big1 := -2147483647_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =           0_;
8391    big1 := -2147483647_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =           1_;
8392    big1 := -2147483647_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =           2_;
8393    big1 :=      -32770_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147516420_;
8394    big1 :=      -32770_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147516419_;
8395    big1 :=      -32770_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147516418_;
8396    big1 :=      -32770_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147516417_;
8397    big1 :=      -32770_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -65540_;
8398    big1 :=      -32770_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -65539_;
8399    big1 :=      -32770_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -65538_;
8400    big1 :=      -32770_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -65537_;
8401    big1 :=      -32770_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =      -32772_;
8402    big1 :=      -32770_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =      -32771_;
8403    big1 :=      -32770_; big1 +:= bigintExpr(          0_); ok := ok and big1 =      -32770_;
8404    big1 :=      -32770_; big1 +:= bigintExpr(          1_); ok := ok and big1 =      -32769_;
8405    big1 :=      -32770_; big1 +:= bigintExpr(          2_); ok := ok and big1 =      -32768_;
8406    big1 :=      -32770_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =          -4_;
8407    big1 :=      -32770_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =          -3_;
8408    big1 :=      -32770_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =          -2_;
8409    big1 :=      -32770_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =          -1_;
8410    big1 :=      -32770_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147450876_;
8411    big1 :=      -32770_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147450877_;
8412    big1 :=      -32770_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147450878_;
8413    big1 :=      -32770_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147450879_;
8414    big1 :=      -32769_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147516419_;
8415    big1 :=      -32769_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147516418_;
8416    big1 :=      -32769_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147516417_;
8417    big1 :=      -32769_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147516416_;
8418    big1 :=      -32769_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -65539_;
8419    big1 :=      -32769_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -65538_;
8420    big1 :=      -32769_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -65537_;
8421    big1 :=      -32769_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -65536_;
8422    big1 :=      -32769_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =      -32771_;
8423    big1 :=      -32769_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =      -32770_;
8424    big1 :=      -32769_; big1 +:= bigintExpr(          0_); ok := ok and big1 =      -32769_;
8425    big1 :=      -32769_; big1 +:= bigintExpr(          1_); ok := ok and big1 =      -32768_;
8426    big1 :=      -32769_; big1 +:= bigintExpr(          2_); ok := ok and big1 =      -32767_;
8427    big1 :=      -32769_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =          -3_;
8428    big1 :=      -32769_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =          -2_;
8429    big1 :=      -32769_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =          -1_;
8430    big1 :=      -32769_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =           0_;
8431    big1 :=      -32769_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147450877_;
8432    big1 :=      -32769_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147450878_;
8433    big1 :=      -32769_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147450879_;
8434    big1 :=      -32769_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147450880_;
8435    big1 :=      -32768_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147516418_;
8436    big1 :=      -32768_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147516417_;
8437    big1 :=      -32768_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147516416_;
8438    big1 :=      -32768_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147516415_;
8439    big1 :=      -32768_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -65538_;
8440    big1 :=      -32768_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -65537_;
8441    big1 :=      -32768_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -65536_;
8442    big1 :=      -32768_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -65535_;
8443    big1 :=      -32768_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =      -32770_;
8444    big1 :=      -32768_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =      -32769_;
8445    big1 :=      -32768_; big1 +:= bigintExpr(          0_); ok := ok and big1 =      -32768_;
8446    big1 :=      -32768_; big1 +:= bigintExpr(          1_); ok := ok and big1 =      -32767_;
8447    big1 :=      -32768_; big1 +:= bigintExpr(          2_); ok := ok and big1 =      -32766_;
8448    big1 :=      -32768_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =          -2_;
8449    big1 :=      -32768_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =          -1_;
8450    big1 :=      -32768_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =           0_;
8451    big1 :=      -32768_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =           1_;
8452    big1 :=      -32768_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147450878_;
8453    big1 :=      -32768_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147450879_;
8454    big1 :=      -32768_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147450880_;
8455    big1 :=      -32768_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147450881_;
8456    big1 :=      -32767_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147516417_;
8457    big1 :=      -32767_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147516416_;
8458    big1 :=      -32767_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147516415_;
8459    big1 :=      -32767_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147516414_;
8460    big1 :=      -32767_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -65537_;
8461    big1 :=      -32767_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -65536_;
8462    big1 :=      -32767_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -65535_;
8463    big1 :=      -32767_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -65534_;
8464    big1 :=      -32767_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =      -32769_;
8465    big1 :=      -32767_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =      -32768_;
8466    big1 :=      -32767_; big1 +:= bigintExpr(          0_); ok := ok and big1 =      -32767_;
8467    big1 :=      -32767_; big1 +:= bigintExpr(          1_); ok := ok and big1 =      -32766_;
8468    big1 :=      -32767_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =          -1_;
8469    big1 :=      -32767_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =           0_;
8470    big1 :=      -32767_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =           1_;
8471    big1 :=      -32767_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =           2_;
8472    big1 :=      -32767_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147450879_;
8473    big1 :=      -32767_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147450880_;
8474    big1 :=      -32767_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147450881_;
8475    big1 :=      -32767_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147450882_;
8476    big1 :=          -2_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147483652_;
8477    big1 :=          -2_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147483651_;
8478    big1 :=          -2_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147483650_;
8479    big1 :=          -2_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147483649_;
8480    big1 :=          -2_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -32772_;
8481    big1 :=          -2_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -32771_;
8482    big1 :=          -2_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -32770_;
8483    big1 :=          -2_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -32769_;
8484    big1 :=          -2_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =          -4_;
8485    big1 :=          -2_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =          -3_;
8486    big1 :=          -2_; big1 +:= bigintExpr(          0_); ok := ok and big1 =          -2_;
8487    big1 :=          -2_; big1 +:= bigintExpr(          1_); ok := ok and big1 =          -1_;
8488    big1 :=          -2_; big1 +:= bigintExpr(          2_); ok := ok and big1 =           0_;
8489    big1 :=          -2_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       32764_;
8490    big1 :=          -2_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       32765_;
8491    big1 :=          -2_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       32766_;
8492    big1 :=          -2_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       32767_;
8493    big1 :=          -2_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147483644_;
8494    big1 :=          -2_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147483645_;
8495    big1 :=          -2_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147483646_;
8496    big1 :=          -2_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147483647_;
8497    big1 :=          -1_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147483651_;
8498    big1 :=          -1_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147483650_;
8499    big1 :=          -1_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147483649_;
8500    big1 :=          -1_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147483648_;
8501    big1 :=          -1_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -32771_;
8502    big1 :=          -1_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -32770_;
8503    big1 :=          -1_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -32769_;
8504    big1 :=          -1_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -32768_;
8505    big1 :=          -1_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =          -3_;
8506    big1 :=          -1_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =          -2_;
8507    big1 :=          -1_; big1 +:= bigintExpr(          0_); ok := ok and big1 =          -1_;
8508    big1 :=          -1_; big1 +:= bigintExpr(          1_); ok := ok and big1 =           0_;
8509    big1 :=          -1_; big1 +:= bigintExpr(          2_); ok := ok and big1 =           1_;
8510    big1 :=          -1_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       32765_;
8511    big1 :=          -1_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       32766_;
8512    big1 :=          -1_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       32767_;
8513    big1 :=          -1_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       32768_;
8514    big1 :=          -1_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147483645_;
8515    big1 :=          -1_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147483646_;
8516    big1 :=          -1_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147483647_;
8517    big1 :=          -1_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147483648_;
8518    if not ok then
8519      writeln("Addition assignment of bigInteger with expression does not work correct. (1)");
8520    end if;
8521  end func;
8522
8523
8524const func boolean: chkAddAssignExpression2 is func
8525  result
8526    var boolean: ok is TRUE;
8527  local
8528    var bigInteger: big1 is 0_;
8529  begin
8530    big1 :=           0_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147483650_;
8531    big1 :=           0_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147483649_;
8532    big1 :=           0_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147483648_;
8533    big1 :=           0_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147483647_;
8534    big1 :=           0_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -32770_;
8535    big1 :=           0_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -32769_;
8536    big1 :=           0_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -32768_;
8537    big1 :=           0_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -32767_;
8538    big1 :=           0_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =          -2_;
8539    big1 :=           0_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =          -1_;
8540    big1 :=           0_; big1 +:= bigintExpr(          0_); ok := ok and big1 =           0_;
8541    big1 :=           0_; big1 +:= bigintExpr(          1_); ok := ok and big1 =           1_;
8542    big1 :=           0_; big1 +:= bigintExpr(          2_); ok := ok and big1 =           2_;
8543    big1 :=           0_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       32766_;
8544    big1 :=           0_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       32767_;
8545    big1 :=           0_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       32768_;
8546    big1 :=           0_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       32769_;
8547    big1 :=           0_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147483646_;
8548    big1 :=           0_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147483647_;
8549    big1 :=           0_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147483648_;
8550    big1 :=           0_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147483649_;
8551    big1 :=           1_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147483649_;
8552    big1 :=           1_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147483648_;
8553    big1 :=           1_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147483647_;
8554    big1 :=           1_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147483646_;
8555    big1 :=           1_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -32769_;
8556    big1 :=           1_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -32768_;
8557    big1 :=           1_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -32767_;
8558    big1 :=           1_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -32766_;
8559    big1 :=           1_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =          -1_;
8560    big1 :=           1_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =           0_;
8561    big1 :=           1_; big1 +:= bigintExpr(          0_); ok := ok and big1 =           1_;
8562    big1 :=           1_; big1 +:= bigintExpr(          1_); ok := ok and big1 =           2_;
8563    big1 :=           1_; big1 +:= bigintExpr(          2_); ok := ok and big1 =           3_;
8564    big1 :=           1_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       32767_;
8565    big1 :=           1_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       32768_;
8566    big1 :=           1_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       32769_;
8567    big1 :=           1_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       32770_;
8568    big1 :=           1_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147483647_;
8569    big1 :=           1_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147483648_;
8570    big1 :=           1_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147483649_;
8571    big1 :=           1_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147483650_;
8572    big1 :=           2_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147483648_;
8573    big1 :=           2_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147483647_;
8574    big1 :=           2_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147483646_;
8575    big1 :=           2_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147483645_;
8576    big1 :=           2_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =      -32768_;
8577    big1 :=           2_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =      -32767_;
8578    big1 :=           2_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =      -32766_;
8579    big1 :=           2_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =      -32765_;
8580    big1 :=           2_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =           0_;
8581    big1 :=           2_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =           1_;
8582    big1 :=           2_; big1 +:= bigintExpr(          0_); ok := ok and big1 =           2_;
8583    big1 :=           2_; big1 +:= bigintExpr(          1_); ok := ok and big1 =           3_;
8584    big1 :=           2_; big1 +:= bigintExpr(          2_); ok := ok and big1 =           4_;
8585    big1 :=           2_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       32768_;
8586    big1 :=           2_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       32769_;
8587    big1 :=           2_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       32770_;
8588    big1 :=           2_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       32771_;
8589    big1 :=           2_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147483648_;
8590    big1 :=           2_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147483649_;
8591    big1 :=           2_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147483650_;
8592    big1 :=           2_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147483651_;
8593    big1 :=       32766_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147450884_;
8594    big1 :=       32766_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147450883_;
8595    big1 :=       32766_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147450882_;
8596    big1 :=       32766_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147450881_;
8597    big1 :=       32766_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =          -4_;
8598    big1 :=       32766_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =          -3_;
8599    big1 :=       32766_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =          -2_;
8600    big1 :=       32766_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =          -1_;
8601    big1 :=       32766_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =       32764_;
8602    big1 :=       32766_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =       32765_;
8603    big1 :=       32766_; big1 +:= bigintExpr(          0_); ok := ok and big1 =       32766_;
8604    big1 :=       32766_; big1 +:= bigintExpr(          1_); ok := ok and big1 =       32767_;
8605    big1 :=       32766_; big1 +:= bigintExpr(          2_); ok := ok and big1 =       32768_;
8606    big1 :=       32766_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       65532_;
8607    big1 :=       32766_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       65533_;
8608    big1 :=       32766_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       65534_;
8609    big1 :=       32766_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       65535_;
8610    big1 :=       32766_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147516412_;
8611    big1 :=       32766_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147516413_;
8612    big1 :=       32766_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147516414_;
8613    big1 :=       32766_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147516415_;
8614    big1 :=       32767_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147450883_;
8615    big1 :=       32767_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147450882_;
8616    big1 :=       32767_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147450881_;
8617    big1 :=       32767_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147450880_;
8618    big1 :=       32767_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =          -3_;
8619    big1 :=       32767_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =          -2_;
8620    big1 :=       32767_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =          -1_;
8621    big1 :=       32767_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =           0_;
8622    big1 :=       32767_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =       32765_;
8623    big1 :=       32767_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =       32766_;
8624    big1 :=       32767_; big1 +:= bigintExpr(          0_); ok := ok and big1 =       32767_;
8625    big1 :=       32767_; big1 +:= bigintExpr(          1_); ok := ok and big1 =       32768_;
8626    big1 :=       32767_; big1 +:= bigintExpr(          2_); ok := ok and big1 =       32769_;
8627    big1 :=       32767_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       65533_;
8628    big1 :=       32767_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       65534_;
8629    big1 :=       32767_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       65535_;
8630    big1 :=       32767_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       65536_;
8631    big1 :=       32767_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147516413_;
8632    big1 :=       32767_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147516414_;
8633    big1 :=       32767_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147516415_;
8634    big1 :=       32767_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147516416_;
8635    big1 :=       32768_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147450882_;
8636    big1 :=       32768_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147450881_;
8637    big1 :=       32768_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147450880_;
8638    big1 :=       32768_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147450879_;
8639    big1 :=       32768_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =          -2_;
8640    big1 :=       32768_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =          -1_;
8641    big1 :=       32768_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =           0_;
8642    big1 :=       32768_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =           1_;
8643    big1 :=       32768_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =       32766_;
8644    big1 :=       32768_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =       32767_;
8645    big1 :=       32768_; big1 +:= bigintExpr(          0_); ok := ok and big1 =       32768_;
8646    big1 :=       32768_; big1 +:= bigintExpr(          1_); ok := ok and big1 =       32769_;
8647    big1 :=       32768_; big1 +:= bigintExpr(          2_); ok := ok and big1 =       32770_;
8648    big1 :=       32768_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       65534_;
8649    big1 :=       32768_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       65535_;
8650    big1 :=       32768_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       65536_;
8651    big1 :=       32768_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       65537_;
8652    big1 :=       32768_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147516414_;
8653    big1 :=       32768_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147516415_;
8654    big1 :=       32768_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147516416_;
8655    big1 :=       32768_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147516417_;
8656    big1 :=       32769_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 = -2147450881_;
8657    big1 :=       32769_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 = -2147450880_;
8658    big1 :=       32769_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 = -2147450879_;
8659    big1 :=       32769_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 = -2147450878_;
8660    big1 :=       32769_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =          -1_;
8661    big1 :=       32769_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =           0_;
8662    big1 :=       32769_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =           1_;
8663    big1 :=       32769_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =           2_;
8664    big1 :=       32769_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =       32767_;
8665    big1 :=       32769_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =       32768_;
8666    big1 :=       32769_; big1 +:= bigintExpr(          0_); ok := ok and big1 =       32769_;
8667    big1 :=       32769_; big1 +:= bigintExpr(          1_); ok := ok and big1 =       32770_;
8668    big1 :=       32769_; big1 +:= bigintExpr(          2_); ok := ok and big1 =       32771_;
8669    big1 :=       32769_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =       65535_;
8670    big1 :=       32769_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =       65536_;
8671    big1 :=       32769_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =       65537_;
8672    big1 :=       32769_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =       65538_;
8673    big1 :=       32769_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  2147516415_;
8674    big1 :=       32769_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  2147516416_;
8675    big1 :=       32769_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  2147516417_;
8676    big1 :=       32769_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  2147516418_;
8677    big1 :=  2147483646_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 =          -4_;
8678    big1 :=  2147483646_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 =          -3_;
8679    big1 :=  2147483646_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 =          -2_;
8680    big1 :=  2147483646_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 =          -1_;
8681    big1 :=  2147483646_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =  2147450876_;
8682    big1 :=  2147483646_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =  2147450877_;
8683    big1 :=  2147483646_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =  2147450878_;
8684    big1 :=  2147483646_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =  2147450879_;
8685    big1 :=  2147483646_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =  2147483644_;
8686    big1 :=  2147483646_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =  2147483645_;
8687    big1 :=  2147483646_; big1 +:= bigintExpr(          0_); ok := ok and big1 =  2147483646_;
8688    big1 :=  2147483646_; big1 +:= bigintExpr(          1_); ok := ok and big1 =  2147483647_;
8689    big1 :=  2147483646_; big1 +:= bigintExpr(          2_); ok := ok and big1 =  2147483648_;
8690    big1 :=  2147483646_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =  2147516412_;
8691    big1 :=  2147483646_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =  2147516413_;
8692    big1 :=  2147483646_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =  2147516414_;
8693    big1 :=  2147483646_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =  2147516415_;
8694    big1 :=  2147483646_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  4294967292_;
8695    big1 :=  2147483646_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  4294967293_;
8696    big1 :=  2147483646_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  4294967294_;
8697    big1 :=  2147483646_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  4294967295_;
8698    big1 :=  2147483647_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 =          -3_;
8699    big1 :=  2147483647_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 =          -2_;
8700    big1 :=  2147483647_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 =          -1_;
8701    big1 :=  2147483647_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 =           0_;
8702    big1 :=  2147483647_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =  2147450877_;
8703    big1 :=  2147483647_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =  2147450878_;
8704    big1 :=  2147483647_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =  2147450879_;
8705    big1 :=  2147483647_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =  2147450880_;
8706    big1 :=  2147483647_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =  2147483645_;
8707    big1 :=  2147483647_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =  2147483646_;
8708    big1 :=  2147483647_; big1 +:= bigintExpr(          0_); ok := ok and big1 =  2147483647_;
8709    big1 :=  2147483647_; big1 +:= bigintExpr(          1_); ok := ok and big1 =  2147483648_;
8710    big1 :=  2147483647_; big1 +:= bigintExpr(          2_); ok := ok and big1 =  2147483649_;
8711    big1 :=  2147483647_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =  2147516413_;
8712    big1 :=  2147483647_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =  2147516414_;
8713    big1 :=  2147483647_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =  2147516415_;
8714    big1 :=  2147483647_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =  2147516416_;
8715    big1 :=  2147483647_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  4294967293_;
8716    big1 :=  2147483647_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  4294967294_;
8717    big1 :=  2147483647_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  4294967295_;
8718    big1 :=  2147483647_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  4294967296_;
8719    big1 :=  2147483648_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 =          -2_;
8720    big1 :=  2147483648_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 =          -1_;
8721    big1 :=  2147483648_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 =           0_;
8722    big1 :=  2147483648_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 =           1_;
8723    big1 :=  2147483648_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =  2147450878_;
8724    big1 :=  2147483648_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =  2147450879_;
8725    big1 :=  2147483648_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =  2147450880_;
8726    big1 :=  2147483648_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =  2147450881_;
8727    big1 :=  2147483648_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =  2147483646_;
8728    big1 :=  2147483648_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =  2147483647_;
8729    big1 :=  2147483648_; big1 +:= bigintExpr(          0_); ok := ok and big1 =  2147483648_;
8730    big1 :=  2147483648_; big1 +:= bigintExpr(          1_); ok := ok and big1 =  2147483649_;
8731    big1 :=  2147483648_; big1 +:= bigintExpr(          2_); ok := ok and big1 =  2147483650_;
8732    big1 :=  2147483648_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =  2147516414_;
8733    big1 :=  2147483648_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =  2147516415_;
8734    big1 :=  2147483648_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =  2147516416_;
8735    big1 :=  2147483648_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =  2147516417_;
8736    big1 :=  2147483648_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  4294967294_;
8737    big1 :=  2147483648_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  4294967295_;
8738    big1 :=  2147483648_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  4294967296_;
8739    big1 :=  2147483648_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  4294967297_;
8740    big1 :=  2147483649_; big1 +:= bigintExpr(-2147483650_); ok := ok and big1 =          -1_;
8741    big1 :=  2147483649_; big1 +:= bigintExpr(-2147483649_); ok := ok and big1 =           0_;
8742    big1 :=  2147483649_; big1 +:= bigintExpr(-2147483648_); ok := ok and big1 =           1_;
8743    big1 :=  2147483649_; big1 +:= bigintExpr(-2147483647_); ok := ok and big1 =           2_;
8744    big1 :=  2147483649_; big1 +:= bigintExpr(     -32770_); ok := ok and big1 =  2147450879_;
8745    big1 :=  2147483649_; big1 +:= bigintExpr(     -32769_); ok := ok and big1 =  2147450880_;
8746    big1 :=  2147483649_; big1 +:= bigintExpr(     -32768_); ok := ok and big1 =  2147450881_;
8747    big1 :=  2147483649_; big1 +:= bigintExpr(     -32767_); ok := ok and big1 =  2147450882_;
8748    big1 :=  2147483649_; big1 +:= bigintExpr(         -2_); ok := ok and big1 =  2147483647_;
8749    big1 :=  2147483649_; big1 +:= bigintExpr(         -1_); ok := ok and big1 =  2147483648_;
8750    big1 :=  2147483649_; big1 +:= bigintExpr(          0_); ok := ok and big1 =  2147483649_;
8751    big1 :=  2147483649_; big1 +:= bigintExpr(          1_); ok := ok and big1 =  2147483650_;
8752    big1 :=  2147483649_; big1 +:= bigintExpr(          2_); ok := ok and big1 =  2147483651_;
8753    big1 :=  2147483649_; big1 +:= bigintExpr(      32766_); ok := ok and big1 =  2147516415_;
8754    big1 :=  2147483649_; big1 +:= bigintExpr(      32767_); ok := ok and big1 =  2147516416_;
8755    big1 :=  2147483649_; big1 +:= bigintExpr(      32768_); ok := ok and big1 =  2147516417_;
8756    big1 :=  2147483649_; big1 +:= bigintExpr(      32769_); ok := ok and big1 =  2147516418_;
8757    big1 :=  2147483649_; big1 +:= bigintExpr( 2147483646_); ok := ok and big1 =  4294967295_;
8758    big1 :=  2147483649_; big1 +:= bigintExpr( 2147483647_); ok := ok and big1 =  4294967296_;
8759    big1 :=  2147483649_; big1 +:= bigintExpr( 2147483648_); ok := ok and big1 =  4294967297_;
8760    big1 :=  2147483649_; big1 +:= bigintExpr( 2147483649_); ok := ok and big1 =  4294967298_;
8761    if not ok then
8762      writeln("Addition assignment of bigInteger with expression does not work correct. (2)");
8763    end if;
8764  end func;
8765
8766
8767const func boolean: chkAddAssignWithItself is func
8768  result
8769    var boolean: ok is TRUE;
8770  local
8771    var bigInteger: big1 is 0_;
8772  begin
8773    big1 := -9223372036854775808_; big1 +:= big1; ok := ok and big1 = -18446744073709551616_;
8774    big1 := -9223372036854775807_; big1 +:= big1; ok := ok and big1 = -18446744073709551614_;
8775    big1 := -9223372036854775806_; big1 +:= big1; ok := ok and big1 = -18446744073709551612_;
8776    big1 := -9000000000000000000_; big1 +:= big1; ok := ok and big1 = -18000000000000000000_;
8777    big1 := -8000000000000000000_; big1 +:= big1; ok := ok and big1 = -16000000000000000000_;
8778    big1 := -7000000000000000000_; big1 +:= big1; ok := ok and big1 = -14000000000000000000_;
8779    big1 := -6000000000000000000_; big1 +:= big1; ok := ok and big1 = -12000000000000000000_;
8780    big1 := -5000000000000000000_; big1 +:= big1; ok := ok and big1 = -10000000000000000000_;
8781    big1 := -4611686018427387905_; big1 +:= big1; ok := ok and big1 =  -9223372036854775810_;
8782    big1 := -4611686018427387904_; big1 +:= big1; ok := ok and big1 =  -9223372036854775808_;
8783    big1 := -4611686018427387903_; big1 +:= big1; ok := ok and big1 =  -9223372036854775806_;
8784    big1 :=          -2147483649_; big1 +:= big1; ok := ok and big1 =           -4294967298_;
8785    big1 :=          -2147483648_; big1 +:= big1; ok := ok and big1 =           -4294967296_;
8786    big1 :=          -2147483647_; big1 +:= big1; ok := ok and big1 =           -4294967294_;
8787    big1 :=          -2000000000_; big1 +:= big1; ok := ok and big1 =           -4000000000_;
8788    big1 :=          -1500000000_; big1 +:= big1; ok := ok and big1 =           -3000000000_;
8789    big1 :=          -1073741825_; big1 +:= big1; ok := ok and big1 =           -2147483650_;
8790    big1 :=          -1073741824_; big1 +:= big1; ok := ok and big1 =           -2147483648_;
8791    big1 :=          -1073741823_; big1 +:= big1; ok := ok and big1 =           -2147483646_;
8792    big1 :=                  -10_; big1 +:= big1; ok := ok and big1 =                   -20_;
8793    big1 :=                   -1_; big1 +:= big1; ok := ok and big1 =                    -2_;
8794    big1 :=                    0_; big1 +:= big1; ok := ok and big1 =                     0_;
8795    big1 :=                    1_; big1 +:= big1; ok := ok and big1 =                     2_;
8796    big1 :=                   10_; big1 +:= big1; ok := ok and big1 =                    20_;
8797    big1 :=           1073741823_; big1 +:= big1; ok := ok and big1 =            2147483646_;
8798    big1 :=           1073741824_; big1 +:= big1; ok := ok and big1 =            2147483648_;
8799    big1 :=           1073741825_; big1 +:= big1; ok := ok and big1 =            2147483650_;
8800    big1 :=           1500000000_; big1 +:= big1; ok := ok and big1 =            3000000000_;
8801    big1 :=           2000000000_; big1 +:= big1; ok := ok and big1 =            4000000000_;
8802    big1 :=           2147483647_; big1 +:= big1; ok := ok and big1 =            4294967294_;
8803    big1 :=           2147483648_; big1 +:= big1; ok := ok and big1 =            4294967296_;
8804    big1 :=           2147483649_; big1 +:= big1; ok := ok and big1 =            4294967298_;
8805    big1 :=  4611686018427387903_; big1 +:= big1; ok := ok and big1 =   9223372036854775806_;
8806    big1 :=  4611686018427387904_; big1 +:= big1; ok := ok and big1 =   9223372036854775808_;
8807    big1 :=  4611686018427387905_; big1 +:= big1; ok := ok and big1 =   9223372036854775810_;
8808    big1 :=  5000000000000000000_; big1 +:= big1; ok := ok and big1 =  10000000000000000000_;
8809    big1 :=  6000000000000000000_; big1 +:= big1; ok := ok and big1 =  12000000000000000000_;
8810    big1 :=  7000000000000000000_; big1 +:= big1; ok := ok and big1 =  14000000000000000000_;
8811    big1 :=  8000000000000000000_; big1 +:= big1; ok := ok and big1 =  16000000000000000000_;
8812    big1 :=  9000000000000000000_; big1 +:= big1; ok := ok and big1 =  18000000000000000000_;
8813    big1 :=  9223372036854775806_; big1 +:= big1; ok := ok and big1 =  18446744073709551612_;
8814    big1 :=  9223372036854775807_; big1 +:= big1; ok := ok and big1 =  18446744073709551614_;
8815    big1 :=  9223372036854775808_; big1 +:= big1; ok := ok and big1 =  18446744073709551616_;
8816    if not ok then
8817      writeln("Addition assignment of bigInteger with itself does not work correct.");
8818    end if;
8819  end func;
8820
8821
8822const proc: chkAddAssign is func
8823  begin
8824    if  chkAddAssignLiteral1 and
8825        chkAddAssignLiteral2 and
8826        chkAddAssignExpression1 and
8827        chkAddAssignExpression2 and
8828        chkAddAssignWithItself then
8829      writeln("Addition assignment of bigInteger works correct.");
8830    else
8831      writeln(" ***** Addition assignment of bigInteger does not work correct.");
8832      writeln;
8833    end if;
8834  end func;
8835
8836
8837const proc: chkSubtraction is func
8838  local
8839    var bigInteger: number is 12345_;
8840    var boolean: okay is TRUE;
8841  begin
8842    if  -2147483650_ - -2147483650_ <>           0_ or
8843        -2147483650_ - -2147483649_ <>          -1_ or
8844        -2147483650_ - -2147483648_ <>          -2_ or
8845        -2147483650_ - -2147483647_ <>          -3_ or
8846        -2147483650_ -      -32770_ <> -2147450880_ or
8847        -2147483650_ -      -32769_ <> -2147450881_ or
8848        -2147483650_ -      -32768_ <> -2147450882_ or
8849        -2147483650_ -      -32767_ <> -2147450883_ or
8850        -2147483650_ -          -2_ <> -2147483648_ or
8851        -2147483650_ -          -1_ <> -2147483649_ or
8852        -2147483650_ -           0_ <> -2147483650_ or
8853        -2147483650_ -           1_ <> -2147483651_ or
8854        -2147483650_ -       32766_ <> -2147516416_ or
8855        -2147483650_ -       32767_ <> -2147516417_ or
8856        -2147483650_ -       32768_ <> -2147516418_ or
8857        -2147483650_ -       32769_ <> -2147516419_ or
8858        -2147483650_ -  2147483646_ <> -4294967296_ or
8859        -2147483650_ -  2147483647_ <> -4294967297_ or
8860        -2147483650_ -  2147483648_ <> -4294967298_ or
8861        -2147483650_ -  2147483649_ <> -4294967299_ or
8862        -2147483649_ - -2147483650_ <>           1_ or
8863        -2147483649_ - -2147483649_ <>           0_ or
8864        -2147483649_ - -2147483648_ <>          -1_ or
8865        -2147483649_ - -2147483647_ <>          -2_ or
8866        -2147483649_ -      -32770_ <> -2147450879_ or
8867        -2147483649_ -      -32769_ <> -2147450880_ or
8868        -2147483649_ -      -32768_ <> -2147450881_ or
8869        -2147483649_ -      -32767_ <> -2147450882_ or
8870        -2147483649_ -          -2_ <> -2147483647_ or
8871        -2147483649_ -          -1_ <> -2147483648_ or
8872        -2147483649_ -           0_ <> -2147483649_ or
8873        -2147483649_ -           1_ <> -2147483650_ or
8874        -2147483649_ -       32766_ <> -2147516415_ or
8875        -2147483649_ -       32767_ <> -2147516416_ or
8876        -2147483649_ -       32768_ <> -2147516417_ or
8877        -2147483649_ -       32769_ <> -2147516418_ or
8878        -2147483649_ -  2147483646_ <> -4294967295_ or
8879        -2147483649_ -  2147483647_ <> -4294967296_ or
8880        -2147483649_ -  2147483648_ <> -4294967297_ or
8881        -2147483649_ -  2147483649_ <> -4294967298_ or
8882        -2147483648_ - -2147483650_ <>           2_ or
8883        -2147483648_ - -2147483649_ <>           1_ or
8884        -2147483648_ - -2147483648_ <>           0_ or
8885        -2147483648_ - -2147483647_ <>          -1_ or
8886        -2147483648_ -      -32770_ <> -2147450878_ or
8887        -2147483648_ -      -32769_ <> -2147450879_ or
8888        -2147483648_ -      -32768_ <> -2147450880_ or
8889        -2147483648_ -      -32767_ <> -2147450881_ or
8890        -2147483648_ -          -2_ <> -2147483646_ or
8891        -2147483648_ -          -1_ <> -2147483647_ or
8892        -2147483648_ -           0_ <> -2147483648_ or
8893        -2147483648_ -           1_ <> -2147483649_ or
8894        -2147483648_ -       32766_ <> -2147516414_ or
8895        -2147483648_ -       32767_ <> -2147516415_ or
8896        -2147483648_ -       32768_ <> -2147516416_ or
8897        -2147483648_ -       32769_ <> -2147516417_ or
8898        -2147483648_ -  2147483646_ <> -4294967294_ or
8899        -2147483648_ -  2147483647_ <> -4294967295_ or
8900        -2147483648_ -  2147483648_ <> -4294967296_ or
8901        -2147483648_ -  2147483649_ <> -4294967297_ or
8902        -2147483647_ - -2147483650_ <>           3_ or
8903        -2147483647_ - -2147483649_ <>           2_ or
8904        -2147483647_ - -2147483648_ <>           1_ or
8905        -2147483647_ - -2147483647_ <>           0_ or
8906        -2147483647_ -      -32770_ <> -2147450877_ or
8907        -2147483647_ -      -32769_ <> -2147450878_ or
8908        -2147483647_ -      -32768_ <> -2147450879_ or
8909        -2147483647_ -      -32767_ <> -2147450880_ or
8910        -2147483647_ -          -2_ <> -2147483645_ or
8911        -2147483647_ -          -1_ <> -2147483646_ or
8912        -2147483647_ -           0_ <> -2147483647_ or
8913        -2147483647_ -           1_ <> -2147483648_ or
8914        -2147483647_ -       32766_ <> -2147516413_ or
8915        -2147483647_ -       32767_ <> -2147516414_ or
8916        -2147483647_ -       32768_ <> -2147516415_ or
8917        -2147483647_ -       32769_ <> -2147516416_ or
8918        -2147483647_ -  2147483646_ <> -4294967293_ or
8919        -2147483647_ -  2147483647_ <> -4294967294_ or
8920        -2147483647_ -  2147483648_ <> -4294967295_ or
8921        -2147483647_ -  2147483649_ <> -4294967296_ or
8922             -32770_ - -2147483650_ <>  2147450880_ or
8923             -32770_ - -2147483649_ <>  2147450879_ or
8924             -32770_ - -2147483648_ <>  2147450878_ or
8925             -32770_ - -2147483647_ <>  2147450877_ or
8926             -32770_ -      -32770_ <>           0_ or
8927             -32770_ -      -32769_ <>          -1_ or
8928             -32770_ -      -32768_ <>          -2_ or
8929             -32770_ -      -32767_ <>          -3_ or
8930             -32770_ -          -2_ <>      -32768_ or
8931             -32770_ -          -1_ <>      -32769_ or
8932             -32770_ -           0_ <>      -32770_ or
8933             -32770_ -           1_ <>      -32771_ or
8934             -32770_ -       32766_ <>      -65536_ or
8935             -32770_ -       32767_ <>      -65537_ or
8936             -32770_ -       32768_ <>      -65538_ or
8937             -32770_ -       32769_ <>      -65539_ or
8938             -32770_ -  2147483646_ <> -2147516416_ or
8939             -32770_ -  2147483647_ <> -2147516417_ or
8940             -32770_ -  2147483648_ <> -2147516418_ or
8941             -32770_ -  2147483649_ <> -2147516419_ or
8942             -32769_ - -2147483650_ <>  2147450881_ or
8943             -32769_ - -2147483649_ <>  2147450880_ or
8944             -32769_ - -2147483648_ <>  2147450879_ or
8945             -32769_ - -2147483647_ <>  2147450878_ or
8946             -32769_ -      -32770_ <>           1_ or
8947             -32769_ -      -32769_ <>           0_ or
8948             -32769_ -      -32768_ <>          -1_ or
8949             -32769_ -      -32767_ <>          -2_ or
8950             -32769_ -          -2_ <>      -32767_ or
8951             -32769_ -          -1_ <>      -32768_ or
8952             -32769_ -           0_ <>      -32769_ or
8953             -32769_ -           1_ <>      -32770_ or
8954             -32769_ -       32766_ <>      -65535_ or
8955             -32769_ -       32767_ <>      -65536_ or
8956             -32769_ -       32768_ <>      -65537_ or
8957             -32769_ -       32769_ <>      -65538_ or
8958             -32769_ -  2147483646_ <> -2147516415_ or
8959             -32769_ -  2147483647_ <> -2147516416_ or
8960             -32769_ -  2147483648_ <> -2147516417_ or
8961             -32769_ -  2147483649_ <> -2147516418_ or
8962             -32768_ - -2147483650_ <>  2147450882_ or
8963             -32768_ - -2147483649_ <>  2147450881_ or
8964             -32768_ - -2147483648_ <>  2147450880_ or
8965             -32768_ - -2147483647_ <>  2147450879_ or
8966             -32768_ -      -32770_ <>           2_ or
8967             -32768_ -      -32769_ <>           1_ or
8968             -32768_ -      -32768_ <>           0_ or
8969             -32768_ -      -32767_ <>          -1_ or
8970             -32768_ -          -2_ <>      -32766_ or
8971             -32768_ -          -1_ <>      -32767_ or
8972             -32768_ -           0_ <>      -32768_ or
8973             -32768_ -           1_ <>      -32769_ or
8974             -32768_ -       32766_ <>      -65534_ or
8975             -32768_ -       32767_ <>      -65535_ or
8976             -32768_ -       32768_ <>      -65536_ or
8977             -32768_ -       32769_ <>      -65537_ or
8978             -32768_ -  2147483646_ <> -2147516414_ or
8979             -32768_ -  2147483647_ <> -2147516415_ or
8980             -32768_ -  2147483648_ <> -2147516416_ or
8981             -32768_ -  2147483649_ <> -2147516417_ or
8982             -32767_ - -2147483650_ <>  2147450883_ or
8983             -32767_ - -2147483649_ <>  2147450882_ or
8984             -32767_ - -2147483648_ <>  2147450881_ or
8985             -32767_ - -2147483647_ <>  2147450880_ or
8986             -32767_ -      -32770_ <>           3_ or
8987             -32767_ -      -32769_ <>           2_ or
8988             -32767_ -      -32768_ <>           1_ or
8989             -32767_ -      -32767_ <>           0_ or
8990             -32767_ -          -2_ <>      -32765_ or
8991             -32767_ -          -1_ <>      -32766_ or
8992             -32767_ -           0_ <>      -32767_ or
8993             -32767_ -           1_ <>      -32768_ or
8994             -32767_ -       32766_ <>      -65533_ or
8995             -32767_ -       32767_ <>      -65534_ or
8996             -32767_ -       32768_ <>      -65535_ or
8997             -32767_ -       32769_ <>      -65536_ or
8998             -32767_ -  2147483646_ <> -2147516413_ or
8999             -32767_ -  2147483647_ <> -2147516414_ or
9000             -32767_ -  2147483648_ <> -2147516415_ or
9001             -32767_ -  2147483649_ <> -2147516416_ or
9002                 -2_ - -2147483650_ <>  2147483648_ or
9003                 -2_ - -2147483649_ <>  2147483647_ or
9004                 -2_ - -2147483648_ <>  2147483646_ or
9005                 -2_ - -2147483647_ <>  2147483645_ or
9006                 -2_ -      -32770_ <>       32768_ or
9007                 -2_ -      -32769_ <>       32767_ or
9008                 -2_ -      -32768_ <>       32766_ or
9009                 -2_ -      -32767_ <>       32765_ or
9010                 -2_ -          -2_ <>           0_ or
9011                 -2_ -          -1_ <>          -1_ or
9012                 -2_ -           0_ <>          -2_ or
9013                 -2_ -           1_ <>          -3_ or
9014                 -2_ -       32766_ <>      -32768_ or
9015                 -2_ -       32767_ <>      -32769_ or
9016                 -2_ -       32768_ <>      -32770_ or
9017                 -2_ -       32769_ <>      -32771_ or
9018                 -2_ -  2147483646_ <> -2147483648_ or
9019                 -2_ -  2147483647_ <> -2147483649_ or
9020                 -2_ -  2147483648_ <> -2147483650_ or
9021                 -2_ -  2147483649_ <> -2147483651_ or
9022                 -1_ - -2147483650_ <>  2147483649_ or
9023                 -1_ - -2147483649_ <>  2147483648_ or
9024                 -1_ - -2147483648_ <>  2147483647_ or
9025                 -1_ - -2147483647_ <>  2147483646_ or
9026                 -1_ -      -32770_ <>       32769_ or
9027                 -1_ -      -32769_ <>       32768_ or
9028                 -1_ -      -32768_ <>       32767_ or
9029                 -1_ -      -32767_ <>       32766_ or
9030                 -1_ -          -2_ <>           1_ or
9031                 -1_ -          -1_ <>           0_ or
9032                 -1_ -           0_ <>          -1_ or
9033                 -1_ -           1_ <>          -2_ or
9034                 -1_ -       32766_ <>      -32767_ or
9035                 -1_ -       32767_ <>      -32768_ or
9036                 -1_ -       32768_ <>      -32769_ or
9037                 -1_ -       32769_ <>      -32770_ or
9038                 -1_ -  2147483646_ <> -2147483647_ or
9039                 -1_ -  2147483647_ <> -2147483648_ or
9040                 -1_ -  2147483648_ <> -2147483649_ or
9041                 -1_ -  2147483649_ <> -2147483650_ or
9042                  0_ - -2147483650_ <>  2147483650_ or
9043                  0_ - -2147483649_ <>  2147483649_ or
9044                  0_ - -2147483648_ <>  2147483648_ or
9045                  0_ - -2147483647_ <>  2147483647_ or
9046                  0_ -      -32770_ <>       32770_ or
9047                  0_ -      -32769_ <>       32769_ or
9048                  0_ -      -32768_ <>       32768_ or
9049                  0_ -      -32767_ <>       32767_ or
9050                  0_ -          -2_ <>           2_ or
9051                  0_ -          -1_ <>           1_ or
9052                  0_ -           0_ <>           0_ or
9053                  0_ -           1_ <>          -1_ or
9054                  0_ -       32766_ <>      -32766_ or
9055                  0_ -       32767_ <>      -32767_ or
9056                  0_ -       32768_ <>      -32768_ or
9057                  0_ -       32769_ <>      -32769_ or
9058                  0_ -  2147483646_ <> -2147483646_ or
9059                  0_ -  2147483647_ <> -2147483647_ or
9060                  0_ -  2147483648_ <> -2147483648_ or
9061                  0_ -  2147483649_ <> -2147483649_ or
9062                  1_ - -2147483650_ <>  2147483651_ or
9063                  1_ - -2147483649_ <>  2147483650_ or
9064                  1_ - -2147483648_ <>  2147483649_ or
9065                  1_ - -2147483647_ <>  2147483648_ or
9066                  1_ -      -32770_ <>       32771_ or
9067                  1_ -      -32769_ <>       32770_ or
9068                  1_ -      -32768_ <>       32769_ or
9069                  1_ -      -32767_ <>       32768_ or
9070                  1_ -          -2_ <>           3_ or
9071                  1_ -          -1_ <>           2_ or
9072                  1_ -           0_ <>           1_ or
9073                  1_ -           1_ <>           0_ or
9074                  1_ -       32766_ <>      -32765_ or
9075                  1_ -       32767_ <>      -32766_ or
9076                  1_ -       32768_ <>      -32767_ or
9077                  1_ -       32769_ <>      -32768_ or
9078                  1_ -  2147483646_ <> -2147483645_ or
9079                  1_ -  2147483647_ <> -2147483646_ or
9080                  1_ -  2147483648_ <> -2147483647_ or
9081                  1_ -  2147483649_ <> -2147483648_ or
9082              32766_ - -2147483650_ <>  2147516416_ or
9083              32766_ - -2147483649_ <>  2147516415_ or
9084              32766_ - -2147483648_ <>  2147516414_ or
9085              32766_ - -2147483647_ <>  2147516413_ or
9086              32766_ -      -32770_ <>       65536_ or
9087              32766_ -      -32769_ <>       65535_ or
9088              32766_ -      -32768_ <>       65534_ or
9089              32766_ -      -32767_ <>       65533_ or
9090              32766_ -          -2_ <>       32768_ or
9091              32766_ -          -1_ <>       32767_ or
9092              32766_ -           0_ <>       32766_ or
9093              32766_ -           1_ <>       32765_ or
9094              32766_ -       32766_ <>           0_ or
9095              32766_ -       32767_ <>          -1_ or
9096              32766_ -       32768_ <>          -2_ or
9097              32766_ -       32769_ <>          -3_ or
9098              32766_ -  2147483646_ <> -2147450880_ or
9099              32766_ -  2147483647_ <> -2147450881_ or
9100              32766_ -  2147483648_ <> -2147450882_ or
9101              32766_ -  2147483649_ <> -2147450883_ or
9102              32767_ - -2147483650_ <>  2147516417_ or
9103              32767_ - -2147483649_ <>  2147516416_ or
9104              32767_ - -2147483648_ <>  2147516415_ or
9105              32767_ - -2147483647_ <>  2147516414_ or
9106              32767_ -      -32770_ <>       65537_ or
9107              32767_ -      -32769_ <>       65536_ or
9108              32767_ -      -32768_ <>       65535_ or
9109              32767_ -      -32767_ <>       65534_ or
9110              32767_ -          -2_ <>       32769_ or
9111              32767_ -          -1_ <>       32768_ or
9112              32767_ -           0_ <>       32767_ or
9113              32767_ -           1_ <>       32766_ or
9114              32767_ -       32766_ <>           1_ or
9115              32767_ -       32767_ <>           0_ or
9116              32767_ -       32768_ <>          -1_ or
9117              32767_ -       32769_ <>          -2_ or
9118              32767_ -  2147483646_ <> -2147450879_ or
9119              32767_ -  2147483647_ <> -2147450880_ or
9120              32767_ -  2147483648_ <> -2147450881_ or
9121              32767_ -  2147483649_ <> -2147450882_ or
9122              32768_ - -2147483650_ <>  2147516418_ or
9123              32768_ - -2147483649_ <>  2147516417_ or
9124              32768_ - -2147483648_ <>  2147516416_ or
9125              32768_ - -2147483647_ <>  2147516415_ or
9126              32768_ -      -32770_ <>       65538_ or
9127              32768_ -      -32769_ <>       65537_ or
9128              32768_ -      -32768_ <>       65536_ or
9129              32768_ -      -32767_ <>       65535_ or
9130              32768_ -          -2_ <>       32770_ or
9131              32768_ -          -1_ <>       32769_ or
9132              32768_ -           0_ <>       32768_ or
9133              32768_ -           1_ <>       32767_ or
9134              32768_ -       32766_ <>           2_ or
9135              32768_ -       32767_ <>           1_ or
9136              32768_ -       32768_ <>           0_ or
9137              32768_ -       32769_ <>          -1_ or
9138              32768_ -  2147483646_ <> -2147450878_ or
9139              32768_ -  2147483647_ <> -2147450879_ or
9140              32768_ -  2147483648_ <> -2147450880_ or
9141              32768_ -  2147483649_ <> -2147450881_ or
9142              32769_ - -2147483650_ <>  2147516419_ or
9143              32769_ - -2147483649_ <>  2147516418_ or
9144              32769_ - -2147483648_ <>  2147516417_ or
9145              32769_ - -2147483647_ <>  2147516416_ or
9146              32769_ -      -32770_ <>       65539_ or
9147              32769_ -      -32769_ <>       65538_ or
9148              32769_ -      -32768_ <>       65537_ or
9149              32769_ -      -32767_ <>       65536_ or
9150              32769_ -          -2_ <>       32771_ or
9151              32769_ -          -1_ <>       32770_ or
9152              32769_ -           0_ <>       32769_ or
9153              32769_ -           1_ <>       32768_ or
9154              32769_ -       32766_ <>           3_ or
9155              32769_ -       32767_ <>           2_ or
9156              32769_ -       32768_ <>           1_ or
9157              32769_ -       32769_ <>           0_ or
9158              32769_ -  2147483646_ <> -2147450877_ or
9159              32769_ -  2147483647_ <> -2147450878_ or
9160              32769_ -  2147483648_ <> -2147450879_ or
9161              32769_ -  2147483649_ <> -2147450880_ or
9162         2147483646_ - -2147483650_ <>  4294967296_ or
9163         2147483646_ - -2147483649_ <>  4294967295_ or
9164         2147483646_ - -2147483648_ <>  4294967294_ or
9165         2147483646_ - -2147483647_ <>  4294967293_ or
9166         2147483646_ -      -32770_ <>  2147516416_ or
9167         2147483646_ -      -32769_ <>  2147516415_ or
9168         2147483646_ -      -32768_ <>  2147516414_ or
9169         2147483646_ -      -32767_ <>  2147516413_ or
9170         2147483646_ -          -2_ <>  2147483648_ or
9171         2147483646_ -          -1_ <>  2147483647_ or
9172         2147483646_ -           0_ <>  2147483646_ or
9173         2147483646_ -           1_ <>  2147483645_ or
9174         2147483646_ -       32766_ <>  2147450880_ or
9175         2147483646_ -       32767_ <>  2147450879_ or
9176         2147483646_ -       32768_ <>  2147450878_ or
9177         2147483646_ -       32769_ <>  2147450877_ or
9178         2147483646_ -  2147483646_ <>           0_ or
9179         2147483646_ -  2147483647_ <>          -1_ or
9180         2147483646_ -  2147483648_ <>          -2_ or
9181         2147483646_ -  2147483649_ <>          -3_ or
9182         2147483647_ - -2147483650_ <>  4294967297_ or
9183         2147483647_ - -2147483649_ <>  4294967296_ or
9184         2147483647_ - -2147483648_ <>  4294967295_ or
9185         2147483647_ - -2147483647_ <>  4294967294_ or
9186         2147483647_ -      -32770_ <>  2147516417_ or
9187         2147483647_ -      -32769_ <>  2147516416_ or
9188         2147483647_ -      -32768_ <>  2147516415_ or
9189         2147483647_ -      -32767_ <>  2147516414_ or
9190         2147483647_ -          -2_ <>  2147483649_ or
9191         2147483647_ -          -1_ <>  2147483648_ or
9192         2147483647_ -           0_ <>  2147483647_ or
9193         2147483647_ -           1_ <>  2147483646_ or
9194         2147483647_ -       32766_ <>  2147450881_ or
9195         2147483647_ -       32767_ <>  2147450880_ or
9196         2147483647_ -       32768_ <>  2147450879_ or
9197         2147483647_ -       32769_ <>  2147450878_ or
9198         2147483647_ -  2147483646_ <>           1_ or
9199         2147483647_ -  2147483647_ <>           0_ or
9200         2147483647_ -  2147483648_ <>          -1_ or
9201         2147483647_ -  2147483649_ <>          -2_ or
9202         2147483648_ - -2147483650_ <>  4294967298_ or
9203         2147483648_ - -2147483649_ <>  4294967297_ or
9204         2147483648_ - -2147483648_ <>  4294967296_ or
9205         2147483648_ - -2147483647_ <>  4294967295_ or
9206         2147483648_ -      -32770_ <>  2147516418_ or
9207         2147483648_ -      -32769_ <>  2147516417_ or
9208         2147483648_ -      -32768_ <>  2147516416_ or
9209         2147483648_ -      -32767_ <>  2147516415_ or
9210         2147483648_ -          -2_ <>  2147483650_ or
9211         2147483648_ -          -1_ <>  2147483649_ or
9212         2147483648_ -           0_ <>  2147483648_ or
9213         2147483648_ -           1_ <>  2147483647_ or
9214         2147483648_ -       32766_ <>  2147450882_ or
9215         2147483648_ -       32767_ <>  2147450881_ or
9216         2147483648_ -       32768_ <>  2147450880_ or
9217         2147483648_ -       32769_ <>  2147450879_ or
9218         2147483648_ -  2147483646_ <>           2_ or
9219         2147483648_ -  2147483647_ <>           1_ or
9220         2147483648_ -  2147483648_ <>           0_ or
9221         2147483648_ -  2147483649_ <>          -1_ or
9222         2147483649_ - -2147483650_ <>  4294967299_ or
9223         2147483649_ - -2147483649_ <>  4294967298_ or
9224         2147483649_ - -2147483648_ <>  4294967297_ or
9225         2147483649_ - -2147483647_ <>  4294967296_ or
9226         2147483649_ -      -32770_ <>  2147516419_ or
9227         2147483649_ -      -32769_ <>  2147516418_ or
9228         2147483649_ -      -32768_ <>  2147516417_ or
9229         2147483649_ -      -32767_ <>  2147516416_ or
9230         2147483649_ -          -2_ <>  2147483651_ or
9231         2147483649_ -          -1_ <>  2147483650_ or
9232         2147483649_ -           0_ <>  2147483649_ or
9233         2147483649_ -           1_ <>  2147483648_ or
9234         2147483649_ -       32766_ <>  2147450883_ or
9235         2147483649_ -       32767_ <>  2147450882_ or
9236         2147483649_ -       32768_ <>  2147450881_ or
9237         2147483649_ -       32769_ <>  2147450880_ or
9238         2147483649_ -  2147483646_ <>           3_ or
9239         2147483649_ -  2147483647_ <>           2_ or
9240         2147483649_ -  2147483648_ <>           1_ or
9241         2147483649_ -  2147483649_ <>           0_ then
9242      writeln("Subtraction of bigInteger does not work correct.");
9243      okay := FALSE;
9244    end if;
9245
9246    if number - number <> 0_ then
9247      writeln("Subtraction of bigInteger by itself does not work correct.");
9248      okay := FALSE;
9249    end if;
9250
9251    if okay then
9252      writeln("Subtraction of bigInteger works correct.");
9253    else
9254      writeln(" ***** Subtraction of bigInteger does not work correct.");
9255      writeln;
9256    end if;
9257  end func;
9258
9259
9260const func boolean: chkSubtractAssignLiteral1 is func
9261  result
9262    var boolean: ok is TRUE;
9263  local
9264    var bigInteger: big1 is 1_;
9265  begin
9266    big1 := -2147483650_; big1 -:= -2147483650_; ok := ok and big1 =           0_;
9267    big1 := -2147483650_; big1 -:= -2147483649_; ok := ok and big1 =          -1_;
9268    big1 := -2147483650_; big1 -:= -2147483648_; ok := ok and big1 =          -2_;
9269    big1 := -2147483650_; big1 -:= -2147483647_; ok := ok and big1 =          -3_;
9270    big1 := -2147483650_; big1 -:=      -32770_; ok := ok and big1 = -2147450880_;
9271    big1 := -2147483650_; big1 -:=      -32769_; ok := ok and big1 = -2147450881_;
9272    big1 := -2147483650_; big1 -:=      -32768_; ok := ok and big1 = -2147450882_;
9273    big1 := -2147483650_; big1 -:=      -32767_; ok := ok and big1 = -2147450883_;
9274    big1 := -2147483650_; big1 -:=          -2_; ok := ok and big1 = -2147483648_;
9275    big1 := -2147483650_; big1 -:=          -1_; ok := ok and big1 = -2147483649_;
9276    big1 := -2147483650_; big1 -:=           0_; ok := ok and big1 = -2147483650_;
9277    big1 := -2147483650_; big1 -:=           1_; ok := ok and big1 = -2147483651_;
9278    big1 := -2147483650_; big1 -:=           2_; ok := ok and big1 = -2147483652_;
9279    big1 := -2147483650_; big1 -:=       32766_; ok := ok and big1 = -2147516416_;
9280    big1 := -2147483650_; big1 -:=       32767_; ok := ok and big1 = -2147516417_;
9281    big1 := -2147483650_; big1 -:=       32768_; ok := ok and big1 = -2147516418_;
9282    big1 := -2147483650_; big1 -:=       32769_; ok := ok and big1 = -2147516419_;
9283    big1 := -2147483650_; big1 -:=  2147483646_; ok := ok and big1 = -4294967296_;
9284    big1 := -2147483650_; big1 -:=  2147483647_; ok := ok and big1 = -4294967297_;
9285    big1 := -2147483650_; big1 -:=  2147483648_; ok := ok and big1 = -4294967298_;
9286    big1 := -2147483650_; big1 -:=  2147483649_; ok := ok and big1 = -4294967299_;
9287    big1 := -2147483649_; big1 -:= -2147483650_; ok := ok and big1 =           1_;
9288    big1 := -2147483649_; big1 -:= -2147483649_; ok := ok and big1 =           0_;
9289    big1 := -2147483649_; big1 -:= -2147483648_; ok := ok and big1 =          -1_;
9290    big1 := -2147483649_; big1 -:= -2147483647_; ok := ok and big1 =          -2_;
9291    big1 := -2147483649_; big1 -:=      -32770_; ok := ok and big1 = -2147450879_;
9292    big1 := -2147483649_; big1 -:=      -32769_; ok := ok and big1 = -2147450880_;
9293    big1 := -2147483649_; big1 -:=      -32768_; ok := ok and big1 = -2147450881_;
9294    big1 := -2147483649_; big1 -:=      -32767_; ok := ok and big1 = -2147450882_;
9295    big1 := -2147483649_; big1 -:=          -2_; ok := ok and big1 = -2147483647_;
9296    big1 := -2147483649_; big1 -:=          -1_; ok := ok and big1 = -2147483648_;
9297    big1 := -2147483649_; big1 -:=           0_; ok := ok and big1 = -2147483649_;
9298    big1 := -2147483649_; big1 -:=           1_; ok := ok and big1 = -2147483650_;
9299    big1 := -2147483649_; big1 -:=           2_; ok := ok and big1 = -2147483651_;
9300    big1 := -2147483649_; big1 -:=       32766_; ok := ok and big1 = -2147516415_;
9301    big1 := -2147483649_; big1 -:=       32767_; ok := ok and big1 = -2147516416_;
9302    big1 := -2147483649_; big1 -:=       32768_; ok := ok and big1 = -2147516417_;
9303    big1 := -2147483649_; big1 -:=       32769_; ok := ok and big1 = -2147516418_;
9304    big1 := -2147483649_; big1 -:=  2147483646_; ok := ok and big1 = -4294967295_;
9305    big1 := -2147483649_; big1 -:=  2147483647_; ok := ok and big1 = -4294967296_;
9306    big1 := -2147483649_; big1 -:=  2147483648_; ok := ok and big1 = -4294967297_;
9307    big1 := -2147483649_; big1 -:=  2147483649_; ok := ok and big1 = -4294967298_;
9308    big1 := -2147483648_; big1 -:= -2147483650_; ok := ok and big1 =           2_;
9309    big1 := -2147483648_; big1 -:= -2147483649_; ok := ok and big1 =           1_;
9310    big1 := -2147483648_; big1 -:= -2147483648_; ok := ok and big1 =           0_;
9311    big1 := -2147483648_; big1 -:= -2147483647_; ok := ok and big1 =          -1_;
9312    big1 := -2147483648_; big1 -:=      -32770_; ok := ok and big1 = -2147450878_;
9313    big1 := -2147483648_; big1 -:=      -32769_; ok := ok and big1 = -2147450879_;
9314    big1 := -2147483648_; big1 -:=      -32768_; ok := ok and big1 = -2147450880_;
9315    big1 := -2147483648_; big1 -:=      -32767_; ok := ok and big1 = -2147450881_;
9316    big1 := -2147483648_; big1 -:=          -2_; ok := ok and big1 = -2147483646_;
9317    big1 := -2147483648_; big1 -:=          -1_; ok := ok and big1 = -2147483647_;
9318    big1 := -2147483648_; big1 -:=           0_; ok := ok and big1 = -2147483648_;
9319    big1 := -2147483648_; big1 -:=           1_; ok := ok and big1 = -2147483649_;
9320    big1 := -2147483648_; big1 -:=           2_; ok := ok and big1 = -2147483650_;
9321    big1 := -2147483648_; big1 -:=       32766_; ok := ok and big1 = -2147516414_;
9322    big1 := -2147483648_; big1 -:=       32767_; ok := ok and big1 = -2147516415_;
9323    big1 := -2147483648_; big1 -:=       32768_; ok := ok and big1 = -2147516416_;
9324    big1 := -2147483648_; big1 -:=       32769_; ok := ok and big1 = -2147516417_;
9325    big1 := -2147483648_; big1 -:=  2147483646_; ok := ok and big1 = -4294967294_;
9326    big1 := -2147483648_; big1 -:=  2147483647_; ok := ok and big1 = -4294967295_;
9327    big1 := -2147483648_; big1 -:=  2147483648_; ok := ok and big1 = -4294967296_;
9328    big1 := -2147483648_; big1 -:=  2147483649_; ok := ok and big1 = -4294967297_;
9329    big1 := -2147483647_; big1 -:= -2147483650_; ok := ok and big1 =           3_;
9330    big1 := -2147483647_; big1 -:= -2147483649_; ok := ok and big1 =           2_;
9331    big1 := -2147483647_; big1 -:= -2147483648_; ok := ok and big1 =           1_;
9332    big1 := -2147483647_; big1 -:= -2147483647_; ok := ok and big1 =           0_;
9333    big1 := -2147483647_; big1 -:=      -32770_; ok := ok and big1 = -2147450877_;
9334    big1 := -2147483647_; big1 -:=      -32769_; ok := ok and big1 = -2147450878_;
9335    big1 := -2147483647_; big1 -:=      -32768_; ok := ok and big1 = -2147450879_;
9336    big1 := -2147483647_; big1 -:=      -32767_; ok := ok and big1 = -2147450880_;
9337    big1 := -2147483647_; big1 -:=          -2_; ok := ok and big1 = -2147483645_;
9338    big1 := -2147483647_; big1 -:=          -1_; ok := ok and big1 = -2147483646_;
9339    big1 := -2147483647_; big1 -:=           0_; ok := ok and big1 = -2147483647_;
9340    big1 := -2147483647_; big1 -:=           1_; ok := ok and big1 = -2147483648_;
9341    big1 := -2147483647_; big1 -:=           2_; ok := ok and big1 = -2147483649_;
9342    big1 := -2147483647_; big1 -:=       32766_; ok := ok and big1 = -2147516413_;
9343    big1 := -2147483647_; big1 -:=       32767_; ok := ok and big1 = -2147516414_;
9344    big1 := -2147483647_; big1 -:=       32768_; ok := ok and big1 = -2147516415_;
9345    big1 := -2147483647_; big1 -:=       32769_; ok := ok and big1 = -2147516416_;
9346    big1 := -2147483647_; big1 -:=  2147483646_; ok := ok and big1 = -4294967293_;
9347    big1 := -2147483647_; big1 -:=  2147483647_; ok := ok and big1 = -4294967294_;
9348    big1 := -2147483647_; big1 -:=  2147483648_; ok := ok and big1 = -4294967295_;
9349    big1 := -2147483647_; big1 -:=  2147483649_; ok := ok and big1 = -4294967296_;
9350    big1 :=      -32770_; big1 -:= -2147483650_; ok := ok and big1 =  2147450880_;
9351    big1 :=      -32770_; big1 -:= -2147483649_; ok := ok and big1 =  2147450879_;
9352    big1 :=      -32770_; big1 -:= -2147483648_; ok := ok and big1 =  2147450878_;
9353    big1 :=      -32770_; big1 -:= -2147483647_; ok := ok and big1 =  2147450877_;
9354    big1 :=      -32770_; big1 -:=      -32770_; ok := ok and big1 =           0_;
9355    big1 :=      -32770_; big1 -:=      -32769_; ok := ok and big1 =          -1_;
9356    big1 :=      -32770_; big1 -:=      -32768_; ok := ok and big1 =          -2_;
9357    big1 :=      -32770_; big1 -:=      -32767_; ok := ok and big1 =          -3_;
9358    big1 :=      -32770_; big1 -:=          -2_; ok := ok and big1 =      -32768_;
9359    big1 :=      -32770_; big1 -:=          -1_; ok := ok and big1 =      -32769_;
9360    big1 :=      -32770_; big1 -:=           0_; ok := ok and big1 =      -32770_;
9361    big1 :=      -32770_; big1 -:=           1_; ok := ok and big1 =      -32771_;
9362    big1 :=      -32770_; big1 -:=           2_; ok := ok and big1 =      -32772_;
9363    big1 :=      -32770_; big1 -:=       32766_; ok := ok and big1 =      -65536_;
9364    big1 :=      -32770_; big1 -:=       32767_; ok := ok and big1 =      -65537_;
9365    big1 :=      -32770_; big1 -:=       32768_; ok := ok and big1 =      -65538_;
9366    big1 :=      -32770_; big1 -:=       32769_; ok := ok and big1 =      -65539_;
9367    big1 :=      -32770_; big1 -:=  2147483646_; ok := ok and big1 = -2147516416_;
9368    big1 :=      -32770_; big1 -:=  2147483647_; ok := ok and big1 = -2147516417_;
9369    big1 :=      -32770_; big1 -:=  2147483648_; ok := ok and big1 = -2147516418_;
9370    big1 :=      -32770_; big1 -:=  2147483649_; ok := ok and big1 = -2147516419_;
9371    big1 :=      -32769_; big1 -:= -2147483650_; ok := ok and big1 =  2147450881_;
9372    big1 :=      -32769_; big1 -:= -2147483649_; ok := ok and big1 =  2147450880_;
9373    big1 :=      -32769_; big1 -:= -2147483648_; ok := ok and big1 =  2147450879_;
9374    big1 :=      -32769_; big1 -:= -2147483647_; ok := ok and big1 =  2147450878_;
9375    big1 :=      -32769_; big1 -:=      -32770_; ok := ok and big1 =           1_;
9376    big1 :=      -32769_; big1 -:=      -32769_; ok := ok and big1 =           0_;
9377    big1 :=      -32769_; big1 -:=      -32768_; ok := ok and big1 =          -1_;
9378    big1 :=      -32769_; big1 -:=      -32767_; ok := ok and big1 =          -2_;
9379    big1 :=      -32769_; big1 -:=          -2_; ok := ok and big1 =      -32767_;
9380    big1 :=      -32769_; big1 -:=          -1_; ok := ok and big1 =      -32768_;
9381    big1 :=      -32769_; big1 -:=           0_; ok := ok and big1 =      -32769_;
9382    big1 :=      -32769_; big1 -:=           1_; ok := ok and big1 =      -32770_;
9383    big1 :=      -32769_; big1 -:=           2_; ok := ok and big1 =      -32771_;
9384    big1 :=      -32769_; big1 -:=       32766_; ok := ok and big1 =      -65535_;
9385    big1 :=      -32769_; big1 -:=       32767_; ok := ok and big1 =      -65536_;
9386    big1 :=      -32769_; big1 -:=       32768_; ok := ok and big1 =      -65537_;
9387    big1 :=      -32769_; big1 -:=       32769_; ok := ok and big1 =      -65538_;
9388    big1 :=      -32769_; big1 -:=  2147483646_; ok := ok and big1 = -2147516415_;
9389    big1 :=      -32769_; big1 -:=  2147483647_; ok := ok and big1 = -2147516416_;
9390    big1 :=      -32769_; big1 -:=  2147483648_; ok := ok and big1 = -2147516417_;
9391    big1 :=      -32769_; big1 -:=  2147483649_; ok := ok and big1 = -2147516418_;
9392    big1 :=      -32768_; big1 -:= -2147483650_; ok := ok and big1 =  2147450882_;
9393    big1 :=      -32768_; big1 -:= -2147483649_; ok := ok and big1 =  2147450881_;
9394    big1 :=      -32768_; big1 -:= -2147483648_; ok := ok and big1 =  2147450880_;
9395    big1 :=      -32768_; big1 -:= -2147483647_; ok := ok and big1 =  2147450879_;
9396    big1 :=      -32768_; big1 -:=      -32770_; ok := ok and big1 =           2_;
9397    big1 :=      -32768_; big1 -:=      -32769_; ok := ok and big1 =           1_;
9398    big1 :=      -32768_; big1 -:=      -32768_; ok := ok and big1 =           0_;
9399    big1 :=      -32768_; big1 -:=      -32767_; ok := ok and big1 =          -1_;
9400    big1 :=      -32768_; big1 -:=          -2_; ok := ok and big1 =      -32766_;
9401    big1 :=      -32768_; big1 -:=          -1_; ok := ok and big1 =      -32767_;
9402    big1 :=      -32768_; big1 -:=           0_; ok := ok and big1 =      -32768_;
9403    big1 :=      -32768_; big1 -:=           1_; ok := ok and big1 =      -32769_;
9404    big1 :=      -32768_; big1 -:=           2_; ok := ok and big1 =      -32770_;
9405    big1 :=      -32768_; big1 -:=       32766_; ok := ok and big1 =      -65534_;
9406    big1 :=      -32768_; big1 -:=       32767_; ok := ok and big1 =      -65535_;
9407    big1 :=      -32768_; big1 -:=       32768_; ok := ok and big1 =      -65536_;
9408    big1 :=      -32768_; big1 -:=       32769_; ok := ok and big1 =      -65537_;
9409    big1 :=      -32768_; big1 -:=  2147483646_; ok := ok and big1 = -2147516414_;
9410    big1 :=      -32768_; big1 -:=  2147483647_; ok := ok and big1 = -2147516415_;
9411    big1 :=      -32768_; big1 -:=  2147483648_; ok := ok and big1 = -2147516416_;
9412    big1 :=      -32768_; big1 -:=  2147483649_; ok := ok and big1 = -2147516417_;
9413    big1 :=      -32767_; big1 -:= -2147483650_; ok := ok and big1 =  2147450883_;
9414    big1 :=      -32767_; big1 -:= -2147483649_; ok := ok and big1 =  2147450882_;
9415    big1 :=      -32767_; big1 -:= -2147483648_; ok := ok and big1 =  2147450881_;
9416    big1 :=      -32767_; big1 -:= -2147483647_; ok := ok and big1 =  2147450880_;
9417    big1 :=      -32767_; big1 -:=      -32770_; ok := ok and big1 =           3_;
9418    big1 :=      -32767_; big1 -:=      -32769_; ok := ok and big1 =           2_;
9419    big1 :=      -32767_; big1 -:=      -32768_; ok := ok and big1 =           1_;
9420    big1 :=      -32767_; big1 -:=      -32767_; ok := ok and big1 =           0_;
9421    big1 :=      -32767_; big1 -:=          -2_; ok := ok and big1 =      -32765_;
9422    big1 :=      -32767_; big1 -:=          -1_; ok := ok and big1 =      -32766_;
9423    big1 :=      -32767_; big1 -:=           0_; ok := ok and big1 =      -32767_;
9424    big1 :=      -32767_; big1 -:=           1_; ok := ok and big1 =      -32768_;
9425    big1 :=      -32767_; big1 -:=           2_; ok := ok and big1 =      -32769_;
9426    big1 :=      -32767_; big1 -:=       32766_; ok := ok and big1 =      -65533_;
9427    big1 :=      -32767_; big1 -:=       32767_; ok := ok and big1 =      -65534_;
9428    big1 :=      -32767_; big1 -:=       32768_; ok := ok and big1 =      -65535_;
9429    big1 :=      -32767_; big1 -:=       32769_; ok := ok and big1 =      -65536_;
9430    big1 :=      -32767_; big1 -:=  2147483646_; ok := ok and big1 = -2147516413_;
9431    big1 :=      -32767_; big1 -:=  2147483647_; ok := ok and big1 = -2147516414_;
9432    big1 :=      -32767_; big1 -:=  2147483648_; ok := ok and big1 = -2147516415_;
9433    big1 :=      -32767_; big1 -:=  2147483649_; ok := ok and big1 = -2147516416_;
9434    big1 :=          -2_; big1 -:= -2147483650_; ok := ok and big1 =  2147483648_;
9435    big1 :=          -2_; big1 -:= -2147483649_; ok := ok and big1 =  2147483647_;
9436    big1 :=          -2_; big1 -:= -2147483648_; ok := ok and big1 =  2147483646_;
9437    big1 :=          -2_; big1 -:= -2147483647_; ok := ok and big1 =  2147483645_;
9438    big1 :=          -2_; big1 -:=      -32770_; ok := ok and big1 =       32768_;
9439    big1 :=          -2_; big1 -:=      -32769_; ok := ok and big1 =       32767_;
9440    big1 :=          -2_; big1 -:=      -32768_; ok := ok and big1 =       32766_;
9441    big1 :=          -2_; big1 -:=      -32767_; ok := ok and big1 =       32765_;
9442    big1 :=          -2_; big1 -:=          -2_; ok := ok and big1 =           0_;
9443    big1 :=          -2_; big1 -:=          -1_; ok := ok and big1 =          -1_;
9444    big1 :=          -2_; big1 -:=           0_; ok := ok and big1 =          -2_;
9445    big1 :=          -2_; big1 -:=           1_; ok := ok and big1 =          -3_;
9446    big1 :=          -2_; big1 -:=           2_; ok := ok and big1 =          -4_;
9447    big1 :=          -2_; big1 -:=       32766_; ok := ok and big1 =      -32768_;
9448    big1 :=          -2_; big1 -:=       32767_; ok := ok and big1 =      -32769_;
9449    big1 :=          -2_; big1 -:=       32768_; ok := ok and big1 =      -32770_;
9450    big1 :=          -2_; big1 -:=       32769_; ok := ok and big1 =      -32771_;
9451    big1 :=          -2_; big1 -:=  2147483646_; ok := ok and big1 = -2147483648_;
9452    big1 :=          -2_; big1 -:=  2147483647_; ok := ok and big1 = -2147483649_;
9453    big1 :=          -2_; big1 -:=  2147483648_; ok := ok and big1 = -2147483650_;
9454    big1 :=          -2_; big1 -:=  2147483649_; ok := ok and big1 = -2147483651_;
9455    big1 :=          -1_; big1 -:= -2147483650_; ok := ok and big1 =  2147483649_;
9456    big1 :=          -1_; big1 -:= -2147483649_; ok := ok and big1 =  2147483648_;
9457    big1 :=          -1_; big1 -:= -2147483648_; ok := ok and big1 =  2147483647_;
9458    big1 :=          -1_; big1 -:= -2147483647_; ok := ok and big1 =  2147483646_;
9459    big1 :=          -1_; big1 -:=      -32770_; ok := ok and big1 =       32769_;
9460    big1 :=          -1_; big1 -:=      -32769_; ok := ok and big1 =       32768_;
9461    big1 :=          -1_; big1 -:=      -32768_; ok := ok and big1 =       32767_;
9462    big1 :=          -1_; big1 -:=      -32767_; ok := ok and big1 =       32766_;
9463    big1 :=          -1_; big1 -:=          -2_; ok := ok and big1 =           1_;
9464    big1 :=          -1_; big1 -:=          -1_; ok := ok and big1 =           0_;
9465    big1 :=          -1_; big1 -:=           0_; ok := ok and big1 =          -1_;
9466    big1 :=          -1_; big1 -:=           1_; ok := ok and big1 =          -2_;
9467    big1 :=          -1_; big1 -:=           2_; ok := ok and big1 =          -3_;
9468    big1 :=          -1_; big1 -:=       32766_; ok := ok and big1 =      -32767_;
9469    big1 :=          -1_; big1 -:=       32767_; ok := ok and big1 =      -32768_;
9470    big1 :=          -1_; big1 -:=       32768_; ok := ok and big1 =      -32769_;
9471    big1 :=          -1_; big1 -:=       32769_; ok := ok and big1 =      -32770_;
9472    big1 :=          -1_; big1 -:=  2147483646_; ok := ok and big1 = -2147483647_;
9473    big1 :=          -1_; big1 -:=  2147483647_; ok := ok and big1 = -2147483648_;
9474    big1 :=          -1_; big1 -:=  2147483648_; ok := ok and big1 = -2147483649_;
9475    big1 :=          -1_; big1 -:=  2147483649_; ok := ok and big1 = -2147483650_;
9476    if not ok then
9477      writeln("Subtraction assignment of bigInteger with literal does not work correct. (1)");
9478    end if;
9479  end func;
9480
9481
9482const func boolean: chkSubtractAssignLiteral2 is func
9483  result
9484    var boolean: ok is TRUE;
9485  local
9486    var bigInteger: big1 is 1_;
9487  begin
9488    big1 :=           0_; big1 -:= -2147483650_; ok := ok and big1 =  2147483650_;
9489    big1 :=           0_; big1 -:= -2147483649_; ok := ok and big1 =  2147483649_;
9490    big1 :=           0_; big1 -:= -2147483648_; ok := ok and big1 =  2147483648_;
9491    big1 :=           0_; big1 -:= -2147483647_; ok := ok and big1 =  2147483647_;
9492    big1 :=           0_; big1 -:=      -32770_; ok := ok and big1 =       32770_;
9493    big1 :=           0_; big1 -:=      -32769_; ok := ok and big1 =       32769_;
9494    big1 :=           0_; big1 -:=      -32768_; ok := ok and big1 =       32768_;
9495    big1 :=           0_; big1 -:=      -32767_; ok := ok and big1 =       32767_;
9496    big1 :=           0_; big1 -:=          -2_; ok := ok and big1 =           2_;
9497    big1 :=           0_; big1 -:=          -1_; ok := ok and big1 =           1_;
9498    big1 :=           0_; big1 -:=           0_; ok := ok and big1 =           0_;
9499    big1 :=           0_; big1 -:=           1_; ok := ok and big1 =          -1_;
9500    big1 :=           0_; big1 -:=           2_; ok := ok and big1 =          -2_;
9501    big1 :=           0_; big1 -:=       32766_; ok := ok and big1 =      -32766_;
9502    big1 :=           0_; big1 -:=       32767_; ok := ok and big1 =      -32767_;
9503    big1 :=           0_; big1 -:=       32768_; ok := ok and big1 =      -32768_;
9504    big1 :=           0_; big1 -:=       32769_; ok := ok and big1 =      -32769_;
9505    big1 :=           0_; big1 -:=  2147483646_; ok := ok and big1 = -2147483646_;
9506    big1 :=           0_; big1 -:=  2147483647_; ok := ok and big1 = -2147483647_;
9507    big1 :=           0_; big1 -:=  2147483648_; ok := ok and big1 = -2147483648_;
9508    big1 :=           0_; big1 -:=  2147483649_; ok := ok and big1 = -2147483649_;
9509    big1 :=           1_; big1 -:= -2147483650_; ok := ok and big1 =  2147483651_;
9510    big1 :=           1_; big1 -:= -2147483649_; ok := ok and big1 =  2147483650_;
9511    big1 :=           1_; big1 -:= -2147483648_; ok := ok and big1 =  2147483649_;
9512    big1 :=           1_; big1 -:= -2147483647_; ok := ok and big1 =  2147483648_;
9513    big1 :=           1_; big1 -:=      -32770_; ok := ok and big1 =       32771_;
9514    big1 :=           1_; big1 -:=      -32769_; ok := ok and big1 =       32770_;
9515    big1 :=           1_; big1 -:=      -32768_; ok := ok and big1 =       32769_;
9516    big1 :=           1_; big1 -:=      -32767_; ok := ok and big1 =       32768_;
9517    big1 :=           1_; big1 -:=          -2_; ok := ok and big1 =           3_;
9518    big1 :=           1_; big1 -:=          -1_; ok := ok and big1 =           2_;
9519    big1 :=           1_; big1 -:=           0_; ok := ok and big1 =           1_;
9520    big1 :=           1_; big1 -:=           1_; ok := ok and big1 =           0_;
9521    big1 :=           1_; big1 -:=           2_; ok := ok and big1 =          -1_;
9522    big1 :=           1_; big1 -:=       32766_; ok := ok and big1 =      -32765_;
9523    big1 :=           1_; big1 -:=       32767_; ok := ok and big1 =      -32766_;
9524    big1 :=           1_; big1 -:=       32768_; ok := ok and big1 =      -32767_;
9525    big1 :=           1_; big1 -:=       32769_; ok := ok and big1 =      -32768_;
9526    big1 :=           1_; big1 -:=  2147483646_; ok := ok and big1 = -2147483645_;
9527    big1 :=           1_; big1 -:=  2147483647_; ok := ok and big1 = -2147483646_;
9528    big1 :=           1_; big1 -:=  2147483648_; ok := ok and big1 = -2147483647_;
9529    big1 :=           1_; big1 -:=  2147483649_; ok := ok and big1 = -2147483648_;
9530    big1 :=           2_; big1 -:= -2147483650_; ok := ok and big1 =  2147483652_;
9531    big1 :=           2_; big1 -:= -2147483649_; ok := ok and big1 =  2147483651_;
9532    big1 :=           2_; big1 -:= -2147483648_; ok := ok and big1 =  2147483650_;
9533    big1 :=           2_; big1 -:= -2147483647_; ok := ok and big1 =  2147483649_;
9534    big1 :=           2_; big1 -:=      -32770_; ok := ok and big1 =       32772_;
9535    big1 :=           2_; big1 -:=      -32769_; ok := ok and big1 =       32771_;
9536    big1 :=           2_; big1 -:=      -32768_; ok := ok and big1 =       32770_;
9537    big1 :=           2_; big1 -:=      -32767_; ok := ok and big1 =       32769_;
9538    big1 :=           2_; big1 -:=          -2_; ok := ok and big1 =           4_;
9539    big1 :=           2_; big1 -:=          -1_; ok := ok and big1 =           3_;
9540    big1 :=           2_; big1 -:=           0_; ok := ok and big1 =           2_;
9541    big1 :=           2_; big1 -:=           1_; ok := ok and big1 =           1_;
9542    big1 :=           2_; big1 -:=           2_; ok := ok and big1 =           0_;
9543    big1 :=           2_; big1 -:=       32766_; ok := ok and big1 =      -32764_;
9544    big1 :=           2_; big1 -:=       32767_; ok := ok and big1 =      -32765_;
9545    big1 :=           2_; big1 -:=       32768_; ok := ok and big1 =      -32766_;
9546    big1 :=           2_; big1 -:=       32769_; ok := ok and big1 =      -32767_;
9547    big1 :=           2_; big1 -:=  2147483646_; ok := ok and big1 = -2147483644_;
9548    big1 :=           2_; big1 -:=  2147483647_; ok := ok and big1 = -2147483645_;
9549    big1 :=           2_; big1 -:=  2147483648_; ok := ok and big1 = -2147483646_;
9550    big1 :=           2_; big1 -:=  2147483649_; ok := ok and big1 = -2147483647_;
9551    big1 :=       32766_; big1 -:= -2147483650_; ok := ok and big1 =  2147516416_;
9552    big1 :=       32766_; big1 -:= -2147483649_; ok := ok and big1 =  2147516415_;
9553    big1 :=       32766_; big1 -:= -2147483648_; ok := ok and big1 =  2147516414_;
9554    big1 :=       32766_; big1 -:= -2147483647_; ok := ok and big1 =  2147516413_;
9555    big1 :=       32766_; big1 -:=      -32770_; ok := ok and big1 =       65536_;
9556    big1 :=       32766_; big1 -:=      -32769_; ok := ok and big1 =       65535_;
9557    big1 :=       32766_; big1 -:=      -32768_; ok := ok and big1 =       65534_;
9558    big1 :=       32766_; big1 -:=      -32767_; ok := ok and big1 =       65533_;
9559    big1 :=       32766_; big1 -:=          -2_; ok := ok and big1 =       32768_;
9560    big1 :=       32766_; big1 -:=          -1_; ok := ok and big1 =       32767_;
9561    big1 :=       32766_; big1 -:=           0_; ok := ok and big1 =       32766_;
9562    big1 :=       32766_; big1 -:=           1_; ok := ok and big1 =       32765_;
9563    big1 :=       32766_; big1 -:=           2_; ok := ok and big1 =       32764_;
9564    big1 :=       32766_; big1 -:=       32766_; ok := ok and big1 =           0_;
9565    big1 :=       32766_; big1 -:=       32767_; ok := ok and big1 =          -1_;
9566    big1 :=       32766_; big1 -:=       32768_; ok := ok and big1 =          -2_;
9567    big1 :=       32766_; big1 -:=       32769_; ok := ok and big1 =          -3_;
9568    big1 :=       32766_; big1 -:=  2147483646_; ok := ok and big1 = -2147450880_;
9569    big1 :=       32766_; big1 -:=  2147483647_; ok := ok and big1 = -2147450881_;
9570    big1 :=       32766_; big1 -:=  2147483648_; ok := ok and big1 = -2147450882_;
9571    big1 :=       32766_; big1 -:=  2147483649_; ok := ok and big1 = -2147450883_;
9572    big1 :=       32767_; big1 -:= -2147483650_; ok := ok and big1 =  2147516417_;
9573    big1 :=       32767_; big1 -:= -2147483649_; ok := ok and big1 =  2147516416_;
9574    big1 :=       32767_; big1 -:= -2147483648_; ok := ok and big1 =  2147516415_;
9575    big1 :=       32767_; big1 -:= -2147483647_; ok := ok and big1 =  2147516414_;
9576    big1 :=       32767_; big1 -:=      -32770_; ok := ok and big1 =       65537_;
9577    big1 :=       32767_; big1 -:=      -32769_; ok := ok and big1 =       65536_;
9578    big1 :=       32767_; big1 -:=      -32768_; ok := ok and big1 =       65535_;
9579    big1 :=       32767_; big1 -:=      -32767_; ok := ok and big1 =       65534_;
9580    big1 :=       32767_; big1 -:=          -2_; ok := ok and big1 =       32769_;
9581    big1 :=       32767_; big1 -:=          -1_; ok := ok and big1 =       32768_;
9582    big1 :=       32767_; big1 -:=           0_; ok := ok and big1 =       32767_;
9583    big1 :=       32767_; big1 -:=           1_; ok := ok and big1 =       32766_;
9584    big1 :=       32767_; big1 -:=           2_; ok := ok and big1 =       32765_;
9585    big1 :=       32767_; big1 -:=       32766_; ok := ok and big1 =           1_;
9586    big1 :=       32767_; big1 -:=       32767_; ok := ok and big1 =           0_;
9587    big1 :=       32767_; big1 -:=       32768_; ok := ok and big1 =          -1_;
9588    big1 :=       32767_; big1 -:=       32769_; ok := ok and big1 =          -2_;
9589    big1 :=       32767_; big1 -:=  2147483646_; ok := ok and big1 = -2147450879_;
9590    big1 :=       32767_; big1 -:=  2147483647_; ok := ok and big1 = -2147450880_;
9591    big1 :=       32767_; big1 -:=  2147483648_; ok := ok and big1 = -2147450881_;
9592    big1 :=       32767_; big1 -:=  2147483649_; ok := ok and big1 = -2147450882_;
9593    big1 :=       32768_; big1 -:= -2147483650_; ok := ok and big1 =  2147516418_;
9594    big1 :=       32768_; big1 -:= -2147483649_; ok := ok and big1 =  2147516417_;
9595    big1 :=       32768_; big1 -:= -2147483648_; ok := ok and big1 =  2147516416_;
9596    big1 :=       32768_; big1 -:= -2147483647_; ok := ok and big1 =  2147516415_;
9597    big1 :=       32768_; big1 -:=      -32770_; ok := ok and big1 =       65538_;
9598    big1 :=       32768_; big1 -:=      -32769_; ok := ok and big1 =       65537_;
9599    big1 :=       32768_; big1 -:=      -32768_; ok := ok and big1 =       65536_;
9600    big1 :=       32768_; big1 -:=      -32767_; ok := ok and big1 =       65535_;
9601    big1 :=       32768_; big1 -:=          -2_; ok := ok and big1 =       32770_;
9602    big1 :=       32768_; big1 -:=          -1_; ok := ok and big1 =       32769_;
9603    big1 :=       32768_; big1 -:=           0_; ok := ok and big1 =       32768_;
9604    big1 :=       32768_; big1 -:=           1_; ok := ok and big1 =       32767_;
9605    big1 :=       32768_; big1 -:=           2_; ok := ok and big1 =       32766_;
9606    big1 :=       32768_; big1 -:=       32766_; ok := ok and big1 =           2_;
9607    big1 :=       32768_; big1 -:=       32767_; ok := ok and big1 =           1_;
9608    big1 :=       32768_; big1 -:=       32768_; ok := ok and big1 =           0_;
9609    big1 :=       32768_; big1 -:=       32769_; ok := ok and big1 =          -1_;
9610    big1 :=       32768_; big1 -:=  2147483646_; ok := ok and big1 = -2147450878_;
9611    big1 :=       32768_; big1 -:=  2147483647_; ok := ok and big1 = -2147450879_;
9612    big1 :=       32768_; big1 -:=  2147483648_; ok := ok and big1 = -2147450880_;
9613    big1 :=       32768_; big1 -:=  2147483649_; ok := ok and big1 = -2147450881_;
9614    big1 :=       32769_; big1 -:= -2147483650_; ok := ok and big1 =  2147516419_;
9615    big1 :=       32769_; big1 -:= -2147483649_; ok := ok and big1 =  2147516418_;
9616    big1 :=       32769_; big1 -:= -2147483648_; ok := ok and big1 =  2147516417_;
9617    big1 :=       32769_; big1 -:= -2147483647_; ok := ok and big1 =  2147516416_;
9618    big1 :=       32769_; big1 -:=      -32770_; ok := ok and big1 =       65539_;
9619    big1 :=       32769_; big1 -:=      -32769_; ok := ok and big1 =       65538_;
9620    big1 :=       32769_; big1 -:=      -32768_; ok := ok and big1 =       65537_;
9621    big1 :=       32769_; big1 -:=      -32767_; ok := ok and big1 =       65536_;
9622    big1 :=       32769_; big1 -:=          -2_; ok := ok and big1 =       32771_;
9623    big1 :=       32769_; big1 -:=          -1_; ok := ok and big1 =       32770_;
9624    big1 :=       32769_; big1 -:=           0_; ok := ok and big1 =       32769_;
9625    big1 :=       32769_; big1 -:=           1_; ok := ok and big1 =       32768_;
9626    big1 :=       32769_; big1 -:=           2_; ok := ok and big1 =       32767_;
9627    big1 :=       32769_; big1 -:=       32766_; ok := ok and big1 =           3_;
9628    big1 :=       32769_; big1 -:=       32767_; ok := ok and big1 =           2_;
9629    big1 :=       32769_; big1 -:=       32768_; ok := ok and big1 =           1_;
9630    big1 :=       32769_; big1 -:=       32769_; ok := ok and big1 =           0_;
9631    big1 :=       32769_; big1 -:=  2147483646_; ok := ok and big1 = -2147450877_;
9632    big1 :=       32769_; big1 -:=  2147483647_; ok := ok and big1 = -2147450878_;
9633    big1 :=       32769_; big1 -:=  2147483648_; ok := ok and big1 = -2147450879_;
9634    big1 :=       32769_; big1 -:=  2147483649_; ok := ok and big1 = -2147450880_;
9635    big1 :=  2147483646_; big1 -:= -2147483650_; ok := ok and big1 =  4294967296_;
9636    big1 :=  2147483646_; big1 -:= -2147483649_; ok := ok and big1 =  4294967295_;
9637    big1 :=  2147483646_; big1 -:= -2147483648_; ok := ok and big1 =  4294967294_;
9638    big1 :=  2147483646_; big1 -:= -2147483647_; ok := ok and big1 =  4294967293_;
9639    big1 :=  2147483646_; big1 -:=      -32770_; ok := ok and big1 =  2147516416_;
9640    big1 :=  2147483646_; big1 -:=      -32769_; ok := ok and big1 =  2147516415_;
9641    big1 :=  2147483646_; big1 -:=      -32768_; ok := ok and big1 =  2147516414_;
9642    big1 :=  2147483646_; big1 -:=      -32767_; ok := ok and big1 =  2147516413_;
9643    big1 :=  2147483646_; big1 -:=          -2_; ok := ok and big1 =  2147483648_;
9644    big1 :=  2147483646_; big1 -:=          -1_; ok := ok and big1 =  2147483647_;
9645    big1 :=  2147483646_; big1 -:=           0_; ok := ok and big1 =  2147483646_;
9646    big1 :=  2147483646_; big1 -:=           1_; ok := ok and big1 =  2147483645_;
9647    big1 :=  2147483646_; big1 -:=           2_; ok := ok and big1 =  2147483644_;
9648    big1 :=  2147483646_; big1 -:=       32766_; ok := ok and big1 =  2147450880_;
9649    big1 :=  2147483646_; big1 -:=       32767_; ok := ok and big1 =  2147450879_;
9650    big1 :=  2147483646_; big1 -:=       32768_; ok := ok and big1 =  2147450878_;
9651    big1 :=  2147483646_; big1 -:=       32769_; ok := ok and big1 =  2147450877_;
9652    big1 :=  2147483646_; big1 -:=  2147483646_; ok := ok and big1 =           0_;
9653    big1 :=  2147483646_; big1 -:=  2147483647_; ok := ok and big1 =          -1_;
9654    big1 :=  2147483646_; big1 -:=  2147483648_; ok := ok and big1 =          -2_;
9655    big1 :=  2147483646_; big1 -:=  2147483649_; ok := ok and big1 =          -3_;
9656    big1 :=  2147483647_; big1 -:= -2147483650_; ok := ok and big1 =  4294967297_;
9657    big1 :=  2147483647_; big1 -:= -2147483649_; ok := ok and big1 =  4294967296_;
9658    big1 :=  2147483647_; big1 -:= -2147483648_; ok := ok and big1 =  4294967295_;
9659    big1 :=  2147483647_; big1 -:= -2147483647_; ok := ok and big1 =  4294967294_;
9660    big1 :=  2147483647_; big1 -:=      -32770_; ok := ok and big1 =  2147516417_;
9661    big1 :=  2147483647_; big1 -:=      -32769_; ok := ok and big1 =  2147516416_;
9662    big1 :=  2147483647_; big1 -:=      -32768_; ok := ok and big1 =  2147516415_;
9663    big1 :=  2147483647_; big1 -:=      -32767_; ok := ok and big1 =  2147516414_;
9664    big1 :=  2147483647_; big1 -:=          -2_; ok := ok and big1 =  2147483649_;
9665    big1 :=  2147483647_; big1 -:=          -1_; ok := ok and big1 =  2147483648_;
9666    big1 :=  2147483647_; big1 -:=           0_; ok := ok and big1 =  2147483647_;
9667    big1 :=  2147483647_; big1 -:=           1_; ok := ok and big1 =  2147483646_;
9668    big1 :=  2147483647_; big1 -:=           2_; ok := ok and big1 =  2147483645_;
9669    big1 :=  2147483647_; big1 -:=       32766_; ok := ok and big1 =  2147450881_;
9670    big1 :=  2147483647_; big1 -:=       32767_; ok := ok and big1 =  2147450880_;
9671    big1 :=  2147483647_; big1 -:=       32768_; ok := ok and big1 =  2147450879_;
9672    big1 :=  2147483647_; big1 -:=       32769_; ok := ok and big1 =  2147450878_;
9673    big1 :=  2147483647_; big1 -:=  2147483646_; ok := ok and big1 =           1_;
9674    big1 :=  2147483647_; big1 -:=  2147483647_; ok := ok and big1 =           0_;
9675    big1 :=  2147483647_; big1 -:=  2147483648_; ok := ok and big1 =          -1_;
9676    big1 :=  2147483647_; big1 -:=  2147483649_; ok := ok and big1 =          -2_;
9677    big1 :=  2147483648_; big1 -:= -2147483650_; ok := ok and big1 =  4294967298_;
9678    big1 :=  2147483648_; big1 -:= -2147483649_; ok := ok and big1 =  4294967297_;
9679    big1 :=  2147483648_; big1 -:= -2147483648_; ok := ok and big1 =  4294967296_;
9680    big1 :=  2147483648_; big1 -:= -2147483647_; ok := ok and big1 =  4294967295_;
9681    big1 :=  2147483648_; big1 -:=      -32770_; ok := ok and big1 =  2147516418_;
9682    big1 :=  2147483648_; big1 -:=      -32769_; ok := ok and big1 =  2147516417_;
9683    big1 :=  2147483648_; big1 -:=      -32768_; ok := ok and big1 =  2147516416_;
9684    big1 :=  2147483648_; big1 -:=      -32767_; ok := ok and big1 =  2147516415_;
9685    big1 :=  2147483648_; big1 -:=          -2_; ok := ok and big1 =  2147483650_;
9686    big1 :=  2147483648_; big1 -:=          -1_; ok := ok and big1 =  2147483649_;
9687    big1 :=  2147483648_; big1 -:=           0_; ok := ok and big1 =  2147483648_;
9688    big1 :=  2147483648_; big1 -:=           1_; ok := ok and big1 =  2147483647_;
9689    big1 :=  2147483648_; big1 -:=           2_; ok := ok and big1 =  2147483646_;
9690    big1 :=  2147483648_; big1 -:=       32766_; ok := ok and big1 =  2147450882_;
9691    big1 :=  2147483648_; big1 -:=       32767_; ok := ok and big1 =  2147450881_;
9692    big1 :=  2147483648_; big1 -:=       32768_; ok := ok and big1 =  2147450880_;
9693    big1 :=  2147483648_; big1 -:=       32769_; ok := ok and big1 =  2147450879_;
9694    big1 :=  2147483648_; big1 -:=  2147483646_; ok := ok and big1 =           2_;
9695    big1 :=  2147483648_; big1 -:=  2147483647_; ok := ok and big1 =           1_;
9696    big1 :=  2147483648_; big1 -:=  2147483648_; ok := ok and big1 =           0_;
9697    big1 :=  2147483648_; big1 -:=  2147483649_; ok := ok and big1 =          -1_;
9698    big1 :=  2147483649_; big1 -:= -2147483650_; ok := ok and big1 =  4294967299_;
9699    big1 :=  2147483649_; big1 -:= -2147483649_; ok := ok and big1 =  4294967298_;
9700    big1 :=  2147483649_; big1 -:= -2147483648_; ok := ok and big1 =  4294967297_;
9701    big1 :=  2147483649_; big1 -:= -2147483647_; ok := ok and big1 =  4294967296_;
9702    big1 :=  2147483649_; big1 -:=      -32770_; ok := ok and big1 =  2147516419_;
9703    big1 :=  2147483649_; big1 -:=      -32769_; ok := ok and big1 =  2147516418_;
9704    big1 :=  2147483649_; big1 -:=      -32768_; ok := ok and big1 =  2147516417_;
9705    big1 :=  2147483649_; big1 -:=      -32767_; ok := ok and big1 =  2147516416_;
9706    big1 :=  2147483649_; big1 -:=          -2_; ok := ok and big1 =  2147483651_;
9707    big1 :=  2147483649_; big1 -:=          -1_; ok := ok and big1 =  2147483650_;
9708    big1 :=  2147483649_; big1 -:=           0_; ok := ok and big1 =  2147483649_;
9709    big1 :=  2147483649_; big1 -:=           1_; ok := ok and big1 =  2147483648_;
9710    big1 :=  2147483649_; big1 -:=           2_; ok := ok and big1 =  2147483647_;
9711    big1 :=  2147483649_; big1 -:=       32766_; ok := ok and big1 =  2147450883_;
9712    big1 :=  2147483649_; big1 -:=       32767_; ok := ok and big1 =  2147450882_;
9713    big1 :=  2147483649_; big1 -:=       32768_; ok := ok and big1 =  2147450881_;
9714    big1 :=  2147483649_; big1 -:=       32769_; ok := ok and big1 =  2147450880_;
9715    big1 :=  2147483649_; big1 -:=  2147483646_; ok := ok and big1 =           3_;
9716    big1 :=  2147483649_; big1 -:=  2147483647_; ok := ok and big1 =           2_;
9717    big1 :=  2147483649_; big1 -:=  2147483648_; ok := ok and big1 =           1_;
9718    big1 :=  2147483649_; big1 -:=  2147483649_; ok := ok and big1 =           0_;
9719    if not ok then
9720      writeln("Subtraction assignment of bigInteger with literal does not work correct. (2)");
9721    end if;
9722  end func;
9723
9724
9725const func boolean: chkSubtractAssignExpression1 is func
9726  result
9727    var boolean: ok is TRUE;
9728  local
9729    var bigInteger: big1 is 1_;
9730  begin
9731    big1 := -2147483650_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =           0_;
9732    big1 := -2147483650_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =          -1_;
9733    big1 := -2147483650_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =          -2_;
9734    big1 := -2147483650_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =          -3_;
9735    big1 := -2147483650_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 = -2147450880_;
9736    big1 := -2147483650_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 = -2147450881_;
9737    big1 := -2147483650_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 = -2147450882_;
9738    big1 := -2147483650_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 = -2147450883_;
9739    big1 := -2147483650_; big1 -:= bigintExpr(         -2_); ok := ok and big1 = -2147483648_;
9740    big1 := -2147483650_; big1 -:= bigintExpr(         -1_); ok := ok and big1 = -2147483649_;
9741    big1 := -2147483650_; big1 -:= bigintExpr(          0_); ok := ok and big1 = -2147483650_;
9742    big1 := -2147483650_; big1 -:= bigintExpr(          1_); ok := ok and big1 = -2147483651_;
9743    big1 := -2147483650_; big1 -:= bigintExpr(          2_); ok := ok and big1 = -2147483652_;
9744    big1 := -2147483650_; big1 -:= bigintExpr(      32766_); ok := ok and big1 = -2147516416_;
9745    big1 := -2147483650_; big1 -:= bigintExpr(      32767_); ok := ok and big1 = -2147516417_;
9746    big1 := -2147483650_; big1 -:= bigintExpr(      32768_); ok := ok and big1 = -2147516418_;
9747    big1 := -2147483650_; big1 -:= bigintExpr(      32769_); ok := ok and big1 = -2147516419_;
9748    big1 := -2147483650_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -4294967296_;
9749    big1 := -2147483650_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -4294967297_;
9750    big1 := -2147483650_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -4294967298_;
9751    big1 := -2147483650_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -4294967299_;
9752    big1 := -2147483649_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =           1_;
9753    big1 := -2147483649_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =           0_;
9754    big1 := -2147483649_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =          -1_;
9755    big1 := -2147483649_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =          -2_;
9756    big1 := -2147483649_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 = -2147450879_;
9757    big1 := -2147483649_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 = -2147450880_;
9758    big1 := -2147483649_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 = -2147450881_;
9759    big1 := -2147483649_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 = -2147450882_;
9760    big1 := -2147483649_; big1 -:= bigintExpr(         -2_); ok := ok and big1 = -2147483647_;
9761    big1 := -2147483649_; big1 -:= bigintExpr(         -1_); ok := ok and big1 = -2147483648_;
9762    big1 := -2147483649_; big1 -:= bigintExpr(          0_); ok := ok and big1 = -2147483649_;
9763    big1 := -2147483649_; big1 -:= bigintExpr(          1_); ok := ok and big1 = -2147483650_;
9764    big1 := -2147483649_; big1 -:= bigintExpr(          2_); ok := ok and big1 = -2147483651_;
9765    big1 := -2147483649_; big1 -:= bigintExpr(      32766_); ok := ok and big1 = -2147516415_;
9766    big1 := -2147483649_; big1 -:= bigintExpr(      32767_); ok := ok and big1 = -2147516416_;
9767    big1 := -2147483649_; big1 -:= bigintExpr(      32768_); ok := ok and big1 = -2147516417_;
9768    big1 := -2147483649_; big1 -:= bigintExpr(      32769_); ok := ok and big1 = -2147516418_;
9769    big1 := -2147483649_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -4294967295_;
9770    big1 := -2147483649_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -4294967296_;
9771    big1 := -2147483649_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -4294967297_;
9772    big1 := -2147483649_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -4294967298_;
9773    big1 := -2147483648_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =           2_;
9774    big1 := -2147483648_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =           1_;
9775    big1 := -2147483648_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =           0_;
9776    big1 := -2147483648_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =          -1_;
9777    big1 := -2147483648_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 = -2147450878_;
9778    big1 := -2147483648_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 = -2147450879_;
9779    big1 := -2147483648_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 = -2147450880_;
9780    big1 := -2147483648_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 = -2147450881_;
9781    big1 := -2147483648_; big1 -:= bigintExpr(         -2_); ok := ok and big1 = -2147483646_;
9782    big1 := -2147483648_; big1 -:= bigintExpr(         -1_); ok := ok and big1 = -2147483647_;
9783    big1 := -2147483648_; big1 -:= bigintExpr(          0_); ok := ok and big1 = -2147483648_;
9784    big1 := -2147483648_; big1 -:= bigintExpr(          1_); ok := ok and big1 = -2147483649_;
9785    big1 := -2147483648_; big1 -:= bigintExpr(          2_); ok := ok and big1 = -2147483650_;
9786    big1 := -2147483648_; big1 -:= bigintExpr(      32766_); ok := ok and big1 = -2147516414_;
9787    big1 := -2147483648_; big1 -:= bigintExpr(      32767_); ok := ok and big1 = -2147516415_;
9788    big1 := -2147483648_; big1 -:= bigintExpr(      32768_); ok := ok and big1 = -2147516416_;
9789    big1 := -2147483648_; big1 -:= bigintExpr(      32769_); ok := ok and big1 = -2147516417_;
9790    big1 := -2147483648_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -4294967294_;
9791    big1 := -2147483648_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -4294967295_;
9792    big1 := -2147483648_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -4294967296_;
9793    big1 := -2147483648_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -4294967297_;
9794    big1 := -2147483647_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =           3_;
9795    big1 := -2147483647_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =           2_;
9796    big1 := -2147483647_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =           1_;
9797    big1 := -2147483647_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =           0_;
9798    big1 := -2147483647_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 = -2147450877_;
9799    big1 := -2147483647_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 = -2147450878_;
9800    big1 := -2147483647_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 = -2147450879_;
9801    big1 := -2147483647_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 = -2147450880_;
9802    big1 := -2147483647_; big1 -:= bigintExpr(         -2_); ok := ok and big1 = -2147483645_;
9803    big1 := -2147483647_; big1 -:= bigintExpr(         -1_); ok := ok and big1 = -2147483646_;
9804    big1 := -2147483647_; big1 -:= bigintExpr(          0_); ok := ok and big1 = -2147483647_;
9805    big1 := -2147483647_; big1 -:= bigintExpr(          1_); ok := ok and big1 = -2147483648_;
9806    big1 := -2147483647_; big1 -:= bigintExpr(          2_); ok := ok and big1 = -2147483649_;
9807    big1 := -2147483647_; big1 -:= bigintExpr(      32766_); ok := ok and big1 = -2147516413_;
9808    big1 := -2147483647_; big1 -:= bigintExpr(      32767_); ok := ok and big1 = -2147516414_;
9809    big1 := -2147483647_; big1 -:= bigintExpr(      32768_); ok := ok and big1 = -2147516415_;
9810    big1 := -2147483647_; big1 -:= bigintExpr(      32769_); ok := ok and big1 = -2147516416_;
9811    big1 := -2147483647_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -4294967293_;
9812    big1 := -2147483647_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -4294967294_;
9813    big1 := -2147483647_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -4294967295_;
9814    big1 := -2147483647_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -4294967296_;
9815    big1 :=      -32770_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147450880_;
9816    big1 :=      -32770_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147450879_;
9817    big1 :=      -32770_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147450878_;
9818    big1 :=      -32770_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147450877_;
9819    big1 :=      -32770_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =           0_;
9820    big1 :=      -32770_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =          -1_;
9821    big1 :=      -32770_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =          -2_;
9822    big1 :=      -32770_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =          -3_;
9823    big1 :=      -32770_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =      -32768_;
9824    big1 :=      -32770_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =      -32769_;
9825    big1 :=      -32770_; big1 -:= bigintExpr(          0_); ok := ok and big1 =      -32770_;
9826    big1 :=      -32770_; big1 -:= bigintExpr(          1_); ok := ok and big1 =      -32771_;
9827    big1 :=      -32770_; big1 -:= bigintExpr(          2_); ok := ok and big1 =      -32772_;
9828    big1 :=      -32770_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -65536_;
9829    big1 :=      -32770_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -65537_;
9830    big1 :=      -32770_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -65538_;
9831    big1 :=      -32770_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -65539_;
9832    big1 :=      -32770_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147516416_;
9833    big1 :=      -32770_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147516417_;
9834    big1 :=      -32770_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147516418_;
9835    big1 :=      -32770_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147516419_;
9836    big1 :=      -32769_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147450881_;
9837    big1 :=      -32769_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147450880_;
9838    big1 :=      -32769_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147450879_;
9839    big1 :=      -32769_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147450878_;
9840    big1 :=      -32769_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =           1_;
9841    big1 :=      -32769_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =           0_;
9842    big1 :=      -32769_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =          -1_;
9843    big1 :=      -32769_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =          -2_;
9844    big1 :=      -32769_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =      -32767_;
9845    big1 :=      -32769_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =      -32768_;
9846    big1 :=      -32769_; big1 -:= bigintExpr(          0_); ok := ok and big1 =      -32769_;
9847    big1 :=      -32769_; big1 -:= bigintExpr(          1_); ok := ok and big1 =      -32770_;
9848    big1 :=      -32769_; big1 -:= bigintExpr(          2_); ok := ok and big1 =      -32771_;
9849    big1 :=      -32769_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -65535_;
9850    big1 :=      -32769_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -65536_;
9851    big1 :=      -32769_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -65537_;
9852    big1 :=      -32769_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -65538_;
9853    big1 :=      -32769_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147516415_;
9854    big1 :=      -32769_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147516416_;
9855    big1 :=      -32769_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147516417_;
9856    big1 :=      -32769_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147516418_;
9857    big1 :=      -32768_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147450882_;
9858    big1 :=      -32768_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147450881_;
9859    big1 :=      -32768_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147450880_;
9860    big1 :=      -32768_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147450879_;
9861    big1 :=      -32768_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =           2_;
9862    big1 :=      -32768_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =           1_;
9863    big1 :=      -32768_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =           0_;
9864    big1 :=      -32768_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =          -1_;
9865    big1 :=      -32768_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =      -32766_;
9866    big1 :=      -32768_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =      -32767_;
9867    big1 :=      -32768_; big1 -:= bigintExpr(          0_); ok := ok and big1 =      -32768_;
9868    big1 :=      -32768_; big1 -:= bigintExpr(          1_); ok := ok and big1 =      -32769_;
9869    big1 :=      -32768_; big1 -:= bigintExpr(          2_); ok := ok and big1 =      -32770_;
9870    big1 :=      -32768_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -65534_;
9871    big1 :=      -32768_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -65535_;
9872    big1 :=      -32768_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -65536_;
9873    big1 :=      -32768_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -65537_;
9874    big1 :=      -32768_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147516414_;
9875    big1 :=      -32768_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147516415_;
9876    big1 :=      -32768_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147516416_;
9877    big1 :=      -32768_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147516417_;
9878    big1 :=      -32767_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147450883_;
9879    big1 :=      -32767_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147450882_;
9880    big1 :=      -32767_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147450881_;
9881    big1 :=      -32767_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147450880_;
9882    big1 :=      -32767_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =           3_;
9883    big1 :=      -32767_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =           2_;
9884    big1 :=      -32767_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =           1_;
9885    big1 :=      -32767_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =           0_;
9886    big1 :=      -32767_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =      -32765_;
9887    big1 :=      -32767_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =      -32766_;
9888    big1 :=      -32767_; big1 -:= bigintExpr(          0_); ok := ok and big1 =      -32767_;
9889    big1 :=      -32767_; big1 -:= bigintExpr(          1_); ok := ok and big1 =      -32768_;
9890    big1 :=      -32767_; big1 -:= bigintExpr(          2_); ok := ok and big1 =      -32769_;
9891    big1 :=      -32767_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -65533_;
9892    big1 :=      -32767_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -65534_;
9893    big1 :=      -32767_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -65535_;
9894    big1 :=      -32767_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -65536_;
9895    big1 :=      -32767_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147516413_;
9896    big1 :=      -32767_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147516414_;
9897    big1 :=      -32767_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147516415_;
9898    big1 :=      -32767_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147516416_;
9899    big1 :=          -2_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147483648_;
9900    big1 :=          -2_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147483647_;
9901    big1 :=          -2_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147483646_;
9902    big1 :=          -2_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147483645_;
9903    big1 :=          -2_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       32768_;
9904    big1 :=          -2_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       32767_;
9905    big1 :=          -2_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       32766_;
9906    big1 :=          -2_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       32765_;
9907    big1 :=          -2_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =           0_;
9908    big1 :=          -2_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =          -1_;
9909    big1 :=          -2_; big1 -:= bigintExpr(          0_); ok := ok and big1 =          -2_;
9910    big1 :=          -2_; big1 -:= bigintExpr(          1_); ok := ok and big1 =          -3_;
9911    big1 :=          -2_; big1 -:= bigintExpr(          2_); ok := ok and big1 =          -4_;
9912    big1 :=          -2_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -32768_;
9913    big1 :=          -2_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -32769_;
9914    big1 :=          -2_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -32770_;
9915    big1 :=          -2_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -32771_;
9916    big1 :=          -2_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147483648_;
9917    big1 :=          -2_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147483649_;
9918    big1 :=          -2_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147483650_;
9919    big1 :=          -2_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147483651_;
9920    big1 :=          -1_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147483649_;
9921    big1 :=          -1_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147483648_;
9922    big1 :=          -1_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147483647_;
9923    big1 :=          -1_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147483646_;
9924    big1 :=          -1_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       32769_;
9925    big1 :=          -1_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       32768_;
9926    big1 :=          -1_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       32767_;
9927    big1 :=          -1_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       32766_;
9928    big1 :=          -1_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =           1_;
9929    big1 :=          -1_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =           0_;
9930    big1 :=          -1_; big1 -:= bigintExpr(          0_); ok := ok and big1 =          -1_;
9931    big1 :=          -1_; big1 -:= bigintExpr(          1_); ok := ok and big1 =          -2_;
9932    big1 :=          -1_; big1 -:= bigintExpr(          2_); ok := ok and big1 =          -3_;
9933    big1 :=          -1_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -32767_;
9934    big1 :=          -1_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -32768_;
9935    big1 :=          -1_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -32769_;
9936    big1 :=          -1_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -32770_;
9937    big1 :=          -1_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147483647_;
9938    big1 :=          -1_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147483648_;
9939    big1 :=          -1_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147483649_;
9940    big1 :=          -1_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147483650_;
9941    if not ok then
9942      writeln("Subtraction assignment of bigInteger with expression does not work correct. (1)");
9943    end if;
9944  end func;
9945
9946
9947const func boolean: chkSubtractAssignExpression2 is func
9948  result
9949    var boolean: ok is TRUE;
9950  local
9951    var bigInteger: big1 is 1_;
9952  begin
9953    big1 :=           0_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147483650_;
9954    big1 :=           0_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147483649_;
9955    big1 :=           0_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147483648_;
9956    big1 :=           0_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147483647_;
9957    big1 :=           0_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       32770_;
9958    big1 :=           0_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       32769_;
9959    big1 :=           0_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       32768_;
9960    big1 :=           0_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       32767_;
9961    big1 :=           0_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =           2_;
9962    big1 :=           0_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =           1_;
9963    big1 :=           0_; big1 -:= bigintExpr(          0_); ok := ok and big1 =           0_;
9964    big1 :=           0_; big1 -:= bigintExpr(          1_); ok := ok and big1 =          -1_;
9965    big1 :=           0_; big1 -:= bigintExpr(          2_); ok := ok and big1 =          -2_;
9966    big1 :=           0_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -32766_;
9967    big1 :=           0_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -32767_;
9968    big1 :=           0_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -32768_;
9969    big1 :=           0_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -32769_;
9970    big1 :=           0_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147483646_;
9971    big1 :=           0_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147483647_;
9972    big1 :=           0_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147483648_;
9973    big1 :=           0_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147483649_;
9974    big1 :=           1_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147483651_;
9975    big1 :=           1_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147483650_;
9976    big1 :=           1_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147483649_;
9977    big1 :=           1_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147483648_;
9978    big1 :=           1_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       32771_;
9979    big1 :=           1_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       32770_;
9980    big1 :=           1_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       32769_;
9981    big1 :=           1_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       32768_;
9982    big1 :=           1_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =           3_;
9983    big1 :=           1_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =           2_;
9984    big1 :=           1_; big1 -:= bigintExpr(          0_); ok := ok and big1 =           1_;
9985    big1 :=           1_; big1 -:= bigintExpr(          1_); ok := ok and big1 =           0_;
9986    big1 :=           1_; big1 -:= bigintExpr(          2_); ok := ok and big1 =          -1_;
9987    big1 :=           1_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -32765_;
9988    big1 :=           1_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -32766_;
9989    big1 :=           1_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -32767_;
9990    big1 :=           1_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -32768_;
9991    big1 :=           1_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147483645_;
9992    big1 :=           1_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147483646_;
9993    big1 :=           1_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147483647_;
9994    big1 :=           1_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147483648_;
9995    big1 :=           2_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147483652_;
9996    big1 :=           2_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147483651_;
9997    big1 :=           2_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147483650_;
9998    big1 :=           2_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147483649_;
9999    big1 :=           2_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       32772_;
10000    big1 :=           2_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       32771_;
10001    big1 :=           2_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       32770_;
10002    big1 :=           2_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       32769_;
10003    big1 :=           2_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =           4_;
10004    big1 :=           2_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =           3_;
10005    big1 :=           2_; big1 -:= bigintExpr(          0_); ok := ok and big1 =           2_;
10006    big1 :=           2_; big1 -:= bigintExpr(          1_); ok := ok and big1 =           1_;
10007    big1 :=           2_; big1 -:= bigintExpr(          2_); ok := ok and big1 =           0_;
10008    big1 :=           2_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =      -32764_;
10009    big1 :=           2_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =      -32765_;
10010    big1 :=           2_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =      -32766_;
10011    big1 :=           2_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =      -32767_;
10012    big1 :=           2_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147483644_;
10013    big1 :=           2_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147483645_;
10014    big1 :=           2_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147483646_;
10015    big1 :=           2_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147483647_;
10016    big1 :=       32766_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147516416_;
10017    big1 :=       32766_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147516415_;
10018    big1 :=       32766_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147516414_;
10019    big1 :=       32766_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147516413_;
10020    big1 :=       32766_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       65536_;
10021    big1 :=       32766_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       65535_;
10022    big1 :=       32766_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       65534_;
10023    big1 :=       32766_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       65533_;
10024    big1 :=       32766_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =       32768_;
10025    big1 :=       32766_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =       32767_;
10026    big1 :=       32766_; big1 -:= bigintExpr(          0_); ok := ok and big1 =       32766_;
10027    big1 :=       32766_; big1 -:= bigintExpr(          1_); ok := ok and big1 =       32765_;
10028    big1 :=       32766_; big1 -:= bigintExpr(          2_); ok := ok and big1 =       32764_;
10029    big1 :=       32766_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =           0_;
10030    big1 :=       32766_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =          -1_;
10031    big1 :=       32766_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =          -2_;
10032    big1 :=       32766_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =          -3_;
10033    big1 :=       32766_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147450880_;
10034    big1 :=       32766_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147450881_;
10035    big1 :=       32766_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147450882_;
10036    big1 :=       32766_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147450883_;
10037    big1 :=       32767_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147516417_;
10038    big1 :=       32767_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147516416_;
10039    big1 :=       32767_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147516415_;
10040    big1 :=       32767_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147516414_;
10041    big1 :=       32767_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       65537_;
10042    big1 :=       32767_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       65536_;
10043    big1 :=       32767_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       65535_;
10044    big1 :=       32767_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       65534_;
10045    big1 :=       32767_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =       32769_;
10046    big1 :=       32767_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =       32768_;
10047    big1 :=       32767_; big1 -:= bigintExpr(          0_); ok := ok and big1 =       32767_;
10048    big1 :=       32767_; big1 -:= bigintExpr(          1_); ok := ok and big1 =       32766_;
10049    big1 :=       32767_; big1 -:= bigintExpr(          2_); ok := ok and big1 =       32765_;
10050    big1 :=       32767_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =           1_;
10051    big1 :=       32767_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =           0_;
10052    big1 :=       32767_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =          -1_;
10053    big1 :=       32767_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =          -2_;
10054    big1 :=       32767_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147450879_;
10055    big1 :=       32767_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147450880_;
10056    big1 :=       32767_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147450881_;
10057    big1 :=       32767_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147450882_;
10058    big1 :=       32768_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147516418_;
10059    big1 :=       32768_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147516417_;
10060    big1 :=       32768_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147516416_;
10061    big1 :=       32768_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147516415_;
10062    big1 :=       32768_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       65538_;
10063    big1 :=       32768_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       65537_;
10064    big1 :=       32768_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       65536_;
10065    big1 :=       32768_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       65535_;
10066    big1 :=       32768_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =       32770_;
10067    big1 :=       32768_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =       32769_;
10068    big1 :=       32768_; big1 -:= bigintExpr(          0_); ok := ok and big1 =       32768_;
10069    big1 :=       32768_; big1 -:= bigintExpr(          1_); ok := ok and big1 =       32767_;
10070    big1 :=       32768_; big1 -:= bigintExpr(          2_); ok := ok and big1 =       32766_;
10071    big1 :=       32768_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =           2_;
10072    big1 :=       32768_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =           1_;
10073    big1 :=       32768_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =           0_;
10074    big1 :=       32768_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =          -1_;
10075    big1 :=       32768_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147450878_;
10076    big1 :=       32768_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147450879_;
10077    big1 :=       32768_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147450880_;
10078    big1 :=       32768_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147450881_;
10079    big1 :=       32769_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  2147516419_;
10080    big1 :=       32769_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  2147516418_;
10081    big1 :=       32769_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  2147516417_;
10082    big1 :=       32769_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  2147516416_;
10083    big1 :=       32769_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =       65539_;
10084    big1 :=       32769_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =       65538_;
10085    big1 :=       32769_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =       65537_;
10086    big1 :=       32769_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =       65536_;
10087    big1 :=       32769_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =       32771_;
10088    big1 :=       32769_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =       32770_;
10089    big1 :=       32769_; big1 -:= bigintExpr(          0_); ok := ok and big1 =       32769_;
10090    big1 :=       32769_; big1 -:= bigintExpr(          1_); ok := ok and big1 =       32768_;
10091    big1 :=       32769_; big1 -:= bigintExpr(          2_); ok := ok and big1 =       32767_;
10092    big1 :=       32769_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =           3_;
10093    big1 :=       32769_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =           2_;
10094    big1 :=       32769_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =           1_;
10095    big1 :=       32769_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =           0_;
10096    big1 :=       32769_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 = -2147450877_;
10097    big1 :=       32769_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 = -2147450878_;
10098    big1 :=       32769_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 = -2147450879_;
10099    big1 :=       32769_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 = -2147450880_;
10100    big1 :=  2147483646_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  4294967296_;
10101    big1 :=  2147483646_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  4294967295_;
10102    big1 :=  2147483646_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  4294967294_;
10103    big1 :=  2147483646_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  4294967293_;
10104    big1 :=  2147483646_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =  2147516416_;
10105    big1 :=  2147483646_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =  2147516415_;
10106    big1 :=  2147483646_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =  2147516414_;
10107    big1 :=  2147483646_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =  2147516413_;
10108    big1 :=  2147483646_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =  2147483648_;
10109    big1 :=  2147483646_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =  2147483647_;
10110    big1 :=  2147483646_; big1 -:= bigintExpr(          0_); ok := ok and big1 =  2147483646_;
10111    big1 :=  2147483646_; big1 -:= bigintExpr(          1_); ok := ok and big1 =  2147483645_;
10112    big1 :=  2147483646_; big1 -:= bigintExpr(          2_); ok := ok and big1 =  2147483644_;
10113    big1 :=  2147483646_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =  2147450880_;
10114    big1 :=  2147483646_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =  2147450879_;
10115    big1 :=  2147483646_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =  2147450878_;
10116    big1 :=  2147483646_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =  2147450877_;
10117    big1 :=  2147483646_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 =           0_;
10118    big1 :=  2147483646_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 =          -1_;
10119    big1 :=  2147483646_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 =          -2_;
10120    big1 :=  2147483646_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 =          -3_;
10121    big1 :=  2147483647_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  4294967297_;
10122    big1 :=  2147483647_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  4294967296_;
10123    big1 :=  2147483647_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  4294967295_;
10124    big1 :=  2147483647_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  4294967294_;
10125    big1 :=  2147483647_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =  2147516417_;
10126    big1 :=  2147483647_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =  2147516416_;
10127    big1 :=  2147483647_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =  2147516415_;
10128    big1 :=  2147483647_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =  2147516414_;
10129    big1 :=  2147483647_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =  2147483649_;
10130    big1 :=  2147483647_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =  2147483648_;
10131    big1 :=  2147483647_; big1 -:= bigintExpr(          0_); ok := ok and big1 =  2147483647_;
10132    big1 :=  2147483647_; big1 -:= bigintExpr(          1_); ok := ok and big1 =  2147483646_;
10133    big1 :=  2147483647_; big1 -:= bigintExpr(          2_); ok := ok and big1 =  2147483645_;
10134    big1 :=  2147483647_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =  2147450881_;
10135    big1 :=  2147483647_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =  2147450880_;
10136    big1 :=  2147483647_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =  2147450879_;
10137    big1 :=  2147483647_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =  2147450878_;
10138    big1 :=  2147483647_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 =           1_;
10139    big1 :=  2147483647_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 =           0_;
10140    big1 :=  2147483647_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 =          -1_;
10141    big1 :=  2147483647_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 =          -2_;
10142    big1 :=  2147483648_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  4294967298_;
10143    big1 :=  2147483648_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  4294967297_;
10144    big1 :=  2147483648_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  4294967296_;
10145    big1 :=  2147483648_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  4294967295_;
10146    big1 :=  2147483648_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =  2147516418_;
10147    big1 :=  2147483648_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =  2147516417_;
10148    big1 :=  2147483648_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =  2147516416_;
10149    big1 :=  2147483648_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =  2147516415_;
10150    big1 :=  2147483648_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =  2147483650_;
10151    big1 :=  2147483648_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =  2147483649_;
10152    big1 :=  2147483648_; big1 -:= bigintExpr(          0_); ok := ok and big1 =  2147483648_;
10153    big1 :=  2147483648_; big1 -:= bigintExpr(          1_); ok := ok and big1 =  2147483647_;
10154    big1 :=  2147483648_; big1 -:= bigintExpr(          2_); ok := ok and big1 =  2147483646_;
10155    big1 :=  2147483648_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =  2147450882_;
10156    big1 :=  2147483648_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =  2147450881_;
10157    big1 :=  2147483648_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =  2147450880_;
10158    big1 :=  2147483648_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =  2147450879_;
10159    big1 :=  2147483648_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 =           2_;
10160    big1 :=  2147483648_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 =           1_;
10161    big1 :=  2147483648_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 =           0_;
10162    big1 :=  2147483648_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 =          -1_;
10163    big1 :=  2147483649_; big1 -:= bigintExpr(-2147483650_); ok := ok and big1 =  4294967299_;
10164    big1 :=  2147483649_; big1 -:= bigintExpr(-2147483649_); ok := ok and big1 =  4294967298_;
10165    big1 :=  2147483649_; big1 -:= bigintExpr(-2147483648_); ok := ok and big1 =  4294967297_;
10166    big1 :=  2147483649_; big1 -:= bigintExpr(-2147483647_); ok := ok and big1 =  4294967296_;
10167    big1 :=  2147483649_; big1 -:= bigintExpr(     -32770_); ok := ok and big1 =  2147516419_;
10168    big1 :=  2147483649_; big1 -:= bigintExpr(     -32769_); ok := ok and big1 =  2147516418_;
10169    big1 :=  2147483649_; big1 -:= bigintExpr(     -32768_); ok := ok and big1 =  2147516417_;
10170    big1 :=  2147483649_; big1 -:= bigintExpr(     -32767_); ok := ok and big1 =  2147516416_;
10171    big1 :=  2147483649_; big1 -:= bigintExpr(         -2_); ok := ok and big1 =  2147483651_;
10172    big1 :=  2147483649_; big1 -:= bigintExpr(         -1_); ok := ok and big1 =  2147483650_;
10173    big1 :=  2147483649_; big1 -:= bigintExpr(          0_); ok := ok and big1 =  2147483649_;
10174    big1 :=  2147483649_; big1 -:= bigintExpr(          1_); ok := ok and big1 =  2147483648_;
10175    big1 :=  2147483649_; big1 -:= bigintExpr(          2_); ok := ok and big1 =  2147483647_;
10176    big1 :=  2147483649_; big1 -:= bigintExpr(      32766_); ok := ok and big1 =  2147450883_;
10177    big1 :=  2147483649_; big1 -:= bigintExpr(      32767_); ok := ok and big1 =  2147450882_;
10178    big1 :=  2147483649_; big1 -:= bigintExpr(      32768_); ok := ok and big1 =  2147450881_;
10179    big1 :=  2147483649_; big1 -:= bigintExpr(      32769_); ok := ok and big1 =  2147450880_;
10180    big1 :=  2147483649_; big1 -:= bigintExpr( 2147483646_); ok := ok and big1 =           3_;
10181    big1 :=  2147483649_; big1 -:= bigintExpr( 2147483647_); ok := ok and big1 =           2_;
10182    big1 :=  2147483649_; big1 -:= bigintExpr( 2147483648_); ok := ok and big1 =           1_;
10183    big1 :=  2147483649_; big1 -:= bigintExpr( 2147483649_); ok := ok and big1 =           0_;
10184    if not ok then
10185      writeln("Subtraction assignment of bigInteger with expression does not work correct. (2)");
10186    end if;
10187  end func;
10188
10189
10190const func boolean: chkSubtractAssignWithItself is func
10191  result
10192    var boolean: ok is TRUE;
10193  local
10194    var bigInteger: big1 is 1_;
10195  begin
10196    big1 := -9223372036854775808_; big1 -:= big1; ok := ok and big1 = 0_;
10197    big1 := -9223372036854775807_; big1 -:= big1; ok := ok and big1 = 0_;
10198    big1 := -9223372036854775806_; big1 -:= big1; ok := ok and big1 = 0_;
10199    big1 := -9000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10200    big1 := -8000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10201    big1 := -7000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10202    big1 := -6000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10203    big1 := -5000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10204    big1 := -4611686018427387905_; big1 -:= big1; ok := ok and big1 = 0_;
10205    big1 := -4611686018427387904_; big1 -:= big1; ok := ok and big1 = 0_;
10206    big1 := -4611686018427387903_; big1 -:= big1; ok := ok and big1 = 0_;
10207    big1 :=          -2147483649_; big1 -:= big1; ok := ok and big1 = 0_;
10208    big1 :=          -2147483648_; big1 -:= big1; ok := ok and big1 = 0_;
10209    big1 :=          -2147483647_; big1 -:= big1; ok := ok and big1 = 0_;
10210    big1 :=          -2000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10211    big1 :=          -1500000000_; big1 -:= big1; ok := ok and big1 = 0_;
10212    big1 :=          -1073741825_; big1 -:= big1; ok := ok and big1 = 0_;
10213    big1 :=          -1073741824_; big1 -:= big1; ok := ok and big1 = 0_;
10214    big1 :=          -1073741823_; big1 -:= big1; ok := ok and big1 = 0_;
10215    big1 :=                  -10_; big1 -:= big1; ok := ok and big1 = 0_;
10216    big1 :=                   -1_; big1 -:= big1; ok := ok and big1 = 0_;
10217    big1 :=                    0_; big1 -:= big1; ok := ok and big1 = 0_;
10218    big1 :=                    1_; big1 -:= big1; ok := ok and big1 = 0_;
10219    big1 :=                   10_; big1 -:= big1; ok := ok and big1 = 0_;
10220    big1 :=           1073741823_; big1 -:= big1; ok := ok and big1 = 0_;
10221    big1 :=           1073741824_; big1 -:= big1; ok := ok and big1 = 0_;
10222    big1 :=           1073741825_; big1 -:= big1; ok := ok and big1 = 0_;
10223    big1 :=           1500000000_; big1 -:= big1; ok := ok and big1 = 0_;
10224    big1 :=           2000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10225    big1 :=           2147483647_; big1 -:= big1; ok := ok and big1 = 0_;
10226    big1 :=           2147483648_; big1 -:= big1; ok := ok and big1 = 0_;
10227    big1 :=           2147483649_; big1 -:= big1; ok := ok and big1 = 0_;
10228    big1 :=  4611686018427387903_; big1 -:= big1; ok := ok and big1 = 0_;
10229    big1 :=  4611686018427387904_; big1 -:= big1; ok := ok and big1 = 0_;
10230    big1 :=  4611686018427387905_; big1 -:= big1; ok := ok and big1 = 0_;
10231    big1 :=  5000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10232    big1 :=  6000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10233    big1 :=  7000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10234    big1 :=  8000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10235    big1 :=  9000000000000000000_; big1 -:= big1; ok := ok and big1 = 0_;
10236    big1 :=  9223372036854775806_; big1 -:= big1; ok := ok and big1 = 0_;
10237    big1 :=  9223372036854775807_; big1 -:= big1; ok := ok and big1 = 0_;
10238    big1 :=  9223372036854775808_; big1 -:= big1; ok := ok and big1 = 0_;
10239    if not ok then
10240      writeln("Subtraction assignment of bigInteger with itself does not work correct.");
10241    end if;
10242  end func;
10243
10244
10245const proc: chkSubtractAssign is func
10246  begin
10247    if  chkSubtractAssignLiteral1 and
10248        chkSubtractAssignLiteral2 and
10249        chkSubtractAssignExpression1 and
10250        chkSubtractAssignExpression2 and
10251        chkSubtractAssignWithItself then
10252      writeln("Subtraction assignment of bigInteger works correct.");
10253    else
10254      writeln(" ***** Subtraction assignment of bigInteger does not work correct.");
10255      writeln;
10256    end if;
10257  end func;
10258
10259
10260const proc: chkMultiplication is func
10261  local
10262    var bigInteger: number is 0_;
10263    var boolean: okay is TRUE;
10264  begin
10265    if       -65538_ *      -65538_ <>  4295229444_ or
10266             -65538_ *      -65537_ <>  4295163906_ or
10267             -65538_ *      -65536_ <>  4295098368_ or
10268             -65538_ *      -65535_ <>  4295032830_ or
10269             -65538_ *      -65534_ <>  4294967292_ or
10270             -65538_ *      -32770_ <>  2147680260_ or
10271             -65538_ *      -32769_ <>  2147614722_ or
10272             -65538_ *      -32768_ <>  2147549184_ or
10273             -65538_ *      -32767_ <>  2147483646_ or
10274             -65538_ *      -32766_ <>  2147418108_ or
10275             -65538_ *           0_ <>           0_ or
10276             -65538_ *       32766_ <> -2147418108_ or
10277             -65538_ *       32767_ <> -2147483646_ or
10278             -65538_ *       32768_ <> -2147549184_ or
10279             -65538_ *       32769_ <> -2147614722_ or
10280             -65538_ *       32770_ <> -2147680260_ or
10281             -65538_ *       65534_ <> -4294967292_ or
10282             -65538_ *       65535_ <> -4295032830_ or
10283             -65538_ *       65536_ <> -4295098368_ or
10284             -65538_ *       65537_ <> -4295163906_ or
10285             -65538_ *       65538_ <> -4295229444_ or
10286             -65537_ *      -65538_ <>  4295163906_ or
10287             -65537_ *      -65537_ <>  4295098369_ or
10288             -65537_ *      -65536_ <>  4295032832_ or
10289             -65537_ *      -65535_ <>  4294967295_ or
10290             -65537_ *      -65534_ <>  4294901758_ or
10291             -65537_ *      -32770_ <>  2147647490_ or
10292             -65537_ *      -32769_ <>  2147581953_ or
10293             -65537_ *      -32768_ <>  2147516416_ or
10294             -65537_ *      -32767_ <>  2147450879_ or
10295             -65537_ *      -32766_ <>  2147385342_ or
10296             -65537_ *           0_ <>           0_ or
10297             -65537_ *       32766_ <> -2147385342_ or
10298             -65537_ *       32767_ <> -2147450879_ or
10299             -65537_ *       32768_ <> -2147516416_ or
10300             -65537_ *       32769_ <> -2147581953_ or
10301             -65537_ *       32770_ <> -2147647490_ or
10302             -65537_ *       65534_ <> -4294901758_ or
10303             -65537_ *       65535_ <> -4294967295_ or
10304             -65537_ *       65536_ <> -4295032832_ or
10305             -65537_ *       65537_ <> -4295098369_ or
10306             -65537_ *       65538_ <> -4295163906_ or
10307             -65536_ *      -65538_ <>  4295098368_ or
10308             -65536_ *      -65537_ <>  4295032832_ or
10309             -65536_ *      -65536_ <>  4294967296_ or
10310             -65536_ *      -65535_ <>  4294901760_ or
10311             -65536_ *      -65534_ <>  4294836224_ or
10312             -65536_ *      -32770_ <>  2147614720_ or
10313             -65536_ *      -32769_ <>  2147549184_ or
10314             -65536_ *      -32768_ <>  2147483648_ or
10315             -65536_ *      -32767_ <>  2147418112_ or
10316             -65536_ *      -32766_ <>  2147352576_ or
10317             -65536_ *           0_ <>           0_ or
10318             -65536_ *       32766_ <> -2147352576_ or
10319             -65536_ *       32767_ <> -2147418112_ or
10320             -65536_ *       32768_ <> -2147483648_ or
10321             -65536_ *       32769_ <> -2147549184_ or
10322             -65536_ *       32770_ <> -2147614720_ or
10323             -65536_ *       65534_ <> -4294836224_ or
10324             -65536_ *       65535_ <> -4294901760_ or
10325             -65536_ *       65536_ <> -4294967296_ or
10326             -65536_ *       65537_ <> -4295032832_ or
10327             -65536_ *       65538_ <> -4295098368_ or
10328             -65535_ *      -65538_ <>  4295032830_ or
10329             -65535_ *      -65537_ <>  4294967295_ or
10330             -65535_ *      -65536_ <>  4294901760_ or
10331             -65535_ *      -65535_ <>  4294836225_ or
10332             -65535_ *      -65534_ <>  4294770690_ or
10333             -65535_ *      -32770_ <>  2147581950_ or
10334             -65535_ *      -32769_ <>  2147516415_ or
10335             -65535_ *      -32768_ <>  2147450880_ or
10336             -65535_ *      -32767_ <>  2147385345_ or
10337             -65535_ *      -32766_ <>  2147319810_ or
10338             -65535_ *           0_ <>           0_ or
10339             -65535_ *       32766_ <> -2147319810_ or
10340             -65535_ *       32767_ <> -2147385345_ or
10341             -65535_ *       32768_ <> -2147450880_ or
10342             -65535_ *       32769_ <> -2147516415_ or
10343             -65535_ *       32770_ <> -2147581950_ or
10344             -65535_ *       65534_ <> -4294770690_ or
10345             -65535_ *       65535_ <> -4294836225_ or
10346             -65535_ *       65536_ <> -4294901760_ or
10347             -65535_ *       65537_ <> -4294967295_ or
10348             -65535_ *       65538_ <> -4295032830_ or
10349             -65534_ *      -65538_ <>  4294967292_ or
10350             -65534_ *      -65537_ <>  4294901758_ or
10351             -65534_ *      -65536_ <>  4294836224_ or
10352             -65534_ *      -65535_ <>  4294770690_ or
10353             -65534_ *      -65534_ <>  4294705156_ or
10354             -65534_ *      -32770_ <>  2147549180_ or
10355             -65534_ *      -32769_ <>  2147483646_ or
10356             -65534_ *      -32768_ <>  2147418112_ or
10357             -65534_ *      -32767_ <>  2147352578_ or
10358             -65534_ *      -32766_ <>  2147287044_ or
10359             -65534_ *           0_ <>           0_ or
10360             -65534_ *       32766_ <> -2147287044_ or
10361             -65534_ *       32767_ <> -2147352578_ or
10362             -65534_ *       32768_ <> -2147418112_ or
10363             -65534_ *       32769_ <> -2147483646_ or
10364             -65534_ *       32770_ <> -2147549180_ or
10365             -65534_ *       65534_ <> -4294705156_ or
10366             -65534_ *       65535_ <> -4294770690_ or
10367             -65534_ *       65536_ <> -4294836224_ or
10368             -65534_ *       65537_ <> -4294901758_ or
10369             -65534_ *       65538_ <> -4294967292_ or
10370             -32770_ *      -65538_ <>  2147680260_ or
10371             -32770_ *      -65537_ <>  2147647490_ or
10372             -32770_ *      -65536_ <>  2147614720_ or
10373             -32770_ *      -65535_ <>  2147581950_ or
10374             -32770_ *      -65534_ <>  2147549180_ or
10375             -32770_ *      -32770_ <>  1073872900_ or
10376             -32770_ *      -32769_ <>  1073840130_ or
10377             -32770_ *      -32768_ <>  1073807360_ or
10378             -32770_ *      -32767_ <>  1073774590_ or
10379             -32770_ *      -32766_ <>  1073741820_ or
10380             -32770_ *           0_ <>           0_ or
10381             -32770_ *       32766_ <> -1073741820_ or
10382             -32770_ *       32767_ <> -1073774590_ or
10383             -32770_ *       32768_ <> -1073807360_ or
10384             -32770_ *       32769_ <> -1073840130_ or
10385             -32770_ *       32770_ <> -1073872900_ or
10386             -32770_ *       65534_ <> -2147549180_ or
10387             -32770_ *       65535_ <> -2147581950_ or
10388             -32770_ *       65536_ <> -2147614720_ or
10389             -32770_ *       65537_ <> -2147647490_ or
10390             -32770_ *       65538_ <> -2147680260_ or
10391             -32769_ *      -65538_ <>  2147614722_ or
10392             -32769_ *      -65537_ <>  2147581953_ or
10393             -32769_ *      -65536_ <>  2147549184_ or
10394             -32769_ *      -65535_ <>  2147516415_ or
10395             -32769_ *      -65534_ <>  2147483646_ or
10396             -32769_ *      -32770_ <>  1073840130_ or
10397             -32769_ *      -32769_ <>  1073807361_ or
10398             -32769_ *      -32768_ <>  1073774592_ or
10399             -32769_ *      -32767_ <>  1073741823_ or
10400             -32769_ *      -32766_ <>  1073709054_ or
10401             -32769_ *           0_ <>           0_ or
10402             -32769_ *       32766_ <> -1073709054_ or
10403             -32769_ *       32767_ <> -1073741823_ or
10404             -32769_ *       32768_ <> -1073774592_ or
10405             -32769_ *       32769_ <> -1073807361_ or
10406             -32769_ *       32770_ <> -1073840130_ or
10407             -32769_ *       65534_ <> -2147483646_ or
10408             -32769_ *       65535_ <> -2147516415_ or
10409             -32769_ *       65536_ <> -2147549184_ or
10410             -32769_ *       65537_ <> -2147581953_ or
10411             -32769_ *       65538_ <> -2147614722_ or
10412             -32768_ *      -65538_ <>  2147549184_ or
10413             -32768_ *      -65537_ <>  2147516416_ or
10414             -32768_ *      -65536_ <>  2147483648_ or
10415             -32768_ *      -65535_ <>  2147450880_ or
10416             -32768_ *      -65534_ <>  2147418112_ or
10417             -32768_ *      -32770_ <>  1073807360_ or
10418             -32768_ *      -32769_ <>  1073774592_ or
10419             -32768_ *      -32768_ <>  1073741824_ or
10420             -32768_ *      -32767_ <>  1073709056_ or
10421             -32768_ *      -32766_ <>  1073676288_ or
10422             -32768_ *           0_ <>           0_ or
10423             -32768_ *       32766_ <> -1073676288_ or
10424             -32768_ *       32767_ <> -1073709056_ or
10425             -32768_ *       32768_ <> -1073741824_ or
10426             -32768_ *       32769_ <> -1073774592_ or
10427             -32768_ *       32770_ <> -1073807360_ or
10428             -32768_ *       65534_ <> -2147418112_ or
10429             -32768_ *       65535_ <> -2147450880_ or
10430             -32768_ *       65536_ <> -2147483648_ or
10431             -32768_ *       65537_ <> -2147516416_ or
10432             -32768_ *       65538_ <> -2147549184_ or
10433             -32767_ *      -65538_ <>  2147483646_ or
10434             -32767_ *      -65537_ <>  2147450879_ or
10435             -32767_ *      -65536_ <>  2147418112_ or
10436             -32767_ *      -65535_ <>  2147385345_ or
10437             -32767_ *      -65534_ <>  2147352578_ or
10438             -32767_ *      -32770_ <>  1073774590_ or
10439             -32767_ *      -32769_ <>  1073741823_ or
10440             -32767_ *      -32768_ <>  1073709056_ or
10441             -32767_ *      -32767_ <>  1073676289_ or
10442             -32767_ *      -32766_ <>  1073643522_ or
10443             -32767_ *           0_ <>           0_ or
10444             -32767_ *       32766_ <> -1073643522_ or
10445             -32767_ *       32767_ <> -1073676289_ or
10446             -32767_ *       32768_ <> -1073709056_ or
10447             -32767_ *       32769_ <> -1073741823_ or
10448             -32767_ *       32770_ <> -1073774590_ or
10449             -32767_ *       65534_ <> -2147352578_ or
10450             -32767_ *       65535_ <> -2147385345_ or
10451             -32767_ *       65536_ <> -2147418112_ or
10452             -32767_ *       65537_ <> -2147450879_ or
10453             -32767_ *       65538_ <> -2147483646_ or
10454             -32766_ *      -65538_ <>  2147418108_ or
10455             -32766_ *      -65537_ <>  2147385342_ or
10456             -32766_ *      -65536_ <>  2147352576_ or
10457             -32766_ *      -65535_ <>  2147319810_ or
10458             -32766_ *      -65534_ <>  2147287044_ or
10459             -32766_ *      -32770_ <>  1073741820_ or
10460             -32766_ *      -32769_ <>  1073709054_ or
10461             -32766_ *      -32768_ <>  1073676288_ or
10462             -32766_ *      -32767_ <>  1073643522_ or
10463             -32766_ *      -32766_ <>  1073610756_ or
10464             -32766_ *           0_ <>           0_ or
10465             -32766_ *       32766_ <> -1073610756_ or
10466             -32766_ *       32767_ <> -1073643522_ or
10467             -32766_ *       32768_ <> -1073676288_ or
10468             -32766_ *       32769_ <> -1073709054_ or
10469             -32766_ *       32770_ <> -1073741820_ or
10470             -32766_ *       65534_ <> -2147287044_ or
10471             -32766_ *       65535_ <> -2147319810_ or
10472             -32766_ *       65536_ <> -2147352576_ or
10473             -32766_ *       65537_ <> -2147385342_ or
10474             -32766_ *       65538_ <> -2147418108_ or
10475                 -2_ *          -2_ <>           4_ or
10476                 -2_ *          -1_ <>           2_ or
10477                 -2_ *           0_ <>           0_ or
10478                 -2_ *           1_ <>          -2_ or
10479                 -2_ *           2_ <>          -4_ or
10480                 -1_ *          -2_ <>           2_ or
10481                 -1_ *          -1_ <>           1_ or
10482                 -1_ *           0_ <>           0_ or
10483                 -1_ *           1_ <>          -1_ or
10484                 -1_ *           2_ <>          -2_ or
10485                  0_ *          -2_ <>           0_ or
10486                  0_ *          -1_ <>           0_ or
10487                  0_ *           0_ <>           0_ or
10488                  0_ *           1_ <>           0_ or
10489                  0_ *           2_ <>           0_ or
10490                  1_ *          -2_ <>          -2_ or
10491                  1_ *          -1_ <>          -1_ or
10492                  1_ *           0_ <>           0_ or
10493                  1_ *           1_ <>           1_ or
10494                  1_ *           2_ <>           2_ or
10495                  2_ *          -2_ <>          -4_ or
10496                  2_ *          -1_ <>          -2_ or
10497                  2_ *           0_ <>           0_ or
10498                  2_ *           1_ <>           2_ or
10499                  2_ *           2_ <>           4_ or
10500                181_ *         181_ <>       32761_ or
10501                128_ *         256_ <>       32768_ or
10502                256_ *         256_ <>       65536_ or
10503               1785_ *          22_ <>       39270_ or
10504              32766_ *      -65538_ <> -2147418108_ or
10505              32766_ *      -65537_ <> -2147385342_ or
10506              32766_ *      -65536_ <> -2147352576_ or
10507              32766_ *      -65535_ <> -2147319810_ or
10508              32766_ *      -65534_ <> -2147287044_ or
10509              32766_ *      -32770_ <> -1073741820_ or
10510              32766_ *      -32769_ <> -1073709054_ or
10511              32766_ *      -32768_ <> -1073676288_ or
10512              32766_ *      -32767_ <> -1073643522_ or
10513              32766_ *      -32766_ <> -1073610756_ or
10514              32766_ *           0_ <>           0_ or
10515              32766_ *       32766_ <>  1073610756_ or
10516              32766_ *       32767_ <>  1073643522_ or
10517              32766_ *       32768_ <>  1073676288_ or
10518              32766_ *       32769_ <>  1073709054_ or
10519              32766_ *       32770_ <>  1073741820_ or
10520              32766_ *       65534_ <>  2147287044_ or
10521              32766_ *       65535_ <>  2147319810_ or
10522              32766_ *       65536_ <>  2147352576_ or
10523              32766_ *       65537_ <>  2147385342_ or
10524              32766_ *       65538_ <>  2147418108_ or
10525              32767_ *      -65538_ <> -2147483646_ or
10526              32767_ *      -65537_ <> -2147450879_ or
10527              32767_ *      -65536_ <> -2147418112_ or
10528              32767_ *      -65535_ <> -2147385345_ or
10529              32767_ *      -65534_ <> -2147352578_ or
10530              32767_ *      -32770_ <> -1073774590_ or
10531              32767_ *      -32769_ <> -1073741823_ or
10532              32767_ *      -32768_ <> -1073709056_ or
10533              32767_ *      -32767_ <> -1073676289_ or
10534              32767_ *      -32766_ <> -1073643522_ or
10535              32767_ *           0_ <>           0_ or
10536              32767_ *       32766_ <>  1073643522_ or
10537              32767_ *       32767_ <>  1073676289_ or
10538              32767_ *       32768_ <>  1073709056_ or
10539              32767_ *       32769_ <>  1073741823_ or
10540              32767_ *       32770_ <>  1073774590_ or
10541              32767_ *       65534_ <>  2147352578_ or
10542              32767_ *       65535_ <>  2147385345_ or
10543              32767_ *       65536_ <>  2147418112_ or
10544              32767_ *       65537_ <>  2147450879_ or
10545              32767_ *       65538_ <>  2147483646_ or
10546              32768_ *      -65538_ <> -2147549184_ or
10547              32768_ *      -65537_ <> -2147516416_ or
10548              32768_ *      -65536_ <> -2147483648_ or
10549              32768_ *      -65535_ <> -2147450880_ or
10550              32768_ *      -65534_ <> -2147418112_ or
10551              32768_ *      -32770_ <> -1073807360_ or
10552              32768_ *      -32769_ <> -1073774592_ or
10553              32768_ *      -32768_ <> -1073741824_ or
10554              32768_ *      -32767_ <> -1073709056_ or
10555              32768_ *      -32766_ <> -1073676288_ or
10556              32768_ *           0_ <>           0_ or
10557              32768_ *       32766_ <>  1073676288_ or
10558              32768_ *       32767_ <>  1073709056_ or
10559              32768_ *       32768_ <>  1073741824_ or
10560              32768_ *       32769_ <>  1073774592_ or
10561              32768_ *       32770_ <>  1073807360_ or
10562              32768_ *       65534_ <>  2147418112_ or
10563              32768_ *       65535_ <>  2147450880_ or
10564              32768_ *       65536_ <>  2147483648_ or
10565              32768_ *       65537_ <>  2147516416_ or
10566              32768_ *       65538_ <>  2147549184_ or
10567              32769_ *      -65538_ <> -2147614722_ or
10568              32769_ *      -65537_ <> -2147581953_ or
10569              32769_ *      -65536_ <> -2147549184_ or
10570              32769_ *      -65535_ <> -2147516415_ or
10571              32769_ *      -65534_ <> -2147483646_ or
10572              32769_ *      -32770_ <> -1073840130_ or
10573              32769_ *      -32769_ <> -1073807361_ or
10574              32769_ *      -32768_ <> -1073774592_ or
10575              32769_ *      -32767_ <> -1073741823_ or
10576              32769_ *      -32766_ <> -1073709054_ or
10577              32769_ *           0_ <>           0_ or
10578              32769_ *       32766_ <>  1073709054_ or
10579              32769_ *       32767_ <>  1073741823_ or
10580              32769_ *       32768_ <>  1073774592_ or
10581              32769_ *       32769_ <>  1073807361_ or
10582              32769_ *       32770_ <>  1073840130_ or
10583              32769_ *       65534_ <>  2147483646_ or
10584              32769_ *       65535_ <>  2147516415_ or
10585              32769_ *       65536_ <>  2147549184_ or
10586              32769_ *       65537_ <>  2147581953_ or
10587              32769_ *       65538_ <>  2147614722_ or
10588              32770_ *      -65538_ <> -2147680260_ or
10589              32770_ *      -65537_ <> -2147647490_ or
10590              32770_ *      -65536_ <> -2147614720_ or
10591              32770_ *      -65535_ <> -2147581950_ or
10592              32770_ *      -65534_ <> -2147549180_ or
10593              32770_ *      -32770_ <> -1073872900_ or
10594              32770_ *      -32769_ <> -1073840130_ or
10595              32770_ *      -32768_ <> -1073807360_ or
10596              32770_ *      -32767_ <> -1073774590_ or
10597              32770_ *      -32766_ <> -1073741820_ or
10598              32770_ *           0_ <>           0_ or
10599              32770_ *       32766_ <>  1073741820_ or
10600              32770_ *       32767_ <>  1073774590_ or
10601              32770_ *       32768_ <>  1073807360_ or
10602              32770_ *       32769_ <>  1073840130_ or
10603              32770_ *       32770_ <>  1073872900_ or
10604              32770_ *       65534_ <>  2147549180_ or
10605              32770_ *       65535_ <>  2147581950_ or
10606              32770_ *       65536_ <>  2147614720_ or
10607              32770_ *       65537_ <>  2147647490_ or
10608              32770_ *       65538_ <>  2147680260_ or
10609              65534_ *      -65538_ <> -4294967292_ or
10610              65534_ *      -65537_ <> -4294901758_ or
10611              65534_ *      -65536_ <> -4294836224_ or
10612              65534_ *      -65535_ <> -4294770690_ or
10613              65534_ *      -65534_ <> -4294705156_ or
10614              65534_ *      -32770_ <> -2147549180_ or
10615              65534_ *      -32769_ <> -2147483646_ or
10616              65534_ *      -32768_ <> -2147418112_ or
10617              65534_ *      -32767_ <> -2147352578_ or
10618              65534_ *      -32766_ <> -2147287044_ or
10619              65534_ *           0_ <>           0_ or
10620              65534_ *       32766_ <>  2147287044_ or
10621              65534_ *       32767_ <>  2147352578_ or
10622              65534_ *       32768_ <>  2147418112_ or
10623              65534_ *       32769_ <>  2147483646_ or
10624              65534_ *       32770_ <>  2147549180_ or
10625              65534_ *       65534_ <>  4294705156_ or
10626              65534_ *       65535_ <>  4294770690_ or
10627              65534_ *       65536_ <>  4294836224_ or
10628              65534_ *       65537_ <>  4294901758_ or
10629              65534_ *       65538_ <>  4294967292_ or
10630              65535_ *      -65538_ <> -4295032830_ or
10631              65535_ *      -65537_ <> -4294967295_ or
10632              65535_ *      -65536_ <> -4294901760_ or
10633              65535_ *      -65535_ <> -4294836225_ or
10634              65535_ *      -65534_ <> -4294770690_ or
10635              65535_ *      -32770_ <> -2147581950_ or
10636              65535_ *      -32769_ <> -2147516415_ or
10637              65535_ *      -32768_ <> -2147450880_ or
10638              65535_ *      -32767_ <> -2147385345_ or
10639              65535_ *      -32766_ <> -2147319810_ or
10640              65535_ *           0_ <>           0_ or
10641              65535_ *       32766_ <>  2147319810_ or
10642              65535_ *       32767_ <>  2147385345_ or
10643              65535_ *       32768_ <>  2147450880_ or
10644              65535_ *       32769_ <>  2147516415_ or
10645              65535_ *       32770_ <>  2147581950_ or
10646              65535_ *       65534_ <>  4294770690_ or
10647              65535_ *       65535_ <>  4294836225_ or
10648              65535_ *       65536_ <>  4294901760_ or
10649              65535_ *       65537_ <>  4294967295_ or
10650              65535_ *       65538_ <>  4295032830_ or
10651              65536_ *      -65538_ <> -4295098368_ or
10652              65536_ *      -65537_ <> -4295032832_ or
10653              65536_ *      -65536_ <> -4294967296_ or
10654              65536_ *      -65535_ <> -4294901760_ or
10655              65536_ *      -65534_ <> -4294836224_ or
10656              65536_ *      -32770_ <> -2147614720_ or
10657              65536_ *      -32769_ <> -2147549184_ or
10658              65536_ *      -32768_ <> -2147483648_ or
10659              65536_ *      -32767_ <> -2147418112_ or
10660              65536_ *      -32766_ <> -2147352576_ or
10661              65536_ *           0_ <>           0_ or
10662              65536_ *       32766_ <>  2147352576_ or
10663              65536_ *       32767_ <>  2147418112_ or
10664              65536_ *       32768_ <>  2147483648_ or
10665              65536_ *       32769_ <>  2147549184_ or
10666              65536_ *       32770_ <>  2147614720_ or
10667              65536_ *       65534_ <>  4294836224_ or
10668              65536_ *       65535_ <>  4294901760_ or
10669              65536_ *       65536_ <>  4294967296_ or
10670              65536_ *       65537_ <>  4295032832_ or
10671              65536_ *       65538_ <>  4295098368_ or
10672              65537_ *      -65538_ <> -4295163906_ or
10673              65537_ *      -65537_ <> -4295098369_ or
10674              65537_ *      -65536_ <> -4295032832_ or
10675              65537_ *      -65535_ <> -4294967295_ or
10676              65537_ *      -65534_ <> -4294901758_ or
10677              65537_ *      -32770_ <> -2147647490_ or
10678              65537_ *      -32769_ <> -2147581953_ or
10679              65537_ *      -32768_ <> -2147516416_ or
10680              65537_ *      -32767_ <> -2147450879_ or
10681              65537_ *      -32766_ <> -2147385342_ or
10682              65537_ *           0_ <>           0_ or
10683              65537_ *       32766_ <>  2147385342_ or
10684              65537_ *       32767_ <>  2147450879_ or
10685              65537_ *       32768_ <>  2147516416_ or
10686              65537_ *       32769_ <>  2147581953_ or
10687              65537_ *       32770_ <>  2147647490_ or
10688              65537_ *       65534_ <>  4294901758_ or
10689              65537_ *       65535_ <>  4294967295_ or
10690              65537_ *       65536_ <>  4295032832_ or
10691              65537_ *       65537_ <>  4295098369_ or
10692              65537_ *       65538_ <>  4295163906_ or
10693              65538_ *      -65538_ <> -4295229444_ or
10694              65538_ *      -65537_ <> -4295163906_ or
10695              65538_ *      -65536_ <> -4295098368_ or
10696              65538_ *      -65535_ <> -4295032830_ or
10697              65538_ *      -65534_ <> -4294967292_ or
10698              65538_ *      -32770_ <> -2147680260_ or
10699              65538_ *      -32769_ <> -2147614722_ or
10700              65538_ *      -32768_ <> -2147549184_ or
10701              65538_ *      -32767_ <> -2147483646_ or
10702              65538_ *      -32766_ <> -2147418108_ or
10703              65538_ *           0_ <>           0_ or
10704              65538_ *       32766_ <>  2147418108_ or
10705              65538_ *       32767_ <>  2147483646_ or
10706              65538_ *       32768_ <>  2147549184_ or
10707              65538_ *       32769_ <>  2147614722_ or
10708              65538_ *       32770_ <>  2147680260_ or
10709              65538_ *       65534_ <>  4294967292_ or
10710              65538_ *       65535_ <>  4295032830_ or
10711              65538_ *       65536_ <>  4295098368_ or
10712              65538_ *       65537_ <>  4295163906_ or
10713              65538_ *       65538_ <>  4295229444_ then
10714      writeln("Multiplication of bigInteger does not work correct.");
10715      okay := FALSE;
10716    end if;
10717
10718    number := 1024_;
10719    if number * number <> 1048576_ then
10720      writeln("Multiplication of bigInteger with itself does not work correct.");
10721      okay := FALSE;
10722    end if;
10723
10724    number := 123456789_;
10725    if number  *     -1_ <> -123456789_ or
10726           -1_ * number  <> -123456789_  then
10727      writeln("Multiplication of bigInteger with -1 does not work correct.");
10728      okay := FALSE;
10729    end if;
10730
10731    if                 65535_ *               196607_ <>                             12884639745_ or
10732                      196607_ *                65535_ <>                             12884639745_ or
10733               1078203909375_ * 17878103347812890625_ <>        19276240921822134027894287109375_ or
10734        17878103347812890625_ *        1078203909375_ <>        19276240921822134027894287109375_ or
10735        17878103347812890625_ * 17878103347812890625_ <> 319626579315078487616775634918212890625_ then
10736      writeln("Multiplication of bigger bigInteger values does not work correct.");
10737      okay := FALSE;
10738    end if;
10739
10740    if  -3_ * bigintExpr(-18446744073709551617_) <>  55340232221128654851_ or
10741        -3_ * bigintExpr(-18446744073709551616_) <>  55340232221128654848_ or
10742        -3_ * bigintExpr(-10000000000000000000_) <>  30000000000000000000_ or
10743        -3_ * bigintExpr( -1000000000000000000_) <>   3000000000000000000_ or
10744        -3_ * bigintExpr(  -100000000000000000_) <>    300000000000000000_ or
10745        -3_ * bigintExpr(   -10000000000000000_) <>     30000000000000000_ or
10746        -3_ * bigintExpr(    -1000000000000000_) <>      3000000000000000_ or
10747        -3_ * bigintExpr(     -100000000000000_) <>       300000000000000_ or
10748        -3_ * bigintExpr(      -10000000000000_) <>        30000000000000_ or
10749        -3_ * bigintExpr(       -1000000000000_) <>         3000000000000_ or
10750        -3_ * bigintExpr(        -100000000000_) <>          300000000000_ or
10751        -3_ * bigintExpr(         -10000000000_) <>           30000000000_ or
10752        -3_ * bigintExpr(          -4294967297_) <>           12884901891_ or
10753        -3_ * bigintExpr(          -4294967296_) <>           12884901888_ or
10754        -3_ * bigintExpr(          -1000000000_) <>            3000000000_ or
10755        -3_ * bigintExpr(           -100000000_) <>             300000000_ or
10756        -3_ * bigintExpr(            -10000000_) <>              30000000_ or
10757        -3_ * bigintExpr(             -1000000_) <>               3000000_ or
10758        -3_ * bigintExpr(              -100000_) <>                300000_ or
10759        -3_ * bigintExpr(               -65537_) <>                196611_ or
10760        -3_ * bigintExpr(               -65536_) <>                196608_ or
10761        -3_ * bigintExpr(               -10000_) <>                 30000_ or
10762        -3_ * bigintExpr(                -1000_) <>                  3000_ or
10763        -3_ * bigintExpr(                 -257_) <>                   771_ or
10764        -3_ * bigintExpr(                 -256_) <>                   768_ or
10765        -3_ * bigintExpr(                  -10_) <>                    30_ or
10766        -3_ * bigintExpr(                   -4_) <>                    12_ or
10767        -3_ * bigintExpr(                   -3_) <>                     9_ or
10768        -3_ * bigintExpr(                   -2_) <>                     6_ or
10769        -3_ * bigintExpr(                   -1_) <>                     3_ or
10770        -3_ * bigintExpr(                    0_) <>                     0_ or
10771        -3_ * bigintExpr(                    1_) <>                    -3_ or
10772        -3_ * bigintExpr(                    2_) <>                    -6_ or
10773        -3_ * bigintExpr(                    3_) <>                    -9_ or
10774        -3_ * bigintExpr(                    4_) <>                   -12_ or
10775        -3_ * bigintExpr(                   10_) <>                   -30_ or
10776        -3_ * bigintExpr(                  255_) <>                  -765_ or
10777        -3_ * bigintExpr(                  256_) <>                  -768_ or
10778        -3_ * bigintExpr(                 1000_) <>                 -3000_ or
10779        -3_ * bigintExpr(                10000_) <>                -30000_ or
10780        -3_ * bigintExpr(                65535_) <>               -196605_ or
10781        -3_ * bigintExpr(                65536_) <>               -196608_ or
10782        -3_ * bigintExpr(               100000_) <>               -300000_ or
10783        -3_ * bigintExpr(              1000000_) <>              -3000000_ or
10784        -3_ * bigintExpr(             10000000_) <>             -30000000_ or
10785        -3_ * bigintExpr(            100000000_) <>            -300000000_ or
10786        -3_ * bigintExpr(           1000000000_) <>           -3000000000_ or
10787        -3_ * bigintExpr(           4294967295_) <>          -12884901885_ or
10788        -3_ * bigintExpr(           4294967296_) <>          -12884901888_ or
10789        -3_ * bigintExpr(          10000000000_) <>          -30000000000_ or
10790        -3_ * bigintExpr(         100000000000_) <>         -300000000000_ or
10791        -3_ * bigintExpr(        1000000000000_) <>        -3000000000000_ or
10792        -3_ * bigintExpr(       10000000000000_) <>       -30000000000000_ or
10793        -3_ * bigintExpr(      100000000000000_) <>      -300000000000000_ or
10794        -3_ * bigintExpr(     1000000000000000_) <>     -3000000000000000_ or
10795        -3_ * bigintExpr(    10000000000000000_) <>    -30000000000000000_ or
10796        -3_ * bigintExpr(   100000000000000000_) <>   -300000000000000000_ or
10797        -3_ * bigintExpr(  1000000000000000000_) <>  -3000000000000000000_ or
10798        -3_ * bigintExpr( 10000000000000000000_) <> -30000000000000000000_ or
10799        -3_ * bigintExpr( 18446744073709551615_) <> -55340232221128654845_ or
10800        -3_ * bigintExpr( 18446744073709551616_) <> -55340232221128654848_ or
10801        -2_ * bigintExpr(-18446744073709551617_) <>  36893488147419103234_ or
10802        -2_ * bigintExpr(-18446744073709551616_) <>  36893488147419103232_ or
10803        -2_ * bigintExpr(-10000000000000000000_) <>  20000000000000000000_ or
10804        -2_ * bigintExpr( -1000000000000000000_) <>   2000000000000000000_ or
10805        -2_ * bigintExpr(  -100000000000000000_) <>    200000000000000000_ or
10806        -2_ * bigintExpr(   -10000000000000000_) <>     20000000000000000_ or
10807        -2_ * bigintExpr(    -1000000000000000_) <>      2000000000000000_ or
10808        -2_ * bigintExpr(     -100000000000000_) <>       200000000000000_ or
10809        -2_ * bigintExpr(      -10000000000000_) <>        20000000000000_ or
10810        -2_ * bigintExpr(       -1000000000000_) <>         2000000000000_ or
10811        -2_ * bigintExpr(        -100000000000_) <>          200000000000_ or
10812        -2_ * bigintExpr(         -10000000000_) <>           20000000000_ or
10813        -2_ * bigintExpr(          -4294967297_) <>            8589934594_ or
10814        -2_ * bigintExpr(          -4294967296_) <>            8589934592_ or
10815        -2_ * bigintExpr(          -1000000000_) <>            2000000000_ or
10816        -2_ * bigintExpr(           -100000000_) <>             200000000_ or
10817        -2_ * bigintExpr(            -10000000_) <>              20000000_ or
10818        -2_ * bigintExpr(             -1000000_) <>               2000000_ or
10819        -2_ * bigintExpr(              -100000_) <>                200000_ or
10820        -2_ * bigintExpr(               -65537_) <>                131074_ or
10821        -2_ * bigintExpr(               -65536_) <>                131072_ or
10822        -2_ * bigintExpr(               -10000_) <>                 20000_ or
10823        -2_ * bigintExpr(                -1000_) <>                  2000_ or
10824        -2_ * bigintExpr(                 -257_) <>                   514_ or
10825        -2_ * bigintExpr(                 -256_) <>                   512_ or
10826        -2_ * bigintExpr(                  -10_) <>                    20_ or
10827        -2_ * bigintExpr(                   -4_) <>                     8_ or
10828        -2_ * bigintExpr(                   -3_) <>                     6_ or
10829        -2_ * bigintExpr(                   -2_) <>                     4_ or
10830        -2_ * bigintExpr(                   -1_) <>                     2_ or
10831        -2_ * bigintExpr(                    0_) <>                     0_ or
10832        -2_ * bigintExpr(                    1_) <>                    -2_ or
10833        -2_ * bigintExpr(                    2_) <>                    -4_ or
10834        -2_ * bigintExpr(                    3_) <>                    -6_ or
10835        -2_ * bigintExpr(                    4_) <>                    -8_ or
10836        -2_ * bigintExpr(                   10_) <>                   -20_ or
10837        -2_ * bigintExpr(                  255_) <>                  -510_ or
10838        -2_ * bigintExpr(                  256_) <>                  -512_ or
10839        -2_ * bigintExpr(                 1000_) <>                 -2000_ or
10840        -2_ * bigintExpr(                10000_) <>                -20000_ or
10841        -2_ * bigintExpr(                65535_) <>               -131070_ or
10842        -2_ * bigintExpr(                65536_) <>               -131072_ or
10843        -2_ * bigintExpr(               100000_) <>               -200000_ or
10844        -2_ * bigintExpr(              1000000_) <>              -2000000_ or
10845        -2_ * bigintExpr(             10000000_) <>             -20000000_ or
10846        -2_ * bigintExpr(            100000000_) <>            -200000000_ or
10847        -2_ * bigintExpr(           1000000000_) <>           -2000000000_ or
10848        -2_ * bigintExpr(           4294967295_) <>           -8589934590_ or
10849        -2_ * bigintExpr(           4294967296_) <>           -8589934592_ or
10850        -2_ * bigintExpr(          10000000000_) <>          -20000000000_ or
10851        -2_ * bigintExpr(         100000000000_) <>         -200000000000_ or
10852        -2_ * bigintExpr(        1000000000000_) <>        -2000000000000_ or
10853        -2_ * bigintExpr(       10000000000000_) <>       -20000000000000_ or
10854        -2_ * bigintExpr(      100000000000000_) <>      -200000000000000_ or
10855        -2_ * bigintExpr(     1000000000000000_) <>     -2000000000000000_ or
10856        -2_ * bigintExpr(    10000000000000000_) <>    -20000000000000000_ or
10857        -2_ * bigintExpr(   100000000000000000_) <>   -200000000000000000_ or
10858        -2_ * bigintExpr(  1000000000000000000_) <>  -2000000000000000000_ or
10859        -2_ * bigintExpr( 10000000000000000000_) <> -20000000000000000000_ or
10860        -2_ * bigintExpr( 18446744073709551615_) <> -36893488147419103230_ or
10861        -2_ * bigintExpr( 18446744073709551616_) <> -36893488147419103232_ or
10862        -1_ * bigintExpr(-18446744073709551617_) <>  18446744073709551617_ or
10863        -1_ * bigintExpr(-18446744073709551616_) <>  18446744073709551616_ or
10864        -1_ * bigintExpr(-10000000000000000000_) <>  10000000000000000000_ or
10865        -1_ * bigintExpr( -1000000000000000000_) <>   1000000000000000000_ or
10866        -1_ * bigintExpr(  -100000000000000000_) <>    100000000000000000_ or
10867        -1_ * bigintExpr(   -10000000000000000_) <>     10000000000000000_ or
10868        -1_ * bigintExpr(    -1000000000000000_) <>      1000000000000000_ or
10869        -1_ * bigintExpr(     -100000000000000_) <>       100000000000000_ or
10870        -1_ * bigintExpr(      -10000000000000_) <>        10000000000000_ or
10871        -1_ * bigintExpr(       -1000000000000_) <>         1000000000000_ or
10872        -1_ * bigintExpr(        -100000000000_) <>          100000000000_ or
10873        -1_ * bigintExpr(         -10000000000_) <>           10000000000_ or
10874        -1_ * bigintExpr(          -4294967297_) <>            4294967297_ or
10875        -1_ * bigintExpr(          -4294967296_) <>            4294967296_ or
10876        -1_ * bigintExpr(          -1000000000_) <>            1000000000_ or
10877        -1_ * bigintExpr(           -100000000_) <>             100000000_ or
10878        -1_ * bigintExpr(            -10000000_) <>              10000000_ or
10879        -1_ * bigintExpr(             -1000000_) <>               1000000_ or
10880        -1_ * bigintExpr(              -100000_) <>                100000_ or
10881        -1_ * bigintExpr(               -65537_) <>                 65537_ or
10882        -1_ * bigintExpr(               -65536_) <>                 65536_ or
10883        -1_ * bigintExpr(               -10000_) <>                 10000_ or
10884        -1_ * bigintExpr(                -1000_) <>                  1000_ or
10885        -1_ * bigintExpr(                 -257_) <>                   257_ or
10886        -1_ * bigintExpr(                 -256_) <>                   256_ or
10887        -1_ * bigintExpr(                  -10_) <>                    10_ or
10888        -1_ * bigintExpr(                   -4_) <>                     4_ or
10889        -1_ * bigintExpr(                   -3_) <>                     3_ or
10890        -1_ * bigintExpr(                   -2_) <>                     2_ or
10891        -1_ * bigintExpr(                   -1_) <>                     1_ or
10892        -1_ * bigintExpr(                    0_) <>                     0_ or
10893        -1_ * bigintExpr(                    1_) <>                    -1_ or
10894        -1_ * bigintExpr(                    2_) <>                    -2_ or
10895        -1_ * bigintExpr(                    3_) <>                    -3_ or
10896        -1_ * bigintExpr(                    4_) <>                    -4_ or
10897        -1_ * bigintExpr(                   10_) <>                   -10_ or
10898        -1_ * bigintExpr(                  255_) <>                  -255_ or
10899        -1_ * bigintExpr(                  256_) <>                  -256_ or
10900        -1_ * bigintExpr(                 1000_) <>                 -1000_ or
10901        -1_ * bigintExpr(                10000_) <>                -10000_ or
10902        -1_ * bigintExpr(                65535_) <>                -65535_ or
10903        -1_ * bigintExpr(                65536_) <>                -65536_ or
10904        -1_ * bigintExpr(               100000_) <>               -100000_ or
10905        -1_ * bigintExpr(              1000000_) <>              -1000000_ or
10906        -1_ * bigintExpr(             10000000_) <>             -10000000_ or
10907        -1_ * bigintExpr(            100000000_) <>            -100000000_ or
10908        -1_ * bigintExpr(           1000000000_) <>           -1000000000_ or
10909        -1_ * bigintExpr(           4294967295_) <>           -4294967295_ or
10910        -1_ * bigintExpr(           4294967296_) <>           -4294967296_ or
10911        -1_ * bigintExpr(          10000000000_) <>          -10000000000_ or
10912        -1_ * bigintExpr(         100000000000_) <>         -100000000000_ or
10913        -1_ * bigintExpr(        1000000000000_) <>        -1000000000000_ or
10914        -1_ * bigintExpr(       10000000000000_) <>       -10000000000000_ or
10915        -1_ * bigintExpr(      100000000000000_) <>      -100000000000000_ or
10916        -1_ * bigintExpr(     1000000000000000_) <>     -1000000000000000_ or
10917        -1_ * bigintExpr(    10000000000000000_) <>    -10000000000000000_ or
10918        -1_ * bigintExpr(   100000000000000000_) <>   -100000000000000000_ or
10919        -1_ * bigintExpr(  1000000000000000000_) <>  -1000000000000000000_ or
10920        -1_ * bigintExpr( 10000000000000000000_) <> -10000000000000000000_ or
10921        -1_ * bigintExpr( 18446744073709551615_) <> -18446744073709551615_ or
10922        -1_ * bigintExpr( 18446744073709551616_) <> -18446744073709551616_ or
10923         0_ * bigintExpr(-18446744073709551617_) <> 0_ or
10924         0_ * bigintExpr(-18446744073709551616_) <> 0_ or
10925         0_ * bigintExpr(-10000000000000000000_) <> 0_ or
10926         0_ * bigintExpr( -1000000000000000000_) <> 0_ or
10927         0_ * bigintExpr(  -100000000000000000_) <> 0_ or
10928         0_ * bigintExpr(   -10000000000000000_) <> 0_ or
10929         0_ * bigintExpr(    -1000000000000000_) <> 0_ or
10930         0_ * bigintExpr(     -100000000000000_) <> 0_ or
10931         0_ * bigintExpr(      -10000000000000_) <> 0_ or
10932         0_ * bigintExpr(       -1000000000000_) <> 0_ or
10933         0_ * bigintExpr(        -100000000000_) <> 0_ or
10934         0_ * bigintExpr(         -10000000000_) <> 0_ or
10935         0_ * bigintExpr(          -4294967297_) <> 0_ or
10936         0_ * bigintExpr(          -4294967296_) <> 0_ or
10937         0_ * bigintExpr(          -1000000000_) <> 0_ or
10938         0_ * bigintExpr(           -100000000_) <> 0_ or
10939         0_ * bigintExpr(            -10000000_) <> 0_ or
10940         0_ * bigintExpr(             -1000000_) <> 0_ or
10941         0_ * bigintExpr(              -100000_) <> 0_ or
10942         0_ * bigintExpr(               -65536_) <> 0_ or
10943         0_ * bigintExpr(               -65536_) <> 0_ or
10944         0_ * bigintExpr(               -10000_) <> 0_ or
10945         0_ * bigintExpr(                -1000_) <> 0_ or
10946         0_ * bigintExpr(                 -257_) <> 0_ or
10947         0_ * bigintExpr(                 -256_) <> 0_ or
10948         0_ * bigintExpr(                  -10_) <> 0_ or
10949         0_ * bigintExpr(                   -4_) <> 0_ or
10950         0_ * bigintExpr(                   -3_) <> 0_ or
10951         0_ * bigintExpr(                   -2_) <> 0_ or
10952         0_ * bigintExpr(                   -1_) <> 0_ or
10953         0_ * bigintExpr(                    0_) <> 0_ or
10954         0_ * bigintExpr(                    1_) <> 0_ or
10955         0_ * bigintExpr(                    2_) <> 0_ or
10956         0_ * bigintExpr(                    3_) <> 0_ or
10957         0_ * bigintExpr(                    4_) <> 0_ or
10958         0_ * bigintExpr(                   10_) <> 0_ or
10959         0_ * bigintExpr(                  255_) <> 0_ or
10960         0_ * bigintExpr(                  256_) <> 0_ or
10961         0_ * bigintExpr(                 1000_) <> 0_ or
10962         0_ * bigintExpr(                10000_) <> 0_ or
10963         0_ * bigintExpr(                65535_) <> 0_ or
10964         0_ * bigintExpr(                65536_) <> 0_ or
10965         0_ * bigintExpr(               100000_) <> 0_ or
10966         0_ * bigintExpr(              1000000_) <> 0_ or
10967         0_ * bigintExpr(             10000000_) <> 0_ or
10968         0_ * bigintExpr(            100000000_) <> 0_ or
10969         0_ * bigintExpr(           1000000000_) <> 0_ or
10970         0_ * bigintExpr(           4294967295_) <> 0_ or
10971         0_ * bigintExpr(           4294967296_) <> 0_ or
10972         0_ * bigintExpr(          10000000000_) <> 0_ or
10973         0_ * bigintExpr(         100000000000_) <> 0_ or
10974         0_ * bigintExpr(        1000000000000_) <> 0_ or
10975         0_ * bigintExpr(       10000000000000_) <> 0_ or
10976         0_ * bigintExpr(      100000000000000_) <> 0_ or
10977         0_ * bigintExpr(     1000000000000000_) <> 0_ or
10978         0_ * bigintExpr(    10000000000000000_) <> 0_ or
10979         0_ * bigintExpr(   100000000000000000_) <> 0_ or
10980         0_ * bigintExpr(  1000000000000000000_) <> 0_ or
10981         0_ * bigintExpr( 10000000000000000000_) <> 0_ or
10982         0_ * bigintExpr( 18446744073709551615_) <> 0_ or
10983         0_ * bigintExpr( 18446744073709551616_) <> 0_ or
10984         1_ * bigintExpr(-18446744073709551617_) <> -18446744073709551617_ or
10985         1_ * bigintExpr(-18446744073709551616_) <> -18446744073709551616_ or
10986         1_ * bigintExpr(-10000000000000000000_) <> -10000000000000000000_ or
10987         1_ * bigintExpr( -1000000000000000000_) <>  -1000000000000000000_ or
10988         1_ * bigintExpr(  -100000000000000000_) <>   -100000000000000000_ or
10989         1_ * bigintExpr(   -10000000000000000_) <>    -10000000000000000_ or
10990         1_ * bigintExpr(    -1000000000000000_) <>     -1000000000000000_ or
10991         1_ * bigintExpr(     -100000000000000_) <>      -100000000000000_ or
10992         1_ * bigintExpr(      -10000000000000_) <>       -10000000000000_ or
10993         1_ * bigintExpr(       -1000000000000_) <>        -1000000000000_ or
10994         1_ * bigintExpr(        -100000000000_) <>         -100000000000_ or
10995         1_ * bigintExpr(         -10000000000_) <>          -10000000000_ or
10996         1_ * bigintExpr(          -4294967297_) <>           -4294967297_ or
10997         1_ * bigintExpr(          -4294967296_) <>           -4294967296_ or
10998         1_ * bigintExpr(          -1000000000_) <>           -1000000000_ or
10999         1_ * bigintExpr(           -100000000_) <>            -100000000_ or
11000         1_ * bigintExpr(            -10000000_) <>             -10000000_ or
11001         1_ * bigintExpr(             -1000000_) <>              -1000000_ or
11002         1_ * bigintExpr(              -100000_) <>               -100000_ or
11003         1_ * bigintExpr(               -65537_) <>                -65537_ or
11004         1_ * bigintExpr(               -65536_) <>                -65536_ or
11005         1_ * bigintExpr(               -10000_) <>                -10000_ or
11006         1_ * bigintExpr(                -1000_) <>                 -1000_ or
11007         1_ * bigintExpr(                 -257_) <>                  -257_ or
11008         1_ * bigintExpr(                 -256_) <>                  -256_ or
11009         1_ * bigintExpr(                  -10_) <>                   -10_ or
11010         1_ * bigintExpr(                   -4_) <>                    -4_ or
11011         1_ * bigintExpr(                   -3_) <>                    -3_ or
11012         1_ * bigintExpr(                   -2_) <>                    -2_ or
11013         1_ * bigintExpr(                   -1_) <>                    -1_ or
11014         1_ * bigintExpr(                    0_) <>                     0_ or
11015         1_ * bigintExpr(                    1_) <>                     1_ or
11016         1_ * bigintExpr(                    2_) <>                     2_ or
11017         1_ * bigintExpr(                    3_) <>                     3_ or
11018         1_ * bigintExpr(                    4_) <>                     4_ or
11019         1_ * bigintExpr(                   10_) <>                    10_ or
11020         1_ * bigintExpr(                  255_) <>                   255_ or
11021         1_ * bigintExpr(                  256_) <>                   256_ or
11022         1_ * bigintExpr(                 1000_) <>                  1000_ or
11023         1_ * bigintExpr(                10000_) <>                 10000_ or
11024         1_ * bigintExpr(                65535_) <>                 65535_ or
11025         1_ * bigintExpr(                65536_) <>                 65536_ or
11026         1_ * bigintExpr(               100000_) <>                100000_ or
11027         1_ * bigintExpr(              1000000_) <>               1000000_ or
11028         1_ * bigintExpr(             10000000_) <>              10000000_ or
11029         1_ * bigintExpr(            100000000_) <>             100000000_ or
11030         1_ * bigintExpr(           1000000000_) <>            1000000000_ or
11031         1_ * bigintExpr(           4294967295_) <>            4294967295_ or
11032         1_ * bigintExpr(           4294967296_) <>            4294967296_ or
11033         1_ * bigintExpr(          10000000000_) <>           10000000000_ or
11034         1_ * bigintExpr(         100000000000_) <>          100000000000_ or
11035         1_ * bigintExpr(        1000000000000_) <>         1000000000000_ or
11036         1_ * bigintExpr(       10000000000000_) <>        10000000000000_ or
11037         1_ * bigintExpr(      100000000000000_) <>       100000000000000_ or
11038         1_ * bigintExpr(     1000000000000000_) <>      1000000000000000_ or
11039         1_ * bigintExpr(    10000000000000000_) <>     10000000000000000_ or
11040         1_ * bigintExpr(   100000000000000000_) <>    100000000000000000_ or
11041         1_ * bigintExpr(  1000000000000000000_) <>   1000000000000000000_ or
11042         1_ * bigintExpr( 10000000000000000000_) <>  10000000000000000000_ or
11043         1_ * bigintExpr( 18446744073709551615_) <>  18446744073709551615_ or
11044         1_ * bigintExpr( 18446744073709551616_) <>  18446744073709551616_ or
11045         2_ * bigintExpr(-18446744073709551617_) <> -36893488147419103234_ or
11046         2_ * bigintExpr(-18446744073709551616_) <> -36893488147419103232_ or
11047         2_ * bigintExpr(-10000000000000000000_) <> -20000000000000000000_ or
11048         2_ * bigintExpr( -1000000000000000000_) <>  -2000000000000000000_ or
11049         2_ * bigintExpr(  -100000000000000000_) <>   -200000000000000000_ or
11050         2_ * bigintExpr(   -10000000000000000_) <>    -20000000000000000_ or
11051         2_ * bigintExpr(    -1000000000000000_) <>     -2000000000000000_ or
11052         2_ * bigintExpr(     -100000000000000_) <>      -200000000000000_ or
11053         2_ * bigintExpr(      -10000000000000_) <>       -20000000000000_ or
11054         2_ * bigintExpr(       -1000000000000_) <>        -2000000000000_ or
11055         2_ * bigintExpr(        -100000000000_) <>         -200000000000_ or
11056         2_ * bigintExpr(         -10000000000_) <>          -20000000000_ or
11057         2_ * bigintExpr(          -4294967297_) <>           -8589934594_ or
11058         2_ * bigintExpr(          -4294967296_) <>           -8589934592_ or
11059         2_ * bigintExpr(          -1000000000_) <>           -2000000000_ or
11060         2_ * bigintExpr(           -100000000_) <>            -200000000_ or
11061         2_ * bigintExpr(            -10000000_) <>             -20000000_ or
11062         2_ * bigintExpr(             -1000000_) <>              -2000000_ or
11063         2_ * bigintExpr(              -100000_) <>               -200000_ or
11064         2_ * bigintExpr(               -65537_) <>               -131074_ or
11065         2_ * bigintExpr(               -65536_) <>               -131072_ or
11066         2_ * bigintExpr(               -10000_) <>                -20000_ or
11067         2_ * bigintExpr(                -1000_) <>                 -2000_ or
11068         2_ * bigintExpr(                 -257_) <>                  -514_ or
11069         2_ * bigintExpr(                 -256_) <>                  -512_ or
11070         2_ * bigintExpr(                  -10_) <>                   -20_ or
11071         2_ * bigintExpr(                   -4_) <>                    -8_ or
11072         2_ * bigintExpr(                   -3_) <>                    -6_ or
11073         2_ * bigintExpr(                   -2_) <>                    -4_ or
11074         2_ * bigintExpr(                   -1_) <>                    -2_ or
11075         2_ * bigintExpr(                    0_) <>                     0_ or
11076         2_ * bigintExpr(                    1_) <>                     2_ or
11077         2_ * bigintExpr(                    2_) <>                     4_ or
11078         2_ * bigintExpr(                    3_) <>                     6_ or
11079         2_ * bigintExpr(                    4_) <>                     8_ or
11080         2_ * bigintExpr(                   10_) <>                    20_ or
11081         2_ * bigintExpr(                  255_) <>                   510_ or
11082         2_ * bigintExpr(                  256_) <>                   512_ or
11083         2_ * bigintExpr(                 1000_) <>                  2000_ or
11084         2_ * bigintExpr(                10000_) <>                 20000_ or
11085         2_ * bigintExpr(                65535_) <>                131070_ or
11086         2_ * bigintExpr(                65536_) <>                131072_ or
11087         2_ * bigintExpr(               100000_) <>                200000_ or
11088         2_ * bigintExpr(              1000000_) <>               2000000_ or
11089         2_ * bigintExpr(             10000000_) <>              20000000_ or
11090         2_ * bigintExpr(            100000000_) <>             200000000_ or
11091         2_ * bigintExpr(           1000000000_) <>            2000000000_ or
11092         2_ * bigintExpr(           4294967295_) <>            8589934590_ or
11093         2_ * bigintExpr(           4294967296_) <>            8589934592_ or
11094         2_ * bigintExpr(          10000000000_) <>           20000000000_ or
11095         2_ * bigintExpr(         100000000000_) <>          200000000000_ or
11096         2_ * bigintExpr(        1000000000000_) <>         2000000000000_ or
11097         2_ * bigintExpr(       10000000000000_) <>        20000000000000_ or
11098         2_ * bigintExpr(      100000000000000_) <>       200000000000000_ or
11099         2_ * bigintExpr(     1000000000000000_) <>      2000000000000000_ or
11100         2_ * bigintExpr(    10000000000000000_) <>     20000000000000000_ or
11101         2_ * bigintExpr(   100000000000000000_) <>    200000000000000000_ or
11102         2_ * bigintExpr(  1000000000000000000_) <>   2000000000000000000_ or
11103         2_ * bigintExpr( 10000000000000000000_) <>  20000000000000000000_ or
11104         2_ * bigintExpr( 18446744073709551615_) <>  36893488147419103230_ or
11105         2_ * bigintExpr( 18446744073709551616_) <>  36893488147419103232_ or
11106         3_ * bigintExpr(-18446744073709551617_) <> -55340232221128654851_ or
11107         3_ * bigintExpr(-18446744073709551616_) <> -55340232221128654848_ or
11108         3_ * bigintExpr(-10000000000000000000_) <> -30000000000000000000_ or
11109         3_ * bigintExpr( -1000000000000000000_) <>  -3000000000000000000_ or
11110         3_ * bigintExpr(  -100000000000000000_) <>   -300000000000000000_ or
11111         3_ * bigintExpr(   -10000000000000000_) <>    -30000000000000000_ or
11112         3_ * bigintExpr(    -1000000000000000_) <>     -3000000000000000_ or
11113         3_ * bigintExpr(     -100000000000000_) <>      -300000000000000_ or
11114         3_ * bigintExpr(      -10000000000000_) <>       -30000000000000_ or
11115         3_ * bigintExpr(       -1000000000000_) <>        -3000000000000_ or
11116         3_ * bigintExpr(        -100000000000_) <>         -300000000000_ or
11117         3_ * bigintExpr(         -10000000000_) <>          -30000000000_ or
11118         3_ * bigintExpr(          -4294967297_) <>          -12884901891_ or
11119         3_ * bigintExpr(          -4294967296_) <>          -12884901888_ or
11120         3_ * bigintExpr(          -1000000000_) <>           -3000000000_ or
11121         3_ * bigintExpr(           -100000000_) <>            -300000000_ or
11122         3_ * bigintExpr(            -10000000_) <>             -30000000_ or
11123         3_ * bigintExpr(             -1000000_) <>              -3000000_ or
11124         3_ * bigintExpr(              -100000_) <>               -300000_ or
11125         3_ * bigintExpr(               -65537_) <>               -196611_ or
11126         3_ * bigintExpr(               -65536_) <>               -196608_ or
11127         3_ * bigintExpr(               -10000_) <>                -30000_ or
11128         3_ * bigintExpr(                -1000_) <>                 -3000_ or
11129         3_ * bigintExpr(                 -257_) <>                  -771_ or
11130         3_ * bigintExpr(                 -256_) <>                  -768_ or
11131         3_ * bigintExpr(                  -10_) <>                   -30_ or
11132         3_ * bigintExpr(                   -4_) <>                   -12_ or
11133         3_ * bigintExpr(                   -3_) <>                    -9_ or
11134         3_ * bigintExpr(                   -2_) <>                    -6_ or
11135         3_ * bigintExpr(                   -1_) <>                    -3_ or
11136         3_ * bigintExpr(                    0_) <>                     0_ or
11137         3_ * bigintExpr(                    1_) <>                     3_ or
11138         3_ * bigintExpr(                    2_) <>                     6_ or
11139         3_ * bigintExpr(                    3_) <>                     9_ or
11140         3_ * bigintExpr(                    4_) <>                    12_ or
11141         3_ * bigintExpr(                   10_) <>                    30_ or
11142         3_ * bigintExpr(                  255_) <>                   765_ or
11143         3_ * bigintExpr(                  256_) <>                   768_ or
11144         3_ * bigintExpr(                 1000_) <>                  3000_ or
11145         3_ * bigintExpr(                10000_) <>                 30000_ or
11146         3_ * bigintExpr(                65535_) <>                196605_ or
11147         3_ * bigintExpr(                65536_) <>                196608_ or
11148         3_ * bigintExpr(               100000_) <>                300000_ or
11149         3_ * bigintExpr(              1000000_) <>               3000000_ or
11150         3_ * bigintExpr(             10000000_) <>              30000000_ or
11151         3_ * bigintExpr(            100000000_) <>             300000000_ or
11152         3_ * bigintExpr(           1000000000_) <>            3000000000_ or
11153         3_ * bigintExpr(           4294967295_) <>           12884901885_ or
11154         3_ * bigintExpr(           4294967296_) <>           12884901888_ or
11155         3_ * bigintExpr(          10000000000_) <>           30000000000_ or
11156         3_ * bigintExpr(         100000000000_) <>          300000000000_ or
11157         3_ * bigintExpr(        1000000000000_) <>         3000000000000_ or
11158         3_ * bigintExpr(       10000000000000_) <>        30000000000000_ or
11159         3_ * bigintExpr(      100000000000000_) <>       300000000000000_ or
11160         3_ * bigintExpr(     1000000000000000_) <>      3000000000000000_ or
11161         3_ * bigintExpr(    10000000000000000_) <>     30000000000000000_ or
11162         3_ * bigintExpr(   100000000000000000_) <>    300000000000000000_ or
11163         3_ * bigintExpr(  1000000000000000000_) <>   3000000000000000000_ or
11164         3_ * bigintExpr( 10000000000000000000_) <>  30000000000000000000_ or
11165         3_ * bigintExpr( 18446744073709551615_) <>  55340232221128654845_ or
11166         3_ * bigintExpr( 18446744073709551616_) <>  55340232221128654848_ or
11167        bigintExpr(-18446744073709551617_) * -3_ <>  55340232221128654851_ or
11168        bigintExpr(-18446744073709551616_) * -3_ <>  55340232221128654848_ or
11169        bigintExpr(-10000000000000000000_) * -3_ <>  30000000000000000000_ or
11170        bigintExpr( -1000000000000000000_) * -3_ <>   3000000000000000000_ or
11171        bigintExpr(  -100000000000000000_) * -3_ <>    300000000000000000_ or
11172        bigintExpr(   -10000000000000000_) * -3_ <>     30000000000000000_ or
11173        bigintExpr(    -1000000000000000_) * -3_ <>      3000000000000000_ or
11174        bigintExpr(     -100000000000000_) * -3_ <>       300000000000000_ or
11175        bigintExpr(      -10000000000000_) * -3_ <>        30000000000000_ or
11176        bigintExpr(       -1000000000000_) * -3_ <>         3000000000000_ or
11177        bigintExpr(        -100000000000_) * -3_ <>          300000000000_ or
11178        bigintExpr(         -10000000000_) * -3_ <>           30000000000_ or
11179        bigintExpr(          -4294967297_) * -3_ <>           12884901891_ or
11180        bigintExpr(          -4294967296_) * -3_ <>           12884901888_ or
11181        bigintExpr(          -1000000000_) * -3_ <>            3000000000_ or
11182        bigintExpr(           -100000000_) * -3_ <>             300000000_ or
11183        bigintExpr(            -10000000_) * -3_ <>              30000000_ or
11184        bigintExpr(             -1000000_) * -3_ <>               3000000_ or
11185        bigintExpr(              -100000_) * -3_ <>                300000_ or
11186        bigintExpr(               -65537_) * -3_ <>                196611_ or
11187        bigintExpr(               -65536_) * -3_ <>                196608_ or
11188        bigintExpr(               -10000_) * -3_ <>                 30000_ or
11189        bigintExpr(                -1000_) * -3_ <>                  3000_ or
11190        bigintExpr(                 -257_) * -3_ <>                   771_ or
11191        bigintExpr(                 -256_) * -3_ <>                   768_ or
11192        bigintExpr(                  -10_) * -3_ <>                    30_ or
11193        bigintExpr(                   -4_) * -3_ <>                    12_ or
11194        bigintExpr(                   -3_) * -3_ <>                     9_ or
11195        bigintExpr(                   -2_) * -3_ <>                     6_ or
11196        bigintExpr(                   -1_) * -3_ <>                     3_ or
11197        bigintExpr(                    0_) * -3_ <>                     0_ or
11198        bigintExpr(                    1_) * -3_ <>                    -3_ or
11199        bigintExpr(                    2_) * -3_ <>                    -6_ or
11200        bigintExpr(                    3_) * -3_ <>                    -9_ or
11201        bigintExpr(                    4_) * -3_ <>                   -12_ or
11202        bigintExpr(                   10_) * -3_ <>                   -30_ or
11203        bigintExpr(                  255_) * -3_ <>                  -765_ or
11204        bigintExpr(                  256_) * -3_ <>                  -768_ or
11205        bigintExpr(                 1000_) * -3_ <>                 -3000_ or
11206        bigintExpr(                10000_) * -3_ <>                -30000_ or
11207        bigintExpr(                65535_) * -3_ <>               -196605_ or
11208        bigintExpr(                65536_) * -3_ <>               -196608_ or
11209        bigintExpr(               100000_) * -3_ <>               -300000_ or
11210        bigintExpr(              1000000_) * -3_ <>              -3000000_ or
11211        bigintExpr(             10000000_) * -3_ <>             -30000000_ or
11212        bigintExpr(            100000000_) * -3_ <>            -300000000_ or
11213        bigintExpr(           1000000000_) * -3_ <>           -3000000000_ or
11214        bigintExpr(           4294967295_) * -3_ <>          -12884901885_ or
11215        bigintExpr(           4294967296_) * -3_ <>          -12884901888_ or
11216        bigintExpr(          10000000000_) * -3_ <>          -30000000000_ or
11217        bigintExpr(         100000000000_) * -3_ <>         -300000000000_ or
11218        bigintExpr(        1000000000000_) * -3_ <>        -3000000000000_ or
11219        bigintExpr(       10000000000000_) * -3_ <>       -30000000000000_ or
11220        bigintExpr(      100000000000000_) * -3_ <>      -300000000000000_ or
11221        bigintExpr(     1000000000000000_) * -3_ <>     -3000000000000000_ or
11222        bigintExpr(    10000000000000000_) * -3_ <>    -30000000000000000_ or
11223        bigintExpr(   100000000000000000_) * -3_ <>   -300000000000000000_ or
11224        bigintExpr(  1000000000000000000_) * -3_ <>  -3000000000000000000_ or
11225        bigintExpr( 10000000000000000000_) * -3_ <> -30000000000000000000_ or
11226        bigintExpr( 18446744073709551615_) * -3_ <> -55340232221128654845_ or
11227        bigintExpr( 18446744073709551616_) * -3_ <> -55340232221128654848_ or
11228        bigintExpr(-18446744073709551617_) * -2_ <>  36893488147419103234_ or
11229        bigintExpr(-18446744073709551616_) * -2_ <>  36893488147419103232_ or
11230        bigintExpr(-10000000000000000000_) * -2_ <>  20000000000000000000_ or
11231        bigintExpr( -1000000000000000000_) * -2_ <>   2000000000000000000_ or
11232        bigintExpr(  -100000000000000000_) * -2_ <>    200000000000000000_ or
11233        bigintExpr(   -10000000000000000_) * -2_ <>     20000000000000000_ or
11234        bigintExpr(    -1000000000000000_) * -2_ <>      2000000000000000_ or
11235        bigintExpr(     -100000000000000_) * -2_ <>       200000000000000_ or
11236        bigintExpr(      -10000000000000_) * -2_ <>        20000000000000_ or
11237        bigintExpr(       -1000000000000_) * -2_ <>         2000000000000_ or
11238        bigintExpr(        -100000000000_) * -2_ <>          200000000000_ or
11239        bigintExpr(         -10000000000_) * -2_ <>           20000000000_ or
11240        bigintExpr(          -4294967297_) * -2_ <>            8589934594_ or
11241        bigintExpr(          -4294967296_) * -2_ <>            8589934592_ or
11242        bigintExpr(          -1000000000_) * -2_ <>            2000000000_ or
11243        bigintExpr(           -100000000_) * -2_ <>             200000000_ or
11244        bigintExpr(            -10000000_) * -2_ <>              20000000_ or
11245        bigintExpr(             -1000000_) * -2_ <>               2000000_ or
11246        bigintExpr(              -100000_) * -2_ <>                200000_ or
11247        bigintExpr(               -65537_) * -2_ <>                131074_ or
11248        bigintExpr(               -65536_) * -2_ <>                131072_ or
11249        bigintExpr(               -10000_) * -2_ <>                 20000_ or
11250        bigintExpr(                -1000_) * -2_ <>                  2000_ or
11251        bigintExpr(                 -257_) * -2_ <>                   514_ or
11252        bigintExpr(                 -256_) * -2_ <>                   512_ or
11253        bigintExpr(                  -10_) * -2_ <>                    20_ or
11254        bigintExpr(                   -4_) * -2_ <>                     8_ or
11255        bigintExpr(                   -3_) * -2_ <>                     6_ or
11256        bigintExpr(                   -2_) * -2_ <>                     4_ or
11257        bigintExpr(                   -1_) * -2_ <>                     2_ or
11258        bigintExpr(                    0_) * -2_ <>                     0_ or
11259        bigintExpr(                    1_) * -2_ <>                    -2_ or
11260        bigintExpr(                    2_) * -2_ <>                    -4_ or
11261        bigintExpr(                    3_) * -2_ <>                    -6_ or
11262        bigintExpr(                    4_) * -2_ <>                    -8_ or
11263        bigintExpr(                   10_) * -2_ <>                   -20_ or
11264        bigintExpr(                  255_) * -2_ <>                  -510_ or
11265        bigintExpr(                  256_) * -2_ <>                  -512_ or
11266        bigintExpr(                 1000_) * -2_ <>                 -2000_ or
11267        bigintExpr(                10000_) * -2_ <>                -20000_ or
11268        bigintExpr(                65535_) * -2_ <>               -131070_ or
11269        bigintExpr(                65536_) * -2_ <>               -131072_ or
11270        bigintExpr(               100000_) * -2_ <>               -200000_ or
11271        bigintExpr(              1000000_) * -2_ <>              -2000000_ or
11272        bigintExpr(             10000000_) * -2_ <>             -20000000_ or
11273        bigintExpr(            100000000_) * -2_ <>            -200000000_ or
11274        bigintExpr(           1000000000_) * -2_ <>           -2000000000_ or
11275        bigintExpr(           4294967295_) * -2_ <>           -8589934590_ or
11276        bigintExpr(           4294967296_) * -2_ <>           -8589934592_ or
11277        bigintExpr(          10000000000_) * -2_ <>          -20000000000_ or
11278        bigintExpr(         100000000000_) * -2_ <>         -200000000000_ or
11279        bigintExpr(        1000000000000_) * -2_ <>        -2000000000000_ or
11280        bigintExpr(       10000000000000_) * -2_ <>       -20000000000000_ or
11281        bigintExpr(      100000000000000_) * -2_ <>      -200000000000000_ or
11282        bigintExpr(     1000000000000000_) * -2_ <>     -2000000000000000_ or
11283        bigintExpr(    10000000000000000_) * -2_ <>    -20000000000000000_ or
11284        bigintExpr(   100000000000000000_) * -2_ <>   -200000000000000000_ or
11285        bigintExpr(  1000000000000000000_) * -2_ <>  -2000000000000000000_ or
11286        bigintExpr( 10000000000000000000_) * -2_ <> -20000000000000000000_ or
11287        bigintExpr( 18446744073709551615_) * -2_ <> -36893488147419103230_ or
11288        bigintExpr( 18446744073709551616_) * -2_ <> -36893488147419103232_ or
11289        bigintExpr(-18446744073709551617_) * -1_ <>  18446744073709551617_ or
11290        bigintExpr(-18446744073709551616_) * -1_ <>  18446744073709551616_ or
11291        bigintExpr(-10000000000000000000_) * -1_ <>  10000000000000000000_ or
11292        bigintExpr( -1000000000000000000_) * -1_ <>   1000000000000000000_ or
11293        bigintExpr(  -100000000000000000_) * -1_ <>    100000000000000000_ or
11294        bigintExpr(   -10000000000000000_) * -1_ <>     10000000000000000_ or
11295        bigintExpr(    -1000000000000000_) * -1_ <>      1000000000000000_ or
11296        bigintExpr(     -100000000000000_) * -1_ <>       100000000000000_ or
11297        bigintExpr(      -10000000000000_) * -1_ <>        10000000000000_ or
11298        bigintExpr(       -1000000000000_) * -1_ <>         1000000000000_ or
11299        bigintExpr(        -100000000000_) * -1_ <>          100000000000_ or
11300        bigintExpr(         -10000000000_) * -1_ <>           10000000000_ or
11301        bigintExpr(          -4294967297_) * -1_ <>            4294967297_ or
11302        bigintExpr(          -4294967296_) * -1_ <>            4294967296_ or
11303        bigintExpr(          -1000000000_) * -1_ <>            1000000000_ or
11304        bigintExpr(           -100000000_) * -1_ <>             100000000_ or
11305        bigintExpr(            -10000000_) * -1_ <>              10000000_ or
11306        bigintExpr(             -1000000_) * -1_ <>               1000000_ or
11307        bigintExpr(              -100000_) * -1_ <>                100000_ or
11308        bigintExpr(               -65537_) * -1_ <>                 65537_ or
11309        bigintExpr(               -65536_) * -1_ <>                 65536_ or
11310        bigintExpr(               -10000_) * -1_ <>                 10000_ or
11311        bigintExpr(                -1000_) * -1_ <>                  1000_ or
11312        bigintExpr(                 -257_) * -1_ <>                   257_ or
11313        bigintExpr(                 -256_) * -1_ <>                   256_ or
11314        bigintExpr(                  -10_) * -1_ <>                    10_ or
11315        bigintExpr(                   -4_) * -1_ <>                     4_ or
11316        bigintExpr(                   -3_) * -1_ <>                     3_ or
11317        bigintExpr(                   -2_) * -1_ <>                     2_ or
11318        bigintExpr(                   -1_) * -1_ <>                     1_ or
11319        bigintExpr(                    0_) * -1_ <>                     0_ or
11320        bigintExpr(                    1_) * -1_ <>                    -1_ or
11321        bigintExpr(                    2_) * -1_ <>                    -2_ or
11322        bigintExpr(                    3_) * -1_ <>                    -3_ or
11323        bigintExpr(                    4_) * -1_ <>                    -4_ or
11324        bigintExpr(                   10_) * -1_ <>                   -10_ or
11325        bigintExpr(                  255_) * -1_ <>                  -255_ or
11326        bigintExpr(                  256_) * -1_ <>                  -256_ or
11327        bigintExpr(                 1000_) * -1_ <>                 -1000_ or
11328        bigintExpr(                10000_) * -1_ <>                -10000_ or
11329        bigintExpr(                65535_) * -1_ <>                -65535_ or
11330        bigintExpr(                65536_) * -1_ <>                -65536_ or
11331        bigintExpr(               100000_) * -1_ <>               -100000_ or
11332        bigintExpr(              1000000_) * -1_ <>              -1000000_ or
11333        bigintExpr(             10000000_) * -1_ <>             -10000000_ or
11334        bigintExpr(            100000000_) * -1_ <>            -100000000_ or
11335        bigintExpr(           1000000000_) * -1_ <>           -1000000000_ or
11336        bigintExpr(           4294967295_) * -1_ <>           -4294967295_ or
11337        bigintExpr(           4294967296_) * -1_ <>           -4294967296_ or
11338        bigintExpr(          10000000000_) * -1_ <>          -10000000000_ or
11339        bigintExpr(         100000000000_) * -1_ <>         -100000000000_ or
11340        bigintExpr(        1000000000000_) * -1_ <>        -1000000000000_ or
11341        bigintExpr(       10000000000000_) * -1_ <>       -10000000000000_ or
11342        bigintExpr(      100000000000000_) * -1_ <>      -100000000000000_ or
11343        bigintExpr(     1000000000000000_) * -1_ <>     -1000000000000000_ or
11344        bigintExpr(    10000000000000000_) * -1_ <>    -10000000000000000_ or
11345        bigintExpr(   100000000000000000_) * -1_ <>   -100000000000000000_ or
11346        bigintExpr(  1000000000000000000_) * -1_ <>  -1000000000000000000_ or
11347        bigintExpr( 10000000000000000000_) * -1_ <> -10000000000000000000_ or
11348        bigintExpr( 18446744073709551615_) * -1_ <> -18446744073709551615_ or
11349        bigintExpr( 18446744073709551616_) * -1_ <> -18446744073709551616_ or
11350        bigintExpr(-18446744073709551617_) *  0_ <> 0_ or
11351        bigintExpr(-18446744073709551616_) *  0_ <> 0_ or
11352        bigintExpr(-10000000000000000000_) *  0_ <> 0_ or
11353        bigintExpr( -1000000000000000000_) *  0_ <> 0_ or
11354        bigintExpr(  -100000000000000000_) *  0_ <> 0_ or
11355        bigintExpr(   -10000000000000000_) *  0_ <> 0_ or
11356        bigintExpr(    -1000000000000000_) *  0_ <> 0_ or
11357        bigintExpr(     -100000000000000_) *  0_ <> 0_ or
11358        bigintExpr(      -10000000000000_) *  0_ <> 0_ or
11359        bigintExpr(       -1000000000000_) *  0_ <> 0_ or
11360        bigintExpr(        -100000000000_) *  0_ <> 0_ or
11361        bigintExpr(         -10000000000_) *  0_ <> 0_ or
11362        bigintExpr(          -4294967297_) *  0_ <> 0_ or
11363        bigintExpr(          -4294967296_) *  0_ <> 0_ or
11364        bigintExpr(          -1000000000_) *  0_ <> 0_ or
11365        bigintExpr(           -100000000_) *  0_ <> 0_ or
11366        bigintExpr(            -10000000_) *  0_ <> 0_ or
11367        bigintExpr(             -1000000_) *  0_ <> 0_ or
11368        bigintExpr(              -100000_) *  0_ <> 0_ or
11369        bigintExpr(               -65536_) *  0_ <> 0_ or
11370        bigintExpr(               -65536_) *  0_ <> 0_ or
11371        bigintExpr(               -10000_) *  0_ <> 0_ or
11372        bigintExpr(                -1000_) *  0_ <> 0_ or
11373        bigintExpr(                 -257_) *  0_ <> 0_ or
11374        bigintExpr(                 -256_) *  0_ <> 0_ or
11375        bigintExpr(                  -10_) *  0_ <> 0_ or
11376        bigintExpr(                   -4_) *  0_ <> 0_ or
11377        bigintExpr(                   -3_) *  0_ <> 0_ or
11378        bigintExpr(                   -2_) *  0_ <> 0_ or
11379        bigintExpr(                   -1_) *  0_ <> 0_ or
11380        bigintExpr(                    0_) *  0_ <> 0_ or
11381        bigintExpr(                    1_) *  0_ <> 0_ or
11382        bigintExpr(                    2_) *  0_ <> 0_ or
11383        bigintExpr(                    3_) *  0_ <> 0_ or
11384        bigintExpr(                    4_) *  0_ <> 0_ or
11385        bigintExpr(                   10_) *  0_ <> 0_ or
11386        bigintExpr(                  255_) *  0_ <> 0_ or
11387        bigintExpr(                  256_) *  0_ <> 0_ or
11388        bigintExpr(                 1000_) *  0_ <> 0_ or
11389        bigintExpr(                10000_) *  0_ <> 0_ or
11390        bigintExpr(                65535_) *  0_ <> 0_ or
11391        bigintExpr(                65536_) *  0_ <> 0_ or
11392        bigintExpr(               100000_) *  0_ <> 0_ or
11393        bigintExpr(              1000000_) *  0_ <> 0_ or
11394        bigintExpr(             10000000_) *  0_ <> 0_ or
11395        bigintExpr(            100000000_) *  0_ <> 0_ or
11396        bigintExpr(           1000000000_) *  0_ <> 0_ or
11397        bigintExpr(           4294967295_) *  0_ <> 0_ or
11398        bigintExpr(           4294967296_) *  0_ <> 0_ or
11399        bigintExpr(          10000000000_) *  0_ <> 0_ or
11400        bigintExpr(         100000000000_) *  0_ <> 0_ or
11401        bigintExpr(        1000000000000_) *  0_ <> 0_ or
11402        bigintExpr(       10000000000000_) *  0_ <> 0_ or
11403        bigintExpr(      100000000000000_) *  0_ <> 0_ or
11404        bigintExpr(     1000000000000000_) *  0_ <> 0_ or
11405        bigintExpr(    10000000000000000_) *  0_ <> 0_ or
11406        bigintExpr(   100000000000000000_) *  0_ <> 0_ or
11407        bigintExpr(  1000000000000000000_) *  0_ <> 0_ or
11408        bigintExpr( 10000000000000000000_) *  0_ <> 0_ or
11409        bigintExpr( 18446744073709551615_) *  0_ <> 0_ or
11410        bigintExpr( 18446744073709551616_) *  0_ <> 0_ or
11411        bigintExpr(-18446744073709551617_) *  1_ <> -18446744073709551617_ or
11412        bigintExpr(-18446744073709551616_) *  1_ <> -18446744073709551616_ or
11413        bigintExpr(-10000000000000000000_) *  1_ <> -10000000000000000000_ or
11414        bigintExpr( -1000000000000000000_) *  1_ <>  -1000000000000000000_ or
11415        bigintExpr(  -100000000000000000_) *  1_ <>   -100000000000000000_ or
11416        bigintExpr(   -10000000000000000_) *  1_ <>    -10000000000000000_ or
11417        bigintExpr(    -1000000000000000_) *  1_ <>     -1000000000000000_ or
11418        bigintExpr(     -100000000000000_) *  1_ <>      -100000000000000_ or
11419        bigintExpr(      -10000000000000_) *  1_ <>       -10000000000000_ or
11420        bigintExpr(       -1000000000000_) *  1_ <>        -1000000000000_ or
11421        bigintExpr(        -100000000000_) *  1_ <>         -100000000000_ or
11422        bigintExpr(         -10000000000_) *  1_ <>          -10000000000_ or
11423        bigintExpr(          -4294967297_) *  1_ <>           -4294967297_ or
11424        bigintExpr(          -4294967296_) *  1_ <>           -4294967296_ or
11425        bigintExpr(          -1000000000_) *  1_ <>           -1000000000_ or
11426        bigintExpr(           -100000000_) *  1_ <>            -100000000_ or
11427        bigintExpr(            -10000000_) *  1_ <>             -10000000_ or
11428        bigintExpr(             -1000000_) *  1_ <>              -1000000_ or
11429        bigintExpr(              -100000_) *  1_ <>               -100000_ or
11430        bigintExpr(               -65537_) *  1_ <>                -65537_ or
11431        bigintExpr(               -65536_) *  1_ <>                -65536_ or
11432        bigintExpr(               -10000_) *  1_ <>                -10000_ or
11433        bigintExpr(                -1000_) *  1_ <>                 -1000_ or
11434        bigintExpr(                 -257_) *  1_ <>                  -257_ or
11435        bigintExpr(                 -256_) *  1_ <>                  -256_ or
11436        bigintExpr(                  -10_) *  1_ <>                   -10_ or
11437        bigintExpr(                   -4_) *  1_ <>                    -4_ or
11438        bigintExpr(                   -3_) *  1_ <>                    -3_ or
11439        bigintExpr(                   -2_) *  1_ <>                    -2_ or
11440        bigintExpr(                   -1_) *  1_ <>                    -1_ or
11441        bigintExpr(                    0_) *  1_ <>                     0_ or
11442        bigintExpr(                    1_) *  1_ <>                     1_ or
11443        bigintExpr(                    2_) *  1_ <>                     2_ or
11444        bigintExpr(                    3_) *  1_ <>                     3_ or
11445        bigintExpr(                    4_) *  1_ <>                     4_ or
11446        bigintExpr(                   10_) *  1_ <>                    10_ or
11447        bigintExpr(                  255_) *  1_ <>                   255_ or
11448        bigintExpr(                  256_) *  1_ <>                   256_ or
11449        bigintExpr(                 1000_) *  1_ <>                  1000_ or
11450        bigintExpr(                10000_) *  1_ <>                 10000_ or
11451        bigintExpr(                65535_) *  1_ <>                 65535_ or
11452        bigintExpr(                65536_) *  1_ <>                 65536_ or
11453        bigintExpr(               100000_) *  1_ <>                100000_ or
11454        bigintExpr(              1000000_) *  1_ <>               1000000_ or
11455        bigintExpr(             10000000_) *  1_ <>              10000000_ or
11456        bigintExpr(            100000000_) *  1_ <>             100000000_ or
11457        bigintExpr(           1000000000_) *  1_ <>            1000000000_ or
11458        bigintExpr(           4294967295_) *  1_ <>            4294967295_ or
11459        bigintExpr(           4294967296_) *  1_ <>            4294967296_ or
11460        bigintExpr(          10000000000_) *  1_ <>           10000000000_ or
11461        bigintExpr(         100000000000_) *  1_ <>          100000000000_ or
11462        bigintExpr(        1000000000000_) *  1_ <>         1000000000000_ or
11463        bigintExpr(       10000000000000_) *  1_ <>        10000000000000_ or
11464        bigintExpr(      100000000000000_) *  1_ <>       100000000000000_ or
11465        bigintExpr(     1000000000000000_) *  1_ <>      1000000000000000_ or
11466        bigintExpr(    10000000000000000_) *  1_ <>     10000000000000000_ or
11467        bigintExpr(   100000000000000000_) *  1_ <>    100000000000000000_ or
11468        bigintExpr(  1000000000000000000_) *  1_ <>   1000000000000000000_ or
11469        bigintExpr( 10000000000000000000_) *  1_ <>  10000000000000000000_ or
11470        bigintExpr( 18446744073709551615_) *  1_ <>  18446744073709551615_ or
11471        bigintExpr( 18446744073709551616_) *  1_ <>  18446744073709551616_ or
11472        bigintExpr(-18446744073709551617_) *  2_ <> -36893488147419103234_ or
11473        bigintExpr(-18446744073709551616_) *  2_ <> -36893488147419103232_ or
11474        bigintExpr(-10000000000000000000_) *  2_ <> -20000000000000000000_ or
11475        bigintExpr( -1000000000000000000_) *  2_ <>  -2000000000000000000_ or
11476        bigintExpr(  -100000000000000000_) *  2_ <>   -200000000000000000_ or
11477        bigintExpr(   -10000000000000000_) *  2_ <>    -20000000000000000_ or
11478        bigintExpr(    -1000000000000000_) *  2_ <>     -2000000000000000_ or
11479        bigintExpr(     -100000000000000_) *  2_ <>      -200000000000000_ or
11480        bigintExpr(      -10000000000000_) *  2_ <>       -20000000000000_ or
11481        bigintExpr(       -1000000000000_) *  2_ <>        -2000000000000_ or
11482        bigintExpr(        -100000000000_) *  2_ <>         -200000000000_ or
11483        bigintExpr(         -10000000000_) *  2_ <>          -20000000000_ or
11484        bigintExpr(          -4294967297_) *  2_ <>           -8589934594_ or
11485        bigintExpr(          -4294967296_) *  2_ <>           -8589934592_ or
11486        bigintExpr(          -1000000000_) *  2_ <>           -2000000000_ or
11487        bigintExpr(           -100000000_) *  2_ <>            -200000000_ or
11488        bigintExpr(            -10000000_) *  2_ <>             -20000000_ or
11489        bigintExpr(             -1000000_) *  2_ <>              -2000000_ or
11490        bigintExpr(              -100000_) *  2_ <>               -200000_ or
11491        bigintExpr(               -65537_) *  2_ <>               -131074_ or
11492        bigintExpr(               -65536_) *  2_ <>               -131072_ or
11493        bigintExpr(               -10000_) *  2_ <>                -20000_ or
11494        bigintExpr(                -1000_) *  2_ <>                 -2000_ or
11495        bigintExpr(                 -257_) *  2_ <>                  -514_ or
11496        bigintExpr(                 -256_) *  2_ <>                  -512_ or
11497        bigintExpr(                  -10_) *  2_ <>                   -20_ or
11498        bigintExpr(                   -4_) *  2_ <>                    -8_ or
11499        bigintExpr(                   -3_) *  2_ <>                    -6_ or
11500        bigintExpr(                   -2_) *  2_ <>                    -4_ or
11501        bigintExpr(                   -1_) *  2_ <>                    -2_ or
11502        bigintExpr(                    0_) *  2_ <>                     0_ or
11503        bigintExpr(                    1_) *  2_ <>                     2_ or
11504        bigintExpr(                    2_) *  2_ <>                     4_ or
11505        bigintExpr(                    3_) *  2_ <>                     6_ or
11506        bigintExpr(                    4_) *  2_ <>                     8_ or
11507        bigintExpr(                   10_) *  2_ <>                    20_ or
11508        bigintExpr(                  255_) *  2_ <>                   510_ or
11509        bigintExpr(                  256_) *  2_ <>                   512_ or
11510        bigintExpr(                 1000_) *  2_ <>                  2000_ or
11511        bigintExpr(                10000_) *  2_ <>                 20000_ or
11512        bigintExpr(                65535_) *  2_ <>                131070_ or
11513        bigintExpr(                65536_) *  2_ <>                131072_ or
11514        bigintExpr(               100000_) *  2_ <>                200000_ or
11515        bigintExpr(              1000000_) *  2_ <>               2000000_ or
11516        bigintExpr(             10000000_) *  2_ <>              20000000_ or
11517        bigintExpr(            100000000_) *  2_ <>             200000000_ or
11518        bigintExpr(           1000000000_) *  2_ <>            2000000000_ or
11519        bigintExpr(           4294967295_) *  2_ <>            8589934590_ or
11520        bigintExpr(           4294967296_) *  2_ <>            8589934592_ or
11521        bigintExpr(          10000000000_) *  2_ <>           20000000000_ or
11522        bigintExpr(         100000000000_) *  2_ <>          200000000000_ or
11523        bigintExpr(        1000000000000_) *  2_ <>         2000000000000_ or
11524        bigintExpr(       10000000000000_) *  2_ <>        20000000000000_ or
11525        bigintExpr(      100000000000000_) *  2_ <>       200000000000000_ or
11526        bigintExpr(     1000000000000000_) *  2_ <>      2000000000000000_ or
11527        bigintExpr(    10000000000000000_) *  2_ <>     20000000000000000_ or
11528        bigintExpr(   100000000000000000_) *  2_ <>    200000000000000000_ or
11529        bigintExpr(  1000000000000000000_) *  2_ <>   2000000000000000000_ or
11530        bigintExpr( 10000000000000000000_) *  2_ <>  20000000000000000000_ or
11531        bigintExpr( 18446744073709551615_) *  2_ <>  36893488147419103230_ or
11532        bigintExpr( 18446744073709551616_) *  2_ <>  36893488147419103232_ or
11533        bigintExpr(-18446744073709551617_) *  3_ <> -55340232221128654851_ or
11534        bigintExpr(-18446744073709551616_) *  3_ <> -55340232221128654848_ or
11535        bigintExpr(-10000000000000000000_) *  3_ <> -30000000000000000000_ or
11536        bigintExpr( -1000000000000000000_) *  3_ <>  -3000000000000000000_ or
11537        bigintExpr(  -100000000000000000_) *  3_ <>   -300000000000000000_ or
11538        bigintExpr(   -10000000000000000_) *  3_ <>    -30000000000000000_ or
11539        bigintExpr(    -1000000000000000_) *  3_ <>     -3000000000000000_ or
11540        bigintExpr(     -100000000000000_) *  3_ <>      -300000000000000_ or
11541        bigintExpr(      -10000000000000_) *  3_ <>       -30000000000000_ or
11542        bigintExpr(       -1000000000000_) *  3_ <>        -3000000000000_ or
11543        bigintExpr(        -100000000000_) *  3_ <>         -300000000000_ or
11544        bigintExpr(         -10000000000_) *  3_ <>          -30000000000_ or
11545        bigintExpr(          -4294967297_) *  3_ <>          -12884901891_ or
11546        bigintExpr(          -4294967296_) *  3_ <>          -12884901888_ or
11547        bigintExpr(          -1000000000_) *  3_ <>           -3000000000_ or
11548        bigintExpr(           -100000000_) *  3_ <>            -300000000_ or
11549        bigintExpr(            -10000000_) *  3_ <>             -30000000_ or
11550        bigintExpr(             -1000000_) *  3_ <>              -3000000_ or
11551        bigintExpr(              -100000_) *  3_ <>               -300000_ or
11552        bigintExpr(               -65537_) *  3_ <>               -196611_ or
11553        bigintExpr(               -65536_) *  3_ <>               -196608_ or
11554        bigintExpr(               -10000_) *  3_ <>                -30000_ or
11555        bigintExpr(                -1000_) *  3_ <>                 -3000_ or
11556        bigintExpr(                 -257_) *  3_ <>                  -771_ or
11557        bigintExpr(                 -256_) *  3_ <>                  -768_ or
11558        bigintExpr(                  -10_) *  3_ <>                   -30_ or
11559        bigintExpr(                   -4_) *  3_ <>                   -12_ or
11560        bigintExpr(                   -3_) *  3_ <>                    -9_ or
11561        bigintExpr(                   -2_) *  3_ <>                    -6_ or
11562        bigintExpr(                   -1_) *  3_ <>                    -3_ or
11563        bigintExpr(                    0_) *  3_ <>                     0_ or
11564        bigintExpr(                    1_) *  3_ <>                     3_ or
11565        bigintExpr(                    2_) *  3_ <>                     6_ or
11566        bigintExpr(                    3_) *  3_ <>                     9_ or
11567        bigintExpr(                    4_) *  3_ <>                    12_ or
11568        bigintExpr(                   10_) *  3_ <>                    30_ or
11569        bigintExpr(                  255_) *  3_ <>                   765_ or
11570        bigintExpr(                  256_) *  3_ <>                   768_ or
11571        bigintExpr(                 1000_) *  3_ <>                  3000_ or
11572        bigintExpr(                10000_) *  3_ <>                 30000_ or
11573        bigintExpr(                65535_) *  3_ <>                196605_ or
11574        bigintExpr(                65536_) *  3_ <>                196608_ or
11575        bigintExpr(               100000_) *  3_ <>                300000_ or
11576        bigintExpr(              1000000_) *  3_ <>               3000000_ or
11577        bigintExpr(             10000000_) *  3_ <>              30000000_ or
11578        bigintExpr(            100000000_) *  3_ <>             300000000_ or
11579        bigintExpr(           1000000000_) *  3_ <>            3000000000_ or
11580        bigintExpr(           4294967295_) *  3_ <>           12884901885_ or
11581        bigintExpr(           4294967296_) *  3_ <>           12884901888_ or
11582        bigintExpr(          10000000000_) *  3_ <>           30000000000_ or
11583        bigintExpr(         100000000000_) *  3_ <>          300000000000_ or
11584        bigintExpr(        1000000000000_) *  3_ <>         3000000000000_ or
11585        bigintExpr(       10000000000000_) *  3_ <>        30000000000000_ or
11586        bigintExpr(      100000000000000_) *  3_ <>       300000000000000_ or
11587        bigintExpr(     1000000000000000_) *  3_ <>      3000000000000000_ or
11588        bigintExpr(    10000000000000000_) *  3_ <>     30000000000000000_ or
11589        bigintExpr(   100000000000000000_) *  3_ <>    300000000000000000_ or
11590        bigintExpr(  1000000000000000000_) *  3_ <>   3000000000000000000_ or
11591        bigintExpr( 10000000000000000000_) *  3_ <>  30000000000000000000_ or
11592        bigintExpr( 18446744073709551615_) *  3_ <>  55340232221128654845_ or
11593        bigintExpr( 18446744073709551616_) *  3_ <>  55340232221128654848_ then
11594      writeln("Multiplication of digit with bigInteger values does not work correct.");
11595      okay := FALSE;
11596    end if;
11597
11598    if  bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_) *
11599        bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_) <>
11600        16#14b66dc33f6acdca878d6495a927ab94fa645b6812e4895f6d3b523a7ca16729e012490ce65e44f452e93fdf501b22bec5c036b1b9d8008938972d842394de53ab6e24568d51bc1e1e451b28f70e99e8911c11fb60cb77b303f308cdca88557d76c9ffa034453347e9a0f6729e0211125c77ed4507beeedccf4ee417717bcca718b8ff635c630edca5e20890f2a63112330b11be88e95347c0341aec1f2c757d4d5d2419b56f97b2da862d474bb2b9e867af3674e1f5dc1df4d83fa27838fe53820148d00e7c20890f2a51fda4bf42be9c535b2b3b0264f4297c6458d1458729b6a56d866788a95f43ce76b3fdcbcb94d0f77fe1940eedca5e20890f2a521_ or
11601        bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_) *
11602        bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_) <>
11603        16#121fa00ad77d742247acc9140513b7447d39f21d32a9fa66b2c71b2660403d88e854442f8dd680ab1de16d38bb6cc3cd536e9641e90306ef88fbbf4b16994a11be88e854442f8d33f416115d71c5d05629a33a669f5c13785f30636fccf2569a94bd8c78fa8899bcca4ab582281edcdeffd7de8b55b5200135650794834b632346b2f08801e6be011125c77ed4507adedb989e75a6ba37bca60b756c7923f49a707e4c634b8db1783af1235a1df76e560563fa50f0612b33cfd6d147c2cae8119a49a83e9534a4ef64bc7f35679e61cd2f2f562c3a081eaaf9a22d230c71db88c4150419dedb98668e87db10b145554458fab20783af1222236d88fe5618cf0_ or
11604        bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_) *
11605        bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_) <>
11606        16#121fa00ad77d742247acc9140513b7447d39f21d32a9fa66b2c71b2660403d88e854442f8dd680ab1de16d38bb6cc3cd536e9641e90306ef88fbbf4b16994a11be88e854442f8d33f416115d71c5d05629a33a669f5c13785f30636fccf2569a94bd8c78fa8899bcca4ab582281edcdeffd7de8b55b5200135650794834b632346b2f08801e6be011125c77ed4507adedb989e75a6ba37bca60b756c7923f49a707e4c634b8db1783af1235a1df76e560563fa50f0612b33cfd6d147c2cae8119a49a83e9534a4ef64bc7f35679e61cd2f2f562c3a081eaaf9a22d230c71db88c4150419dedb98668e87db10b145554458fab20783af1222236d88fe5618cf0_ or
11607        bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_) *
11608        bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_) <>
11609        16#fdbac097c8dc5aceda61ee073602f69cb7091b76a329926a93b048e610502e38705776557d76ca064cfea3c4ea9d65d429a5d13457c401a2064cfea3c4ea9d6fe2f42c133211393dbf9b59829f37d50b9c4286f20c5e70d978e9b46179850ca75590e1d0e6aba87532380f4053d244430edf3cafc0f8e010eb866a1f2e1f7bdcccb8165f098d620ef010e8ef9c66c6411369bb802f402a7336c28e10c2198ea55a1b60a154f2f2d77d743331e7cc5709a0cd05c27aa5bb3bc425d8530d7f1f6de77eaae3a05883a00ad77d743331e7d22e305004c60b4c045189229558e4b03674e1f525ebbe1468983ac7b67e97789abb939a471170dcccdeec6cd7a44a4100_ or
11610        bigintExpr(16#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_) *
11611        bigintExpr(16#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_) <>
11612        16#fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_ then
11613      writeln("Karatsuba multiplication does not work correct.");
11614      okay := FALSE;
11615    end if;
11616
11617    if okay then
11618      writeln("Multiplication of bigInteger works correct.");
11619    else
11620      writeln(" ***** Multiplication of bigInteger does not work correct.");
11621      writeln;
11622    end if;
11623  end func;
11624
11625
11626const func boolean: chkMultAssignLiteral1 is func
11627  result
11628    var boolean: ok is TRUE;
11629  local
11630    var bigInteger: big1 is 0_;
11631  begin
11632    big1 :=    -65538_; big1 *:=      -65538_; ok := ok and big1 =  4295229444_;
11633    big1 :=    -65538_; big1 *:=      -65537_; ok := ok and big1 =  4295163906_;
11634    big1 :=    -65538_; big1 *:=      -65536_; ok := ok and big1 =  4295098368_;
11635    big1 :=    -65538_; big1 *:=      -65535_; ok := ok and big1 =  4295032830_;
11636    big1 :=    -65538_; big1 *:=      -65534_; ok := ok and big1 =  4294967292_;
11637    big1 :=    -65538_; big1 *:=      -32770_; ok := ok and big1 =  2147680260_;
11638    big1 :=    -65538_; big1 *:=      -32769_; ok := ok and big1 =  2147614722_;
11639    big1 :=    -65538_; big1 *:=      -32768_; ok := ok and big1 =  2147549184_;
11640    big1 :=    -65538_; big1 *:=      -32767_; ok := ok and big1 =  2147483646_;
11641    big1 :=    -65538_; big1 *:=      -32766_; ok := ok and big1 =  2147418108_;
11642    big1 :=    -65538_; big1 *:=           0_; ok := ok and big1 =           0_;
11643    big1 :=    -65538_; big1 *:=       32766_; ok := ok and big1 = -2147418108_;
11644    big1 :=    -65538_; big1 *:=       32767_; ok := ok and big1 = -2147483646_;
11645    big1 :=    -65538_; big1 *:=       32768_; ok := ok and big1 = -2147549184_;
11646    big1 :=    -65538_; big1 *:=       32769_; ok := ok and big1 = -2147614722_;
11647    big1 :=    -65538_; big1 *:=       32770_; ok := ok and big1 = -2147680260_;
11648    big1 :=    -65538_; big1 *:=       65534_; ok := ok and big1 = -4294967292_;
11649    big1 :=    -65538_; big1 *:=       65535_; ok := ok and big1 = -4295032830_;
11650    big1 :=    -65538_; big1 *:=       65536_; ok := ok and big1 = -4295098368_;
11651    big1 :=    -65538_; big1 *:=       65537_; ok := ok and big1 = -4295163906_;
11652    big1 :=    -65538_; big1 *:=       65538_; ok := ok and big1 = -4295229444_;
11653    big1 :=    -65537_; big1 *:=      -65538_; ok := ok and big1 =  4295163906_;
11654    big1 :=    -65537_; big1 *:=      -65537_; ok := ok and big1 =  4295098369_;
11655    big1 :=    -65537_; big1 *:=      -65536_; ok := ok and big1 =  4295032832_;
11656    big1 :=    -65537_; big1 *:=      -65535_; ok := ok and big1 =  4294967295_;
11657    big1 :=    -65537_; big1 *:=      -65534_; ok := ok and big1 =  4294901758_;
11658    big1 :=    -65537_; big1 *:=      -32770_; ok := ok and big1 =  2147647490_;
11659    big1 :=    -65537_; big1 *:=      -32769_; ok := ok and big1 =  2147581953_;
11660    big1 :=    -65537_; big1 *:=      -32768_; ok := ok and big1 =  2147516416_;
11661    big1 :=    -65537_; big1 *:=      -32767_; ok := ok and big1 =  2147450879_;
11662    big1 :=    -65537_; big1 *:=      -32766_; ok := ok and big1 =  2147385342_;
11663    big1 :=    -65537_; big1 *:=           0_; ok := ok and big1 =           0_;
11664    big1 :=    -65537_; big1 *:=       32766_; ok := ok and big1 = -2147385342_;
11665    big1 :=    -65537_; big1 *:=       32767_; ok := ok and big1 = -2147450879_;
11666    big1 :=    -65537_; big1 *:=       32768_; ok := ok and big1 = -2147516416_;
11667    big1 :=    -65537_; big1 *:=       32769_; ok := ok and big1 = -2147581953_;
11668    big1 :=    -65537_; big1 *:=       32770_; ok := ok and big1 = -2147647490_;
11669    big1 :=    -65537_; big1 *:=       65534_; ok := ok and big1 = -4294901758_;
11670    big1 :=    -65537_; big1 *:=       65535_; ok := ok and big1 = -4294967295_;
11671    big1 :=    -65537_; big1 *:=       65536_; ok := ok and big1 = -4295032832_;
11672    big1 :=    -65537_; big1 *:=       65537_; ok := ok and big1 = -4295098369_;
11673    big1 :=    -65537_; big1 *:=       65538_; ok := ok and big1 = -4295163906_;
11674    big1 :=    -65536_; big1 *:=      -65538_; ok := ok and big1 =  4295098368_;
11675    big1 :=    -65536_; big1 *:=      -65537_; ok := ok and big1 =  4295032832_;
11676    big1 :=    -65536_; big1 *:=      -65536_; ok := ok and big1 =  4294967296_;
11677    big1 :=    -65536_; big1 *:=      -65535_; ok := ok and big1 =  4294901760_;
11678    big1 :=    -65536_; big1 *:=      -65534_; ok := ok and big1 =  4294836224_;
11679    big1 :=    -65536_; big1 *:=      -32770_; ok := ok and big1 =  2147614720_;
11680    big1 :=    -65536_; big1 *:=      -32769_; ok := ok and big1 =  2147549184_;
11681    big1 :=    -65536_; big1 *:=      -32768_; ok := ok and big1 =  2147483648_;
11682    big1 :=    -65536_; big1 *:=      -32767_; ok := ok and big1 =  2147418112_;
11683    big1 :=    -65536_; big1 *:=      -32766_; ok := ok and big1 =  2147352576_;
11684    big1 :=    -65536_; big1 *:=           0_; ok := ok and big1 =           0_;
11685    big1 :=    -65536_; big1 *:=       32766_; ok := ok and big1 = -2147352576_;
11686    big1 :=    -65536_; big1 *:=       32767_; ok := ok and big1 = -2147418112_;
11687    big1 :=    -65536_; big1 *:=       32768_; ok := ok and big1 = -2147483648_;
11688    big1 :=    -65536_; big1 *:=       32769_; ok := ok and big1 = -2147549184_;
11689    big1 :=    -65536_; big1 *:=       32770_; ok := ok and big1 = -2147614720_;
11690    big1 :=    -65536_; big1 *:=       65534_; ok := ok and big1 = -4294836224_;
11691    big1 :=    -65536_; big1 *:=       65535_; ok := ok and big1 = -4294901760_;
11692    big1 :=    -65536_; big1 *:=       65536_; ok := ok and big1 = -4294967296_;
11693    big1 :=    -65536_; big1 *:=       65537_; ok := ok and big1 = -4295032832_;
11694    big1 :=    -65536_; big1 *:=       65538_; ok := ok and big1 = -4295098368_;
11695    big1 :=    -65535_; big1 *:=      -65538_; ok := ok and big1 =  4295032830_;
11696    big1 :=    -65535_; big1 *:=      -65537_; ok := ok and big1 =  4294967295_;
11697    big1 :=    -65535_; big1 *:=      -65536_; ok := ok and big1 =  4294901760_;
11698    big1 :=    -65535_; big1 *:=      -65535_; ok := ok and big1 =  4294836225_;
11699    big1 :=    -65535_; big1 *:=      -65534_; ok := ok and big1 =  4294770690_;
11700    big1 :=    -65535_; big1 *:=      -32770_; ok := ok and big1 =  2147581950_;
11701    big1 :=    -65535_; big1 *:=      -32769_; ok := ok and big1 =  2147516415_;
11702    big1 :=    -65535_; big1 *:=      -32768_; ok := ok and big1 =  2147450880_;
11703    big1 :=    -65535_; big1 *:=      -32767_; ok := ok and big1 =  2147385345_;
11704    big1 :=    -65535_; big1 *:=      -32766_; ok := ok and big1 =  2147319810_;
11705    big1 :=    -65535_; big1 *:=           0_; ok := ok and big1 =           0_;
11706    big1 :=    -65535_; big1 *:=       32766_; ok := ok and big1 = -2147319810_;
11707    big1 :=    -65535_; big1 *:=       32767_; ok := ok and big1 = -2147385345_;
11708    big1 :=    -65535_; big1 *:=       32768_; ok := ok and big1 = -2147450880_;
11709    big1 :=    -65535_; big1 *:=       32769_; ok := ok and big1 = -2147516415_;
11710    big1 :=    -65535_; big1 *:=       32770_; ok := ok and big1 = -2147581950_;
11711    big1 :=    -65535_; big1 *:=       65534_; ok := ok and big1 = -4294770690_;
11712    big1 :=    -65535_; big1 *:=       65535_; ok := ok and big1 = -4294836225_;
11713    big1 :=    -65535_; big1 *:=       65536_; ok := ok and big1 = -4294901760_;
11714    big1 :=    -65535_; big1 *:=       65537_; ok := ok and big1 = -4294967295_;
11715    big1 :=    -65535_; big1 *:=       65538_; ok := ok and big1 = -4295032830_;
11716    big1 :=    -65534_; big1 *:=      -65538_; ok := ok and big1 =  4294967292_;
11717    big1 :=    -65534_; big1 *:=      -65537_; ok := ok and big1 =  4294901758_;
11718    big1 :=    -65534_; big1 *:=      -65536_; ok := ok and big1 =  4294836224_;
11719    big1 :=    -65534_; big1 *:=      -65535_; ok := ok and big1 =  4294770690_;
11720    big1 :=    -65534_; big1 *:=      -65534_; ok := ok and big1 =  4294705156_;
11721    big1 :=    -65534_; big1 *:=      -32770_; ok := ok and big1 =  2147549180_;
11722    big1 :=    -65534_; big1 *:=      -32769_; ok := ok and big1 =  2147483646_;
11723    big1 :=    -65534_; big1 *:=      -32768_; ok := ok and big1 =  2147418112_;
11724    big1 :=    -65534_; big1 *:=      -32767_; ok := ok and big1 =  2147352578_;
11725    big1 :=    -65534_; big1 *:=      -32766_; ok := ok and big1 =  2147287044_;
11726    big1 :=    -65534_; big1 *:=           0_; ok := ok and big1 =           0_;
11727    big1 :=    -65534_; big1 *:=       32766_; ok := ok and big1 = -2147287044_;
11728    big1 :=    -65534_; big1 *:=       32767_; ok := ok and big1 = -2147352578_;
11729    big1 :=    -65534_; big1 *:=       32768_; ok := ok and big1 = -2147418112_;
11730    big1 :=    -65534_; big1 *:=       32769_; ok := ok and big1 = -2147483646_;
11731    big1 :=    -65534_; big1 *:=       32770_; ok := ok and big1 = -2147549180_;
11732    big1 :=    -65534_; big1 *:=       65534_; ok := ok and big1 = -4294705156_;
11733    big1 :=    -65534_; big1 *:=       65535_; ok := ok and big1 = -4294770690_;
11734    big1 :=    -65534_; big1 *:=       65536_; ok := ok and big1 = -4294836224_;
11735    big1 :=    -65534_; big1 *:=       65537_; ok := ok and big1 = -4294901758_;
11736    big1 :=    -65534_; big1 *:=       65538_; ok := ok and big1 = -4294967292_;
11737    big1 :=    -32770_; big1 *:=      -65538_; ok := ok and big1 =  2147680260_;
11738    big1 :=    -32770_; big1 *:=      -65537_; ok := ok and big1 =  2147647490_;
11739    big1 :=    -32770_; big1 *:=      -65536_; ok := ok and big1 =  2147614720_;
11740    big1 :=    -32770_; big1 *:=      -65535_; ok := ok and big1 =  2147581950_;
11741    big1 :=    -32770_; big1 *:=      -65534_; ok := ok and big1 =  2147549180_;
11742    big1 :=    -32770_; big1 *:=      -32770_; ok := ok and big1 =  1073872900_;
11743    big1 :=    -32770_; big1 *:=      -32769_; ok := ok and big1 =  1073840130_;
11744    big1 :=    -32770_; big1 *:=      -32768_; ok := ok and big1 =  1073807360_;
11745    big1 :=    -32770_; big1 *:=      -32767_; ok := ok and big1 =  1073774590_;
11746    big1 :=    -32770_; big1 *:=      -32766_; ok := ok and big1 =  1073741820_;
11747    big1 :=    -32770_; big1 *:=           0_; ok := ok and big1 =           0_;
11748    big1 :=    -32770_; big1 *:=       32766_; ok := ok and big1 = -1073741820_;
11749    big1 :=    -32770_; big1 *:=       32767_; ok := ok and big1 = -1073774590_;
11750    big1 :=    -32770_; big1 *:=       32768_; ok := ok and big1 = -1073807360_;
11751    big1 :=    -32770_; big1 *:=       32769_; ok := ok and big1 = -1073840130_;
11752    big1 :=    -32770_; big1 *:=       32770_; ok := ok and big1 = -1073872900_;
11753    big1 :=    -32770_; big1 *:=       65534_; ok := ok and big1 = -2147549180_;
11754    big1 :=    -32770_; big1 *:=       65535_; ok := ok and big1 = -2147581950_;
11755    big1 :=    -32770_; big1 *:=       65536_; ok := ok and big1 = -2147614720_;
11756    big1 :=    -32770_; big1 *:=       65537_; ok := ok and big1 = -2147647490_;
11757    big1 :=    -32770_; big1 *:=       65538_; ok := ok and big1 = -2147680260_;
11758    big1 :=    -32769_; big1 *:=      -65538_; ok := ok and big1 =  2147614722_;
11759    big1 :=    -32769_; big1 *:=      -65537_; ok := ok and big1 =  2147581953_;
11760    big1 :=    -32769_; big1 *:=      -65536_; ok := ok and big1 =  2147549184_;
11761    big1 :=    -32769_; big1 *:=      -65535_; ok := ok and big1 =  2147516415_;
11762    big1 :=    -32769_; big1 *:=      -65534_; ok := ok and big1 =  2147483646_;
11763    big1 :=    -32769_; big1 *:=      -32770_; ok := ok and big1 =  1073840130_;
11764    big1 :=    -32769_; big1 *:=      -32769_; ok := ok and big1 =  1073807361_;
11765    big1 :=    -32769_; big1 *:=      -32768_; ok := ok and big1 =  1073774592_;
11766    big1 :=    -32769_; big1 *:=      -32767_; ok := ok and big1 =  1073741823_;
11767    big1 :=    -32769_; big1 *:=      -32766_; ok := ok and big1 =  1073709054_;
11768    big1 :=    -32769_; big1 *:=           0_; ok := ok and big1 =           0_;
11769    big1 :=    -32769_; big1 *:=       32766_; ok := ok and big1 = -1073709054_;
11770    big1 :=    -32769_; big1 *:=       32767_; ok := ok and big1 = -1073741823_;
11771    big1 :=    -32769_; big1 *:=       32768_; ok := ok and big1 = -1073774592_;
11772    big1 :=    -32769_; big1 *:=       32769_; ok := ok and big1 = -1073807361_;
11773    big1 :=    -32769_; big1 *:=       32770_; ok := ok and big1 = -1073840130_;
11774    big1 :=    -32769_; big1 *:=       65534_; ok := ok and big1 = -2147483646_;
11775    big1 :=    -32769_; big1 *:=       65535_; ok := ok and big1 = -2147516415_;
11776    big1 :=    -32769_; big1 *:=       65536_; ok := ok and big1 = -2147549184_;
11777    big1 :=    -32769_; big1 *:=       65537_; ok := ok and big1 = -2147581953_;
11778    big1 :=    -32769_; big1 *:=       65538_; ok := ok and big1 = -2147614722_;
11779    big1 :=    -32768_; big1 *:=      -65538_; ok := ok and big1 =  2147549184_;
11780    big1 :=    -32768_; big1 *:=      -65537_; ok := ok and big1 =  2147516416_;
11781    big1 :=    -32768_; big1 *:=      -65536_; ok := ok and big1 =  2147483648_;
11782    big1 :=    -32768_; big1 *:=      -65535_; ok := ok and big1 =  2147450880_;
11783    big1 :=    -32768_; big1 *:=      -65534_; ok := ok and big1 =  2147418112_;
11784    big1 :=    -32768_; big1 *:=      -32770_; ok := ok and big1 =  1073807360_;
11785    big1 :=    -32768_; big1 *:=      -32769_; ok := ok and big1 =  1073774592_;
11786    big1 :=    -32768_; big1 *:=      -32768_; ok := ok and big1 =  1073741824_;
11787    big1 :=    -32768_; big1 *:=      -32767_; ok := ok and big1 =  1073709056_;
11788    big1 :=    -32768_; big1 *:=      -32766_; ok := ok and big1 =  1073676288_;
11789    big1 :=    -32768_; big1 *:=           0_; ok := ok and big1 =           0_;
11790    big1 :=    -32768_; big1 *:=       32766_; ok := ok and big1 = -1073676288_;
11791    big1 :=    -32768_; big1 *:=       32767_; ok := ok and big1 = -1073709056_;
11792    big1 :=    -32768_; big1 *:=       32768_; ok := ok and big1 = -1073741824_;
11793    big1 :=    -32768_; big1 *:=       32769_; ok := ok and big1 = -1073774592_;
11794    big1 :=    -32768_; big1 *:=       32770_; ok := ok and big1 = -1073807360_;
11795    big1 :=    -32768_; big1 *:=       65534_; ok := ok and big1 = -2147418112_;
11796    big1 :=    -32768_; big1 *:=       65535_; ok := ok and big1 = -2147450880_;
11797    big1 :=    -32768_; big1 *:=       65536_; ok := ok and big1 = -2147483648_;
11798    big1 :=    -32768_; big1 *:=       65537_; ok := ok and big1 = -2147516416_;
11799    big1 :=    -32768_; big1 *:=       65538_; ok := ok and big1 = -2147549184_;
11800    big1 :=    -32767_; big1 *:=      -65538_; ok := ok and big1 =  2147483646_;
11801    big1 :=    -32767_; big1 *:=      -65537_; ok := ok and big1 =  2147450879_;
11802    big1 :=    -32767_; big1 *:=      -65536_; ok := ok and big1 =  2147418112_;
11803    big1 :=    -32767_; big1 *:=      -65535_; ok := ok and big1 =  2147385345_;
11804    big1 :=    -32767_; big1 *:=      -65534_; ok := ok and big1 =  2147352578_;
11805    big1 :=    -32767_; big1 *:=      -32770_; ok := ok and big1 =  1073774590_;
11806    big1 :=    -32767_; big1 *:=      -32769_; ok := ok and big1 =  1073741823_;
11807    big1 :=    -32767_; big1 *:=      -32768_; ok := ok and big1 =  1073709056_;
11808    big1 :=    -32767_; big1 *:=      -32767_; ok := ok and big1 =  1073676289_;
11809    big1 :=    -32767_; big1 *:=      -32766_; ok := ok and big1 =  1073643522_;
11810    big1 :=    -32767_; big1 *:=           0_; ok := ok and big1 =           0_;
11811    big1 :=    -32767_; big1 *:=       32766_; ok := ok and big1 = -1073643522_;
11812    big1 :=    -32767_; big1 *:=       32767_; ok := ok and big1 = -1073676289_;
11813    big1 :=    -32767_; big1 *:=       32768_; ok := ok and big1 = -1073709056_;
11814    big1 :=    -32767_; big1 *:=       32769_; ok := ok and big1 = -1073741823_;
11815    big1 :=    -32767_; big1 *:=       32770_; ok := ok and big1 = -1073774590_;
11816    big1 :=    -32767_; big1 *:=       65534_; ok := ok and big1 = -2147352578_;
11817    big1 :=    -32767_; big1 *:=       65535_; ok := ok and big1 = -2147385345_;
11818    big1 :=    -32767_; big1 *:=       65536_; ok := ok and big1 = -2147418112_;
11819    big1 :=    -32767_; big1 *:=       65537_; ok := ok and big1 = -2147450879_;
11820    big1 :=    -32767_; big1 *:=       65538_; ok := ok and big1 = -2147483646_;
11821    big1 :=    -32766_; big1 *:=      -65538_; ok := ok and big1 =  2147418108_;
11822    big1 :=    -32766_; big1 *:=      -65537_; ok := ok and big1 =  2147385342_;
11823    big1 :=    -32766_; big1 *:=      -65536_; ok := ok and big1 =  2147352576_;
11824    big1 :=    -32766_; big1 *:=      -65535_; ok := ok and big1 =  2147319810_;
11825    big1 :=    -32766_; big1 *:=      -65534_; ok := ok and big1 =  2147287044_;
11826    big1 :=    -32766_; big1 *:=      -32770_; ok := ok and big1 =  1073741820_;
11827    big1 :=    -32766_; big1 *:=      -32769_; ok := ok and big1 =  1073709054_;
11828    big1 :=    -32766_; big1 *:=      -32768_; ok := ok and big1 =  1073676288_;
11829    big1 :=    -32766_; big1 *:=      -32767_; ok := ok and big1 =  1073643522_;
11830    big1 :=    -32766_; big1 *:=      -32766_; ok := ok and big1 =  1073610756_;
11831    big1 :=    -32766_; big1 *:=           0_; ok := ok and big1 =           0_;
11832    big1 :=    -32766_; big1 *:=       32766_; ok := ok and big1 = -1073610756_;
11833    big1 :=    -32766_; big1 *:=       32767_; ok := ok and big1 = -1073643522_;
11834    big1 :=    -32766_; big1 *:=       32768_; ok := ok and big1 = -1073676288_;
11835    big1 :=    -32766_; big1 *:=       32769_; ok := ok and big1 = -1073709054_;
11836    big1 :=    -32766_; big1 *:=       32770_; ok := ok and big1 = -1073741820_;
11837    big1 :=    -32766_; big1 *:=       65534_; ok := ok and big1 = -2147287044_;
11838    big1 :=    -32766_; big1 *:=       65535_; ok := ok and big1 = -2147319810_;
11839    big1 :=    -32766_; big1 *:=       65536_; ok := ok and big1 = -2147352576_;
11840    big1 :=    -32766_; big1 *:=       65537_; ok := ok and big1 = -2147385342_;
11841    big1 :=    -32766_; big1 *:=       65538_; ok := ok and big1 = -2147418108_;
11842    big1 :=        -2_; big1 *:=          -2_; ok := ok and big1 =           4_;
11843    big1 :=        -2_; big1 *:=          -1_; ok := ok and big1 =           2_;
11844    big1 :=        -2_; big1 *:=           0_; ok := ok and big1 =           0_;
11845    big1 :=        -2_; big1 *:=           1_; ok := ok and big1 =          -2_;
11846    big1 :=        -2_; big1 *:=           2_; ok := ok and big1 =          -4_;
11847    big1 :=        -1_; big1 *:=          -2_; ok := ok and big1 =           2_;
11848    big1 :=        -1_; big1 *:=          -1_; ok := ok and big1 =           1_;
11849    big1 :=        -1_; big1 *:=           0_; ok := ok and big1 =           0_;
11850    big1 :=        -1_; big1 *:=           1_; ok := ok and big1 =          -1_;
11851    big1 :=        -1_; big1 *:=           2_; ok := ok and big1 =          -2_;
11852    if not ok then
11853      writeln("Multiplication assignment of bigInteger with literals does not work correct. (1)");
11854    end if;
11855  end func;
11856
11857
11858const func boolean: chkMultAssignLiteral2 is func
11859  result
11860    var boolean: ok is TRUE;
11861  local
11862    var bigInteger: big1 is 0_;
11863  begin
11864    big1 :=         0_; big1 *:=          -2_; ok := ok and big1 =           0_;
11865    big1 :=         0_; big1 *:=          -1_; ok := ok and big1 =           0_;
11866    big1 :=         0_; big1 *:=           0_; ok := ok and big1 =           0_;
11867    big1 :=         0_; big1 *:=           1_; ok := ok and big1 =           0_;
11868    big1 :=         0_; big1 *:=           2_; ok := ok and big1 =           0_;
11869    big1 :=         1_; big1 *:=          -2_; ok := ok and big1 =          -2_;
11870    big1 :=         1_; big1 *:=          -1_; ok := ok and big1 =          -1_;
11871    big1 :=         1_; big1 *:=           0_; ok := ok and big1 =           0_;
11872    big1 :=         1_; big1 *:=           1_; ok := ok and big1 =           1_;
11873    big1 :=         1_; big1 *:=           2_; ok := ok and big1 =           2_;
11874    big1 :=         2_; big1 *:=          -2_; ok := ok and big1 =          -4_;
11875    big1 :=         2_; big1 *:=          -1_; ok := ok and big1 =          -2_;
11876    big1 :=         2_; big1 *:=           0_; ok := ok and big1 =           0_;
11877    big1 :=         2_; big1 *:=           1_; ok := ok and big1 =           2_;
11878    big1 :=         2_; big1 *:=           2_; ok := ok and big1 =           4_;
11879    big1 :=       181_; big1 *:=         181_; ok := ok and big1 =       32761_;
11880    big1 :=       128_; big1 *:=         256_; ok := ok and big1 =       32768_;
11881    big1 :=       256_; big1 *:=         256_; ok := ok and big1 =       65536_;
11882    big1 :=     32766_; big1 *:=      -65538_; ok := ok and big1 = -2147418108_;
11883    big1 :=     32766_; big1 *:=      -65537_; ok := ok and big1 = -2147385342_;
11884    big1 :=     32766_; big1 *:=      -65536_; ok := ok and big1 = -2147352576_;
11885    big1 :=     32766_; big1 *:=      -65535_; ok := ok and big1 = -2147319810_;
11886    big1 :=     32766_; big1 *:=      -65534_; ok := ok and big1 = -2147287044_;
11887    big1 :=     32766_; big1 *:=      -32770_; ok := ok and big1 = -1073741820_;
11888    big1 :=     32766_; big1 *:=      -32769_; ok := ok and big1 = -1073709054_;
11889    big1 :=     32766_; big1 *:=      -32768_; ok := ok and big1 = -1073676288_;
11890    big1 :=     32766_; big1 *:=      -32767_; ok := ok and big1 = -1073643522_;
11891    big1 :=     32766_; big1 *:=      -32766_; ok := ok and big1 = -1073610756_;
11892    big1 :=     32766_; big1 *:=           0_; ok := ok and big1 =           0_;
11893    big1 :=     32766_; big1 *:=       32766_; ok := ok and big1 =  1073610756_;
11894    big1 :=     32766_; big1 *:=       32767_; ok := ok and big1 =  1073643522_;
11895    big1 :=     32766_; big1 *:=       32768_; ok := ok and big1 =  1073676288_;
11896    big1 :=     32766_; big1 *:=       32769_; ok := ok and big1 =  1073709054_;
11897    big1 :=     32766_; big1 *:=       32770_; ok := ok and big1 =  1073741820_;
11898    big1 :=     32766_; big1 *:=       65534_; ok := ok and big1 =  2147287044_;
11899    big1 :=     32766_; big1 *:=       65535_; ok := ok and big1 =  2147319810_;
11900    big1 :=     32766_; big1 *:=       65536_; ok := ok and big1 =  2147352576_;
11901    big1 :=     32766_; big1 *:=       65537_; ok := ok and big1 =  2147385342_;
11902    big1 :=     32766_; big1 *:=       65538_; ok := ok and big1 =  2147418108_;
11903    big1 :=     32767_; big1 *:=      -65538_; ok := ok and big1 = -2147483646_;
11904    big1 :=     32767_; big1 *:=      -65537_; ok := ok and big1 = -2147450879_;
11905    big1 :=     32767_; big1 *:=      -65536_; ok := ok and big1 = -2147418112_;
11906    big1 :=     32767_; big1 *:=      -65535_; ok := ok and big1 = -2147385345_;
11907    big1 :=     32767_; big1 *:=      -65534_; ok := ok and big1 = -2147352578_;
11908    big1 :=     32767_; big1 *:=      -32770_; ok := ok and big1 = -1073774590_;
11909    big1 :=     32767_; big1 *:=      -32769_; ok := ok and big1 = -1073741823_;
11910    big1 :=     32767_; big1 *:=      -32768_; ok := ok and big1 = -1073709056_;
11911    big1 :=     32767_; big1 *:=      -32767_; ok := ok and big1 = -1073676289_;
11912    big1 :=     32767_; big1 *:=      -32766_; ok := ok and big1 = -1073643522_;
11913    big1 :=     32767_; big1 *:=           0_; ok := ok and big1 =           0_;
11914    big1 :=     32767_; big1 *:=       32766_; ok := ok and big1 =  1073643522_;
11915    big1 :=     32767_; big1 *:=       32767_; ok := ok and big1 =  1073676289_;
11916    big1 :=     32767_; big1 *:=       32768_; ok := ok and big1 =  1073709056_;
11917    big1 :=     32767_; big1 *:=       32769_; ok := ok and big1 =  1073741823_;
11918    big1 :=     32767_; big1 *:=       32770_; ok := ok and big1 =  1073774590_;
11919    big1 :=     32767_; big1 *:=       65534_; ok := ok and big1 =  2147352578_;
11920    big1 :=     32767_; big1 *:=       65535_; ok := ok and big1 =  2147385345_;
11921    big1 :=     32767_; big1 *:=       65536_; ok := ok and big1 =  2147418112_;
11922    big1 :=     32767_; big1 *:=       65537_; ok := ok and big1 =  2147450879_;
11923    big1 :=     32767_; big1 *:=       65538_; ok := ok and big1 =  2147483646_;
11924    big1 :=     32768_; big1 *:=      -65538_; ok := ok and big1 = -2147549184_;
11925    big1 :=     32768_; big1 *:=      -65537_; ok := ok and big1 = -2147516416_;
11926    big1 :=     32768_; big1 *:=      -65536_; ok := ok and big1 = -2147483648_;
11927    big1 :=     32768_; big1 *:=      -65535_; ok := ok and big1 = -2147450880_;
11928    big1 :=     32768_; big1 *:=      -65534_; ok := ok and big1 = -2147418112_;
11929    big1 :=     32768_; big1 *:=      -32770_; ok := ok and big1 = -1073807360_;
11930    big1 :=     32768_; big1 *:=      -32769_; ok := ok and big1 = -1073774592_;
11931    big1 :=     32768_; big1 *:=      -32768_; ok := ok and big1 = -1073741824_;
11932    big1 :=     32768_; big1 *:=      -32767_; ok := ok and big1 = -1073709056_;
11933    big1 :=     32768_; big1 *:=      -32766_; ok := ok and big1 = -1073676288_;
11934    big1 :=     32768_; big1 *:=           0_; ok := ok and big1 =           0_;
11935    big1 :=     32768_; big1 *:=       32766_; ok := ok and big1 =  1073676288_;
11936    big1 :=     32768_; big1 *:=       32767_; ok := ok and big1 =  1073709056_;
11937    big1 :=     32768_; big1 *:=       32768_; ok := ok and big1 =  1073741824_;
11938    big1 :=     32768_; big1 *:=       32769_; ok := ok and big1 =  1073774592_;
11939    big1 :=     32768_; big1 *:=       32770_; ok := ok and big1 =  1073807360_;
11940    big1 :=     32768_; big1 *:=       65534_; ok := ok and big1 =  2147418112_;
11941    big1 :=     32768_; big1 *:=       65535_; ok := ok and big1 =  2147450880_;
11942    big1 :=     32768_; big1 *:=       65536_; ok := ok and big1 =  2147483648_;
11943    big1 :=     32768_; big1 *:=       65537_; ok := ok and big1 =  2147516416_;
11944    big1 :=     32768_; big1 *:=       65538_; ok := ok and big1 =  2147549184_;
11945    big1 :=     32769_; big1 *:=      -65538_; ok := ok and big1 = -2147614722_;
11946    big1 :=     32769_; big1 *:=      -65537_; ok := ok and big1 = -2147581953_;
11947    big1 :=     32769_; big1 *:=      -65536_; ok := ok and big1 = -2147549184_;
11948    big1 :=     32769_; big1 *:=      -65535_; ok := ok and big1 = -2147516415_;
11949    big1 :=     32769_; big1 *:=      -65534_; ok := ok and big1 = -2147483646_;
11950    big1 :=     32769_; big1 *:=      -32770_; ok := ok and big1 = -1073840130_;
11951    big1 :=     32769_; big1 *:=      -32769_; ok := ok and big1 = -1073807361_;
11952    big1 :=     32769_; big1 *:=      -32768_; ok := ok and big1 = -1073774592_;
11953    big1 :=     32769_; big1 *:=      -32767_; ok := ok and big1 = -1073741823_;
11954    big1 :=     32769_; big1 *:=      -32766_; ok := ok and big1 = -1073709054_;
11955    big1 :=     32769_; big1 *:=           0_; ok := ok and big1 =           0_;
11956    big1 :=     32769_; big1 *:=       32766_; ok := ok and big1 =  1073709054_;
11957    big1 :=     32769_; big1 *:=       32767_; ok := ok and big1 =  1073741823_;
11958    big1 :=     32769_; big1 *:=       32768_; ok := ok and big1 =  1073774592_;
11959    big1 :=     32769_; big1 *:=       32769_; ok := ok and big1 =  1073807361_;
11960    big1 :=     32769_; big1 *:=       32770_; ok := ok and big1 =  1073840130_;
11961    big1 :=     32769_; big1 *:=       65534_; ok := ok and big1 =  2147483646_;
11962    big1 :=     32769_; big1 *:=       65535_; ok := ok and big1 =  2147516415_;
11963    big1 :=     32769_; big1 *:=       65536_; ok := ok and big1 =  2147549184_;
11964    big1 :=     32769_; big1 *:=       65537_; ok := ok and big1 =  2147581953_;
11965    big1 :=     32769_; big1 *:=       65538_; ok := ok and big1 =  2147614722_;
11966    big1 :=     32770_; big1 *:=      -65538_; ok := ok and big1 = -2147680260_;
11967    big1 :=     32770_; big1 *:=      -65537_; ok := ok and big1 = -2147647490_;
11968    big1 :=     32770_; big1 *:=      -65536_; ok := ok and big1 = -2147614720_;
11969    big1 :=     32770_; big1 *:=      -65535_; ok := ok and big1 = -2147581950_;
11970    big1 :=     32770_; big1 *:=      -65534_; ok := ok and big1 = -2147549180_;
11971    big1 :=     32770_; big1 *:=      -32770_; ok := ok and big1 = -1073872900_;
11972    big1 :=     32770_; big1 *:=      -32769_; ok := ok and big1 = -1073840130_;
11973    big1 :=     32770_; big1 *:=      -32768_; ok := ok and big1 = -1073807360_;
11974    big1 :=     32770_; big1 *:=      -32767_; ok := ok and big1 = -1073774590_;
11975    big1 :=     32770_; big1 *:=      -32766_; ok := ok and big1 = -1073741820_;
11976    big1 :=     32770_; big1 *:=           0_; ok := ok and big1 =           0_;
11977    big1 :=     32770_; big1 *:=       32766_; ok := ok and big1 =  1073741820_;
11978    big1 :=     32770_; big1 *:=       32767_; ok := ok and big1 =  1073774590_;
11979    big1 :=     32770_; big1 *:=       32768_; ok := ok and big1 =  1073807360_;
11980    big1 :=     32770_; big1 *:=       32769_; ok := ok and big1 =  1073840130_;
11981    big1 :=     32770_; big1 *:=       32770_; ok := ok and big1 =  1073872900_;
11982    big1 :=     32770_; big1 *:=       65534_; ok := ok and big1 =  2147549180_;
11983    big1 :=     32770_; big1 *:=       65535_; ok := ok and big1 =  2147581950_;
11984    big1 :=     32770_; big1 *:=       65536_; ok := ok and big1 =  2147614720_;
11985    big1 :=     32770_; big1 *:=       65537_; ok := ok and big1 =  2147647490_;
11986    big1 :=     32770_; big1 *:=       65538_; ok := ok and big1 =  2147680260_;
11987    big1 :=     65534_; big1 *:=      -65538_; ok := ok and big1 = -4294967292_;
11988    big1 :=     65534_; big1 *:=      -65537_; ok := ok and big1 = -4294901758_;
11989    big1 :=     65534_; big1 *:=      -65536_; ok := ok and big1 = -4294836224_;
11990    big1 :=     65534_; big1 *:=      -65535_; ok := ok and big1 = -4294770690_;
11991    big1 :=     65534_; big1 *:=      -65534_; ok := ok and big1 = -4294705156_;
11992    big1 :=     65534_; big1 *:=      -32770_; ok := ok and big1 = -2147549180_;
11993    big1 :=     65534_; big1 *:=      -32769_; ok := ok and big1 = -2147483646_;
11994    big1 :=     65534_; big1 *:=      -32768_; ok := ok and big1 = -2147418112_;
11995    big1 :=     65534_; big1 *:=      -32767_; ok := ok and big1 = -2147352578_;
11996    big1 :=     65534_; big1 *:=      -32766_; ok := ok and big1 = -2147287044_;
11997    big1 :=     65534_; big1 *:=           0_; ok := ok and big1 =           0_;
11998    big1 :=     65534_; big1 *:=       32766_; ok := ok and big1 =  2147287044_;
11999    big1 :=     65534_; big1 *:=       32767_; ok := ok and big1 =  2147352578_;
12000    big1 :=     65534_; big1 *:=       32768_; ok := ok and big1 =  2147418112_;
12001    big1 :=     65534_; big1 *:=       32769_; ok := ok and big1 =  2147483646_;
12002    big1 :=     65534_; big1 *:=       32770_; ok := ok and big1 =  2147549180_;
12003    big1 :=     65534_; big1 *:=       65534_; ok := ok and big1 =  4294705156_;
12004    big1 :=     65534_; big1 *:=       65535_; ok := ok and big1 =  4294770690_;
12005    big1 :=     65534_; big1 *:=       65536_; ok := ok and big1 =  4294836224_;
12006    big1 :=     65534_; big1 *:=       65537_; ok := ok and big1 =  4294901758_;
12007    big1 :=     65534_; big1 *:=       65538_; ok := ok and big1 =  4294967292_;
12008    big1 :=     65535_; big1 *:=      -65538_; ok := ok and big1 = -4295032830_;
12009    big1 :=     65535_; big1 *:=      -65537_; ok := ok and big1 = -4294967295_;
12010    big1 :=     65535_; big1 *:=      -65536_; ok := ok and big1 = -4294901760_;
12011    big1 :=     65535_; big1 *:=      -65535_; ok := ok and big1 = -4294836225_;
12012    big1 :=     65535_; big1 *:=      -65534_; ok := ok and big1 = -4294770690_;
12013    big1 :=     65535_; big1 *:=      -32770_; ok := ok and big1 = -2147581950_;
12014    big1 :=     65535_; big1 *:=      -32769_; ok := ok and big1 = -2147516415_;
12015    big1 :=     65535_; big1 *:=      -32768_; ok := ok and big1 = -2147450880_;
12016    big1 :=     65535_; big1 *:=      -32767_; ok := ok and big1 = -2147385345_;
12017    big1 :=     65535_; big1 *:=      -32766_; ok := ok and big1 = -2147319810_;
12018    big1 :=     65535_; big1 *:=           0_; ok := ok and big1 =           0_;
12019    big1 :=     65535_; big1 *:=       32766_; ok := ok and big1 =  2147319810_;
12020    big1 :=     65535_; big1 *:=       32767_; ok := ok and big1 =  2147385345_;
12021    big1 :=     65535_; big1 *:=       32768_; ok := ok and big1 =  2147450880_;
12022    big1 :=     65535_; big1 *:=       32769_; ok := ok and big1 =  2147516415_;
12023    big1 :=     65535_; big1 *:=       32770_; ok := ok and big1 =  2147581950_;
12024    big1 :=     65535_; big1 *:=       65534_; ok := ok and big1 =  4294770690_;
12025    big1 :=     65535_; big1 *:=       65535_; ok := ok and big1 =  4294836225_;
12026    big1 :=     65535_; big1 *:=       65536_; ok := ok and big1 =  4294901760_;
12027    big1 :=     65535_; big1 *:=       65537_; ok := ok and big1 =  4294967295_;
12028    big1 :=     65535_; big1 *:=       65538_; ok := ok and big1 =  4295032830_;
12029    big1 :=     65536_; big1 *:=      -65538_; ok := ok and big1 = -4295098368_;
12030    big1 :=     65536_; big1 *:=      -65537_; ok := ok and big1 = -4295032832_;
12031    big1 :=     65536_; big1 *:=      -65536_; ok := ok and big1 = -4294967296_;
12032    big1 :=     65536_; big1 *:=      -65535_; ok := ok and big1 = -4294901760_;
12033    big1 :=     65536_; big1 *:=      -65534_; ok := ok and big1 = -4294836224_;
12034    big1 :=     65536_; big1 *:=      -32770_; ok := ok and big1 = -2147614720_;
12035    big1 :=     65536_; big1 *:=      -32769_; ok := ok and big1 = -2147549184_;
12036    big1 :=     65536_; big1 *:=      -32768_; ok := ok and big1 = -2147483648_;
12037    big1 :=     65536_; big1 *:=      -32767_; ok := ok and big1 = -2147418112_;
12038    big1 :=     65536_; big1 *:=      -32766_; ok := ok and big1 = -2147352576_;
12039    big1 :=     65536_; big1 *:=           0_; ok := ok and big1 =           0_;
12040    big1 :=     65536_; big1 *:=       32766_; ok := ok and big1 =  2147352576_;
12041    big1 :=     65536_; big1 *:=       32767_; ok := ok and big1 =  2147418112_;
12042    big1 :=     65536_; big1 *:=       32768_; ok := ok and big1 =  2147483648_;
12043    big1 :=     65536_; big1 *:=       32769_; ok := ok and big1 =  2147549184_;
12044    big1 :=     65536_; big1 *:=       32770_; ok := ok and big1 =  2147614720_;
12045    big1 :=     65536_; big1 *:=       65534_; ok := ok and big1 =  4294836224_;
12046    big1 :=     65536_; big1 *:=       65535_; ok := ok and big1 =  4294901760_;
12047    big1 :=     65536_; big1 *:=       65536_; ok := ok and big1 =  4294967296_;
12048    big1 :=     65536_; big1 *:=       65537_; ok := ok and big1 =  4295032832_;
12049    big1 :=     65536_; big1 *:=       65538_; ok := ok and big1 =  4295098368_;
12050    big1 :=     65537_; big1 *:=      -65538_; ok := ok and big1 = -4295163906_;
12051    big1 :=     65537_; big1 *:=      -65537_; ok := ok and big1 = -4295098369_;
12052    big1 :=     65537_; big1 *:=      -65536_; ok := ok and big1 = -4295032832_;
12053    big1 :=     65537_; big1 *:=      -65535_; ok := ok and big1 = -4294967295_;
12054    big1 :=     65537_; big1 *:=      -65534_; ok := ok and big1 = -4294901758_;
12055    big1 :=     65537_; big1 *:=      -32770_; ok := ok and big1 = -2147647490_;
12056    big1 :=     65537_; big1 *:=      -32769_; ok := ok and big1 = -2147581953_;
12057    big1 :=     65537_; big1 *:=      -32768_; ok := ok and big1 = -2147516416_;
12058    big1 :=     65537_; big1 *:=      -32767_; ok := ok and big1 = -2147450879_;
12059    big1 :=     65537_; big1 *:=      -32766_; ok := ok and big1 = -2147385342_;
12060    big1 :=     65537_; big1 *:=           0_; ok := ok and big1 =           0_;
12061    big1 :=     65537_; big1 *:=       32766_; ok := ok and big1 =  2147385342_;
12062    big1 :=     65537_; big1 *:=       32767_; ok := ok and big1 =  2147450879_;
12063    big1 :=     65537_; big1 *:=       32768_; ok := ok and big1 =  2147516416_;
12064    big1 :=     65537_; big1 *:=       32769_; ok := ok and big1 =  2147581953_;
12065    big1 :=     65537_; big1 *:=       32770_; ok := ok and big1 =  2147647490_;
12066    big1 :=     65537_; big1 *:=       65534_; ok := ok and big1 =  4294901758_;
12067    big1 :=     65537_; big1 *:=       65535_; ok := ok and big1 =  4294967295_;
12068    big1 :=     65537_; big1 *:=       65536_; ok := ok and big1 =  4295032832_;
12069    big1 :=     65537_; big1 *:=       65537_; ok := ok and big1 =  4295098369_;
12070    big1 :=     65537_; big1 *:=       65538_; ok := ok and big1 =  4295163906_;
12071    big1 :=     65538_; big1 *:=      -65538_; ok := ok and big1 = -4295229444_;
12072    big1 :=     65538_; big1 *:=      -65537_; ok := ok and big1 = -4295163906_;
12073    big1 :=     65538_; big1 *:=      -65536_; ok := ok and big1 = -4295098368_;
12074    big1 :=     65538_; big1 *:=      -65535_; ok := ok and big1 = -4295032830_;
12075    big1 :=     65538_; big1 *:=      -65534_; ok := ok and big1 = -4294967292_;
12076    big1 :=     65538_; big1 *:=      -32770_; ok := ok and big1 = -2147680260_;
12077    big1 :=     65538_; big1 *:=      -32769_; ok := ok and big1 = -2147614722_;
12078    big1 :=     65538_; big1 *:=      -32768_; ok := ok and big1 = -2147549184_;
12079    big1 :=     65538_; big1 *:=      -32767_; ok := ok and big1 = -2147483646_;
12080    big1 :=     65538_; big1 *:=      -32766_; ok := ok and big1 = -2147418108_;
12081    big1 :=     65538_; big1 *:=           0_; ok := ok and big1 =           0_;
12082    big1 :=     65538_; big1 *:=       32766_; ok := ok and big1 =  2147418108_;
12083    big1 :=     65538_; big1 *:=       32767_; ok := ok and big1 =  2147483646_;
12084    big1 :=     65538_; big1 *:=       32768_; ok := ok and big1 =  2147549184_;
12085    big1 :=     65538_; big1 *:=       32769_; ok := ok and big1 =  2147614722_;
12086    big1 :=     65538_; big1 *:=       32770_; ok := ok and big1 =  2147680260_;
12087    big1 :=     65538_; big1 *:=       65534_; ok := ok and big1 =  4294967292_;
12088    big1 :=     65538_; big1 *:=       65535_; ok := ok and big1 =  4295032830_;
12089    big1 :=     65538_; big1 *:=       65536_; ok := ok and big1 =  4295098368_;
12090    big1 :=     65538_; big1 *:=       65537_; ok := ok and big1 =  4295163906_;
12091    big1 :=     65538_; big1 *:=       65538_; ok := ok and big1 =  4295229444_;
12092    if not ok then
12093      writeln("Multiplication assignment of bigInteger with literals does not work correct. (2)");
12094    end if;
12095  end func;
12096
12097
12098const func boolean: chkMultAssignExpression1 is func
12099  result
12100    var boolean: ok is TRUE;
12101  local
12102    var bigInteger: big1 is 0_;
12103  begin
12104    big1 :=    -65538_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  4295229444_;
12105    big1 :=    -65538_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  4295163906_;
12106    big1 :=    -65538_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  4295098368_;
12107    big1 :=    -65538_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  4295032830_;
12108    big1 :=    -65538_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  4294967292_;
12109    big1 :=    -65538_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  2147680260_;
12110    big1 :=    -65538_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  2147614722_;
12111    big1 :=    -65538_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  2147549184_;
12112    big1 :=    -65538_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  2147483646_;
12113    big1 :=    -65538_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  2147418108_;
12114    big1 :=    -65538_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12115    big1 :=    -65538_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -2147418108_;
12116    big1 :=    -65538_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -2147483646_;
12117    big1 :=    -65538_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -2147549184_;
12118    big1 :=    -65538_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -2147614722_;
12119    big1 :=    -65538_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -2147680260_;
12120    big1 :=    -65538_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -4294967292_;
12121    big1 :=    -65538_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -4295032830_;
12122    big1 :=    -65538_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -4295098368_;
12123    big1 :=    -65538_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -4295163906_;
12124    big1 :=    -65538_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -4295229444_;
12125    big1 :=    -65537_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  4295163906_;
12126    big1 :=    -65537_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  4295098369_;
12127    big1 :=    -65537_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  4295032832_;
12128    big1 :=    -65537_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  4294967295_;
12129    big1 :=    -65537_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  4294901758_;
12130    big1 :=    -65537_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  2147647490_;
12131    big1 :=    -65537_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  2147581953_;
12132    big1 :=    -65537_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  2147516416_;
12133    big1 :=    -65537_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  2147450879_;
12134    big1 :=    -65537_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  2147385342_;
12135    big1 :=    -65537_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12136    big1 :=    -65537_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -2147385342_;
12137    big1 :=    -65537_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -2147450879_;
12138    big1 :=    -65537_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -2147516416_;
12139    big1 :=    -65537_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -2147581953_;
12140    big1 :=    -65537_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -2147647490_;
12141    big1 :=    -65537_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -4294901758_;
12142    big1 :=    -65537_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -4294967295_;
12143    big1 :=    -65537_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -4295032832_;
12144    big1 :=    -65537_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -4295098369_;
12145    big1 :=    -65537_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -4295163906_;
12146    big1 :=    -65536_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  4295098368_;
12147    big1 :=    -65536_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  4295032832_;
12148    big1 :=    -65536_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  4294967296_;
12149    big1 :=    -65536_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  4294901760_;
12150    big1 :=    -65536_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  4294836224_;
12151    big1 :=    -65536_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  2147614720_;
12152    big1 :=    -65536_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  2147549184_;
12153    big1 :=    -65536_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  2147483648_;
12154    big1 :=    -65536_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  2147418112_;
12155    big1 :=    -65536_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  2147352576_;
12156    big1 :=    -65536_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12157    big1 :=    -65536_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -2147352576_;
12158    big1 :=    -65536_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -2147418112_;
12159    big1 :=    -65536_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -2147483648_;
12160    big1 :=    -65536_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -2147549184_;
12161    big1 :=    -65536_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -2147614720_;
12162    big1 :=    -65536_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -4294836224_;
12163    big1 :=    -65536_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -4294901760_;
12164    big1 :=    -65536_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -4294967296_;
12165    big1 :=    -65536_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -4295032832_;
12166    big1 :=    -65536_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -4295098368_;
12167    big1 :=    -65535_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  4295032830_;
12168    big1 :=    -65535_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  4294967295_;
12169    big1 :=    -65535_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  4294901760_;
12170    big1 :=    -65535_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  4294836225_;
12171    big1 :=    -65535_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  4294770690_;
12172    big1 :=    -65535_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  2147581950_;
12173    big1 :=    -65535_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  2147516415_;
12174    big1 :=    -65535_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  2147450880_;
12175    big1 :=    -65535_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  2147385345_;
12176    big1 :=    -65535_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  2147319810_;
12177    big1 :=    -65535_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12178    big1 :=    -65535_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -2147319810_;
12179    big1 :=    -65535_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -2147385345_;
12180    big1 :=    -65535_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -2147450880_;
12181    big1 :=    -65535_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -2147516415_;
12182    big1 :=    -65535_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -2147581950_;
12183    big1 :=    -65535_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -4294770690_;
12184    big1 :=    -65535_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -4294836225_;
12185    big1 :=    -65535_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -4294901760_;
12186    big1 :=    -65535_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -4294967295_;
12187    big1 :=    -65535_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -4295032830_;
12188    big1 :=    -65534_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  4294967292_;
12189    big1 :=    -65534_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  4294901758_;
12190    big1 :=    -65534_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  4294836224_;
12191    big1 :=    -65534_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  4294770690_;
12192    big1 :=    -65534_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  4294705156_;
12193    big1 :=    -65534_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  2147549180_;
12194    big1 :=    -65534_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  2147483646_;
12195    big1 :=    -65534_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  2147418112_;
12196    big1 :=    -65534_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  2147352578_;
12197    big1 :=    -65534_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  2147287044_;
12198    big1 :=    -65534_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12199    big1 :=    -65534_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -2147287044_;
12200    big1 :=    -65534_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -2147352578_;
12201    big1 :=    -65534_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -2147418112_;
12202    big1 :=    -65534_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -2147483646_;
12203    big1 :=    -65534_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -2147549180_;
12204    big1 :=    -65534_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -4294705156_;
12205    big1 :=    -65534_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -4294770690_;
12206    big1 :=    -65534_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -4294836224_;
12207    big1 :=    -65534_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -4294901758_;
12208    big1 :=    -65534_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -4294967292_;
12209    big1 :=    -32770_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  2147680260_;
12210    big1 :=    -32770_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  2147647490_;
12211    big1 :=    -32770_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  2147614720_;
12212    big1 :=    -32770_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  2147581950_;
12213    big1 :=    -32770_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  2147549180_;
12214    big1 :=    -32770_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  1073872900_;
12215    big1 :=    -32770_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  1073840130_;
12216    big1 :=    -32770_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  1073807360_;
12217    big1 :=    -32770_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  1073774590_;
12218    big1 :=    -32770_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  1073741820_;
12219    big1 :=    -32770_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12220    big1 :=    -32770_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -1073741820_;
12221    big1 :=    -32770_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -1073774590_;
12222    big1 :=    -32770_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -1073807360_;
12223    big1 :=    -32770_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -1073840130_;
12224    big1 :=    -32770_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -1073872900_;
12225    big1 :=    -32770_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -2147549180_;
12226    big1 :=    -32770_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -2147581950_;
12227    big1 :=    -32770_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -2147614720_;
12228    big1 :=    -32770_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -2147647490_;
12229    big1 :=    -32770_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -2147680260_;
12230    big1 :=    -32769_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  2147614722_;
12231    big1 :=    -32769_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  2147581953_;
12232    big1 :=    -32769_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  2147549184_;
12233    big1 :=    -32769_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  2147516415_;
12234    big1 :=    -32769_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  2147483646_;
12235    big1 :=    -32769_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  1073840130_;
12236    big1 :=    -32769_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  1073807361_;
12237    big1 :=    -32769_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  1073774592_;
12238    big1 :=    -32769_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  1073741823_;
12239    big1 :=    -32769_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  1073709054_;
12240    big1 :=    -32769_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12241    big1 :=    -32769_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -1073709054_;
12242    big1 :=    -32769_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -1073741823_;
12243    big1 :=    -32769_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -1073774592_;
12244    big1 :=    -32769_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -1073807361_;
12245    big1 :=    -32769_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -1073840130_;
12246    big1 :=    -32769_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -2147483646_;
12247    big1 :=    -32769_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -2147516415_;
12248    big1 :=    -32769_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -2147549184_;
12249    big1 :=    -32769_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -2147581953_;
12250    big1 :=    -32769_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -2147614722_;
12251    big1 :=    -32768_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  2147549184_;
12252    big1 :=    -32768_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  2147516416_;
12253    big1 :=    -32768_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  2147483648_;
12254    big1 :=    -32768_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  2147450880_;
12255    big1 :=    -32768_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  2147418112_;
12256    big1 :=    -32768_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  1073807360_;
12257    big1 :=    -32768_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  1073774592_;
12258    big1 :=    -32768_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  1073741824_;
12259    big1 :=    -32768_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  1073709056_;
12260    big1 :=    -32768_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  1073676288_;
12261    big1 :=    -32768_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12262    big1 :=    -32768_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -1073676288_;
12263    big1 :=    -32768_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -1073709056_;
12264    big1 :=    -32768_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -1073741824_;
12265    big1 :=    -32768_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -1073774592_;
12266    big1 :=    -32768_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -1073807360_;
12267    big1 :=    -32768_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -2147418112_;
12268    big1 :=    -32768_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -2147450880_;
12269    big1 :=    -32768_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -2147483648_;
12270    big1 :=    -32768_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -2147516416_;
12271    big1 :=    -32768_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -2147549184_;
12272    big1 :=    -32767_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  2147483646_;
12273    big1 :=    -32767_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  2147450879_;
12274    big1 :=    -32767_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  2147418112_;
12275    big1 :=    -32767_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  2147385345_;
12276    big1 :=    -32767_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  2147352578_;
12277    big1 :=    -32767_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  1073774590_;
12278    big1 :=    -32767_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  1073741823_;
12279    big1 :=    -32767_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  1073709056_;
12280    big1 :=    -32767_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  1073676289_;
12281    big1 :=    -32767_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  1073643522_;
12282    big1 :=    -32767_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12283    big1 :=    -32767_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -1073643522_;
12284    big1 :=    -32767_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -1073676289_;
12285    big1 :=    -32767_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -1073709056_;
12286    big1 :=    -32767_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -1073741823_;
12287    big1 :=    -32767_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -1073774590_;
12288    big1 :=    -32767_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -2147352578_;
12289    big1 :=    -32767_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -2147385345_;
12290    big1 :=    -32767_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -2147418112_;
12291    big1 :=    -32767_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -2147450879_;
12292    big1 :=    -32767_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -2147483646_;
12293    big1 :=    -32766_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 =  2147418108_;
12294    big1 :=    -32766_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 =  2147385342_;
12295    big1 :=    -32766_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 =  2147352576_;
12296    big1 :=    -32766_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 =  2147319810_;
12297    big1 :=    -32766_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 =  2147287044_;
12298    big1 :=    -32766_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 =  1073741820_;
12299    big1 :=    -32766_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 =  1073709054_;
12300    big1 :=    -32766_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 =  1073676288_;
12301    big1 :=    -32766_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 =  1073643522_;
12302    big1 :=    -32766_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 =  1073610756_;
12303    big1 :=    -32766_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12304    big1 :=    -32766_; big1 *:= bigintExpr(      32766_); ok := ok and big1 = -1073610756_;
12305    big1 :=    -32766_; big1 *:= bigintExpr(      32767_); ok := ok and big1 = -1073643522_;
12306    big1 :=    -32766_; big1 *:= bigintExpr(      32768_); ok := ok and big1 = -1073676288_;
12307    big1 :=    -32766_; big1 *:= bigintExpr(      32769_); ok := ok and big1 = -1073709054_;
12308    big1 :=    -32766_; big1 *:= bigintExpr(      32770_); ok := ok and big1 = -1073741820_;
12309    big1 :=    -32766_; big1 *:= bigintExpr(      65534_); ok := ok and big1 = -2147287044_;
12310    big1 :=    -32766_; big1 *:= bigintExpr(      65535_); ok := ok and big1 = -2147319810_;
12311    big1 :=    -32766_; big1 *:= bigintExpr(      65536_); ok := ok and big1 = -2147352576_;
12312    big1 :=    -32766_; big1 *:= bigintExpr(      65537_); ok := ok and big1 = -2147385342_;
12313    big1 :=    -32766_; big1 *:= bigintExpr(      65538_); ok := ok and big1 = -2147418108_;
12314    big1 :=        -2_; big1 *:= bigintExpr(         -2_); ok := ok and big1 =           4_;
12315    big1 :=        -2_; big1 *:= bigintExpr(         -1_); ok := ok and big1 =           2_;
12316    big1 :=        -2_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12317    big1 :=        -2_; big1 *:= bigintExpr(          1_); ok := ok and big1 =          -2_;
12318    big1 :=        -2_; big1 *:= bigintExpr(          2_); ok := ok and big1 =          -4_;
12319    big1 :=        -1_; big1 *:= bigintExpr(         -2_); ok := ok and big1 =           2_;
12320    big1 :=        -1_; big1 *:= bigintExpr(         -1_); ok := ok and big1 =           1_;
12321    big1 :=        -1_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12322    big1 :=        -1_; big1 *:= bigintExpr(          1_); ok := ok and big1 =          -1_;
12323    big1 :=        -1_; big1 *:= bigintExpr(          2_); ok := ok and big1 =          -2_;
12324    if not ok then
12325      writeln("Multiplication assignment of bigInteger with expressions does not work correct. (1)");
12326    end if;
12327  end func;
12328
12329
12330const func boolean: chkMultAssignExpression2 is func
12331  result
12332    var boolean: ok is TRUE;
12333  local
12334    var bigInteger: big1 is 0_;
12335  begin
12336    big1 :=         0_; big1 *:= bigintExpr(         -2_); ok := ok and big1 =           0_;
12337    big1 :=         0_; big1 *:= bigintExpr(         -1_); ok := ok and big1 =           0_;
12338    big1 :=         0_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12339    big1 :=         0_; big1 *:= bigintExpr(          1_); ok := ok and big1 =           0_;
12340    big1 :=         0_; big1 *:= bigintExpr(          2_); ok := ok and big1 =           0_;
12341    big1 :=         1_; big1 *:= bigintExpr(         -2_); ok := ok and big1 =          -2_;
12342    big1 :=         1_; big1 *:= bigintExpr(         -1_); ok := ok and big1 =          -1_;
12343    big1 :=         1_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12344    big1 :=         1_; big1 *:= bigintExpr(          1_); ok := ok and big1 =           1_;
12345    big1 :=         1_; big1 *:= bigintExpr(          2_); ok := ok and big1 =           2_;
12346    big1 :=         2_; big1 *:= bigintExpr(         -2_); ok := ok and big1 =          -4_;
12347    big1 :=         2_; big1 *:= bigintExpr(         -1_); ok := ok and big1 =          -2_;
12348    big1 :=         2_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12349    big1 :=         2_; big1 *:= bigintExpr(          1_); ok := ok and big1 =           2_;
12350    big1 :=         2_; big1 *:= bigintExpr(          2_); ok := ok and big1 =           4_;
12351    big1 :=       181_; big1 *:= bigintExpr(        181_); ok := ok and big1 =       32761_;
12352    big1 :=       128_; big1 *:= bigintExpr(        256_); ok := ok and big1 =       32768_;
12353    big1 :=       256_; big1 *:= bigintExpr(        256_); ok := ok and big1 =       65536_;
12354    big1 :=     32766_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -2147418108_;
12355    big1 :=     32766_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -2147385342_;
12356    big1 :=     32766_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -2147352576_;
12357    big1 :=     32766_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -2147319810_;
12358    big1 :=     32766_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -2147287044_;
12359    big1 :=     32766_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -1073741820_;
12360    big1 :=     32766_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -1073709054_;
12361    big1 :=     32766_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -1073676288_;
12362    big1 :=     32766_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -1073643522_;
12363    big1 :=     32766_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -1073610756_;
12364    big1 :=     32766_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12365    big1 :=     32766_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  1073610756_;
12366    big1 :=     32766_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  1073643522_;
12367    big1 :=     32766_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  1073676288_;
12368    big1 :=     32766_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  1073709054_;
12369    big1 :=     32766_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  1073741820_;
12370    big1 :=     32766_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  2147287044_;
12371    big1 :=     32766_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  2147319810_;
12372    big1 :=     32766_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  2147352576_;
12373    big1 :=     32766_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  2147385342_;
12374    big1 :=     32766_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  2147418108_;
12375    big1 :=     32767_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -2147483646_;
12376    big1 :=     32767_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -2147450879_;
12377    big1 :=     32767_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -2147418112_;
12378    big1 :=     32767_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -2147385345_;
12379    big1 :=     32767_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -2147352578_;
12380    big1 :=     32767_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -1073774590_;
12381    big1 :=     32767_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -1073741823_;
12382    big1 :=     32767_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -1073709056_;
12383    big1 :=     32767_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -1073676289_;
12384    big1 :=     32767_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -1073643522_;
12385    big1 :=     32767_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12386    big1 :=     32767_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  1073643522_;
12387    big1 :=     32767_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  1073676289_;
12388    big1 :=     32767_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  1073709056_;
12389    big1 :=     32767_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  1073741823_;
12390    big1 :=     32767_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  1073774590_;
12391    big1 :=     32767_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  2147352578_;
12392    big1 :=     32767_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  2147385345_;
12393    big1 :=     32767_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  2147418112_;
12394    big1 :=     32767_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  2147450879_;
12395    big1 :=     32767_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  2147483646_;
12396    big1 :=     32768_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -2147549184_;
12397    big1 :=     32768_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -2147516416_;
12398    big1 :=     32768_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -2147483648_;
12399    big1 :=     32768_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -2147450880_;
12400    big1 :=     32768_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -2147418112_;
12401    big1 :=     32768_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -1073807360_;
12402    big1 :=     32768_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -1073774592_;
12403    big1 :=     32768_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -1073741824_;
12404    big1 :=     32768_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -1073709056_;
12405    big1 :=     32768_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -1073676288_;
12406    big1 :=     32768_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12407    big1 :=     32768_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  1073676288_;
12408    big1 :=     32768_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  1073709056_;
12409    big1 :=     32768_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  1073741824_;
12410    big1 :=     32768_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  1073774592_;
12411    big1 :=     32768_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  1073807360_;
12412    big1 :=     32768_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  2147418112_;
12413    big1 :=     32768_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  2147450880_;
12414    big1 :=     32768_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  2147483648_;
12415    big1 :=     32768_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  2147516416_;
12416    big1 :=     32768_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  2147549184_;
12417    big1 :=     32769_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -2147614722_;
12418    big1 :=     32769_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -2147581953_;
12419    big1 :=     32769_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -2147549184_;
12420    big1 :=     32769_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -2147516415_;
12421    big1 :=     32769_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -2147483646_;
12422    big1 :=     32769_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -1073840130_;
12423    big1 :=     32769_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -1073807361_;
12424    big1 :=     32769_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -1073774592_;
12425    big1 :=     32769_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -1073741823_;
12426    big1 :=     32769_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -1073709054_;
12427    big1 :=     32769_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12428    big1 :=     32769_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  1073709054_;
12429    big1 :=     32769_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  1073741823_;
12430    big1 :=     32769_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  1073774592_;
12431    big1 :=     32769_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  1073807361_;
12432    big1 :=     32769_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  1073840130_;
12433    big1 :=     32769_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  2147483646_;
12434    big1 :=     32769_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  2147516415_;
12435    big1 :=     32769_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  2147549184_;
12436    big1 :=     32769_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  2147581953_;
12437    big1 :=     32769_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  2147614722_;
12438    big1 :=     32770_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -2147680260_;
12439    big1 :=     32770_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -2147647490_;
12440    big1 :=     32770_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -2147614720_;
12441    big1 :=     32770_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -2147581950_;
12442    big1 :=     32770_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -2147549180_;
12443    big1 :=     32770_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -1073872900_;
12444    big1 :=     32770_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -1073840130_;
12445    big1 :=     32770_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -1073807360_;
12446    big1 :=     32770_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -1073774590_;
12447    big1 :=     32770_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -1073741820_;
12448    big1 :=     32770_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12449    big1 :=     32770_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  1073741820_;
12450    big1 :=     32770_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  1073774590_;
12451    big1 :=     32770_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  1073807360_;
12452    big1 :=     32770_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  1073840130_;
12453    big1 :=     32770_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  1073872900_;
12454    big1 :=     32770_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  2147549180_;
12455    big1 :=     32770_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  2147581950_;
12456    big1 :=     32770_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  2147614720_;
12457    big1 :=     32770_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  2147647490_;
12458    big1 :=     32770_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  2147680260_;
12459    big1 :=     65534_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -4294967292_;
12460    big1 :=     65534_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -4294901758_;
12461    big1 :=     65534_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -4294836224_;
12462    big1 :=     65534_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -4294770690_;
12463    big1 :=     65534_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -4294705156_;
12464    big1 :=     65534_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -2147549180_;
12465    big1 :=     65534_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -2147483646_;
12466    big1 :=     65534_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -2147418112_;
12467    big1 :=     65534_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -2147352578_;
12468    big1 :=     65534_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -2147287044_;
12469    big1 :=     65534_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12470    big1 :=     65534_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  2147287044_;
12471    big1 :=     65534_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  2147352578_;
12472    big1 :=     65534_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  2147418112_;
12473    big1 :=     65534_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  2147483646_;
12474    big1 :=     65534_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  2147549180_;
12475    big1 :=     65534_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  4294705156_;
12476    big1 :=     65534_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  4294770690_;
12477    big1 :=     65534_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  4294836224_;
12478    big1 :=     65534_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  4294901758_;
12479    big1 :=     65534_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  4294967292_;
12480    big1 :=     65535_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -4295032830_;
12481    big1 :=     65535_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -4294967295_;
12482    big1 :=     65535_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -4294901760_;
12483    big1 :=     65535_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -4294836225_;
12484    big1 :=     65535_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -4294770690_;
12485    big1 :=     65535_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -2147581950_;
12486    big1 :=     65535_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -2147516415_;
12487    big1 :=     65535_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -2147450880_;
12488    big1 :=     65535_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -2147385345_;
12489    big1 :=     65535_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -2147319810_;
12490    big1 :=     65535_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12491    big1 :=     65535_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  2147319810_;
12492    big1 :=     65535_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  2147385345_;
12493    big1 :=     65535_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  2147450880_;
12494    big1 :=     65535_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  2147516415_;
12495    big1 :=     65535_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  2147581950_;
12496    big1 :=     65535_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  4294770690_;
12497    big1 :=     65535_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  4294836225_;
12498    big1 :=     65535_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  4294901760_;
12499    big1 :=     65535_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  4294967295_;
12500    big1 :=     65535_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  4295032830_;
12501    big1 :=     65536_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -4295098368_;
12502    big1 :=     65536_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -4295032832_;
12503    big1 :=     65536_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -4294967296_;
12504    big1 :=     65536_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -4294901760_;
12505    big1 :=     65536_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -4294836224_;
12506    big1 :=     65536_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -2147614720_;
12507    big1 :=     65536_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -2147549184_;
12508    big1 :=     65536_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -2147483648_;
12509    big1 :=     65536_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -2147418112_;
12510    big1 :=     65536_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -2147352576_;
12511    big1 :=     65536_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12512    big1 :=     65536_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  2147352576_;
12513    big1 :=     65536_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  2147418112_;
12514    big1 :=     65536_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  2147483648_;
12515    big1 :=     65536_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  2147549184_;
12516    big1 :=     65536_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  2147614720_;
12517    big1 :=     65536_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  4294836224_;
12518    big1 :=     65536_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  4294901760_;
12519    big1 :=     65536_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  4294967296_;
12520    big1 :=     65536_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  4295032832_;
12521    big1 :=     65536_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  4295098368_;
12522    big1 :=     65537_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -4295163906_;
12523    big1 :=     65537_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -4295098369_;
12524    big1 :=     65537_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -4295032832_;
12525    big1 :=     65537_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -4294967295_;
12526    big1 :=     65537_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -4294901758_;
12527    big1 :=     65537_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -2147647490_;
12528    big1 :=     65537_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -2147581953_;
12529    big1 :=     65537_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -2147516416_;
12530    big1 :=     65537_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -2147450879_;
12531    big1 :=     65537_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -2147385342_;
12532    big1 :=     65537_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12533    big1 :=     65537_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  2147385342_;
12534    big1 :=     65537_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  2147450879_;
12535    big1 :=     65537_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  2147516416_;
12536    big1 :=     65537_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  2147581953_;
12537    big1 :=     65537_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  2147647490_;
12538    big1 :=     65537_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  4294901758_;
12539    big1 :=     65537_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  4294967295_;
12540    big1 :=     65537_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  4295032832_;
12541    big1 :=     65537_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  4295098369_;
12542    big1 :=     65537_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  4295163906_;
12543    big1 :=     65538_; big1 *:= bigintExpr(     -65538_); ok := ok and big1 = -4295229444_;
12544    big1 :=     65538_; big1 *:= bigintExpr(     -65537_); ok := ok and big1 = -4295163906_;
12545    big1 :=     65538_; big1 *:= bigintExpr(     -65536_); ok := ok and big1 = -4295098368_;
12546    big1 :=     65538_; big1 *:= bigintExpr(     -65535_); ok := ok and big1 = -4295032830_;
12547    big1 :=     65538_; big1 *:= bigintExpr(     -65534_); ok := ok and big1 = -4294967292_;
12548    big1 :=     65538_; big1 *:= bigintExpr(     -32770_); ok := ok and big1 = -2147680260_;
12549    big1 :=     65538_; big1 *:= bigintExpr(     -32769_); ok := ok and big1 = -2147614722_;
12550    big1 :=     65538_; big1 *:= bigintExpr(     -32768_); ok := ok and big1 = -2147549184_;
12551    big1 :=     65538_; big1 *:= bigintExpr(     -32767_); ok := ok and big1 = -2147483646_;
12552    big1 :=     65538_; big1 *:= bigintExpr(     -32766_); ok := ok and big1 = -2147418108_;
12553    big1 :=     65538_; big1 *:= bigintExpr(          0_); ok := ok and big1 =           0_;
12554    big1 :=     65538_; big1 *:= bigintExpr(      32766_); ok := ok and big1 =  2147418108_;
12555    big1 :=     65538_; big1 *:= bigintExpr(      32767_); ok := ok and big1 =  2147483646_;
12556    big1 :=     65538_; big1 *:= bigintExpr(      32768_); ok := ok and big1 =  2147549184_;
12557    big1 :=     65538_; big1 *:= bigintExpr(      32769_); ok := ok and big1 =  2147614722_;
12558    big1 :=     65538_; big1 *:= bigintExpr(      32770_); ok := ok and big1 =  2147680260_;
12559    big1 :=     65538_; big1 *:= bigintExpr(      65534_); ok := ok and big1 =  4294967292_;
12560    big1 :=     65538_; big1 *:= bigintExpr(      65535_); ok := ok and big1 =  4295032830_;
12561    big1 :=     65538_; big1 *:= bigintExpr(      65536_); ok := ok and big1 =  4295098368_;
12562    big1 :=     65538_; big1 *:= bigintExpr(      65537_); ok := ok and big1 =  4295163906_;
12563    big1 :=     65538_; big1 *:= bigintExpr(      65538_); ok := ok and big1 =  4295229444_;
12564    if not ok then
12565      writeln("Multiplication assignment of bigInteger with expressions does not work correct. (2)");
12566    end if;
12567  end func;
12568
12569
12570const func boolean: chkMultAssign1 is func
12571  result
12572    var boolean: ok is TRUE;
12573  local
12574    var bigInteger: big1 is 0_;
12575  begin
12576    big1 := 123456789_; big1 *:= -18446744073709551616_; ok := ok and big1 = -2277375790844960561141121024_;
12577    big1 := 123456789_; big1 *:= -10000000000000000000_; ok := ok and big1 = -1234567890000000000000000000_;
12578    big1 := 123456789_; big1 *:=  -9223372036854775808_; ok := ok and big1 = -1138687895422480280570560512_;
12579    big1 := 123456789_; big1 *:=  -4611686018427387904_; ok := ok and big1 =  -569343947711240140285280256_;
12580    big1 := 123456789_; big1 *:=  -2305843009213693952_; ok := ok and big1 =  -284671973855620070142640128_;
12581    big1 := 123456789_; big1 *:=  -1152921504606846976_; ok := ok and big1 =  -142335986927810035071320064_;
12582    big1 := 123456789_; big1 *:=  -1000000000000000000_; ok := ok and big1 =  -123456789000000000000000000_;
12583    big1 := 123456789_; big1 *:=   -576460752303423488_; ok := ok and big1 =   -71167993463905017535660032_;
12584    big1 := 123456789_; big1 *:=   -288230376151711744_; ok := ok and big1 =   -35583996731952508767830016_;
12585    big1 := 123456789_; big1 *:=   -144115188075855872_; ok := ok and big1 =   -17791998365976254383915008_;
12586    big1 := 123456789_; big1 *:=   -100000000000000000_; ok := ok and big1 =   -12345678900000000000000000_;
12587    big1 := 123456789_; big1 *:=    -72057594037927936_; ok := ok and big1 =    -8895999182988127191957504_;
12588    big1 := 123456789_; big1 *:=    -36028797018963968_; ok := ok and big1 =    -4447999591494063595978752_;
12589    big1 := 123456789_; big1 *:=    -18014398509481984_; ok := ok and big1 =    -2223999795747031797989376_;
12590    big1 := 123456789_; big1 *:=    -10000000000000000_; ok := ok and big1 =    -1234567890000000000000000_;
12591    big1 := 123456789_; big1 *:=     -9007199254740992_; ok := ok and big1 =    -1111999897873515898994688_;
12592    big1 := 123456789_; big1 *:=     -4503599627370496_; ok := ok and big1 =     -555999948936757949497344_;
12593    big1 := 123456789_; big1 *:=     -2251799813685248_; ok := ok and big1 =     -277999974468378974748672_;
12594    big1 := 123456789_; big1 *:=     -1125899906842624_; ok := ok and big1 =     -138999987234189487374336_;
12595    big1 := 123456789_; big1 *:=     -1000000000000000_; ok := ok and big1 =     -123456789000000000000000_;
12596    big1 := 123456789_; big1 *:=      -562949953421312_; ok := ok and big1 =      -69499993617094743687168_;
12597    big1 := 123456789_; big1 *:=      -281474976710656_; ok := ok and big1 =      -34749996808547371843584_;
12598    big1 := 123456789_; big1 *:=      -140737488355328_; ok := ok and big1 =      -17374998404273685921792_;
12599    big1 := 123456789_; big1 *:=      -100000000000000_; ok := ok and big1 =      -12345678900000000000000_;
12600    big1 := 123456789_; big1 *:=       -70368744177664_; ok := ok and big1 =       -8687499202136842960896_;
12601    big1 := 123456789_; big1 *:=       -35184372088832_; ok := ok and big1 =       -4343749601068421480448_;
12602    big1 := 123456789_; big1 *:=       -17592186044416_; ok := ok and big1 =       -2171874800534210740224_;
12603    big1 := 123456789_; big1 *:=       -10000000000000_; ok := ok and big1 =       -1234567890000000000000_;
12604    big1 := 123456789_; big1 *:=        -8796093022208_; ok := ok and big1 =       -1085937400267105370112_;
12605    big1 := 123456789_; big1 *:=        -4398046511104_; ok := ok and big1 =        -542968700133552685056_;
12606    big1 := 123456789_; big1 *:=        -2199023255552_; ok := ok and big1 =        -271484350066776342528_;
12607    big1 := 123456789_; big1 *:=        -1099511627776_; ok := ok and big1 =        -135742175033388171264_;
12608    big1 := 123456789_; big1 *:=        -1000000000000_; ok := ok and big1 =        -123456789000000000000_;
12609    big1 := 123456789_; big1 *:=         -549755813888_; ok := ok and big1 =         -67871087516694085632_;
12610    big1 := 123456789_; big1 *:=         -274877906944_; ok := ok and big1 =         -33935543758347042816_;
12611    big1 := 123456789_; big1 *:=         -137438953472_; ok := ok and big1 =         -16967771879173521408_;
12612    big1 := 123456789_; big1 *:=         -100000000000_; ok := ok and big1 =         -12345678900000000000_;
12613    big1 := 123456789_; big1 *:=          -68719476736_; ok := ok and big1 =          -8483885939586760704_;
12614    big1 := 123456789_; big1 *:=          -34359738368_; ok := ok and big1 =          -4241942969793380352_;
12615    big1 := 123456789_; big1 *:=          -17179869184_; ok := ok and big1 =          -2120971484896690176_;
12616    big1 := 123456789_; big1 *:=          -10000000000_; ok := ok and big1 =          -1234567890000000000_;
12617    big1 := 123456789_; big1 *:=           -8589934592_; ok := ok and big1 =          -1060485742448345088_;
12618    big1 := 123456789_; big1 *:=           -4294967296_; ok := ok and big1 =           -530242871224172544_;
12619    big1 := 123456789_; big1 *:=           -2147483648_; ok := ok and big1 =           -265121435612086272_;
12620    big1 := 123456789_; big1 *:=           -1073741824_; ok := ok and big1 =           -132560717806043136_;
12621    big1 := 123456789_; big1 *:=           -1000000000_; ok := ok and big1 =           -123456789000000000_;
12622    big1 := 123456789_; big1 *:=            -536870912_; ok := ok and big1 =            -66280358903021568_;
12623    big1 := 123456789_; big1 *:=            -268435456_; ok := ok and big1 =            -33140179451510784_;
12624    big1 := 123456789_; big1 *:=            -134217728_; ok := ok and big1 =            -16570089725755392_;
12625    big1 := 123456789_; big1 *:=            -100000000_; ok := ok and big1 =            -12345678900000000_;
12626    big1 := 123456789_; big1 *:=             -67108864_; ok := ok and big1 =             -8285044862877696_;
12627    big1 := 123456789_; big1 *:=             -33554432_; ok := ok and big1 =             -4142522431438848_;
12628    big1 := 123456789_; big1 *:=             -16777216_; ok := ok and big1 =             -2071261215719424_;
12629    big1 := 123456789_; big1 *:=             -10000000_; ok := ok and big1 =             -1234567890000000_;
12630    big1 := 123456789_; big1 *:=              -8388608_; ok := ok and big1 =             -1035630607859712_;
12631    big1 := 123456789_; big1 *:=              -4194304_; ok := ok and big1 =              -517815303929856_;
12632    big1 := 123456789_; big1 *:=              -2097152_; ok := ok and big1 =              -258907651964928_;
12633    big1 := 123456789_; big1 *:=              -1048576_; ok := ok and big1 =              -129453825982464_;
12634    big1 := 123456789_; big1 *:=              -1000000_; ok := ok and big1 =              -123456789000000_;
12635    big1 := 123456789_; big1 *:=               -524288_; ok := ok and big1 =               -64726912991232_;
12636    big1 := 123456789_; big1 *:=               -262144_; ok := ok and big1 =               -32363456495616_;
12637    big1 := 123456789_; big1 *:=               -131072_; ok := ok and big1 =               -16181728247808_;
12638    big1 := 123456789_; big1 *:=               -100000_; ok := ok and big1 =               -12345678900000_;
12639    big1 := 123456789_; big1 *:=                -65536_; ok := ok and big1 =                -8090864123904_;
12640    big1 := 123456789_; big1 *:=                -32768_; ok := ok and big1 =                -4045432061952_;
12641    big1 := 123456789_; big1 *:=                -16384_; ok := ok and big1 =                -2022716030976_;
12642    big1 := 123456789_; big1 *:=                -10000_; ok := ok and big1 =                -1234567890000_;
12643    big1 := 123456789_; big1 *:=                 -8192_; ok := ok and big1 =                -1011358015488_;
12644    big1 := 123456789_; big1 *:=                 -4096_; ok := ok and big1 =                 -505679007744_;
12645    big1 := 123456789_; big1 *:=                 -2048_; ok := ok and big1 =                 -252839503872_;
12646    big1 := 123456789_; big1 *:=                 -1024_; ok := ok and big1 =                 -126419751936_;
12647    big1 := 123456789_; big1 *:=                 -1000_; ok := ok and big1 =                 -123456789000_;
12648    big1 := 123456789_; big1 *:=                  -512_; ok := ok and big1 =                  -63209875968_;
12649    big1 := 123456789_; big1 *:=                  -256_; ok := ok and big1 =                  -31604937984_;
12650    big1 := 123456789_; big1 *:=                  -128_; ok := ok and big1 =                  -15802468992_;
12651    big1 := 123456789_; big1 *:=                  -100_; ok := ok and big1 =                  -12345678900_;
12652    big1 := 123456789_; big1 *:=                   -64_; ok := ok and big1 =                   -7901234496_;
12653    big1 := 123456789_; big1 *:=                   -32_; ok := ok and big1 =                   -3950617248_;
12654    big1 := 123456789_; big1 *:=                   -16_; ok := ok and big1 =                   -1975308624_;
12655    big1 := 123456789_; big1 *:=                   -10_; ok := ok and big1 =                   -1234567890_;
12656    big1 := 123456789_; big1 *:=                    -8_; ok := ok and big1 =                    -987654312_;
12657    big1 := 123456789_; big1 *:=                    -5_; ok := ok and big1 =                    -617283945_;
12658    big1 := 123456789_; big1 *:=                    -4_; ok := ok and big1 =                    -493827156_;
12659    big1 := 123456789_; big1 *:=                    -3_; ok := ok and big1 =                    -370370367_;
12660    big1 := 123456789_; big1 *:=                    -2_; ok := ok and big1 =                    -246913578_;
12661    big1 := 123456789_; big1 *:=                    -1_; ok := ok and big1 =                    -123456789_;
12662    big1 := 123456789_; big1 *:=                     0_; ok := ok and big1 =                             0_;
12663    big1 := 123456789_; big1 *:=                     1_; ok := ok and big1 =                     123456789_;
12664    big1 := 123456789_; big1 *:=                     2_; ok := ok and big1 =                     246913578_;
12665    big1 := 123456789_; big1 *:=                     3_; ok := ok and big1 =                     370370367_;
12666    big1 := 123456789_; big1 *:=                     4_; ok := ok and big1 =                     493827156_;
12667    big1 := 123456789_; big1 *:=                     5_; ok := ok and big1 =                     617283945_;
12668    big1 := 123456789_; big1 *:=                     8_; ok := ok and big1 =                     987654312_;
12669    big1 := 123456789_; big1 *:=                    10_; ok := ok and big1 =                    1234567890_;
12670    big1 := 123456789_; big1 *:=                    16_; ok := ok and big1 =                    1975308624_;
12671    big1 := 123456789_; big1 *:=                    32_; ok := ok and big1 =                    3950617248_;
12672    big1 := 123456789_; big1 *:=                    64_; ok := ok and big1 =                    7901234496_;
12673    big1 := 123456789_; big1 *:=                   100_; ok := ok and big1 =                   12345678900_;
12674    big1 := 123456789_; big1 *:=                   128_; ok := ok and big1 =                   15802468992_;
12675    big1 := 123456789_; big1 *:=                   256_; ok := ok and big1 =                   31604937984_;
12676    big1 := 123456789_; big1 *:=                   512_; ok := ok and big1 =                   63209875968_;
12677    big1 := 123456789_; big1 *:=                  1000_; ok := ok and big1 =                  123456789000_;
12678    big1 := 123456789_; big1 *:=                  1024_; ok := ok and big1 =                  126419751936_;
12679    big1 := 123456789_; big1 *:=                  2048_; ok := ok and big1 =                  252839503872_;
12680    big1 := 123456789_; big1 *:=                  4096_; ok := ok and big1 =                  505679007744_;
12681    big1 := 123456789_; big1 *:=                  8192_; ok := ok and big1 =                 1011358015488_;
12682    big1 := 123456789_; big1 *:=                 10000_; ok := ok and big1 =                 1234567890000_;
12683    big1 := 123456789_; big1 *:=                 16384_; ok := ok and big1 =                 2022716030976_;
12684    big1 := 123456789_; big1 *:=                 32768_; ok := ok and big1 =                 4045432061952_;
12685    big1 := 123456789_; big1 *:=                 65536_; ok := ok and big1 =                 8090864123904_;
12686    big1 := 123456789_; big1 *:=                100000_; ok := ok and big1 =                12345678900000_;
12687    big1 := 123456789_; big1 *:=                131072_; ok := ok and big1 =                16181728247808_;
12688    big1 := 123456789_; big1 *:=                262144_; ok := ok and big1 =                32363456495616_;
12689    big1 := 123456789_; big1 *:=                524288_; ok := ok and big1 =                64726912991232_;
12690    big1 := 123456789_; big1 *:=               1000000_; ok := ok and big1 =               123456789000000_;
12691    big1 := 123456789_; big1 *:=               1048576_; ok := ok and big1 =               129453825982464_;
12692    big1 := 123456789_; big1 *:=               2097152_; ok := ok and big1 =               258907651964928_;
12693    big1 := 123456789_; big1 *:=               4194304_; ok := ok and big1 =               517815303929856_;
12694    big1 := 123456789_; big1 *:=               8388608_; ok := ok and big1 =              1035630607859712_;
12695    big1 := 123456789_; big1 *:=              10000000_; ok := ok and big1 =              1234567890000000_;
12696    big1 := 123456789_; big1 *:=              16777216_; ok := ok and big1 =              2071261215719424_;
12697    big1 := 123456789_; big1 *:=              33554432_; ok := ok and big1 =              4142522431438848_;
12698    big1 := 123456789_; big1 *:=              67108864_; ok := ok and big1 =              8285044862877696_;
12699    big1 := 123456789_; big1 *:=             100000000_; ok := ok and big1 =             12345678900000000_;
12700    big1 := 123456789_; big1 *:=             134217728_; ok := ok and big1 =             16570089725755392_;
12701    big1 := 123456789_; big1 *:=             268435456_; ok := ok and big1 =             33140179451510784_;
12702    big1 := 123456789_; big1 *:=             536870912_; ok := ok and big1 =             66280358903021568_;
12703    big1 := 123456789_; big1 *:=            1000000000_; ok := ok and big1 =            123456789000000000_;
12704    big1 := 123456789_; big1 *:=            1073741824_; ok := ok and big1 =            132560717806043136_;
12705    big1 := 123456789_; big1 *:=            2147483648_; ok := ok and big1 =            265121435612086272_;
12706    big1 := 123456789_; big1 *:=            4294967296_; ok := ok and big1 =            530242871224172544_;
12707    big1 := 123456789_; big1 *:=            8589934592_; ok := ok and big1 =           1060485742448345088_;
12708    big1 := 123456789_; big1 *:=           10000000000_; ok := ok and big1 =           1234567890000000000_;
12709    big1 := 123456789_; big1 *:=           17179869184_; ok := ok and big1 =           2120971484896690176_;
12710    big1 := 123456789_; big1 *:=           34359738368_; ok := ok and big1 =           4241942969793380352_;
12711    big1 := 123456789_; big1 *:=           68719476736_; ok := ok and big1 =           8483885939586760704_;
12712    big1 := 123456789_; big1 *:=          100000000000_; ok := ok and big1 =          12345678900000000000_;
12713    big1 := 123456789_; big1 *:=          137438953472_; ok := ok and big1 =          16967771879173521408_;
12714    big1 := 123456789_; big1 *:=          274877906944_; ok := ok and big1 =          33935543758347042816_;
12715    big1 := 123456789_; big1 *:=          549755813888_; ok := ok and big1 =          67871087516694085632_;
12716    big1 := 123456789_; big1 *:=         1000000000000_; ok := ok and big1 =         123456789000000000000_;
12717    big1 := 123456789_; big1 *:=         1099511627776_; ok := ok and big1 =         135742175033388171264_;
12718    big1 := 123456789_; big1 *:=         2199023255552_; ok := ok and big1 =         271484350066776342528_;
12719    big1 := 123456789_; big1 *:=         4398046511104_; ok := ok and big1 =         542968700133552685056_;
12720    big1 := 123456789_; big1 *:=         8796093022208_; ok := ok and big1 =        1085937400267105370112_;
12721    big1 := 123456789_; big1 *:=        10000000000000_; ok := ok and big1 =        1234567890000000000000_;
12722    big1 := 123456789_; big1 *:=        17592186044416_; ok := ok and big1 =        2171874800534210740224_;
12723    big1 := 123456789_; big1 *:=        35184372088832_; ok := ok and big1 =        4343749601068421480448_;
12724    big1 := 123456789_; big1 *:=        70368744177664_; ok := ok and big1 =        8687499202136842960896_;
12725    big1 := 123456789_; big1 *:=       100000000000000_; ok := ok and big1 =       12345678900000000000000_;
12726    big1 := 123456789_; big1 *:=       140737488355328_; ok := ok and big1 =       17374998404273685921792_;
12727    big1 := 123456789_; big1 *:=       281474976710656_; ok := ok and big1 =       34749996808547371843584_;
12728    big1 := 123456789_; big1 *:=       562949953421312_; ok := ok and big1 =       69499993617094743687168_;
12729    big1 := 123456789_; big1 *:=      1000000000000000_; ok := ok and big1 =      123456789000000000000000_;
12730    big1 := 123456789_; big1 *:=      1125899906842624_; ok := ok and big1 =      138999987234189487374336_;
12731    big1 := 123456789_; big1 *:=      2251799813685248_; ok := ok and big1 =      277999974468378974748672_;
12732    big1 := 123456789_; big1 *:=      4503599627370496_; ok := ok and big1 =      555999948936757949497344_;
12733    big1 := 123456789_; big1 *:=      9007199254740992_; ok := ok and big1 =     1111999897873515898994688_;
12734    big1 := 123456789_; big1 *:=     10000000000000000_; ok := ok and big1 =     1234567890000000000000000_;
12735    big1 := 123456789_; big1 *:=     18014398509481984_; ok := ok and big1 =     2223999795747031797989376_;
12736    big1 := 123456789_; big1 *:=     36028797018963968_; ok := ok and big1 =     4447999591494063595978752_;
12737    big1 := 123456789_; big1 *:=     72057594037927936_; ok := ok and big1 =     8895999182988127191957504_;
12738    big1 := 123456789_; big1 *:=    100000000000000000_; ok := ok and big1 =    12345678900000000000000000_;
12739    big1 := 123456789_; big1 *:=    144115188075855872_; ok := ok and big1 =    17791998365976254383915008_;
12740    big1 := 123456789_; big1 *:=    288230376151711744_; ok := ok and big1 =    35583996731952508767830016_;
12741    big1 := 123456789_; big1 *:=    576460752303423488_; ok := ok and big1 =    71167993463905017535660032_;
12742    big1 := 123456789_; big1 *:=   1000000000000000000_; ok := ok and big1 =   123456789000000000000000000_;
12743    big1 := 123456789_; big1 *:=   1152921504606846976_; ok := ok and big1 =   142335986927810035071320064_;
12744    big1 := 123456789_; big1 *:=   2305843009213693952_; ok := ok and big1 =   284671973855620070142640128_;
12745    big1 := 123456789_; big1 *:=   4611686018427387904_; ok := ok and big1 =   569343947711240140285280256_;
12746    big1 := 123456789_; big1 *:=   9223372036854775808_; ok := ok and big1 =  1138687895422480280570560512_;
12747    big1 := 123456789_; big1 *:=  10000000000000000000_; ok := ok and big1 =  1234567890000000000000000000_;
12748    big1 := 123456789_; big1 *:=  18446744073709551616_; ok := ok and big1 =  2277375790844960561141121024_;
12749    if not ok then
12750      writeln(" ***** Multiplication assignment of bigInteger does not work correct.");
12751    end if;
12752  end func;
12753
12754
12755const proc: chkMultAssign is func
12756  local
12757    var bigInteger: big1 is 0_;
12758    var boolean: okay is TRUE;
12759    var boolean: ok is TRUE;
12760  begin
12761    okay := chkMultAssignLiteral1 and
12762            chkMultAssignLiteral2 and
12763            chkMultAssignExpression1 and
12764            chkMultAssignExpression2 and
12765            chkMultAssign1;
12766
12767    big1 :=                65535_; big1 *:=               196607_; ok := ok and big1 =                             12884639745_;
12768    big1 :=               196607_; big1 *:=                65535_; ok := ok and big1 =                             12884639745_;
12769    big1 :=        1078203909375_; big1 *:= 17878103347812890625_; ok := ok and big1 =        19276240921822134027894287109375_;
12770    big1 := 17878103347812890625_; big1 *:=        1078203909375_; ok := ok and big1 =        19276240921822134027894287109375_;
12771    big1 := 17878103347812890625_; big1 *:= 17878103347812890625_; ok := ok and big1 = 319626579315078487616775634918212890625_;
12772    if not ok then
12773      writeln("Multiplication assignment of bigger bigInteger values does not work correct.");
12774      okay := FALSE;
12775    end if;
12776
12777    ok := TRUE;
12778    big1 := bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_);
12779    big1 *:= bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_);
12780    ok := ok and big1 = 16#14b66dc33f6acdca878d6495a927ab94fa645b6812e4895f6d3b523a7ca16729e012490ce65e44f452e93fdf501b22bec5c036b1b9d8008938972d842394de53ab6e24568d51bc1e1e451b28f70e99e8911c11fb60cb77b303f308cdca88557d76c9ffa034453347e9a0f6729e0211125c77ed4507beeedccf4ee417717bcca718b8ff635c630edca5e20890f2a63112330b11be88e95347c0341aec1f2c757d4d5d2419b56f97b2da862d474bb2b9e867af3674e1f5dc1df4d83fa27838fe53820148d00e7c20890f2a51fda4bf42be9c535b2b3b0264f4297c6458d1458729b6a56d866788a95f43ce76b3fdcbcb94d0f77fe1940eedca5e20890f2a521_;
12781    big1 := bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_);
12782    big1 *:= bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_);
12783    ok := ok and big1 = 16#121fa00ad77d742247acc9140513b7447d39f21d32a9fa66b2c71b2660403d88e854442f8dd680ab1de16d38bb6cc3cd536e9641e90306ef88fbbf4b16994a11be88e854442f8d33f416115d71c5d05629a33a669f5c13785f30636fccf2569a94bd8c78fa8899bcca4ab582281edcdeffd7de8b55b5200135650794834b632346b2f08801e6be011125c77ed4507adedb989e75a6ba37bca60b756c7923f49a707e4c634b8db1783af1235a1df76e560563fa50f0612b33cfd6d147c2cae8119a49a83e9534a4ef64bc7f35679e61cd2f2f562c3a081eaaf9a22d230c71db88c4150419dedb98668e87db10b145554458fab20783af1222236d88fe5618cf0_;
12784    big1 := bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_);
12785    big1 *:= bigintExpr(16#0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef_);
12786    ok := ok and big1 = 16#121fa00ad77d742247acc9140513b7447d39f21d32a9fa66b2c71b2660403d88e854442f8dd680ab1de16d38bb6cc3cd536e9641e90306ef88fbbf4b16994a11be88e854442f8d33f416115d71c5d05629a33a669f5c13785f30636fccf2569a94bd8c78fa8899bcca4ab582281edcdeffd7de8b55b5200135650794834b632346b2f08801e6be011125c77ed4507adedb989e75a6ba37bca60b756c7923f49a707e4c634b8db1783af1235a1df76e560563fa50f0612b33cfd6d147c2cae8119a49a83e9534a4ef64bc7f35679e61cd2f2f562c3a081eaaf9a22d230c71db88c4150419dedb98668e87db10b145554458fab20783af1222236d88fe5618cf0_;
12787    big1 := bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_);
12788    big1 *:= bigintExpr(16#fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210fedcba9876543210_);
12789    ok := ok and big1 = 16#fdbac097c8dc5aceda61ee073602f69cb7091b76a329926a93b048e610502e38705776557d76ca064cfea3c4ea9d65d429a5d13457c401a2064cfea3c4ea9d6fe2f42c133211393dbf9b59829f37d50b9c4286f20c5e70d978e9b46179850ca75590e1d0e6aba87532380f4053d244430edf3cafc0f8e010eb866a1f2e1f7bdcccb8165f098d620ef010e8ef9c66c6411369bb802f402a7336c28e10c2198ea55a1b60a154f2f2d77d743331e7cc5709a0cd05c27aa5bb3bc425d8530d7f1f6de77eaae3a05883a00ad77d743331e7d22e305004c60b4c045189229558e4b03674e1f525ebbe1468983ac7b67e97789abb939a471170dcccdeec6cd7a44a4100_;
12790    big1 := bigintExpr(16#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_);
12791    big1 *:= bigintExpr(16#ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_);
12792    ok := ok and big1 = 16#fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001_;
12793    if not ok then
12794      writeln("Karatsuba multiplication assignment does not work correct.");
12795      okay := FALSE;
12796    end if;
12797
12798    if okay then
12799      writeln("Multiplication assignment of bigInteger works correct.");
12800    else
12801      writeln(" ***** Multiplication assignment of bigInteger does not work correct.");
12802      writeln;
12803    end if;
12804  end func;
12805
12806
12807const proc: chkDivision is func
12808  local
12809    var bigInteger: number is 0_;
12810    var boolean: okay is TRUE;
12811  begin
12812    if                          32766_ div                     1_ <>            32766_ or
12813                                32767_ div                     1_ <>            32767_ or
12814                                32768_ div                     1_ <>            32768_ or
12815                                32769_ div                     1_ <>            32769_ or
12816                                32770_ div                     1_ <>            32770_ or
12817                                65534_ div                     1_ <>            65534_ or
12818                                65535_ div                     1_ <>            65535_ or
12819                                65536_ div                     1_ <>            65536_ or
12820                                65537_ div                     1_ <>            65537_ or
12821                                65538_ div                     1_ <>            65538_ or
12822                                65536_ div                   128_ <>              512_ or
12823                                32766_ div                 32766_ <>                1_ or
12824                                32767_ div                 32767_ <>                1_ or
12825                                32768_ div                 32768_ <>                1_ or
12826                                32769_ div                 32769_ <>                1_ or
12827                                32770_ div                 32770_ <>                1_ or
12828                                65534_ div                 65534_ <>                1_ or
12829                                65535_ div                 65535_ <>                1_ or
12830                                65536_ div                 65536_ <>                1_ or
12831                                65537_ div                 65537_ <>                1_ or
12832                                65538_ div                 65538_ <>                1_ or
12833                                32765_ div                 32766_ <>                0_ or
12834                                32766_ div                 32767_ <>                0_ or
12835                                32767_ div                 32768_ <>                0_ or
12836                                32768_ div                 32769_ <>                0_ or
12837                                32769_ div                 32770_ <>                0_ or
12838                                65533_ div                 65534_ <>                0_ or
12839                                65534_ div                 65535_ <>                0_ or
12840                                65535_ div                 65536_ <>                0_ or
12841                                65536_ div                 65537_ <>                0_ or
12842                                65537_ div                 65538_ <>                0_ or
12843                                32766_ div  18446744073709551616_ <>                0_ or
12844                                32767_ div  18446744073709551616_ <>                0_ or
12845                                32768_ div  18446744073709551616_ <>                0_ or
12846                                32769_ div  18446744073709551616_ <>                0_ or
12847                                32770_ div  18446744073709551616_ <>                0_ or
12848                                65534_ div  18446744073709551616_ <>                0_ or
12849                                65535_ div  18446744073709551616_ <>                0_ or
12850                                65536_ div  18446744073709551616_ <>                0_ or
12851                                65537_ div  18446744073709551616_ <>                0_ or
12852                                65538_ div  18446744073709551616_ <>                0_ or
12853                           2147483647_ div            2147483647_ <>                1_ or
12854                           2147483647_ div            2147483648_ <>                0_ or
12855                           2147483647_ div            2147483649_ <>                0_ or
12856                           2147483648_ div            2147483647_ <>                1_ or
12857                           2147483648_ div            2147483648_ <>                1_ or
12858                           2147483648_ div            2147483649_ <>                0_ or
12859                           2147483649_ div            2147483647_ <>                1_ or
12860                           2147483649_ div            2147483648_ <>                1_ or
12861                           2147483649_ div            2147483649_ <>                1_ or
12862                           4294967295_ div            4294967295_ <>                1_ or
12863                           4294967295_ div            4294967296_ <>                0_ or
12864                           4294967295_ div            4294967297_ <>                0_ or
12865                           4294967296_ div            4294967295_ <>                1_ or
12866                           4294967296_ div            4294967296_ <>                1_ or
12867                           4294967296_ div            4294967297_ <>                0_ or
12868                           4294967297_ div            4294967295_ <>                1_ or
12869                           4294967297_ div            4294967296_ <>                1_ or
12870                           4294967297_ div            4294967297_ <>                1_ or
12871                      140737488355327_ div       140737488355328_ <>                0_ or
12872                      140737488355328_ div       140737488355327_ <>                1_ or
12873                      140737488355328_ div       140737488355328_ <>                1_ or
12874                      140737488355328_ div       140737488355329_ <>                0_ or
12875                  9223372036854775807_ div                 32768_ <>  281474976710655_ or
12876                  9223090561878065152_ div                 32767_ <>  281474976710656_ or
12877                           4294967296_ div                 32768_ <>           131072_ or
12878                           4295229444_ div                 65538_ <>            65538_ or
12879                           8629125120_ div            4833607680_ <>                1_ or
12880                 18446744073709551616_ div                 32767_ <>  562967133814800_ or
12881                 18446744073709551616_ div                 32768_ <>  562949953421312_ or
12882                 18446744073709551616_ div                 65535_ <>  281479271743489_ or
12883                 18446744073709551616_ div                131071_ <>  140738562105344_ or
12884                 18446744073709551616_ div            2147483648_ <>       8589934592_ or
12885                 18446744073709551616_ div            4294967296_ <>       4294967296_ or
12886                 18446744073709551616_ div            4294967297_ <>       4294967295_ or
12887                 18446744073709551616_ div  18446744073709551616_ <>                1_ or
12888                 18446744073709551616_ div  18446744073709551617_ <>                0_ or
12889                  9223372036854775808_ div       140737488355329_ <>            65535_ or
12890                  9223372036854775808_ div       140737488420863_ <>            65535_ or
12891                  9223372036854775808_ div       140737488420864_ <>            65535_ or
12892                  9223372036854775808_ div       140741783322623_ <>            65534_ or
12893                  1152921504606846976_ div        17596481011711_ <>            65520_ or
12894                  9223231303661387776_ div       140739636002821_ <>            65533_ or
12895        39614081257132168796771975168_ div   9223372036854775809_ <>       4294967295_ then
12896      writeln("Division of bigInteger does not work correct. (1)");
12897      okay := FALSE;
12898    end if;
12899
12900    if                          32766_ div                    -1_ <>           -32766_ or
12901                                32767_ div                    -1_ <>           -32767_ or
12902                                32768_ div                    -1_ <>           -32768_ or
12903                                32769_ div                    -1_ <>           -32769_ or
12904                                32770_ div                    -1_ <>           -32770_ or
12905                                65534_ div                    -1_ <>           -65534_ or
12906                                65535_ div                    -1_ <>           -65535_ or
12907                                65536_ div                    -1_ <>           -65536_ or
12908                                65537_ div                    -1_ <>           -65537_ or
12909                                65538_ div                    -1_ <>           -65538_ or
12910                                65536_ div                  -128_ <>             -512_ or
12911                                32766_ div                -32766_ <>               -1_ or
12912                                32767_ div                -32767_ <>               -1_ or
12913                                32768_ div                -32768_ <>               -1_ or
12914                                32769_ div                -32769_ <>               -1_ or
12915                                32770_ div                -32770_ <>               -1_ or
12916                                65534_ div                -65534_ <>               -1_ or
12917                                65535_ div                -65535_ <>               -1_ or
12918                                65536_ div                -65536_ <>               -1_ or
12919                                65537_ div                -65537_ <>               -1_ or
12920                                65538_ div                -65538_ <>               -1_ or
12921                                32765_ div                -32766_ <>                0_ or
12922                                32766_ div                -32767_ <>                0_ or
12923                                32767_ div                -32768_ <>                0_ or
12924                                32768_ div                -32769_ <>                0_ or
12925                                32769_ div                -32770_ <>                0_ or
12926                                65533_ div                -65534_ <>                0_ or
12927                                65534_ div                -65535_ <>                0_ or
12928                                65535_ div                -65536_ <>                0_ or
12929                                65536_ div                -65537_ <>                0_ or
12930                                65537_ div                -65538_ <>                0_ or
12931                                32766_ div -18446744073709551616_ <>                0_ or
12932                                32767_ div -18446744073709551616_ <>                0_ or
12933                                32768_ div -18446744073709551616_ <>                0_ or
12934                                32769_ div -18446744073709551616_ <>                0_ or
12935                                32770_ div -18446744073709551616_ <>                0_ or
12936                                65534_ div -18446744073709551616_ <>                0_ or
12937                                65535_ div -18446744073709551616_ <>                0_ or
12938                                65536_ div -18446744073709551616_ <>                0_ or
12939                                65537_ div -18446744073709551616_ <>                0_ or
12940                                65538_ div -18446744073709551616_ <>                0_ or
12941                           2147483647_ div           -2147483647_ <>               -1_ or
12942                           2147483647_ div           -2147483648_ <>                0_ or
12943                           2147483647_ div           -2147483649_ <>                0_ or
12944                           2147483648_ div           -2147483647_ <>               -1_ or
12945                           2147483648_ div           -2147483648_ <>               -1_ or
12946                           2147483648_ div           -2147483649_ <>                0_ or
12947                           2147483649_ div           -2147483647_ <>               -1_ or
12948                           2147483649_ div           -2147483648_ <>               -1_ or
12949                           2147483649_ div           -2147483649_ <>               -1_ or
12950                           4294967295_ div           -4294967295_ <>               -1_ or
12951                           4294967295_ div           -4294967296_ <>                0_ or
12952                           4294967295_ div           -4294967297_ <>                0_ or
12953                           4294967296_ div           -4294967295_ <>               -1_ or
12954                           4294967296_ div           -4294967296_ <>               -1_ or
12955                           4294967296_ div           -4294967297_ <>                0_ or
12956                           4294967297_ div           -4294967295_ <>               -1_ or
12957                           4294967297_ div           -4294967296_ <>               -1_ or
12958                           4294967297_ div           -4294967297_ <>               -1_ or
12959                      140737488355327_ div      -140737488355328_ <>                0_ or
12960                      140737488355328_ div      -140737488355327_ <>               -1_ or
12961                      140737488355328_ div      -140737488355328_ <>               -1_ or
12962                      140737488355328_ div      -140737488355329_ <>                0_ or
12963                  9223372036854775807_ div                -32768_ <> -281474976710655_ or
12964                  9223090561878065152_ div                -32767_ <> -281474976710656_ or
12965                           4294967296_ div                -32768_ <>          -131072_ or
12966                           4295229444_ div                -65538_ <>           -65538_ or
12967                           8629125120_ div           -4833607680_ <>               -1_ or
12968                 18446744073709551616_ div                -32767_ <> -562967133814800_ or
12969                 18446744073709551616_ div                -32768_ <> -562949953421312_ or
12970                 18446744073709551616_ div                -65535_ <> -281479271743489_ or
12971                 18446744073709551616_ div               -131071_ <> -140738562105344_ or
12972                 18446744073709551616_ div           -2147483648_ <>      -8589934592_ or
12973                 18446744073709551616_ div           -4294967296_ <>      -4294967296_ or
12974                 18446744073709551616_ div           -4294967297_ <>      -4294967295_ or
12975                 18446744073709551616_ div -18446744073709551616_ <>               -1_ or
12976                 18446744073709551616_ div -18446744073709551617_ <>                0_ or
12977                  9223372036854775808_ div      -140737488355329_ <>           -65535_ or
12978                  9223372036854775808_ div      -140737488420863_ <>           -65535_ or
12979                  9223372036854775808_ div      -140737488420864_ <>           -65535_ or
12980                  9223372036854775808_ div      -140741783322623_ <>           -65534_ or
12981                  1152921504606846976_ div       -17596481011711_ <>           -65520_ or
12982                  9223231303661387776_ div      -140739636002821_ <>           -65533_ or
12983        39614081257132168796771975168_ div  -9223372036854775809_ <>      -4294967295_ then
12984      writeln("Division of bigInteger does not work correct. (2)");
12985      okay := FALSE;
12986    end if;
12987
12988    if                         -32766_ div                     1_ <>           -32766_ or
12989                               -32767_ div                     1_ <>           -32767_ or
12990                               -32768_ div                     1_ <>           -32768_ or
12991                               -32769_ div                     1_ <>           -32769_ or
12992                               -32770_ div                     1_ <>           -32770_ or
12993                               -65534_ div                     1_ <>           -65534_ or
12994                               -65535_ div                     1_ <>           -65535_ or
12995                               -65536_ div                     1_ <>           -65536_ or
12996                               -65537_ div                     1_ <>           -65537_ or
12997                               -65538_ div                     1_ <>           -65538_ or
12998                               -65536_ div                   128_ <>             -512_ or
12999                               -32766_ div                 32766_ <>               -1_ or
13000                               -32767_ div                 32767_ <>               -1_ or
13001                               -32768_ div                 32768_ <>               -1_ or
13002                               -32769_ div                 32769_ <>               -1_ or
13003                               -32770_ div                 32770_ <>               -1_ or
13004                               -65534_ div                 65534_ <>               -1_ or
13005                               -65535_ div                 65535_ <>               -1_ or
13006                               -65536_ div                 65536_ <>               -1_ or
13007                               -65537_ div                 65537_ <>               -1_ or
13008                               -65538_ div                 65538_ <>               -1_ or
13009                               -32765_ div                 32766_ <>                0_ or
13010                               -32766_ div                 32767_ <>                0_ or
13011                               -32767_ div                 32768_ <>                0_ or
13012                               -32768_ div                 32769_ <>                0_ or
13013                               -32769_ div                 32770_ <>                0_ or
13014                               -65533_ div                 65534_ <>                0_ or
13015                               -65534_ div                 65535_ <>                0_ or
13016                               -65535_ div                 65536_ <>                0_ or
13017                               -65536_ div                 65537_ <>                0_ or
13018                               -65537_ div                 65538_ <>                0_ or
13019                               -32766_ div  18446744073709551616_ <>                0_ or
13020                               -32767_ div  18446744073709551616_ <>                0_ or
13021                               -32768_ div  18446744073709551616_ <>                0_ or
13022                               -32769_ div  18446744073709551616_ <>                0_ or
13023                               -32770_ div  18446744073709551616_ <>                0_ or
13024                               -65534_ div  18446744073709551616_ <>                0_ or
13025                               -65535_ div  18446744073709551616_ <>                0_ or
13026                               -65536_ div  18446744073709551616_ <>                0_ or
13027                               -65537_ div  18446744073709551616_ <>                0_ or
13028                               -65538_ div  18446744073709551616_ <>                0_ or
13029                          -2147483647_ div            2147483647_ <>               -1_ or
13030                          -2147483647_ div            2147483648_ <>                0_ or
13031                          -2147483647_ div            2147483649_ <>                0_ or
13032                          -2147483648_ div            2147483647_ <>               -1_ or
13033                          -2147483648_ div            2147483648_ <>               -1_ or
13034                          -2147483648_ div            2147483649_ <>                0_ or
13035                          -2147483649_ div            2147483647_ <>               -1_ or
13036                          -2147483649_ div            2147483648_ <>               -1_ or
13037                          -2147483649_ div            2147483649_ <>               -1_ or
13038                          -4294967295_ div            4294967295_ <>               -1_ or
13039                          -4294967295_ div            4294967296_ <>                0_ or
13040                          -4294967295_ div            4294967297_ <>                0_ or
13041                          -4294967296_ div            4294967295_ <>               -1_ or
13042                          -4294967296_ div            4294967296_ <>               -1_ or
13043                          -4294967296_ div            4294967297_ <>                0_ or
13044                          -4294967297_ div            4294967295_ <>               -1_ or
13045                          -4294967297_ div            4294967296_ <>               -1_ or
13046                          -4294967297_ div            4294967297_ <>               -1_ or
13047                     -140737488355327_ div       140737488355328_ <>                0_ or
13048                     -140737488355328_ div       140737488355327_ <>               -1_ or
13049                     -140737488355328_ div       140737488355328_ <>               -1_ or
13050                     -140737488355328_ div       140737488355329_ <>                0_ or
13051                 -9223372036854775807_ div                 32768_ <> -281474976710655_ or
13052                 -9223090561878065152_ div                 32767_ <> -281474976710656_ or
13053                          -4294967296_ div                 32768_ <>          -131072_ or
13054                          -4295229444_ div                 65538_ <>           -65538_ or
13055                          -8629125120_ div            4833607680_ <>               -1_ or
13056                -18446744073709551616_ div                 32767_ <> -562967133814800_ or
13057                -18446744073709551616_ div                 32768_ <> -562949953421312_ or
13058                -18446744073709551616_ div                 65535_ <> -281479271743489_ or
13059                -18446744073709551616_ div                131071_ <> -140738562105344_ or
13060                -18446744073709551616_ div            2147483648_ <>      -8589934592_ or
13061                -18446744073709551616_ div            4294967296_ <>      -4294967296_ or
13062                -18446744073709551616_ div            4294967297_ <>      -4294967295_ or
13063                -18446744073709551616_ div  18446744073709551616_ <>               -1_ or
13064                -18446744073709551616_ div  18446744073709551617_ <>                0_ or
13065                 -9223372036854775808_ div       140737488355329_ <>           -65535_ or
13066                 -9223372036854775808_ div       140737488420863_ <>           -65535_ or
13067                 -9223372036854775808_ div       140737488420864_ <>           -65535_ or
13068                 -9223372036854775808_ div       140741783322623_ <>           -65534_ or
13069                 -1152921504606846976_ div        17596481011711_ <>           -65520_ or
13070                 -9223231303661387776_ div       140739636002821_ <>           -65533_ or
13071       -39614081257132168796771975168_ div   9223372036854775809_ <>      -4294967295_ then
13072      writeln("Division of bigInteger does not work correct. (3)");
13073      okay := FALSE;
13074    end if;
13075
13076    if                         -32766_ div                    -1_ <>            32766_ or
13077                               -32767_ div                    -1_ <>            32767_ or
13078                               -32768_ div                    -1_ <>            32768_ or
13079                               -32769_ div                    -1_ <>            32769_ or
13080                               -32770_ div                    -1_ <>            32770_ or
13081                               -65534_ div                    -1_ <>            65534_ or
13082                               -65535_ div                    -1_ <>            65535_ or
13083                               -65536_ div                    -1_ <>            65536_ or
13084                               -65537_ div                    -1_ <>            65537_ or
13085                               -65538_ div                    -1_ <>            65538_ or
13086                               -65536_ div                  -128_ <>              512_ or
13087                               -32766_ div                -32766_ <>                1_ or
13088                               -32767_ div                -32767_ <>                1_ or
13089                               -32768_ div                -32768_ <>                1_ or
13090                               -32769_ div                -32769_ <>                1_ or
13091                               -32770_ div                -32770_ <>                1_ or
13092                               -65534_ div                -65534_ <>                1_ or
13093                               -65535_ div                -65535_ <>                1_ or
13094                               -65536_ div                -65536_ <>                1_ or
13095                               -65537_ div                -65537_ <>                1_ or
13096                               -65538_ div                -65538_ <>                1_ or
13097                               -32765_ div                -32766_ <>                0_ or
13098                               -32766_ div                -32767_ <>                0_ or
13099                               -32767_ div                -32768_ <>                0_ or
13100                               -32768_ div                -32769_ <>                0_ or
13101                               -32769_ div                -32770_ <>                0_ or
13102                               -65533_ div                -65534_ <>                0_ or
13103                               -65534_ div                -65535_ <>                0_ or
13104                               -65535_ div                -65536_ <>                0_ or
13105                               -65536_ div                -65537_ <>                0_ or
13106                               -65537_ div                -65538_ <>                0_ or
13107                               -32766_ div -18446744073709551616_ <>                0_ or
13108                               -32767_ div -18446744073709551616_ <>                0_ or
13109                               -32768_ div -18446744073709551616_ <>                0_ or
13110                               -32769_ div -18446744073709551616_ <>                0_ or
13111                               -32770_ div -18446744073709551616_ <>                0_ or
13112                               -65534_ div -18446744073709551616_ <>                0_ or
13113                               -65535_ div -18446744073709551616_ <>                0_ or
13114                               -65536_ div -18446744073709551616_ <>                0_ or
13115                               -65537_ div -18446744073709551616_ <>                0_ or
13116                               -65538_ div -18446744073709551616_ <>                0_ or
13117                          -2147483647_ div           -2147483647_ <>                1_ or
13118                          -2147483647_ div           -2147483648_ <>                0_ or
13119                          -2147483647_ div           -2147483649_ <>                0_ or
13120                          -2147483648_ div           -2147483647_ <>                1_ or
13121                          -2147483648_ div           -2147483648_ <>                1_ or
13122                          -2147483648_ div           -2147483649_ <>                0_ or
13123                          -2147483649_ div           -2147483647_ <>                1_ or
13124                          -2147483649_ div           -2147483648_ <>                1_ or
13125                          -2147483649_ div           -2147483649_ <>                1_ or
13126                          -4294967295_ div           -4294967295_ <>                1_ or
13127                          -4294967295_ div           -4294967296_ <>                0_ or
13128                          -4294967295_ div           -4294967297_ <>                0_ or
13129                          -4294967296_ div           -4294967295_ <>                1_ or
13130                          -4294967296_ div           -4294967296_ <>                1_ or
13131                          -4294967296_ div           -4294967297_ <>                0_ or
13132                          -4294967297_ div           -4294967295_ <>                1_ or
13133                          -4294967297_ div           -4294967296_ <>                1_ or
13134                          -4294967297_ div           -4294967297_ <>                1_ or
13135                     -140737488355327_ div      -140737488355328_ <>                0_ or
13136                     -140737488355328_ div      -140737488355327_ <>                1_ or
13137                     -140737488355328_ div      -140737488355328_ <>                1_ or
13138                     -140737488355328_ div      -140737488355329_ <>                0_ or
13139                 -9223372036854775807_ div                -32768_ <>  281474976710655_ or
13140                 -9223090561878065152_ div                -32767_ <>  281474976710656_ or
13141                          -4294967296_ div                -32768_ <>           131072_ or
13142                          -4295229444_ div                -65538_ <>            65538_ or
13143                          -8629125120_ div           -4833607680_ <>                1_ or
13144                -18446744073709551616_ div                -32767_ <>  562967133814800_ or
13145                -18446744073709551616_ div                -32768_ <>  562949953421312_ or
13146                -18446744073709551616_ div                -65535_ <>  281479271743489_ or
13147                -18446744073709551616_ div               -131071_ <>  140738562105344_ or
13148                -18446744073709551616_ div           -2147483648_ <>       8589934592_ or
13149                -18446744073709551616_ div           -4294967296_ <>       4294967296_ or
13150                -18446744073709551616_ div           -4294967297_ <>       4294967295_ or
13151                -18446744073709551616_ div -18446744073709551616_ <>                1_ or
13152                -18446744073709551616_ div -18446744073709551617_ <>                0_ or
13153                 -9223372036854775808_ div      -140737488355329_ <>            65535_ or
13154                 -9223372036854775808_ div      -140737488420863_ <>            65535_ or
13155                 -9223372036854775808_ div      -140737488420864_ <>            65535_ or
13156                 -9223372036854775808_ div      -140741783322623_ <>            65534_ or
13157                 -1152921504606846976_ div       -17596481011711_ <>            65520_ or
13158                 -9223231303661387776_ div      -140739636002821_ <>            65533_ or
13159       -39614081257132168796771975168_ div  -9223372036854775809_ <>       4294967295_ then
13160      writeln("Division of bigInteger does not work correct. (4)");
13161      okay := FALSE;
13162    end if;
13163
13164    if            -9223372036854775808_  div            9223372036854775808_  <> -1_ or
13165                  -9223372036854775808_  div            9223372036854775809_  <>  0_ or
13166                  -9223372036854775807_  div            9223372036854775808_  <>  0_ or
13167                  -9223372036854775808_  div bigintExpr(9223372036854775808_) <> -1_ or
13168                  -9223372036854775808_  div bigintExpr(9223372036854775809_) <>  0_ or
13169                  -9223372036854775807_  div bigintExpr(9223372036854775808_) <>  0_ or
13170       bigintExpr(-9223372036854775808_) div            9223372036854775808_  <> -1_ or
13171       bigintExpr(-9223372036854775808_) div            9223372036854775809_  <>  0_ or
13172       bigintExpr(-9223372036854775807_) div            9223372036854775808_  <>  0_ or
13173       bigintExpr(-9223372036854775808_) div bigintExpr(9223372036854775808_) <> -1_ or
13174       bigintExpr(-9223372036854775808_) div bigintExpr(9223372036854775809_) <>  0_ or
13175       bigintExpr(-9223372036854775807_) div bigintExpr(9223372036854775808_) <>  0_ or
13176                  -39614081257132168796771975168_  div            39614081257132168796771975168_  <> -1_ or
13177                  -39614081257132168796771975168_  div            39614081257132168796771975169_  <>  0_ or
13178                  -39614081257132168796771975167_  div            39614081257132168796771975168_  <>  0_ or
13179                  -39614081257132168796771975168_  div bigintExpr(39614081257132168796771975168_) <> -1_ or
13180                  -39614081257132168796771975168_  div bigintExpr(39614081257132168796771975169_) <>  0_ or
13181                  -39614081257132168796771975167_  div bigintExpr(39614081257132168796771975168_) <>  0_ or
13182       bigintExpr(-39614081257132168796771975168_) div            39614081257132168796771975168_  <> -1_ or
13183       bigintExpr(-39614081257132168796771975168_) div            39614081257132168796771975169_  <>  0_ or
13184       bigintExpr(-39614081257132168796771975167_) div            39614081257132168796771975168_  <>  0_ or
13185       bigintExpr(-39614081257132168796771975168_) div bigintExpr(39614081257132168796771975168_) <> -1_ or
13186       bigintExpr(-39614081257132168796771975168_) div bigintExpr(39614081257132168796771975169_) <>  0_ or
13187       bigintExpr(-39614081257132168796771975167_) div bigintExpr(39614081257132168796771975168_) <>  0_ or
13188                  -170141183460469231731687303715884105728_  div            170141183460469231731687303715884105728_  <> -1_ or
13189                  -170141183460469231731687303715884105728_  div            170141183460469231731687303715884105729_  <>  0_ or
13190                  -170141183460469231731687303715884105727_  div            170141183460469231731687303715884105728_  <>  0_ or
13191                  -170141183460469231731687303715884105728_  div bigintExpr(170141183460469231731687303715884105728_) <> -1_ or
13192                  -170141183460469231731687303715884105728_  div bigintExpr(170141183460469231731687303715884105729_) <>  0_ or
13193                  -170141183460469231731687303715884105727_  div bigintExpr(170141183460469231731687303715884105728_) <>  0_ or
13194       bigintExpr(-170141183460469231731687303715884105728_) div            170141183460469231731687303715884105728_  <> -1_ or
13195       bigintExpr(-170141183460469231731687303715884105728_) div            170141183460469231731687303715884105729_  <>  0_ or
13196       bigintExpr(-170141183460469231731687303715884105727_) div            170141183460469231731687303715884105728_  <>  0_ or
13197       bigintExpr(-170141183460469231731687303715884105728_) div bigintExpr(170141183460469231731687303715884105728_) <> -1_ or
13198       bigintExpr(-170141183460469231731687303715884105728_) div bigintExpr(170141183460469231731687303715884105729_) <>  0_ or
13199       bigintExpr(-170141183460469231731687303715884105727_) div bigintExpr(170141183460469231731687303715884105728_) <>  0_ then
13200      writeln("Division of bigInteger does not work correct. (5)");
13201      okay := FALSE;
13202    end if;
13203
13204    if  0_ div -170141183460469231731687303715884105729_ <> 0_ or
13205        0_ div -170141183460469231731687303715884105728_ <> 0_ or
13206        0_ div                     -9223372036854775809_ <> 0_ or
13207        0_ div                     -9223372036854775808_ <> 0_ or
13208        0_ div                              -2147483649_ <> 0_ or
13209        0_ div                              -2147483648_ <> 0_ or
13210        0_ div                                   -32769_ <> 0_ or
13211        0_ div                                   -32768_ <> 0_ or
13212        0_ div                                     -129_ <> 0_ or
13213        0_ div                                     -128_ <> 0_ or
13214        0_ div                                       -1_ <> 0_ or
13215        0_ div                                        1_ <> 0_ or
13216        0_ div                                      127_ <> 0_ or
13217        0_ div                                      128_ <> 0_ or
13218        0_ div                                    32767_ <> 0_ or
13219        0_ div                                    32768_ <> 0_ or
13220        0_ div                               2147483647_ <> 0_ or
13221        0_ div                               2147483648_ <> 0_ or
13222        0_ div                      9223372036854775807_ <> 0_ or
13223        0_ div                      9223372036854775808_ <> 0_ or
13224        0_ div  170141183460469231731687303715884105727_ <> 0_ or
13225        0_ div  170141183460469231731687303715884105728_ <> 0_ or
13226        0_ div bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
13227        0_ div bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
13228        0_ div bigintExpr(                    -9223372036854775809_) <> 0_ or
13229        0_ div bigintExpr(                    -9223372036854775808_) <> 0_ or
13230        0_ div bigintExpr(                             -2147483649_) <> 0_ or
13231        0_ div bigintExpr(                             -2147483648_) <> 0_ or
13232        0_ div bigintExpr(                                  -32769_) <> 0_ or
13233        0_ div bigintExpr(                                  -32768_) <> 0_ or
13234        0_ div bigintExpr(                                    -129_) <> 0_ or
13235        0_ div bigintExpr(                                    -128_) <> 0_ or
13236        0_ div bigintExpr(                                      -1_) <> 0_ or
13237        0_ div bigintExpr(                                       1_) <> 0_ or
13238        0_ div bigintExpr(                                     127_) <> 0_ or
13239        0_ div bigintExpr(                                     128_) <> 0_ or
13240        0_ div bigintExpr(                                   32767_) <> 0_ or
13241        0_ div bigintExpr(                                   32768_) <> 0_ or
13242        0_ div bigintExpr(                              2147483647_) <> 0_ or
13243        0_ div bigintExpr(                              2147483648_) <> 0_ or
13244        0_ div bigintExpr(                     9223372036854775807_) <> 0_ or
13245        0_ div bigintExpr(                     9223372036854775808_) <> 0_ or
13246        0_ div bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
13247        0_ div bigintExpr( 170141183460469231731687303715884105728_) <> 0_ or
13248        bigintExpr(0_) div -170141183460469231731687303715884105729_ <> 0_ or
13249        bigintExpr(0_) div -170141183460469231731687303715884105728_ <> 0_ or
13250        bigintExpr(0_) div                     -9223372036854775809_ <> 0_ or
13251        bigintExpr(0_) div                     -9223372036854775808_ <> 0_ or
13252        bigintExpr(0_) div                              -2147483649_ <> 0_ or
13253        bigintExpr(0_) div                              -2147483648_ <> 0_ or
13254        bigintExpr(0_) div                                   -32769_ <> 0_ or
13255        bigintExpr(0_) div                                   -32768_ <> 0_ or
13256        bigintExpr(0_) div                                     -129_ <> 0_ or
13257        bigintExpr(0_) div                                     -128_ <> 0_ or
13258        bigintExpr(0_) div                                       -1_ <> 0_ or
13259        bigintExpr(0_) div                                        1_ <> 0_ or
13260        bigintExpr(0_) div                                      127_ <> 0_ or
13261        bigintExpr(0_) div                                      128_ <> 0_ or
13262        bigintExpr(0_) div                                    32767_ <> 0_ or
13263        bigintExpr(0_) div                                    32768_ <> 0_ or
13264        bigintExpr(0_) div                               2147483647_ <> 0_ or
13265        bigintExpr(0_) div                               2147483648_ <> 0_ or
13266        bigintExpr(0_) div                      9223372036854775807_ <> 0_ or
13267        bigintExpr(0_) div                      9223372036854775808_ <> 0_ or
13268        bigintExpr(0_) div  170141183460469231731687303715884105727_ <> 0_ or
13269        bigintExpr(0_) div  170141183460469231731687303715884105728_ <> 0_ or
13270        bigintExpr(0_) div bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
13271        bigintExpr(0_) div bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
13272        bigintExpr(0_) div bigintExpr(                    -9223372036854775809_) <> 0_ or
13273        bigintExpr(0_) div bigintExpr(                    -9223372036854775808_) <> 0_ or
13274        bigintExpr(0_) div bigintExpr(                             -2147483649_) <> 0_ or
13275        bigintExpr(0_) div bigintExpr(                             -2147483648_) <> 0_ or
13276        bigintExpr(0_) div bigintExpr(                                  -32769_) <> 0_ or
13277        bigintExpr(0_) div bigintExpr(                                  -32768_) <> 0_ or
13278        bigintExpr(0_) div bigintExpr(                                    -129_) <> 0_ or
13279        bigintExpr(0_) div bigintExpr(                                    -128_) <> 0_ or
13280        bigintExpr(0_) div bigintExpr(                                      -1_) <> 0_ or
13281        bigintExpr(0_) div bigintExpr(                                       1_) <> 0_ or
13282        bigintExpr(0_) div bigintExpr(                                     127_) <> 0_ or
13283        bigintExpr(0_) div bigintExpr(                                     128_) <> 0_ or
13284        bigintExpr(0_) div bigintExpr(                                   32767_) <> 0_ or
13285        bigintExpr(0_) div bigintExpr(                                   32768_) <> 0_ or
13286        bigintExpr(0_) div bigintExpr(                              2147483647_) <> 0_ or
13287        bigintExpr(0_) div bigintExpr(                              2147483648_) <> 0_ or
13288        bigintExpr(0_) div bigintExpr(                     9223372036854775807_) <> 0_ or
13289        bigintExpr(0_) div bigintExpr(                     9223372036854775808_) <> 0_ or
13290        bigintExpr(0_) div bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
13291        bigintExpr(0_) div bigintExpr( 170141183460469231731687303715884105728_) <> 0_ then
13292      writeln("Division of bigInteger does not work correct. (6)");
13293      okay := FALSE;
13294    end if;
13295
13296    if   280223983525050_ div              1_ <>  280223983525050_ or
13297         280223983525050_ div              2_ <>  140111991762525_ or
13298         280223983525050_ div              4_ <>   70055995881262_ or
13299         280223983525050_ div              8_ <>   35027997940631_ or
13300         280223983525050_ div           1024_ <>     273656233911_ or
13301         280223983525050_ div        1048576_ <>        267242415_ or
13302         280223983525050_ div     1073741824_ <>           260978_ or
13303         280223983525050_ div     2147483648_ <>           130489_ or
13304         280223983525050_ div     4294967296_ <>            65244_ or
13305         280223983525050_ div  1099511627776_ <>              254_ or
13306         280223983525050_ div             -1_ <> -280223983525050_ or
13307         280223983525050_ div             -2_ <> -140111991762525_ or
13308         280223983525050_ div             -4_ <>  -70055995881262_ or
13309         280223983525050_ div             -8_ <>  -35027997940631_ or
13310         280223983525050_ div          -1024_ <>    -273656233911_ or
13311         280223983525050_ div       -1048576_ <>       -267242415_ or
13312         280223983525050_ div    -1073741824_ <>          -260978_ or
13313         280223983525050_ div    -2147483648_ <>          -130489_ or
13314         280223983525050_ div    -4294967296_ <>           -65244_ or
13315         280223983525050_ div -1099511627776_ <>             -254_ or
13316        -280223983525050_ div              1_ <> -280223983525050_ or
13317        -280223983525050_ div              2_ <> -140111991762525_ or
13318        -280223983525050_ div              4_ <>  -70055995881262_ or
13319        -280223983525050_ div              8_ <>  -35027997940631_ or
13320        -280223983525050_ div           1024_ <>    -273656233911_ or
13321        -280223983525050_ div        1048576_ <>       -267242415_ or
13322        -280223983525050_ div     1073741824_ <>          -260978_ or
13323        -280223983525050_ div     2147483648_ <>          -130489_ or
13324        -280223983525050_ div     4294967296_ <>           -65244_ or
13325        -280223983525050_ div  1099511627776_ <>             -254_ or
13326        -280223983525050_ div             -1_ <>  280223983525050_ or
13327        -280223983525050_ div             -2_ <>  140111991762525_ or
13328        -280223983525050_ div             -4_ <>   70055995881262_ or
13329        -280223983525050_ div             -8_ <>   35027997940631_ or
13330        -280223983525050_ div          -1024_ <>     273656233911_ or
13331        -280223983525050_ div       -1048576_ <>        267242415_ or
13332        -280223983525050_ div    -1073741824_ <>           260978_ or
13333        -280223983525050_ div    -2147483648_ <>           130489_ or
13334        -280223983525050_ div    -4294967296_ <>            65244_ or
13335        -280223983525050_ div -1099511627776_ <>              254_ or
13336
13337         280223983525050_ div bigintExpr(             1_) <>  280223983525050_ or
13338         280223983525050_ div bigintExpr(             2_) <>  140111991762525_ or
13339         280223983525050_ div bigintExpr(             4_) <>   70055995881262_ or
13340         280223983525050_ div bigintExpr(             8_) <>   35027997940631_ or
13341         280223983525050_ div bigintExpr(          1024_) <>     273656233911_ or
13342         280223983525050_ div bigintExpr(       1048576_) <>        267242415_ or
13343         280223983525050_ div bigintExpr(    1073741824_) <>           260978_ or
13344         280223983525050_ div bigintExpr(    2147483648_) <>           130489_ or
13345         280223983525050_ div bigintExpr(    4294967296_) <>            65244_ or
13346         280223983525050_ div bigintExpr( 1099511627776_) <>              254_ or
13347         280223983525050_ div bigintExpr(            -1_) <> -280223983525050_ or
13348         280223983525050_ div bigintExpr(            -2_) <> -140111991762525_ or
13349         280223983525050_ div bigintExpr(            -4_) <>  -70055995881262_ or
13350         280223983525050_ div bigintExpr(            -8_) <>  -35027997940631_ or
13351         280223983525050_ div bigintExpr(         -1024_) <>    -273656233911_ or
13352         280223983525050_ div bigintExpr(      -1048576_) <>       -267242415_ or
13353         280223983525050_ div bigintExpr(   -1073741824_) <>          -260978_ or
13354         280223983525050_ div bigintExpr(   -2147483648_) <>          -130489_ or
13355         280223983525050_ div bigintExpr(   -4294967296_) <>           -65244_ or
13356         280223983525050_ div bigintExpr(-1099511627776_) <>             -254_ or
13357        -280223983525050_ div bigintExpr(             1_) <> -280223983525050_ or
13358        -280223983525050_ div bigintExpr(             2_) <> -140111991762525_ or
13359        -280223983525050_ div bigintExpr(             4_) <>  -70055995881262_ or
13360        -280223983525050_ div bigintExpr(             8_) <>  -35027997940631_ or
13361        -280223983525050_ div bigintExpr(          1024_) <>    -273656233911_ or
13362        -280223983525050_ div bigintExpr(       1048576_) <>       -267242415_ or
13363        -280223983525050_ div bigintExpr(    1073741824_) <>          -260978_ or
13364        -280223983525050_ div bigintExpr(    2147483648_) <>          -130489_ or
13365        -280223983525050_ div bigintExpr(    4294967296_) <>           -65244_ or
13366        -280223983525050_ div bigintExpr( 1099511627776_) <>             -254_ or
13367        -280223983525050_ div bigintExpr(            -1_) <>  280223983525050_ or
13368        -280223983525050_ div bigintExpr(            -2_) <>  140111991762525_ or
13369        -280223983525050_ div bigintExpr(            -4_) <>   70055995881262_ or
13370        -280223983525050_ div bigintExpr(            -8_) <>   35027997940631_ or
13371        -280223983525050_ div bigintExpr(         -1024_) <>     273656233911_ or
13372        -280223983525050_ div bigintExpr(      -1048576_) <>        267242415_ or
13373        -280223983525050_ div bigintExpr(   -1073741824_) <>           260978_ or
13374        -280223983525050_ div bigintExpr(   -2147483648_) <>           130489_ or
13375        -280223983525050_ div bigintExpr(   -4294967296_) <>            65244_ or
13376        -280223983525050_ div bigintExpr(-1099511627776_) <>              254_ or
13377
13378        bigintExpr( 280223983525050_) div              1_ <>  280223983525050_ or
13379        bigintExpr( 280223983525050_) div              2_ <>  140111991762525_ or
13380        bigintExpr( 280223983525050_) div              4_ <>   70055995881262_ or
13381        bigintExpr( 280223983525050_) div              8_ <>   35027997940631_ or
13382        bigintExpr( 280223983525050_) div           1024_ <>     273656233911_ or
13383        bigintExpr( 280223983525050_) div        1048576_ <>        267242415_ or
13384        bigintExpr( 280223983525050_) div     1073741824_ <>           260978_ or
13385        bigintExpr( 280223983525050_) div     2147483648_ <>           130489_ or
13386        bigintExpr( 280223983525050_) div     4294967296_ <>            65244_ or
13387        bigintExpr( 280223983525050_) div  1099511627776_ <>              254_ or
13388        bigintExpr( 280223983525050_) div             -1_ <> -280223983525050_ or
13389        bigintExpr( 280223983525050_) div             -2_ <> -140111991762525_ or
13390        bigintExpr( 280223983525050_) div             -4_ <>  -70055995881262_ or
13391        bigintExpr( 280223983525050_) div             -8_ <>  -35027997940631_ or
13392        bigintExpr( 280223983525050_) div          -1024_ <>    -273656233911_ or
13393        bigintExpr( 280223983525050_) div       -1048576_ <>       -267242415_ or
13394        bigintExpr( 280223983525050_) div    -1073741824_ <>          -260978_ or
13395        bigintExpr( 280223983525050_) div    -2147483648_ <>          -130489_ or
13396        bigintExpr( 280223983525050_) div    -4294967296_ <>           -65244_ or
13397        bigintExpr( 280223983525050_) div -1099511627776_ <>             -254_ or
13398        bigintExpr(-280223983525050_) div              1_ <> -280223983525050_ or
13399        bigintExpr(-280223983525050_) div              2_ <> -140111991762525_ or
13400        bigintExpr(-280223983525050_) div              4_ <>  -70055995881262_ or
13401        bigintExpr(-280223983525050_) div              8_ <>  -35027997940631_ or
13402        bigintExpr(-280223983525050_) div           1024_ <>    -273656233911_ or
13403        bigintExpr(-280223983525050_) div        1048576_ <>       -267242415_ or
13404        bigintExpr(-280223983525050_) div     1073741824_ <>          -260978_ or
13405        bigintExpr(-280223983525050_) div     2147483648_ <>          -130489_ or
13406        bigintExpr(-280223983525050_) div     4294967296_ <>           -65244_ or
13407        bigintExpr(-280223983525050_) div  1099511627776_ <>             -254_ or
13408        bigintExpr(-280223983525050_) div             -1_ <>  280223983525050_ or
13409        bigintExpr(-280223983525050_) div             -2_ <>  140111991762525_ or
13410        bigintExpr(-280223983525050_) div             -4_ <>   70055995881262_ or
13411        bigintExpr(-280223983525050_) div             -8_ <>   35027997940631_ or
13412        bigintExpr(-280223983525050_) div          -1024_ <>     273656233911_ or
13413        bigintExpr(-280223983525050_) div       -1048576_ <>        267242415_ or
13414        bigintExpr(-280223983525050_) div    -1073741824_ <>           260978_ or
13415        bigintExpr(-280223983525050_) div    -2147483648_ <>           130489_ or
13416        bigintExpr(-280223983525050_) div    -4294967296_ <>            65244_ or
13417        bigintExpr(-280223983525050_) div -1099511627776_ <>              254_ or
13418
13419        bigintExpr( 280223983525050_) div bigintExpr(             1_) <>  280223983525050_ or
13420        bigintExpr( 280223983525050_) div bigintExpr(             2_) <>  140111991762525_ or
13421        bigintExpr( 280223983525050_) div bigintExpr(             4_) <>   70055995881262_ or
13422        bigintExpr( 280223983525050_) div bigintExpr(             8_) <>   35027997940631_ or
13423        bigintExpr( 280223983525050_) div bigintExpr(          1024_) <>     273656233911_ or
13424        bigintExpr( 280223983525050_) div bigintExpr(       1048576_) <>        267242415_ or
13425        bigintExpr( 280223983525050_) div bigintExpr(    1073741824_) <>           260978_ or
13426        bigintExpr( 280223983525050_) div bigintExpr(    2147483648_) <>           130489_ or
13427        bigintExpr( 280223983525050_) div bigintExpr(    4294967296_) <>            65244_ or
13428        bigintExpr( 280223983525050_) div bigintExpr( 1099511627776_) <>              254_ or
13429        bigintExpr( 280223983525050_) div bigintExpr(            -1_) <> -280223983525050_ or
13430        bigintExpr( 280223983525050_) div bigintExpr(            -2_) <> -140111991762525_ or
13431        bigintExpr( 280223983525050_) div bigintExpr(            -4_) <>  -70055995881262_ or
13432        bigintExpr( 280223983525050_) div bigintExpr(            -8_) <>  -35027997940631_ or
13433        bigintExpr( 280223983525050_) div bigintExpr(         -1024_) <>    -273656233911_ or
13434        bigintExpr( 280223983525050_) div bigintExpr(      -1048576_) <>       -267242415_ or
13435        bigintExpr( 280223983525050_) div bigintExpr(   -1073741824_) <>          -260978_ or
13436        bigintExpr( 280223983525050_) div bigintExpr(   -2147483648_) <>          -130489_ or
13437        bigintExpr( 280223983525050_) div bigintExpr(   -4294967296_) <>           -65244_ or
13438        bigintExpr( 280223983525050_) div bigintExpr(-1099511627776_) <>             -254_ or
13439        bigintExpr(-280223983525050_) div bigintExpr(             1_) <> -280223983525050_ or
13440        bigintExpr(-280223983525050_) div bigintExpr(             2_) <> -140111991762525_ or
13441        bigintExpr(-280223983525050_) div bigintExpr(             4_) <>  -70055995881262_ or
13442        bigintExpr(-280223983525050_) div bigintExpr(             8_) <>  -35027997940631_ or
13443        bigintExpr(-280223983525050_) div bigintExpr(          1024_) <>    -273656233911_ or
13444        bigintExpr(-280223983525050_) div bigintExpr(       1048576_) <>       -267242415_ or
13445        bigintExpr(-280223983525050_) div bigintExpr(    1073741824_) <>          -260978_ or
13446        bigintExpr(-280223983525050_) div bigintExpr(    2147483648_) <>          -130489_ or
13447        bigintExpr(-280223983525050_) div bigintExpr(    4294967296_) <>           -65244_ or
13448        bigintExpr(-280223983525050_) div bigintExpr( 1099511627776_) <>             -254_ or
13449        bigintExpr(-280223983525050_) div bigintExpr(            -1_) <>  280223983525050_ or
13450        bigintExpr(-280223983525050_) div bigintExpr(            -2_) <>  140111991762525_ or
13451        bigintExpr(-280223983525050_) div bigintExpr(            -4_) <>   70055995881262_ or
13452        bigintExpr(-280223983525050_) div bigintExpr(            -8_) <>   35027997940631_ or
13453        bigintExpr(-280223983525050_) div bigintExpr(         -1024_) <>     273656233911_ or
13454        bigintExpr(-280223983525050_) div bigintExpr(      -1048576_) <>        267242415_ or
13455        bigintExpr(-280223983525050_) div bigintExpr(   -1073741824_) <>           260978_ or
13456        bigintExpr(-280223983525050_) div bigintExpr(   -2147483648_) <>           130489_ or
13457        bigintExpr(-280223983525050_) div bigintExpr(   -4294967296_) <>            65244_ or
13458        bigintExpr(-280223983525050_) div bigintExpr(-1099511627776_) <>              254_ then
13459      writeln("Division of bigInteger by power of two does not work correct.");
13460      okay := FALSE;
13461    end if;
13462
13463    number := 123456789012345678901234567890_;
13464    if  number div                            -1_ <> -123456789012345678901234567890_ or
13465        number div                            -2_ <>  -61728394506172839450617283945_ or
13466        number div                            -3_ <>  -41152263004115226300411522630_ or
13467        number div                            -4_ <>  -30864197253086419725308641972_ or
13468        number div                         -1023_ <>    -120681123179223537537863702_ or
13469        number div                         -1024_ <>    -120563270519868827051986882_ or
13470        number div                      -1048576_ <>       -117737568867059401417955_ or
13471        number div                   -1073741824_ <>          -114978094596737696697_ or
13472        number div                   -2147483647_ <>           -57489047325139272132_ or
13473        number div                   -4294967295_ <>           -28744523655877030118_ or
13474        number div                -1099511627776_ <>             -112283295504626656_ or
13475        number div          -1152921504606846976_ <>                   -107081695084_ or
13476        number div    -1208925819614629174706176_ <>                         -102121_ or
13477        number div -1237940039285380274899124224_ <>                             -99_ then
13478      writeln("Division of bigInteger by negative number does not work correct.");
13479      okay := FALSE;
13480    end if;
13481
13482    if  not raisesNumericError(           -9223372036854775808_  div            0_ ) or
13483        not raisesNumericError(           -9223372036854775807_  div            0_ ) or
13484        not raisesNumericError(                    -4294967296_  div            0_ ) or
13485        not raisesNumericError(                    -4294967295_  div            0_ ) or
13486        not raisesNumericError(                    -2147483648_  div            0_ ) or
13487        not raisesNumericError(                    -2147483647_  div            0_ ) or
13488        not raisesNumericError(                              0_  div            0_ ) or
13489        not raisesNumericError(                     2147483647_  div            0_ ) or
13490        not raisesNumericError(                     2147483648_  div            0_ ) or
13491        not raisesNumericError(                     4294967295_  div            0_ ) or
13492        not raisesNumericError(                     4294967296_  div            0_ ) or
13493        not raisesNumericError(            9223372036854775807_  div            0_ ) or
13494        not raisesNumericError(            9223372036854775808_  div            0_ ) or
13495        not raisesNumericError(bigintExpr(-9223372036854775808_) div            0_ ) or
13496        not raisesNumericError(bigintExpr(-9223372036854775807_) div            0_ ) or
13497        not raisesNumericError(bigintExpr(         -4294967296_) div            0_ ) or
13498        not raisesNumericError(bigintExpr(         -4294967295_) div            0_ ) or
13499        not raisesNumericError(bigintExpr(         -2147483648_) div            0_ ) or
13500        not raisesNumericError(bigintExpr(         -2147483647_) div            0_ ) or
13501        not raisesNumericError(bigintExpr(                   0_) div            0_ ) or
13502        not raisesNumericError(bigintExpr(          2147483647_) div            0_ ) or
13503        not raisesNumericError(bigintExpr(          2147483648_) div            0_ ) or
13504        not raisesNumericError(bigintExpr(          4294967295_) div            0_ ) or
13505        not raisesNumericError(bigintExpr(          4294967296_) div            0_ ) or
13506        not raisesNumericError(bigintExpr( 9223372036854775807_) div            0_ ) or
13507        not raisesNumericError(bigintExpr( 9223372036854775808_) div            0_ ) or
13508        not raisesNumericError(           -9223372036854775808_  div bigintExpr(0_)) or
13509        not raisesNumericError(           -9223372036854775807_  div bigintExpr(0_)) or
13510        not raisesNumericError(                    -4294967296_  div bigintExpr(0_)) or
13511        not raisesNumericError(                    -4294967295_  div bigintExpr(0_)) or
13512        not raisesNumericError(                    -2147483648_  div bigintExpr(0_)) or
13513        not raisesNumericError(                    -2147483647_  div bigintExpr(0_)) or
13514        not raisesNumericError(                              0_  div bigintExpr(0_)) or
13515        not raisesNumericError(                     2147483647_  div bigintExpr(0_)) or
13516        not raisesNumericError(                     2147483648_  div bigintExpr(0_)) or
13517        not raisesNumericError(                     4294967295_  div bigintExpr(0_)) or
13518        not raisesNumericError(                     4294967296_  div bigintExpr(0_)) or
13519        not raisesNumericError(            9223372036854775807_  div bigintExpr(0_)) or
13520        not raisesNumericError(            9223372036854775808_  div bigintExpr(0_)) or
13521        not raisesNumericError(bigintExpr(-9223372036854775808_) div bigintExpr(0_)) or
13522        not raisesNumericError(bigintExpr(-9223372036854775807_) div bigintExpr(0_)) or
13523        not raisesNumericError(bigintExpr(         -4294967296_) div bigintExpr(0_)) or
13524        not raisesNumericError(bigintExpr(         -4294967295_) div bigintExpr(0_)) or
13525        not raisesNumericError(bigintExpr(         -2147483648_) div bigintExpr(0_)) or
13526        not raisesNumericError(bigintExpr(         -2147483647_) div bigintExpr(0_)) or
13527        not raisesNumericError(bigintExpr(                   0_) div bigintExpr(0_)) or
13528        not raisesNumericError(bigintExpr(          2147483647_) div bigintExpr(0_)) or
13529        not raisesNumericError(bigintExpr(          2147483648_) div bigintExpr(0_)) or
13530        not raisesNumericError(bigintExpr(          4294967295_) div bigintExpr(0_)) or
13531        not raisesNumericError(bigintExpr(          4294967296_) div bigintExpr(0_)) or
13532        not raisesNumericError(bigintExpr( 9223372036854775807_) div bigintExpr(0_)) or
13533        not raisesNumericError(bigintExpr( 9223372036854775808_) div bigintExpr(0_)) then
13534      writeln(" ***** Division of bigInteger by zero does not raise NUMERIC_ERROR.");
13535      okay := FALSE;
13536    end if;
13537
13538    if okay then
13539      writeln("Division of bigInteger works correct.");
13540    else
13541      writeln(" ***** Division of bigInteger does not work correct.");
13542      writeln;
13543    end if;
13544  end func;
13545
13546
13547const proc: chkRemainder is func
13548  local
13549    var boolean: okay is TRUE;
13550  begin
13551    if                          32766_ rem                     1_ <>                     0_ or
13552                                32767_ rem                     1_ <>                     0_ or
13553                                32768_ rem                     1_ <>                     0_ or
13554                                32769_ rem                     1_ <>                     0_ or
13555                                32770_ rem                     1_ <>                     0_ or
13556                                65534_ rem                     1_ <>                     0_ or
13557                                65535_ rem                     1_ <>                     0_ or
13558                                65536_ rem                     1_ <>                     0_ or
13559                                65537_ rem                     1_ <>                     0_ or
13560                                65538_ rem                     1_ <>                     0_ or
13561                                65536_ rem                   128_ <>                     0_ or
13562                                32766_ rem                 32766_ <>                     0_ or
13563                                32767_ rem                 32767_ <>                     0_ or
13564                                32768_ rem                 32768_ <>                     0_ or
13565                                32769_ rem                 32769_ <>                     0_ or
13566                                32770_ rem                 32770_ <>                     0_ or
13567                                65534_ rem                 65534_ <>                     0_ or
13568                                65535_ rem                 65535_ <>                     0_ or
13569                                65536_ rem                 65536_ <>                     0_ or
13570                                65537_ rem                 65537_ <>                     0_ or
13571                                65538_ rem                 65538_ <>                     0_ or
13572                                32765_ rem                 32766_ <>                 32765_ or
13573                                32766_ rem                 32767_ <>                 32766_ or
13574                                32767_ rem                 32768_ <>                 32767_ or
13575                                32768_ rem                 32769_ <>                 32768_ or
13576                                32769_ rem                 32770_ <>                 32769_ or
13577                                65533_ rem                 65534_ <>                 65533_ or
13578                                65534_ rem                 65535_ <>                 65534_ or
13579                                65535_ rem                 65536_ <>                 65535_ or
13580                                65536_ rem                 65537_ <>                 65536_ or
13581                                65537_ rem                 65538_ <>                 65537_ or
13582                                32766_ rem  18446744073709551616_ <>                 32766_ or
13583                                32767_ rem  18446744073709551616_ <>                 32767_ or
13584                                32768_ rem  18446744073709551616_ <>                 32768_ or
13585                                32769_ rem  18446744073709551616_ <>                 32769_ or
13586                                32770_ rem  18446744073709551616_ <>                 32770_ or
13587                                65534_ rem  18446744073709551616_ <>                 65534_ or
13588                                65535_ rem  18446744073709551616_ <>                 65535_ or
13589                                65536_ rem  18446744073709551616_ <>                 65536_ or
13590                                65537_ rem  18446744073709551616_ <>                 65537_ or
13591                                65538_ rem  18446744073709551616_ <>                 65538_ or
13592                           2147483647_ rem            2147483647_ <>                     0_ or
13593                           2147483647_ rem            2147483648_ <>            2147483647_ or
13594                           2147483647_ rem            2147483649_ <>            2147483647_ or
13595                           2147483648_ rem            2147483647_ <>                     1_ or
13596                           2147483648_ rem            2147483648_ <>                     0_ or
13597                           2147483648_ rem            2147483649_ <>            2147483648_ or
13598                           2147483649_ rem            2147483647_ <>                     2_ or
13599                           2147483649_ rem            2147483648_ <>                     1_ or
13600                           2147483649_ rem            2147483649_ <>                     0_ or
13601                           4294967295_ rem            4294967295_ <>                     0_ or
13602                           4294967295_ rem            4294967296_ <>            4294967295_ or
13603                           4294967295_ rem            4294967297_ <>            4294967295_ or
13604                           4294967296_ rem            4294967295_ <>                     1_ or
13605                           4294967296_ rem            4294967296_ <>                     0_ or
13606                           4294967296_ rem            4294967297_ <>            4294967296_ or
13607                           4294967297_ rem            4294967295_ <>                     2_ or
13608                           4294967297_ rem            4294967296_ <>                     1_ or
13609                           4294967297_ rem            4294967297_ <>                     0_ or
13610                      140737488355327_ rem       140737488355328_ <>       140737488355327_ or
13611                      140737488355328_ rem       140737488355327_ <>                     1_ or
13612                      140737488355328_ rem       140737488355328_ <>                     0_ or
13613                      140737488355328_ rem       140737488355329_ <>       140737488355328_ or
13614                  9223372036854775807_ rem                 32768_ <>                 32767_ or
13615                  9223090561878065152_ rem                 32767_ <>                     0_ or
13616                           4294967296_ rem                 32768_ <>                     0_ or
13617                           4295229444_ rem                 65538_ <>                     0_ or
13618                           8629125120_ rem            4833607680_ <>            3795517440_ or
13619                 18446744073709551616_ rem                 32767_ <>                    16_ or
13620                 18446744073709551616_ rem                 32768_ <>                     0_ or
13621                 18446744073709551616_ rem                 65535_ <>                     1_ or
13622                 18446744073709551616_ rem                131071_ <>                  8192_ or
13623                 18446744073709551616_ rem            2147483648_ <>                     0_ or
13624                 18446744073709551616_ rem            4294967296_ <>                     0_ or
13625                 18446744073709551616_ rem            4294967297_ <>                     1_ or
13626                 18446744073709551616_ rem  18446744073709551616_ <>                     0_ or
13627                 18446744073709551616_ rem  18446744073709551617_ <>  18446744073709551616_ or
13628                  9223372036854775808_ rem       140737488355329_ <>       140737488289793_ or
13629                  9223372036854775808_ rem       140737488420863_ <>       140733193519103_ or
13630                  9223372036854775808_ rem       140737488420864_ <>       140733193453568_ or
13631                  9223372036854775808_ rem       140741783322623_ <>            8590000126_ or
13632                  1152921504606846976_ rem        17596481011711_ <>           68719542256_ or
13633                  9223231303661387776_ rem       140739636002821_ <>       140737488519183_ or
13634        39614081257132168796771975168_ rem   9223372036854775809_ <>   9223372032559808513_ then
13635      writeln("Remainder of bigInteger division does not work correct. (1)");
13636      okay := FALSE;
13637    end if;
13638
13639    if                          32766_ rem                    -1_ <>                     0_ or
13640                                32767_ rem                    -1_ <>                     0_ or
13641                                32768_ rem                    -1_ <>                     0_ or
13642                                32769_ rem                    -1_ <>                     0_ or
13643                                32770_ rem                    -1_ <>                     0_ or
13644                                65534_ rem                    -1_ <>                     0_ or
13645                                65535_ rem                    -1_ <>                     0_ or
13646                                65536_ rem                    -1_ <>                     0_ or
13647                                65537_ rem                    -1_ <>                     0_ or
13648                                65538_ rem                    -1_ <>                     0_ or
13649                                65536_ rem                  -128_ <>                     0_ or
13650                                32766_ rem                -32766_ <>                     0_ or
13651                                32767_ rem                -32767_ <>                     0_ or
13652                                32768_ rem                -32768_ <>                     0_ or
13653                                32769_ rem                -32769_ <>                     0_ or
13654                                32770_ rem                -32770_ <>                     0_ or
13655                                65534_ rem                -65534_ <>                     0_ or
13656                                65535_ rem                -65535_ <>                     0_ or
13657                                65536_ rem                -65536_ <>                     0_ or
13658                                65537_ rem                -65537_ <>                     0_ or
13659                                65538_ rem                -65538_ <>                     0_ or
13660                                32765_ rem                -32766_ <>                 32765_ or
13661                                32766_ rem                -32767_ <>                 32766_ or
13662                                32767_ rem                -32768_ <>                 32767_ or
13663                                32768_ rem                -32769_ <>                 32768_ or
13664                                32769_ rem                -32770_ <>                 32769_ or
13665                                65533_ rem                -65534_ <>                 65533_ or
13666                                65534_ rem                -65535_ <>                 65534_ or
13667                                65535_ rem                -65536_ <>                 65535_ or
13668                                65536_ rem                -65537_ <>                 65536_ or
13669                                65537_ rem                -65538_ <>                 65537_ or
13670                                32766_ rem -18446744073709551616_ <>                 32766_ or
13671                                32767_ rem -18446744073709551616_ <>                 32767_ or
13672                                32768_ rem -18446744073709551616_ <>                 32768_ or
13673                                32769_ rem -18446744073709551616_ <>                 32769_ or
13674                                32770_ rem -18446744073709551616_ <>                 32770_ or
13675                                65534_ rem -18446744073709551616_ <>                 65534_ or
13676                                65535_ rem -18446744073709551616_ <>                 65535_ or
13677                                65536_ rem -18446744073709551616_ <>                 65536_ or
13678                                65537_ rem -18446744073709551616_ <>                 65537_ or
13679                                65538_ rem -18446744073709551616_ <>                 65538_ or
13680                           2147483647_ rem           -2147483647_ <>                     0_ or
13681                           2147483647_ rem           -2147483648_ <>            2147483647_ or
13682                           2147483647_ rem           -2147483649_ <>            2147483647_ or
13683                           2147483648_ rem           -2147483647_ <>                     1_ or
13684                           2147483648_ rem           -2147483648_ <>                     0_ or
13685                           2147483648_ rem           -2147483649_ <>            2147483648_ or
13686                           2147483649_ rem           -2147483647_ <>                     2_ or
13687                           2147483649_ rem           -2147483648_ <>                     1_ or
13688                           2147483649_ rem           -2147483649_ <>                     0_ or
13689                           4294967295_ rem           -4294967295_ <>                     0_ or
13690                           4294967295_ rem           -4294967296_ <>            4294967295_ or
13691                           4294967295_ rem           -4294967297_ <>            4294967295_ or
13692                           4294967296_ rem           -4294967295_ <>                     1_ or
13693                           4294967296_ rem           -4294967296_ <>                     0_ or
13694                           4294967296_ rem           -4294967297_ <>            4294967296_ or
13695                           4294967297_ rem           -4294967295_ <>                     2_ or
13696                           4294967297_ rem           -4294967296_ <>                     1_ or
13697                           4294967297_ rem           -4294967297_ <>                     0_ or
13698                      140737488355327_ rem      -140737488355328_ <>       140737488355327_ or
13699                      140737488355328_ rem      -140737488355327_ <>                     1_ or
13700                      140737488355328_ rem      -140737488355328_ <>                     0_ or
13701                      140737488355328_ rem      -140737488355329_ <>       140737488355328_ or
13702                  9223372036854775807_ rem                -32768_ <>                 32767_ or
13703                  9223090561878065152_ rem                -32767_ <>                     0_ or
13704                           4294967296_ rem                -32768_ <>                     0_ or
13705                           4295229444_ rem                -65538_ <>                     0_ or
13706                           8629125120_ rem           -4833607680_ <>            3795517440_ or
13707                 18446744073709551616_ rem                -32767_ <>                    16_ or
13708                 18446744073709551616_ rem                -32768_ <>                     0_ or
13709                 18446744073709551616_ rem                -65535_ <>                     1_ or
13710                 18446744073709551616_ rem               -131071_ <>                  8192_ or
13711                 18446744073709551616_ rem           -2147483648_ <>                     0_ or
13712                 18446744073709551616_ rem           -4294967296_ <>                     0_ or
13713                 18446744073709551616_ rem           -4294967297_ <>                     1_ or
13714                 18446744073709551616_ rem -18446744073709551616_ <>                     0_ or
13715                 18446744073709551616_ rem -18446744073709551617_ <>  18446744073709551616_ or
13716                  9223372036854775808_ rem      -140737488355329_ <>       140737488289793_ or
13717                  9223372036854775808_ rem      -140737488420863_ <>       140733193519103_ or
13718                  9223372036854775808_ rem      -140737488420864_ <>       140733193453568_ or
13719                  9223372036854775808_ rem      -140741783322623_ <>            8590000126_ or
13720                  1152921504606846976_ rem       -17596481011711_ <>           68719542256_ or
13721                  9223231303661387776_ rem      -140739636002821_ <>       140737488519183_ or
13722        39614081257132168796771975168_ rem  -9223372036854775809_ <>   9223372032559808513_ then
13723      writeln("Remainder of bigInteger division does not work correct. (2)");
13724      okay := FALSE;
13725    end if;
13726
13727    if                         -32766_ rem                     1_ <>                     0_ or
13728                               -32767_ rem                     1_ <>                     0_ or
13729                               -32768_ rem                     1_ <>                     0_ or
13730                               -32769_ rem                     1_ <>                     0_ or
13731                               -32770_ rem                     1_ <>                     0_ or
13732                               -65534_ rem                     1_ <>                     0_ or
13733                               -65535_ rem                     1_ <>                     0_ or
13734                               -65536_ rem                     1_ <>                     0_ or
13735                               -65537_ rem                     1_ <>                     0_ or
13736                               -65538_ rem                     1_ <>                     0_ or
13737                               -65536_ rem                   128_ <>                     0_ or
13738                               -32766_ rem                 32766_ <>                     0_ or
13739                               -32767_ rem                 32767_ <>                     0_ or
13740                               -32768_ rem                 32768_ <>                     0_ or
13741                               -32769_ rem                 32769_ <>                     0_ or
13742                               -32770_ rem                 32770_ <>                     0_ or
13743                               -65534_ rem                 65534_ <>                     0_ or
13744                               -65535_ rem                 65535_ <>                     0_ or
13745                               -65536_ rem                 65536_ <>                     0_ or
13746                               -65537_ rem                 65537_ <>                     0_ or
13747                               -65538_ rem                 65538_ <>                     0_ or
13748                               -32765_ rem                 32766_ <>                -32765_ or
13749                               -32766_ rem                 32767_ <>                -32766_ or
13750                               -32767_ rem                 32768_ <>                -32767_ or
13751                               -32768_ rem                 32769_ <>                -32768_ or
13752                               -32769_ rem                 32770_ <>                -32769_ or
13753                               -65533_ rem                 65534_ <>                -65533_ or
13754                               -65534_ rem                 65535_ <>                -65534_ or
13755                               -65535_ rem                 65536_ <>                -65535_ or
13756                               -65536_ rem                 65537_ <>                -65536_ or
13757                               -65537_ rem                 65538_ <>                -65537_ or
13758                               -32766_ rem  18446744073709551616_ <>                -32766_ or
13759                               -32767_ rem  18446744073709551616_ <>                -32767_ or
13760                               -32768_ rem  18446744073709551616_ <>                -32768_ or
13761                               -32769_ rem  18446744073709551616_ <>                -32769_ or
13762                               -32770_ rem  18446744073709551616_ <>                -32770_ or
13763                               -65534_ rem  18446744073709551616_ <>                -65534_ or
13764                               -65535_ rem  18446744073709551616_ <>                -65535_ or
13765                               -65536_ rem  18446744073709551616_ <>                -65536_ or
13766                               -65537_ rem  18446744073709551616_ <>                -65537_ or
13767                               -65538_ rem  18446744073709551616_ <>                -65538_ or
13768                          -2147483647_ rem            2147483647_ <>                     0_ or
13769                          -2147483647_ rem            2147483648_ <>           -2147483647_ or
13770                          -2147483647_ rem            2147483649_ <>           -2147483647_ or
13771                          -2147483648_ rem            2147483647_ <>                    -1_ or
13772                          -2147483648_ rem            2147483648_ <>                     0_ or
13773                          -2147483648_ rem            2147483649_ <>           -2147483648_ or
13774                          -2147483649_ rem            2147483647_ <>                    -2_ or
13775                          -2147483649_ rem            2147483648_ <>                    -1_ or
13776                          -2147483649_ rem            2147483649_ <>                     0_ or
13777                          -4294967295_ rem            4294967295_ <>                     0_ or
13778                          -4294967295_ rem            4294967296_ <>           -4294967295_ or
13779                          -4294967295_ rem            4294967297_ <>           -4294967295_ or
13780                          -4294967296_ rem            4294967295_ <>                    -1_ or
13781                          -4294967296_ rem            4294967296_ <>                     0_ or
13782                          -4294967296_ rem            4294967297_ <>           -4294967296_ or
13783                          -4294967297_ rem            4294967295_ <>                    -2_ or
13784                          -4294967297_ rem            4294967296_ <>                    -1_ or
13785                          -4294967297_ rem            4294967297_ <>                     0_ or
13786                     -140737488355327_ rem       140737488355328_ <>      -140737488355327_ or
13787                     -140737488355328_ rem       140737488355327_ <>                    -1_ or
13788                     -140737488355328_ rem       140737488355328_ <>                     0_ or
13789                     -140737488355328_ rem       140737488355329_ <>      -140737488355328_ or
13790                 -9223372036854775807_ rem                 32768_ <>                -32767_ or
13791                 -9223090561878065152_ rem                 32767_ <>                     0_ or
13792                          -4294967296_ rem                 32768_ <>                     0_ or
13793                          -4295229444_ rem                 65538_ <>                     0_ or
13794                          -8629125120_ rem            4833607680_ <>           -3795517440_ or
13795                -18446744073709551616_ rem                 32767_ <>                   -16_ or
13796                -18446744073709551616_ rem                 32768_ <>                     0_ or
13797                -18446744073709551616_ rem                 65535_ <>                    -1_ or
13798                -18446744073709551616_ rem                131071_ <>                 -8192_ or
13799                -18446744073709551616_ rem            2147483648_ <>                     0_ or
13800                -18446744073709551616_ rem            4294967296_ <>                     0_ or
13801                -18446744073709551616_ rem            4294967297_ <>                    -1_ or
13802                -18446744073709551616_ rem  18446744073709551616_ <>                     0_ or
13803                -18446744073709551616_ rem  18446744073709551617_ <> -18446744073709551616_ or
13804                 -9223372036854775808_ rem       140737488355329_ <>      -140737488289793_ or
13805                 -9223372036854775808_ rem       140737488420863_ <>      -140733193519103_ or
13806                 -9223372036854775808_ rem       140737488420864_ <>      -140733193453568_ or
13807                 -9223372036854775808_ rem       140741783322623_ <>           -8590000126_ or
13808                 -1152921504606846976_ rem        17596481011711_ <>          -68719542256_ or
13809                 -9223231303661387776_ rem       140739636002821_ <>      -140737488519183_ or
13810       -39614081257132168796771975168_ rem   9223372036854775809_ <>  -9223372032559808513_ then
13811      writeln("Remainder of bigInteger division does not work correct. (3)");
13812      okay := FALSE;
13813    end if;
13814
13815    if                         -32766_ rem                    -1_ <>                     0_ or
13816                               -32767_ rem                    -1_ <>                     0_ or
13817                               -32768_ rem                    -1_ <>                     0_ or
13818                               -32769_ rem                    -1_ <>                     0_ or
13819                               -32770_ rem                    -1_ <>                     0_ or
13820                               -65534_ rem                    -1_ <>                     0_ or
13821                               -65535_ rem                    -1_ <>                     0_ or
13822                               -65536_ rem                    -1_ <>                     0_ or
13823                               -65537_ rem                    -1_ <>                     0_ or
13824                               -65538_ rem                    -1_ <>                     0_ or
13825                               -65536_ rem                  -128_ <>                     0_ or
13826                               -32766_ rem                -32766_ <>                     0_ or
13827                               -32767_ rem                -32767_ <>                     0_ or
13828                               -32768_ rem                -32768_ <>                     0_ or
13829                               -32769_ rem                -32769_ <>                     0_ or
13830                               -32770_ rem                -32770_ <>                     0_ or
13831                               -65534_ rem                -65534_ <>                     0_ or
13832                               -65535_ rem                -65535_ <>                     0_ or
13833                               -65536_ rem                -65536_ <>                     0_ or
13834                               -65537_ rem                -65537_ <>                     0_ or
13835                               -65538_ rem                -65538_ <>                     0_ or
13836                               -32765_ rem                -32766_ <>                -32765_ or
13837                               -32766_ rem                -32767_ <>                -32766_ or
13838                               -32767_ rem                -32768_ <>                -32767_ or
13839                               -32768_ rem                -32769_ <>                -32768_ or
13840                               -32769_ rem                -32770_ <>                -32769_ or
13841                               -65533_ rem                -65534_ <>                -65533_ or
13842                               -65534_ rem                -65535_ <>                -65534_ or
13843                               -65535_ rem                -65536_ <>                -65535_ or
13844                               -65536_ rem                -65537_ <>                -65536_ or
13845                               -65537_ rem                -65538_ <>                -65537_ or
13846                               -32766_ rem -18446744073709551616_ <>                -32766_ or
13847                               -32767_ rem -18446744073709551616_ <>                -32767_ or
13848                               -32768_ rem -18446744073709551616_ <>                -32768_ or
13849                               -32769_ rem -18446744073709551616_ <>                -32769_ or
13850                               -32770_ rem -18446744073709551616_ <>                -32770_ or
13851                               -65534_ rem -18446744073709551616_ <>                -65534_ or
13852                               -65535_ rem -18446744073709551616_ <>                -65535_ or
13853                               -65536_ rem -18446744073709551616_ <>                -65536_ or
13854                               -65537_ rem -18446744073709551616_ <>                -65537_ or
13855                               -65538_ rem -18446744073709551616_ <>                -65538_ or
13856                          -2147483647_ rem           -2147483647_ <>                     0_ or
13857                          -2147483647_ rem           -2147483648_ <>           -2147483647_ or
13858                          -2147483647_ rem           -2147483649_ <>           -2147483647_ or
13859                          -2147483648_ rem           -2147483647_ <>                    -1_ or
13860                          -2147483648_ rem           -2147483648_ <>                     0_ or
13861                          -2147483648_ rem           -2147483649_ <>           -2147483648_ or
13862                          -2147483649_ rem           -2147483647_ <>                    -2_ or
13863                          -2147483649_ rem           -2147483648_ <>                    -1_ or
13864                          -2147483649_ rem           -2147483649_ <>                     0_ or
13865                          -4294967295_ rem           -4294967295_ <>                     0_ or
13866                          -4294967295_ rem           -4294967296_ <>           -4294967295_ or
13867                          -4294967295_ rem           -4294967297_ <>           -4294967295_ or
13868                          -4294967296_ rem           -4294967295_ <>                    -1_ or
13869                          -4294967296_ rem           -4294967296_ <>                     0_ or
13870                          -4294967296_ rem           -4294967297_ <>           -4294967296_ or
13871                          -4294967297_ rem           -4294967295_ <>                    -2_ or
13872                          -4294967297_ rem           -4294967296_ <>                    -1_ or
13873                          -4294967297_ rem           -4294967297_ <>                     0_ or
13874                     -140737488355327_ rem      -140737488355328_ <>      -140737488355327_ or
13875                     -140737488355328_ rem      -140737488355327_ <>                    -1_ or
13876                     -140737488355328_ rem      -140737488355328_ <>                     0_ or
13877                     -140737488355328_ rem      -140737488355329_ <>      -140737488355328_ or
13878                 -9223372036854775807_ rem                -32768_ <>                -32767_ or
13879                 -9223090561878065152_ rem                -32767_ <>                     0_ or
13880                          -4294967296_ rem                -32768_ <>                     0_ or
13881                          -4295229444_ rem                -65538_ <>                     0_ or
13882                          -8629125120_ rem           -4833607680_ <>           -3795517440_ or
13883                -18446744073709551616_ rem                -32767_ <>                   -16_ or
13884                -18446744073709551616_ rem                -32768_ <>                     0_ or
13885                -18446744073709551616_ rem                -65535_ <>                    -1_ or
13886                -18446744073709551616_ rem               -131071_ <>                 -8192_ or
13887                -18446744073709551616_ rem           -2147483648_ <>                     0_ or
13888                -18446744073709551616_ rem           -4294967296_ <>                     0_ or
13889                -18446744073709551616_ rem           -4294967297_ <>                    -1_ or
13890                -18446744073709551616_ rem -18446744073709551616_ <>                     0_ or
13891                -18446744073709551616_ rem -18446744073709551617_ <> -18446744073709551616_ or
13892                 -9223372036854775808_ rem      -140737488355329_ <>      -140737488289793_ or
13893                 -9223372036854775808_ rem      -140737488420863_ <>      -140733193519103_ or
13894                 -9223372036854775808_ rem      -140737488420864_ <>      -140733193453568_ or
13895                 -9223372036854775808_ rem      -140741783322623_ <>           -8590000126_ or
13896                 -1152921504606846976_ rem       -17596481011711_ <>          -68719542256_ or
13897                 -9223231303661387776_ rem      -140739636002821_ <>      -140737488519183_ or
13898       -39614081257132168796771975168_ rem  -9223372036854775809_ <>  -9223372032559808513_ then
13899      writeln("Remainder of bigInteger division does not work correct. (4)");
13900      okay := FALSE;
13901    end if;
13902
13903    if            -9223372036854775808_  rem            9223372036854775808_  <>                    0_ or
13904                  -9223372036854775808_  rem            9223372036854775809_  <> -9223372036854775808_ or
13905                  -9223372036854775807_  rem            9223372036854775808_  <> -9223372036854775807_ or
13906                  -9223372036854775808_  rem bigintExpr(9223372036854775808_) <>                    0_ or
13907                  -9223372036854775808_  rem bigintExpr(9223372036854775809_) <> -9223372036854775808_ or
13908                  -9223372036854775807_  rem bigintExpr(9223372036854775808_) <> -9223372036854775807_ or
13909       bigintExpr(-9223372036854775808_) rem            9223372036854775808_  <>                    0_ or
13910       bigintExpr(-9223372036854775808_) rem            9223372036854775809_  <> -9223372036854775808_ or
13911       bigintExpr(-9223372036854775807_) rem            9223372036854775808_  <> -9223372036854775807_ or
13912       bigintExpr(-9223372036854775808_) rem bigintExpr(9223372036854775808_) <>                    0_ or
13913       bigintExpr(-9223372036854775808_) rem bigintExpr(9223372036854775809_) <> -9223372036854775808_ or
13914       bigintExpr(-9223372036854775807_) rem bigintExpr(9223372036854775808_) <> -9223372036854775807_ or
13915                  -39614081257132168796771975168_  rem            39614081257132168796771975168_  <>                              0_ or
13916                  -39614081257132168796771975168_  rem            39614081257132168796771975169_  <> -39614081257132168796771975168_ or
13917                  -39614081257132168796771975167_  rem            39614081257132168796771975168_  <> -39614081257132168796771975167_ or
13918                  -39614081257132168796771975168_  rem bigintExpr(39614081257132168796771975168_) <>                              0_ or
13919                  -39614081257132168796771975168_  rem bigintExpr(39614081257132168796771975169_) <> -39614081257132168796771975168_ or
13920                  -39614081257132168796771975167_  rem bigintExpr(39614081257132168796771975168_) <> -39614081257132168796771975167_ or
13921       bigintExpr(-39614081257132168796771975168_) rem            39614081257132168796771975168_  <>                              0_ or
13922       bigintExpr(-39614081257132168796771975168_) rem            39614081257132168796771975169_  <> -39614081257132168796771975168_ or
13923       bigintExpr(-39614081257132168796771975167_) rem            39614081257132168796771975168_  <> -39614081257132168796771975167_ or
13924       bigintExpr(-39614081257132168796771975168_) rem bigintExpr(39614081257132168796771975168_) <>                              0_ or
13925       bigintExpr(-39614081257132168796771975168_) rem bigintExpr(39614081257132168796771975169_) <> -39614081257132168796771975168_ or
13926       bigintExpr(-39614081257132168796771975167_) rem bigintExpr(39614081257132168796771975168_) <> -39614081257132168796771975167_ or
13927                  -170141183460469231731687303715884105728_  rem            170141183460469231731687303715884105728_  <> 0_ or
13928                  -170141183460469231731687303715884105728_  rem            170141183460469231731687303715884105729_  <>
13929                      -170141183460469231731687303715884105728_ or
13930                  -170141183460469231731687303715884105727_  rem            170141183460469231731687303715884105728_  <>
13931                      -170141183460469231731687303715884105727_ or
13932                  -170141183460469231731687303715884105728_  rem bigintExpr(170141183460469231731687303715884105728_) <> 0_ or
13933                  -170141183460469231731687303715884105728_  rem bigintExpr(170141183460469231731687303715884105729_) <>
13934                      -170141183460469231731687303715884105728_ or
13935                  -170141183460469231731687303715884105727_  rem bigintExpr(170141183460469231731687303715884105728_) <>
13936                      -170141183460469231731687303715884105727_ or
13937       bigintExpr(-170141183460469231731687303715884105728_) rem            170141183460469231731687303715884105728_  <> 0_ or
13938       bigintExpr(-170141183460469231731687303715884105728_) rem            170141183460469231731687303715884105729_  <>
13939                      -170141183460469231731687303715884105728_ or
13940       bigintExpr(-170141183460469231731687303715884105727_) rem            170141183460469231731687303715884105728_  <>
13941                      -170141183460469231731687303715884105727_ or
13942       bigintExpr(-170141183460469231731687303715884105728_) rem bigintExpr(170141183460469231731687303715884105728_) <> 0_ or
13943       bigintExpr(-170141183460469231731687303715884105728_) rem bigintExpr(170141183460469231731687303715884105729_) <>
13944                      -170141183460469231731687303715884105728_ or
13945       bigintExpr(-170141183460469231731687303715884105727_) rem bigintExpr(170141183460469231731687303715884105728_) <>
13946                      -170141183460469231731687303715884105727_ then
13947      writeln("Remainder of bigInteger division does not work correct. (5)");
13948      okay := FALSE;
13949    end if;
13950
13951    if  0_ rem -170141183460469231731687303715884105729_ <> 0_ or
13952        0_ rem -170141183460469231731687303715884105728_ <> 0_ or
13953        0_ rem                     -9223372036854775809_ <> 0_ or
13954        0_ rem                     -9223372036854775808_ <> 0_ or
13955        0_ rem                              -2147483649_ <> 0_ or
13956        0_ rem                              -2147483648_ <> 0_ or
13957        0_ rem                                   -32769_ <> 0_ or
13958        0_ rem                                   -32768_ <> 0_ or
13959        0_ rem                                     -129_ <> 0_ or
13960        0_ rem                                     -128_ <> 0_ or
13961        0_ rem                                       -1_ <> 0_ or
13962        0_ rem                                        1_ <> 0_ or
13963        0_ rem                                      127_ <> 0_ or
13964        0_ rem                                      128_ <> 0_ or
13965        0_ rem                                    32767_ <> 0_ or
13966        0_ rem                                    32768_ <> 0_ or
13967        0_ rem                               2147483647_ <> 0_ or
13968        0_ rem                               2147483648_ <> 0_ or
13969        0_ rem                      9223372036854775807_ <> 0_ or
13970        0_ rem                      9223372036854775808_ <> 0_ or
13971        0_ rem  170141183460469231731687303715884105727_ <> 0_ or
13972        0_ rem  170141183460469231731687303715884105728_ <> 0_ or
13973        0_ rem bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
13974        0_ rem bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
13975        0_ rem bigintExpr(                    -9223372036854775809_) <> 0_ or
13976        0_ rem bigintExpr(                    -9223372036854775808_) <> 0_ or
13977        0_ rem bigintExpr(                             -2147483649_) <> 0_ or
13978        0_ rem bigintExpr(                             -2147483648_) <> 0_ or
13979        0_ rem bigintExpr(                                  -32769_) <> 0_ or
13980        0_ rem bigintExpr(                                  -32768_) <> 0_ or
13981        0_ rem bigintExpr(                                    -129_) <> 0_ or
13982        0_ rem bigintExpr(                                    -128_) <> 0_ or
13983        0_ rem bigintExpr(                                      -1_) <> 0_ or
13984        0_ rem bigintExpr(                                       1_) <> 0_ or
13985        0_ rem bigintExpr(                                     127_) <> 0_ or
13986        0_ rem bigintExpr(                                     128_) <> 0_ or
13987        0_ rem bigintExpr(                                   32767_) <> 0_ or
13988        0_ rem bigintExpr(                                   32768_) <> 0_ or
13989        0_ rem bigintExpr(                              2147483647_) <> 0_ or
13990        0_ rem bigintExpr(                              2147483648_) <> 0_ or
13991        0_ rem bigintExpr(                     9223372036854775807_) <> 0_ or
13992        0_ rem bigintExpr(                     9223372036854775808_) <> 0_ or
13993        0_ rem bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
13994        0_ rem bigintExpr( 170141183460469231731687303715884105728_) <> 0_ or
13995        bigintExpr(0_) rem -170141183460469231731687303715884105729_ <> 0_ or
13996        bigintExpr(0_) rem -170141183460469231731687303715884105728_ <> 0_ or
13997        bigintExpr(0_) rem                     -9223372036854775809_ <> 0_ or
13998        bigintExpr(0_) rem                     -9223372036854775808_ <> 0_ or
13999        bigintExpr(0_) rem                              -2147483649_ <> 0_ or
14000        bigintExpr(0_) rem                              -2147483648_ <> 0_ or
14001        bigintExpr(0_) rem                                   -32769_ <> 0_ or
14002        bigintExpr(0_) rem                                   -32768_ <> 0_ or
14003        bigintExpr(0_) rem                                     -129_ <> 0_ or
14004        bigintExpr(0_) rem                                     -128_ <> 0_ or
14005        bigintExpr(0_) rem                                       -1_ <> 0_ or
14006        bigintExpr(0_) rem                                        1_ <> 0_ or
14007        bigintExpr(0_) rem                                      127_ <> 0_ or
14008        bigintExpr(0_) rem                                      128_ <> 0_ or
14009        bigintExpr(0_) rem                                    32767_ <> 0_ or
14010        bigintExpr(0_) rem                                    32768_ <> 0_ or
14011        bigintExpr(0_) rem                               2147483647_ <> 0_ or
14012        bigintExpr(0_) rem                               2147483648_ <> 0_ or
14013        bigintExpr(0_) rem                      9223372036854775807_ <> 0_ or
14014        bigintExpr(0_) rem                      9223372036854775808_ <> 0_ or
14015        bigintExpr(0_) rem  170141183460469231731687303715884105727_ <> 0_ or
14016        bigintExpr(0_) rem  170141183460469231731687303715884105728_ <> 0_ or
14017        bigintExpr(0_) rem bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
14018        bigintExpr(0_) rem bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
14019        bigintExpr(0_) rem bigintExpr(                    -9223372036854775809_) <> 0_ or
14020        bigintExpr(0_) rem bigintExpr(                    -9223372036854775808_) <> 0_ or
14021        bigintExpr(0_) rem bigintExpr(                             -2147483649_) <> 0_ or
14022        bigintExpr(0_) rem bigintExpr(                             -2147483648_) <> 0_ or
14023        bigintExpr(0_) rem bigintExpr(                                  -32769_) <> 0_ or
14024        bigintExpr(0_) rem bigintExpr(                                  -32768_) <> 0_ or
14025        bigintExpr(0_) rem bigintExpr(                                    -129_) <> 0_ or
14026        bigintExpr(0_) rem bigintExpr(                                    -128_) <> 0_ or
14027        bigintExpr(0_) rem bigintExpr(                                      -1_) <> 0_ or
14028        bigintExpr(0_) rem bigintExpr(                                       1_) <> 0_ or
14029        bigintExpr(0_) rem bigintExpr(                                     127_) <> 0_ or
14030        bigintExpr(0_) rem bigintExpr(                                     128_) <> 0_ or
14031        bigintExpr(0_) rem bigintExpr(                                   32767_) <> 0_ or
14032        bigintExpr(0_) rem bigintExpr(                                   32768_) <> 0_ or
14033        bigintExpr(0_) rem bigintExpr(                              2147483647_) <> 0_ or
14034        bigintExpr(0_) rem bigintExpr(                              2147483648_) <> 0_ or
14035        bigintExpr(0_) rem bigintExpr(                     9223372036854775807_) <> 0_ or
14036        bigintExpr(0_) rem bigintExpr(                     9223372036854775808_) <> 0_ or
14037        bigintExpr(0_) rem bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
14038        bigintExpr(0_) rem bigintExpr( 170141183460469231731687303715884105728_) <> 0_ then
14039      writeln("Remainder of bigInteger division does not work correct. (6)");
14040      okay := FALSE;
14041    end if;
14042
14043    if   280223983525050_ rem              1_ <>                0_ or
14044         280223983525050_ rem              2_ <>                0_ or
14045         280223983525050_ rem              4_ <>                2_ or
14046         280223983525050_ rem              8_ <>                2_ or
14047         280223983525050_ rem           1024_ <>              186_ or
14048         280223983525050_ rem        1048576_ <>           974010_ or
14049         280223983525050_ rem     1073741824_ <>        989781178_ or
14050         280223983525050_ rem     2147483648_ <>        989781178_ or
14051         280223983525050_ rem     4294967296_ <>       3137264826_ or
14052         280223983525050_ rem  1099511627776_ <>     948030069946_ or
14053         280223983525050_ rem             -1_ <>                0_ or
14054         280223983525050_ rem             -2_ <>                0_ or
14055         280223983525050_ rem             -4_ <>                2_ or
14056         280223983525050_ rem             -8_ <>                2_ or
14057         280223983525050_ rem          -1024_ <>              186_ or
14058         280223983525050_ rem       -1048576_ <>           974010_ or
14059         280223983525050_ rem    -1073741824_ <>        989781178_ or
14060         280223983525050_ rem    -2147483648_ <>        989781178_ or
14061         280223983525050_ rem    -4294967296_ <>       3137264826_ or
14062         280223983525050_ rem -1099511627776_ <>     948030069946_ or
14063        -280223983525050_ rem              1_ <>               -0_ or
14064        -280223983525050_ rem              2_ <>               -0_ or
14065        -280223983525050_ rem              4_ <>               -2_ or
14066        -280223983525050_ rem              8_ <>               -2_ or
14067        -280223983525050_ rem           1024_ <>             -186_ or
14068        -280223983525050_ rem        1048576_ <>          -974010_ or
14069        -280223983525050_ rem     1073741824_ <>       -989781178_ or
14070        -280223983525050_ rem     2147483648_ <>       -989781178_ or
14071        -280223983525050_ rem     4294967296_ <>      -3137264826_ or
14072        -280223983525050_ rem  1099511627776_ <>    -948030069946_ or
14073        -280223983525050_ rem             -1_ <>               -0_ or
14074        -280223983525050_ rem             -2_ <>               -0_ or
14075        -280223983525050_ rem             -4_ <>               -2_ or
14076        -280223983525050_ rem             -8_ <>               -2_ or
14077        -280223983525050_ rem          -1024_ <>             -186_ or
14078        -280223983525050_ rem       -1048576_ <>          -974010_ or
14079        -280223983525050_ rem    -1073741824_ <>       -989781178_ or
14080        -280223983525050_ rem    -2147483648_ <>       -989781178_ or
14081        -280223983525050_ rem    -4294967296_ <>      -3137264826_ or
14082        -280223983525050_ rem -1099511627776_ <>    -948030069946_ or
14083
14084         280223983525050_ rem bigintExpr(             1_) <>                0_ or
14085         280223983525050_ rem bigintExpr(             2_) <>                0_ or
14086         280223983525050_ rem bigintExpr(             4_) <>                2_ or
14087         280223983525050_ rem bigintExpr(             8_) <>                2_ or
14088         280223983525050_ rem bigintExpr(          1024_) <>              186_ or
14089         280223983525050_ rem bigintExpr(       1048576_) <>           974010_ or
14090         280223983525050_ rem bigintExpr(    1073741824_) <>        989781178_ or
14091         280223983525050_ rem bigintExpr(    2147483648_) <>        989781178_ or
14092         280223983525050_ rem bigintExpr(    4294967296_) <>       3137264826_ or
14093         280223983525050_ rem bigintExpr( 1099511627776_) <>     948030069946_ or
14094         280223983525050_ rem bigintExpr(            -1_) <>                0_ or
14095         280223983525050_ rem bigintExpr(            -2_) <>                0_ or
14096         280223983525050_ rem bigintExpr(            -4_) <>                2_ or
14097         280223983525050_ rem bigintExpr(            -8_) <>                2_ or
14098         280223983525050_ rem bigintExpr(         -1024_) <>              186_ or
14099         280223983525050_ rem bigintExpr(      -1048576_) <>           974010_ or
14100         280223983525050_ rem bigintExpr(   -1073741824_) <>        989781178_ or
14101         280223983525050_ rem bigintExpr(   -2147483648_) <>        989781178_ or
14102         280223983525050_ rem bigintExpr(   -4294967296_) <>       3137264826_ or
14103         280223983525050_ rem bigintExpr(-1099511627776_) <>     948030069946_ or
14104        -280223983525050_ rem bigintExpr(             1_) <>               -0_ or
14105        -280223983525050_ rem bigintExpr(             2_) <>               -0_ or
14106        -280223983525050_ rem bigintExpr(             4_) <>               -2_ or
14107        -280223983525050_ rem bigintExpr(             8_) <>               -2_ or
14108        -280223983525050_ rem bigintExpr(          1024_) <>             -186_ or
14109        -280223983525050_ rem bigintExpr(       1048576_) <>          -974010_ or
14110        -280223983525050_ rem bigintExpr(    1073741824_) <>       -989781178_ or
14111        -280223983525050_ rem bigintExpr(    2147483648_) <>       -989781178_ or
14112        -280223983525050_ rem bigintExpr(    4294967296_) <>      -3137264826_ or
14113        -280223983525050_ rem bigintExpr( 1099511627776_) <>    -948030069946_ or
14114        -280223983525050_ rem bigintExpr(            -1_) <>               -0_ or
14115        -280223983525050_ rem bigintExpr(            -2_) <>               -0_ or
14116        -280223983525050_ rem bigintExpr(            -4_) <>               -2_ or
14117        -280223983525050_ rem bigintExpr(            -8_) <>               -2_ or
14118        -280223983525050_ rem bigintExpr(         -1024_) <>             -186_ or
14119        -280223983525050_ rem bigintExpr(      -1048576_) <>          -974010_ or
14120        -280223983525050_ rem bigintExpr(   -1073741824_) <>       -989781178_ or
14121        -280223983525050_ rem bigintExpr(   -2147483648_) <>       -989781178_ or
14122        -280223983525050_ rem bigintExpr(   -4294967296_) <>      -3137264826_ or
14123        -280223983525050_ rem bigintExpr(-1099511627776_) <>    -948030069946_ or
14124
14125        bigintExpr( 280223983525050_) rem              1_ <>                0_ or
14126        bigintExpr( 280223983525050_) rem              2_ <>                0_ or
14127        bigintExpr( 280223983525050_) rem              4_ <>                2_ or
14128        bigintExpr( 280223983525050_) rem              8_ <>                2_ or
14129        bigintExpr( 280223983525050_) rem           1024_ <>              186_ or
14130        bigintExpr( 280223983525050_) rem        1048576_ <>           974010_ or
14131        bigintExpr( 280223983525050_) rem     1073741824_ <>        989781178_ or
14132        bigintExpr( 280223983525050_) rem     2147483648_ <>        989781178_ or
14133        bigintExpr( 280223983525050_) rem     4294967296_ <>       3137264826_ or
14134        bigintExpr( 280223983525050_) rem  1099511627776_ <>     948030069946_ or
14135        bigintExpr( 280223983525050_) rem             -1_ <>                0_ or
14136        bigintExpr( 280223983525050_) rem             -2_ <>                0_ or
14137        bigintExpr( 280223983525050_) rem             -4_ <>                2_ or
14138        bigintExpr( 280223983525050_) rem             -8_ <>                2_ or
14139        bigintExpr( 280223983525050_) rem          -1024_ <>              186_ or
14140        bigintExpr( 280223983525050_) rem       -1048576_ <>           974010_ or
14141        bigintExpr( 280223983525050_) rem    -1073741824_ <>        989781178_ or
14142        bigintExpr( 280223983525050_) rem    -2147483648_ <>        989781178_ or
14143        bigintExpr( 280223983525050_) rem    -4294967296_ <>       3137264826_ or
14144        bigintExpr( 280223983525050_) rem -1099511627776_ <>     948030069946_ or
14145        bigintExpr(-280223983525050_) rem              1_ <>               -0_ or
14146        bigintExpr(-280223983525050_) rem              2_ <>               -0_ or
14147        bigintExpr(-280223983525050_) rem              4_ <>               -2_ or
14148        bigintExpr(-280223983525050_) rem              8_ <>               -2_ or
14149        bigintExpr(-280223983525050_) rem           1024_ <>             -186_ or
14150        bigintExpr(-280223983525050_) rem        1048576_ <>          -974010_ or
14151        bigintExpr(-280223983525050_) rem     1073741824_ <>       -989781178_ or
14152        bigintExpr(-280223983525050_) rem     2147483648_ <>       -989781178_ or
14153        bigintExpr(-280223983525050_) rem     4294967296_ <>      -3137264826_ or
14154        bigintExpr(-280223983525050_) rem  1099511627776_ <>    -948030069946_ or
14155        bigintExpr(-280223983525050_) rem             -1_ <>               -0_ or
14156        bigintExpr(-280223983525050_) rem             -2_ <>               -0_ or
14157        bigintExpr(-280223983525050_) rem             -4_ <>               -2_ or
14158        bigintExpr(-280223983525050_) rem             -8_ <>               -2_ or
14159        bigintExpr(-280223983525050_) rem          -1024_ <>             -186_ or
14160        bigintExpr(-280223983525050_) rem       -1048576_ <>          -974010_ or
14161        bigintExpr(-280223983525050_) rem    -1073741824_ <>       -989781178_ or
14162        bigintExpr(-280223983525050_) rem    -2147483648_ <>       -989781178_ or
14163        bigintExpr(-280223983525050_) rem    -4294967296_ <>      -3137264826_ or
14164        bigintExpr(-280223983525050_) rem -1099511627776_ <>    -948030069946_ or
14165
14166        bigintExpr( 280223983525050_) rem bigintExpr(             1_) <>                0_ or
14167        bigintExpr( 280223983525050_) rem bigintExpr(             2_) <>                0_ or
14168        bigintExpr( 280223983525050_) rem bigintExpr(             4_) <>                2_ or
14169        bigintExpr( 280223983525050_) rem bigintExpr(             8_) <>                2_ or
14170        bigintExpr( 280223983525050_) rem bigintExpr(          1024_) <>              186_ or
14171        bigintExpr( 280223983525050_) rem bigintExpr(       1048576_) <>           974010_ or
14172        bigintExpr( 280223983525050_) rem bigintExpr(    1073741824_) <>        989781178_ or
14173        bigintExpr( 280223983525050_) rem bigintExpr(    2147483648_) <>        989781178_ or
14174        bigintExpr( 280223983525050_) rem bigintExpr(    4294967296_) <>       3137264826_ or
14175        bigintExpr( 280223983525050_) rem bigintExpr( 1099511627776_) <>     948030069946_ or
14176        bigintExpr( 280223983525050_) rem bigintExpr(            -1_) <>                0_ or
14177        bigintExpr( 280223983525050_) rem bigintExpr(            -2_) <>                0_ or
14178        bigintExpr( 280223983525050_) rem bigintExpr(            -4_) <>                2_ or
14179        bigintExpr( 280223983525050_) rem bigintExpr(            -8_) <>                2_ or
14180        bigintExpr( 280223983525050_) rem bigintExpr(         -1024_) <>              186_ or
14181        bigintExpr( 280223983525050_) rem bigintExpr(      -1048576_) <>           974010_ or
14182        bigintExpr( 280223983525050_) rem bigintExpr(   -1073741824_) <>        989781178_ or
14183        bigintExpr( 280223983525050_) rem bigintExpr(   -2147483648_) <>        989781178_ or
14184        bigintExpr( 280223983525050_) rem bigintExpr(   -4294967296_) <>       3137264826_ or
14185        bigintExpr( 280223983525050_) rem bigintExpr(-1099511627776_) <>     948030069946_ or
14186        bigintExpr(-280223983525050_) rem bigintExpr(             1_) <>               -0_ or
14187        bigintExpr(-280223983525050_) rem bigintExpr(             2_) <>               -0_ or
14188        bigintExpr(-280223983525050_) rem bigintExpr(             4_) <>               -2_ or
14189        bigintExpr(-280223983525050_) rem bigintExpr(             8_) <>               -2_ or
14190        bigintExpr(-280223983525050_) rem bigintExpr(          1024_) <>             -186_ or
14191        bigintExpr(-280223983525050_) rem bigintExpr(       1048576_) <>          -974010_ or
14192        bigintExpr(-280223983525050_) rem bigintExpr(    1073741824_) <>       -989781178_ or
14193        bigintExpr(-280223983525050_) rem bigintExpr(    2147483648_) <>       -989781178_ or
14194        bigintExpr(-280223983525050_) rem bigintExpr(    4294967296_) <>      -3137264826_ or
14195        bigintExpr(-280223983525050_) rem bigintExpr( 1099511627776_) <>    -948030069946_ or
14196        bigintExpr(-280223983525050_) rem bigintExpr(            -1_) <>               -0_ or
14197        bigintExpr(-280223983525050_) rem bigintExpr(            -2_) <>               -0_ or
14198        bigintExpr(-280223983525050_) rem bigintExpr(            -4_) <>               -2_ or
14199        bigintExpr(-280223983525050_) rem bigintExpr(            -8_) <>               -2_ or
14200        bigintExpr(-280223983525050_) rem bigintExpr(         -1024_) <>             -186_ or
14201        bigintExpr(-280223983525050_) rem bigintExpr(      -1048576_) <>          -974010_ or
14202        bigintExpr(-280223983525050_) rem bigintExpr(   -1073741824_) <>       -989781178_ or
14203        bigintExpr(-280223983525050_) rem bigintExpr(   -2147483648_) <>       -989781178_ or
14204        bigintExpr(-280223983525050_) rem bigintExpr(   -4294967296_) <>      -3137264826_ or
14205        bigintExpr(-280223983525050_) rem bigintExpr(-1099511627776_) <>    -948030069946_ then
14206      writeln("Remainder of bigInteger division by power of two does not work correct.");
14207      okay := FALSE;
14208    end if;
14209
14210    if  not raisesNumericError(           -9223372036854775808_  rem            0_ ) or
14211        not raisesNumericError(           -9223372036854775807_  rem            0_ ) or
14212        not raisesNumericError(                    -4294967296_  rem            0_ ) or
14213        not raisesNumericError(                    -4294967295_  rem            0_ ) or
14214        not raisesNumericError(                    -2147483648_  rem            0_ ) or
14215        not raisesNumericError(                    -2147483647_  rem            0_ ) or
14216        not raisesNumericError(                              0_  rem            0_ ) or
14217        not raisesNumericError(                     2147483647_  rem            0_ ) or
14218        not raisesNumericError(                     2147483648_  rem            0_ ) or
14219        not raisesNumericError(                     4294967295_  rem            0_ ) or
14220        not raisesNumericError(                     4294967296_  rem            0_ ) or
14221        not raisesNumericError(            9223372036854775807_  rem            0_ ) or
14222        not raisesNumericError(            9223372036854775808_  rem            0_ ) or
14223        not raisesNumericError(bigintExpr(-9223372036854775808_) rem            0_ ) or
14224        not raisesNumericError(bigintExpr(-9223372036854775807_) rem            0_ ) or
14225        not raisesNumericError(bigintExpr(         -4294967296_) rem            0_ ) or
14226        not raisesNumericError(bigintExpr(         -4294967295_) rem            0_ ) or
14227        not raisesNumericError(bigintExpr(         -2147483648_) rem            0_ ) or
14228        not raisesNumericError(bigintExpr(         -2147483647_) rem            0_ ) or
14229        not raisesNumericError(bigintExpr(                   0_) rem            0_ ) or
14230        not raisesNumericError(bigintExpr(          2147483647_) rem            0_ ) or
14231        not raisesNumericError(bigintExpr(          2147483648_) rem            0_ ) or
14232        not raisesNumericError(bigintExpr(          4294967295_) rem            0_ ) or
14233        not raisesNumericError(bigintExpr(          4294967296_) rem            0_ ) or
14234        not raisesNumericError(bigintExpr( 9223372036854775807_) rem            0_ ) or
14235        not raisesNumericError(bigintExpr( 9223372036854775808_) rem            0_ ) or
14236        not raisesNumericError(           -9223372036854775808_  rem bigintExpr(0_)) or
14237        not raisesNumericError(           -9223372036854775807_  rem bigintExpr(0_)) or
14238        not raisesNumericError(                    -4294967296_  rem bigintExpr(0_)) or
14239        not raisesNumericError(                    -4294967295_  rem bigintExpr(0_)) or
14240        not raisesNumericError(                    -2147483648_  rem bigintExpr(0_)) or
14241        not raisesNumericError(                    -2147483647_  rem bigintExpr(0_)) or
14242        not raisesNumericError(                              0_  rem bigintExpr(0_)) or
14243        not raisesNumericError(                     2147483647_  rem bigintExpr(0_)) or
14244        not raisesNumericError(                     2147483648_  rem bigintExpr(0_)) or
14245        not raisesNumericError(                     4294967295_  rem bigintExpr(0_)) or
14246        not raisesNumericError(                     4294967296_  rem bigintExpr(0_)) or
14247        not raisesNumericError(            9223372036854775807_  rem bigintExpr(0_)) or
14248        not raisesNumericError(            9223372036854775808_  rem bigintExpr(0_)) or
14249        not raisesNumericError(bigintExpr(-9223372036854775808_) rem bigintExpr(0_)) or
14250        not raisesNumericError(bigintExpr(-9223372036854775807_) rem bigintExpr(0_)) or
14251        not raisesNumericError(bigintExpr(         -4294967296_) rem bigintExpr(0_)) or
14252        not raisesNumericError(bigintExpr(         -4294967295_) rem bigintExpr(0_)) or
14253        not raisesNumericError(bigintExpr(         -2147483648_) rem bigintExpr(0_)) or
14254        not raisesNumericError(bigintExpr(         -2147483647_) rem bigintExpr(0_)) or
14255        not raisesNumericError(bigintExpr(                   0_) rem bigintExpr(0_)) or
14256        not raisesNumericError(bigintExpr(          2147483647_) rem bigintExpr(0_)) or
14257        not raisesNumericError(bigintExpr(          2147483648_) rem bigintExpr(0_)) or
14258        not raisesNumericError(bigintExpr(          4294967295_) rem bigintExpr(0_)) or
14259        not raisesNumericError(bigintExpr(          4294967296_) rem bigintExpr(0_)) or
14260        not raisesNumericError(bigintExpr( 9223372036854775807_) rem bigintExpr(0_)) or
14261        not raisesNumericError(bigintExpr( 9223372036854775808_) rem bigintExpr(0_)) then
14262      writeln(" ***** Remainder of bigInteger division by zero does not raise NUMERIC_ERROR.");
14263      okay := FALSE;
14264    end if;
14265
14266    if okay then
14267      writeln("Remainder of bigInteger division works correct.");
14268    else
14269      writeln(" ***** Remainder of bigInteger division does not work correct.");
14270      writeln;
14271    end if;
14272  end func;
14273
14274
14275const proc: chkDivRem is func
14276  local
14277    var boolean: okay is TRUE;
14278  begin
14279    if                          32766_ divRem                     1_ <> quotRem(           32766_,                     0_) or
14280                                32767_ divRem                     1_ <> quotRem(           32767_,                     0_) or
14281                                32768_ divRem                     1_ <> quotRem(           32768_,                     0_) or
14282                                32769_ divRem                     1_ <> quotRem(           32769_,                     0_) or
14283                                32770_ divRem                     1_ <> quotRem(           32770_,                     0_) or
14284                                65534_ divRem                     1_ <> quotRem(           65534_,                     0_) or
14285                                65535_ divRem                     1_ <> quotRem(           65535_,                     0_) or
14286                                65536_ divRem                     1_ <> quotRem(           65536_,                     0_) or
14287                                65537_ divRem                     1_ <> quotRem(           65537_,                     0_) or
14288                                65538_ divRem                     1_ <> quotRem(           65538_,                     0_) or
14289                                65536_ divRem                   128_ <> quotRem(             512_,                     0_) or
14290                                32766_ divRem                 32766_ <> quotRem(               1_,                     0_) or
14291                                32767_ divRem                 32767_ <> quotRem(               1_,                     0_) or
14292                                32768_ divRem                 32768_ <> quotRem(               1_,                     0_) or
14293                                32769_ divRem                 32769_ <> quotRem(               1_,                     0_) or
14294                                32770_ divRem                 32770_ <> quotRem(               1_,                     0_) or
14295                                65534_ divRem                 65534_ <> quotRem(               1_,                     0_) or
14296                                65535_ divRem                 65535_ <> quotRem(               1_,                     0_) or
14297                                65536_ divRem                 65536_ <> quotRem(               1_,                     0_) or
14298                                65537_ divRem                 65537_ <> quotRem(               1_,                     0_) or
14299                                65538_ divRem                 65538_ <> quotRem(               1_,                     0_) or
14300                                32765_ divRem                 32766_ <> quotRem(               0_,                 32765_) or
14301                                32766_ divRem                 32767_ <> quotRem(               0_,                 32766_) or
14302                                32767_ divRem                 32768_ <> quotRem(               0_,                 32767_) or
14303                                32768_ divRem                 32769_ <> quotRem(               0_,                 32768_) or
14304                                32769_ divRem                 32770_ <> quotRem(               0_,                 32769_) or
14305                                65533_ divRem                 65534_ <> quotRem(               0_,                 65533_) or
14306                                65534_ divRem                 65535_ <> quotRem(               0_,                 65534_) or
14307                                65535_ divRem                 65536_ <> quotRem(               0_,                 65535_) or
14308                                65536_ divRem                 65537_ <> quotRem(               0_,                 65536_) or
14309                                65537_ divRem                 65538_ <> quotRem(               0_,                 65537_) or
14310                                32766_ divRem  18446744073709551616_ <> quotRem(               0_,                 32766_) or
14311                                32767_ divRem  18446744073709551616_ <> quotRem(               0_,                 32767_) or
14312                                32768_ divRem  18446744073709551616_ <> quotRem(               0_,                 32768_) or
14313                                32769_ divRem  18446744073709551616_ <> quotRem(               0_,                 32769_) or
14314                                32770_ divRem  18446744073709551616_ <> quotRem(               0_,                 32770_) or
14315                                65534_ divRem  18446744073709551616_ <> quotRem(               0_,                 65534_) or
14316                                65535_ divRem  18446744073709551616_ <> quotRem(               0_,                 65535_) or
14317                                65536_ divRem  18446744073709551616_ <> quotRem(               0_,                 65536_) or
14318                                65537_ divRem  18446744073709551616_ <> quotRem(               0_,                 65537_) or
14319                                65538_ divRem  18446744073709551616_ <> quotRem(               0_,                 65538_) or
14320                           2147483647_ divRem            2147483647_ <> quotRem(               1_,                     0_) or
14321                           2147483647_ divRem            2147483648_ <> quotRem(               0_,            2147483647_) or
14322                           2147483647_ divRem            2147483649_ <> quotRem(               0_,            2147483647_) or
14323                           2147483648_ divRem            2147483647_ <> quotRem(               1_,                     1_) or
14324                           2147483648_ divRem            2147483648_ <> quotRem(               1_,                     0_) or
14325                           2147483648_ divRem            2147483649_ <> quotRem(               0_,            2147483648_) or
14326                           2147483649_ divRem            2147483647_ <> quotRem(               1_,                     2_) or
14327                           2147483649_ divRem            2147483648_ <> quotRem(               1_,                     1_) or
14328                           2147483649_ divRem            2147483649_ <> quotRem(               1_,                     0_) or
14329                           4294967295_ divRem            4294967295_ <> quotRem(               1_,                     0_) or
14330                           4294967295_ divRem            4294967296_ <> quotRem(               0_,            4294967295_) or
14331                           4294967295_ divRem            4294967297_ <> quotRem(               0_,            4294967295_) or
14332                           4294967296_ divRem            4294967295_ <> quotRem(               1_,                     1_) or
14333                           4294967296_ divRem            4294967296_ <> quotRem(               1_,                     0_) or
14334                           4294967296_ divRem            4294967297_ <> quotRem(               0_,            4294967296_) or
14335                           4294967297_ divRem            4294967295_ <> quotRem(               1_,                     2_) or
14336                           4294967297_ divRem            4294967296_ <> quotRem(               1_,                     1_) or
14337                           4294967297_ divRem            4294967297_ <> quotRem(               1_,                     0_) or
14338                      140737488355327_ divRem       140737488355328_ <> quotRem(               0_,       140737488355327_) or
14339                      140737488355328_ divRem       140737488355327_ <> quotRem(               1_,                     1_) or
14340                      140737488355328_ divRem       140737488355328_ <> quotRem(               1_,                     0_) or
14341                      140737488355328_ divRem       140737488355329_ <> quotRem(               0_,       140737488355328_) or
14342                  9223372036854775807_ divRem                 32768_ <> quotRem( 281474976710655_,                 32767_) or
14343                  9223090561878065152_ divRem                 32767_ <> quotRem( 281474976710656_,                     0_) or
14344                           4294967296_ divRem                 32768_ <> quotRem(          131072_,                     0_) or
14345                           4295229444_ divRem                 65538_ <> quotRem(           65538_,                     0_) or
14346                           8629125120_ divRem            4833607680_ <> quotRem(               1_,            3795517440_) or
14347                 18446744073709551616_ divRem                 32767_ <> quotRem( 562967133814800_,                    16_) or
14348                 18446744073709551616_ divRem                 32768_ <> quotRem( 562949953421312_,                     0_) or
14349                 18446744073709551616_ divRem                 65535_ <> quotRem( 281479271743489_,                     1_) or
14350                 18446744073709551616_ divRem                131071_ <> quotRem( 140738562105344_,                  8192_) or
14351                 18446744073709551616_ divRem            2147483648_ <> quotRem(      8589934592_,                     0_) or
14352                 18446744073709551616_ divRem            4294967296_ <> quotRem(      4294967296_,                     0_) or
14353                 18446744073709551616_ divRem            4294967297_ <> quotRem(      4294967295_,                     1_) or
14354                 18446744073709551616_ divRem  18446744073709551616_ <> quotRem(               1_,                     0_) or
14355                 18446744073709551616_ divRem  18446744073709551617_ <> quotRem(               0_,  18446744073709551616_) or
14356                  9223372036854775808_ divRem       140737488355329_ <> quotRem(           65535_,       140737488289793_) or
14357                  9223372036854775808_ divRem       140737488420863_ <> quotRem(           65535_,       140733193519103_) or
14358                  9223372036854775808_ divRem       140737488420864_ <> quotRem(           65535_,       140733193453568_) or
14359                  9223372036854775808_ divRem       140741783322623_ <> quotRem(           65534_,            8590000126_) or
14360                  1152921504606846976_ divRem        17596481011711_ <> quotRem(           65520_,           68719542256_) or
14361                  9223231303661387776_ divRem       140739636002821_ <> quotRem(           65533_,       140737488519183_) or
14362        39614081257132168796771975168_ divRem   9223372036854775809_ <> quotRem(      4294967295_,   9223372032559808513_) then
14363      writeln("Division of bigInteger with divRem does not work correct. (1)");
14364      okay := FALSE;
14365    end if;
14366
14367    if                          32766_ divRem                    -1_ <> quotRem(          -32766_,                     0_) or
14368                                32767_ divRem                    -1_ <> quotRem(          -32767_,                     0_) or
14369                                32768_ divRem                    -1_ <> quotRem(          -32768_,                     0_) or
14370                                32769_ divRem                    -1_ <> quotRem(          -32769_,                     0_) or
14371                                32770_ divRem                    -1_ <> quotRem(          -32770_,                     0_) or
14372                                65534_ divRem                    -1_ <> quotRem(          -65534_,                     0_) or
14373                                65535_ divRem                    -1_ <> quotRem(          -65535_,                     0_) or
14374                                65536_ divRem                    -1_ <> quotRem(          -65536_,                     0_) or
14375                                65537_ divRem                    -1_ <> quotRem(          -65537_,                     0_) or
14376                                65538_ divRem                    -1_ <> quotRem(          -65538_,                     0_) or
14377                                65536_ divRem                  -128_ <> quotRem(            -512_,                     0_) or
14378                                32766_ divRem                -32766_ <> quotRem(              -1_,                     0_) or
14379                                32767_ divRem                -32767_ <> quotRem(              -1_,                     0_) or
14380                                32768_ divRem                -32768_ <> quotRem(              -1_,                     0_) or
14381                                32769_ divRem                -32769_ <> quotRem(              -1_,                     0_) or
14382                                32770_ divRem                -32770_ <> quotRem(              -1_,                     0_) or
14383                                65534_ divRem                -65534_ <> quotRem(              -1_,                     0_) or
14384                                65535_ divRem                -65535_ <> quotRem(              -1_,                     0_) or
14385                                65536_ divRem                -65536_ <> quotRem(              -1_,                     0_) or
14386                                65537_ divRem                -65537_ <> quotRem(              -1_,                     0_) or
14387                                65538_ divRem                -65538_ <> quotRem(              -1_,                     0_) or
14388                                32765_ divRem                -32766_ <> quotRem(               0_,                 32765_) or
14389                                32766_ divRem                -32767_ <> quotRem(               0_,                 32766_) or
14390                                32767_ divRem                -32768_ <> quotRem(               0_,                 32767_) or
14391                                32768_ divRem                -32769_ <> quotRem(               0_,                 32768_) or
14392                                32769_ divRem                -32770_ <> quotRem(               0_,                 32769_) or
14393                                65533_ divRem                -65534_ <> quotRem(               0_,                 65533_) or
14394                                65534_ divRem                -65535_ <> quotRem(               0_,                 65534_) or
14395                                65535_ divRem                -65536_ <> quotRem(               0_,                 65535_) or
14396                                65536_ divRem                -65537_ <> quotRem(               0_,                 65536_) or
14397                                65537_ divRem                -65538_ <> quotRem(               0_,                 65537_) or
14398                                32766_ divRem -18446744073709551616_ <> quotRem(               0_,                 32766_) or
14399                                32767_ divRem -18446744073709551616_ <> quotRem(               0_,                 32767_) or
14400                                32768_ divRem -18446744073709551616_ <> quotRem(               0_,                 32768_) or
14401                                32769_ divRem -18446744073709551616_ <> quotRem(               0_,                 32769_) or
14402                                32770_ divRem -18446744073709551616_ <> quotRem(               0_,                 32770_) or
14403                                65534_ divRem -18446744073709551616_ <> quotRem(               0_,                 65534_) or
14404                                65535_ divRem -18446744073709551616_ <> quotRem(               0_,                 65535_) or
14405                                65536_ divRem -18446744073709551616_ <> quotRem(               0_,                 65536_) or
14406                                65537_ divRem -18446744073709551616_ <> quotRem(               0_,                 65537_) or
14407                                65538_ divRem -18446744073709551616_ <> quotRem(               0_,                 65538_) or
14408                           2147483647_ divRem           -2147483647_ <> quotRem(              -1_,                     0_) or
14409                           2147483647_ divRem           -2147483648_ <> quotRem(               0_,            2147483647_) or
14410                           2147483647_ divRem           -2147483649_ <> quotRem(               0_,            2147483647_) or
14411                           2147483648_ divRem           -2147483647_ <> quotRem(              -1_,                     1_) or
14412                           2147483648_ divRem           -2147483648_ <> quotRem(              -1_,                     0_) or
14413                           2147483648_ divRem           -2147483649_ <> quotRem(               0_,            2147483648_) or
14414                           2147483649_ divRem           -2147483647_ <> quotRem(              -1_,                     2_) or
14415                           2147483649_ divRem           -2147483648_ <> quotRem(              -1_,                     1_) or
14416                           2147483649_ divRem           -2147483649_ <> quotRem(              -1_,                     0_) or
14417                           4294967295_ divRem           -4294967295_ <> quotRem(              -1_,                     0_) or
14418                           4294967295_ divRem           -4294967296_ <> quotRem(               0_,            4294967295_) or
14419                           4294967295_ divRem           -4294967297_ <> quotRem(               0_,            4294967295_) or
14420                           4294967296_ divRem           -4294967295_ <> quotRem(              -1_,                     1_) or
14421                           4294967296_ divRem           -4294967296_ <> quotRem(              -1_,                     0_) or
14422                           4294967296_ divRem           -4294967297_ <> quotRem(               0_,            4294967296_) or
14423                           4294967297_ divRem           -4294967295_ <> quotRem(              -1_,                     2_) or
14424                           4294967297_ divRem           -4294967296_ <> quotRem(              -1_,                     1_) or
14425                           4294967297_ divRem           -4294967297_ <> quotRem(              -1_,                     0_) or
14426                      140737488355327_ divRem      -140737488355328_ <> quotRem(               0_,       140737488355327_) or
14427                      140737488355328_ divRem      -140737488355327_ <> quotRem(              -1_,                     1_) or
14428                      140737488355328_ divRem      -140737488355328_ <> quotRem(              -1_,                     0_) or
14429                      140737488355328_ divRem      -140737488355329_ <> quotRem(               0_,       140737488355328_) or
14430                  9223372036854775807_ divRem                -32768_ <> quotRem(-281474976710655_,                 32767_) or
14431                  9223090561878065152_ divRem                -32767_ <> quotRem(-281474976710656_,                     0_) or
14432                           4294967296_ divRem                -32768_ <> quotRem(         -131072_,                     0_) or
14433                           4295229444_ divRem                -65538_ <> quotRem(          -65538_,                     0_) or
14434                           8629125120_ divRem           -4833607680_ <> quotRem(              -1_,            3795517440_) or
14435                 18446744073709551616_ divRem                -32767_ <> quotRem(-562967133814800_,                    16_) or
14436                 18446744073709551616_ divRem                -32768_ <> quotRem(-562949953421312_,                     0_) or
14437                 18446744073709551616_ divRem                -65535_ <> quotRem(-281479271743489_,                     1_) or
14438                 18446744073709551616_ divRem               -131071_ <> quotRem(-140738562105344_,                  8192_) or
14439                 18446744073709551616_ divRem           -2147483648_ <> quotRem(     -8589934592_,                     0_) or
14440                 18446744073709551616_ divRem           -4294967296_ <> quotRem(     -4294967296_,                     0_) or
14441                 18446744073709551616_ divRem           -4294967297_ <> quotRem(     -4294967295_,                     1_) or
14442                 18446744073709551616_ divRem -18446744073709551616_ <> quotRem(              -1_,                     0_) or
14443                 18446744073709551616_ divRem -18446744073709551617_ <> quotRem(               0_,  18446744073709551616_) or
14444                  9223372036854775808_ divRem      -140737488355329_ <> quotRem(          -65535_,       140737488289793_) or
14445                  9223372036854775808_ divRem      -140737488420863_ <> quotRem(          -65535_,       140733193519103_) or
14446                  9223372036854775808_ divRem      -140737488420864_ <> quotRem(          -65535_,       140733193453568_) or
14447                  9223372036854775808_ divRem      -140741783322623_ <> quotRem(          -65534_,            8590000126_) or
14448                  1152921504606846976_ divRem       -17596481011711_ <> quotRem(          -65520_,           68719542256_) or
14449                  9223231303661387776_ divRem      -140739636002821_ <> quotRem(          -65533_,       140737488519183_) or
14450        39614081257132168796771975168_ divRem  -9223372036854775809_ <> quotRem(     -4294967295_,   9223372032559808513_) then
14451      writeln("Division of bigInteger with divRem does not work correct. (2)");
14452      okay := FALSE;
14453    end if;
14454
14455    if                         -32766_ divRem                     1_ <> quotRem(          -32766_,                     0_) or
14456                               -32767_ divRem                     1_ <> quotRem(          -32767_,                     0_) or
14457                               -32768_ divRem                     1_ <> quotRem(          -32768_,                     0_) or
14458                               -32769_ divRem                     1_ <> quotRem(          -32769_,                     0_) or
14459                               -32770_ divRem                     1_ <> quotRem(          -32770_,                     0_) or
14460                               -65534_ divRem                     1_ <> quotRem(          -65534_,                     0_) or
14461                               -65535_ divRem                     1_ <> quotRem(          -65535_,                     0_) or
14462                               -65536_ divRem                     1_ <> quotRem(          -65536_,                     0_) or
14463                               -65537_ divRem                     1_ <> quotRem(          -65537_,                     0_) or
14464                               -65538_ divRem                     1_ <> quotRem(          -65538_,                     0_) or
14465                               -65536_ divRem                   128_ <> quotRem(            -512_,                     0_) or
14466                               -32766_ divRem                 32766_ <> quotRem(              -1_,                     0_) or
14467                               -32767_ divRem                 32767_ <> quotRem(              -1_,                     0_) or
14468                               -32768_ divRem                 32768_ <> quotRem(              -1_,                     0_) or
14469                               -32769_ divRem                 32769_ <> quotRem(              -1_,                     0_) or
14470                               -32770_ divRem                 32770_ <> quotRem(              -1_,                     0_) or
14471                               -65534_ divRem                 65534_ <> quotRem(              -1_,                     0_) or
14472                               -65535_ divRem                 65535_ <> quotRem(              -1_,                     0_) or
14473                               -65536_ divRem                 65536_ <> quotRem(              -1_,                     0_) or
14474                               -65537_ divRem                 65537_ <> quotRem(              -1_,                     0_) or
14475                               -65538_ divRem                 65538_ <> quotRem(              -1_,                     0_) or
14476                               -32765_ divRem                 32766_ <> quotRem(               0_,                -32765_) or
14477                               -32766_ divRem                 32767_ <> quotRem(               0_,                -32766_) or
14478                               -32767_ divRem                 32768_ <> quotRem(               0_,                -32767_) or
14479                               -32768_ divRem                 32769_ <> quotRem(               0_,                -32768_) or
14480                               -32769_ divRem                 32770_ <> quotRem(               0_,                -32769_) or
14481                               -65533_ divRem                 65534_ <> quotRem(               0_,                -65533_) or
14482                               -65534_ divRem                 65535_ <> quotRem(               0_,                -65534_) or
14483                               -65535_ divRem                 65536_ <> quotRem(               0_,                -65535_) or
14484                               -65536_ divRem                 65537_ <> quotRem(               0_,                -65536_) or
14485                               -65537_ divRem                 65538_ <> quotRem(               0_,                -65537_) or
14486                               -32766_ divRem  18446744073709551616_ <> quotRem(               0_,                -32766_) or
14487                               -32767_ divRem  18446744073709551616_ <> quotRem(               0_,                -32767_) or
14488                               -32768_ divRem  18446744073709551616_ <> quotRem(               0_,                -32768_) or
14489                               -32769_ divRem  18446744073709551616_ <> quotRem(               0_,                -32769_) or
14490                               -32770_ divRem  18446744073709551616_ <> quotRem(               0_,                -32770_) or
14491                               -65534_ divRem  18446744073709551616_ <> quotRem(               0_,                -65534_) or
14492                               -65535_ divRem  18446744073709551616_ <> quotRem(               0_,                -65535_) or
14493                               -65536_ divRem  18446744073709551616_ <> quotRem(               0_,                -65536_) or
14494                               -65537_ divRem  18446744073709551616_ <> quotRem(               0_,                -65537_) or
14495                               -65538_ divRem  18446744073709551616_ <> quotRem(               0_,                -65538_) or
14496                          -2147483647_ divRem            2147483647_ <> quotRem(              -1_,                     0_) or
14497                          -2147483647_ divRem            2147483648_ <> quotRem(               0_,           -2147483647_) or
14498                          -2147483647_ divRem            2147483649_ <> quotRem(               0_,           -2147483647_) or
14499                          -2147483648_ divRem            2147483647_ <> quotRem(              -1_,                    -1_) or
14500                          -2147483648_ divRem            2147483648_ <> quotRem(              -1_,                     0_) or
14501                          -2147483648_ divRem            2147483649_ <> quotRem(               0_,           -2147483648_) or
14502                          -2147483649_ divRem            2147483647_ <> quotRem(              -1_,                    -2_) or
14503                          -2147483649_ divRem            2147483648_ <> quotRem(              -1_,                    -1_) or
14504                          -2147483649_ divRem            2147483649_ <> quotRem(              -1_,                     0_) or
14505                          -4294967295_ divRem            4294967295_ <> quotRem(              -1_,                     0_) or
14506                          -4294967295_ divRem            4294967296_ <> quotRem(               0_,           -4294967295_) or
14507                          -4294967295_ divRem            4294967297_ <> quotRem(               0_,           -4294967295_) or
14508                          -4294967296_ divRem            4294967295_ <> quotRem(              -1_,                    -1_) or
14509                          -4294967296_ divRem            4294967296_ <> quotRem(              -1_,                     0_) or
14510                          -4294967296_ divRem            4294967297_ <> quotRem(               0_,           -4294967296_) or
14511                          -4294967297_ divRem            4294967295_ <> quotRem(              -1_,                    -2_) or
14512                          -4294967297_ divRem            4294967296_ <> quotRem(              -1_,                    -1_) or
14513                          -4294967297_ divRem            4294967297_ <> quotRem(              -1_,                     0_) or
14514                     -140737488355327_ divRem       140737488355328_ <> quotRem(               0_,      -140737488355327_) or
14515                     -140737488355328_ divRem       140737488355327_ <> quotRem(              -1_,                    -1_) or
14516                     -140737488355328_ divRem       140737488355328_ <> quotRem(              -1_,                     0_) or
14517                     -140737488355328_ divRem       140737488355329_ <> quotRem(               0_,      -140737488355328_) or
14518                 -9223372036854775807_ divRem                 32768_ <> quotRem(-281474976710655_,                -32767_) or
14519                 -9223090561878065152_ divRem                 32767_ <> quotRem(-281474976710656_,                     0_) or
14520                          -4294967296_ divRem                 32768_ <> quotRem(         -131072_,                     0_) or
14521                          -4295229444_ divRem                 65538_ <> quotRem(          -65538_,                     0_) or
14522                          -8629125120_ divRem            4833607680_ <> quotRem(              -1_,           -3795517440_) or
14523                -18446744073709551616_ divRem                 32767_ <> quotRem(-562967133814800_,                   -16_) or
14524                -18446744073709551616_ divRem                 32768_ <> quotRem(-562949953421312_,                     0_) or
14525                -18446744073709551616_ divRem                 65535_ <> quotRem(-281479271743489_,                    -1_) or
14526                -18446744073709551616_ divRem                131071_ <> quotRem(-140738562105344_,                 -8192_) or
14527                -18446744073709551616_ divRem            2147483648_ <> quotRem(     -8589934592_,                     0_) or
14528                -18446744073709551616_ divRem            4294967296_ <> quotRem(     -4294967296_,                     0_) or
14529                -18446744073709551616_ divRem            4294967297_ <> quotRem(     -4294967295_,                    -1_) or
14530                -18446744073709551616_ divRem  18446744073709551616_ <> quotRem(              -1_,                     0_) or
14531                -18446744073709551616_ divRem  18446744073709551617_ <> quotRem(               0_, -18446744073709551616_) or
14532                 -9223372036854775808_ divRem       140737488355329_ <> quotRem(          -65535_,      -140737488289793_) or
14533                 -9223372036854775808_ divRem       140737488420863_ <> quotRem(          -65535_,      -140733193519103_) or
14534                 -9223372036854775808_ divRem       140737488420864_ <> quotRem(          -65535_,      -140733193453568_) or
14535                 -9223372036854775808_ divRem       140741783322623_ <> quotRem(          -65534_,           -8590000126_) or
14536                 -1152921504606846976_ divRem        17596481011711_ <> quotRem(          -65520_,          -68719542256_) or
14537                 -9223231303661387776_ divRem       140739636002821_ <> quotRem(          -65533_,      -140737488519183_) or
14538       -39614081257132168796771975168_ divRem   9223372036854775809_ <> quotRem(     -4294967295_,  -9223372032559808513_) then
14539      writeln("Division of bigInteger with divRem does not work correct. (3)");
14540      okay := FALSE;
14541    end if;
14542
14543    if                         -32766_ divRem                    -1_ <> quotRem(           32766_,                     0_) or
14544                               -32767_ divRem                    -1_ <> quotRem(           32767_,                     0_) or
14545                               -32768_ divRem                    -1_ <> quotRem(           32768_,                     0_) or
14546                               -32769_ divRem                    -1_ <> quotRem(           32769_,                     0_) or
14547                               -32770_ divRem                    -1_ <> quotRem(           32770_,                     0_) or
14548                               -65534_ divRem                    -1_ <> quotRem(           65534_,                     0_) or
14549                               -65535_ divRem                    -1_ <> quotRem(           65535_,                     0_) or
14550                               -65536_ divRem                    -1_ <> quotRem(           65536_,                     0_) or
14551                               -65537_ divRem                    -1_ <> quotRem(           65537_,                     0_) or
14552                               -65538_ divRem                    -1_ <> quotRem(           65538_,                     0_) or
14553                               -65536_ divRem                  -128_ <> quotRem(             512_,                     0_) or
14554                               -32766_ divRem                -32766_ <> quotRem(               1_,                     0_) or
14555                               -32767_ divRem                -32767_ <> quotRem(               1_,                     0_) or
14556                               -32768_ divRem                -32768_ <> quotRem(               1_,                     0_) or
14557                               -32769_ divRem                -32769_ <> quotRem(               1_,                     0_) or
14558                               -32770_ divRem                -32770_ <> quotRem(               1_,                     0_) or
14559                               -65534_ divRem                -65534_ <> quotRem(               1_,                     0_) or
14560                               -65535_ divRem                -65535_ <> quotRem(               1_,                     0_) or
14561                               -65536_ divRem                -65536_ <> quotRem(               1_,                     0_) or
14562                               -65537_ divRem                -65537_ <> quotRem(               1_,                     0_) or
14563                               -65538_ divRem                -65538_ <> quotRem(               1_,                     0_) or
14564                               -32765_ divRem                -32766_ <> quotRem(               0_,                -32765_) or
14565                               -32766_ divRem                -32767_ <> quotRem(               0_,                -32766_) or
14566                               -32767_ divRem                -32768_ <> quotRem(               0_,                -32767_) or
14567                               -32768_ divRem                -32769_ <> quotRem(               0_,                -32768_) or
14568                               -32769_ divRem                -32770_ <> quotRem(               0_,                -32769_) or
14569                               -65533_ divRem                -65534_ <> quotRem(               0_,                -65533_) or
14570                               -65534_ divRem                -65535_ <> quotRem(               0_,                -65534_) or
14571                               -65535_ divRem                -65536_ <> quotRem(               0_,                -65535_) or
14572                               -65536_ divRem                -65537_ <> quotRem(               0_,                -65536_) or
14573                               -65537_ divRem                -65538_ <> quotRem(               0_,                -65537_) or
14574                               -32766_ divRem -18446744073709551616_ <> quotRem(               0_,                -32766_) or
14575                               -32767_ divRem -18446744073709551616_ <> quotRem(               0_,                -32767_) or
14576                               -32768_ divRem -18446744073709551616_ <> quotRem(               0_,                -32768_) or
14577                               -32769_ divRem -18446744073709551616_ <> quotRem(               0_,                -32769_) or
14578                               -32770_ divRem -18446744073709551616_ <> quotRem(               0_,                -32770_) or
14579                               -65534_ divRem -18446744073709551616_ <> quotRem(               0_,                -65534_) or
14580                               -65535_ divRem -18446744073709551616_ <> quotRem(               0_,                -65535_) or
14581                               -65536_ divRem -18446744073709551616_ <> quotRem(               0_,                -65536_) or
14582                               -65537_ divRem -18446744073709551616_ <> quotRem(               0_,                -65537_) or
14583                               -65538_ divRem -18446744073709551616_ <> quotRem(               0_,                -65538_) or
14584                          -2147483647_ divRem           -2147483647_ <> quotRem(               1_,                     0_) or
14585                          -2147483647_ divRem           -2147483648_ <> quotRem(               0_,           -2147483647_) or
14586                          -2147483647_ divRem           -2147483649_ <> quotRem(               0_,           -2147483647_) or
14587                          -2147483648_ divRem           -2147483647_ <> quotRem(               1_,                    -1_) or
14588                          -2147483648_ divRem           -2147483648_ <> quotRem(               1_,                     0_) or
14589                          -2147483648_ divRem           -2147483649_ <> quotRem(               0_,           -2147483648_) or
14590                          -2147483649_ divRem           -2147483647_ <> quotRem(               1_,                    -2_) or
14591                          -2147483649_ divRem           -2147483648_ <> quotRem(               1_,                    -1_) or
14592                          -2147483649_ divRem           -2147483649_ <> quotRem(               1_,                     0_) or
14593                          -4294967295_ divRem           -4294967295_ <> quotRem(               1_,                     0_) or
14594                          -4294967295_ divRem           -4294967296_ <> quotRem(               0_,           -4294967295_) or
14595                          -4294967295_ divRem           -4294967297_ <> quotRem(               0_,           -4294967295_) or
14596                          -4294967296_ divRem           -4294967295_ <> quotRem(               1_,                    -1_) or
14597                          -4294967296_ divRem           -4294967296_ <> quotRem(               1_,                     0_) or
14598                          -4294967296_ divRem           -4294967297_ <> quotRem(               0_,           -4294967296_) or
14599                          -4294967297_ divRem           -4294967295_ <> quotRem(               1_,                    -2_) or
14600                          -4294967297_ divRem           -4294967296_ <> quotRem(               1_,                    -1_) or
14601                          -4294967297_ divRem           -4294967297_ <> quotRem(               1_,                     0_) or
14602                     -140737488355327_ divRem      -140737488355328_ <> quotRem(               0_,      -140737488355327_) or
14603                     -140737488355328_ divRem      -140737488355327_ <> quotRem(               1_,                    -1_) or
14604                     -140737488355328_ divRem      -140737488355328_ <> quotRem(               1_,                     0_) or
14605                     -140737488355328_ divRem      -140737488355329_ <> quotRem(               0_,      -140737488355328_) or
14606                 -9223372036854775807_ divRem                -32768_ <> quotRem( 281474976710655_,                -32767_) or
14607                 -9223090561878065152_ divRem                -32767_ <> quotRem( 281474976710656_,                     0_) or
14608                          -4294967296_ divRem                -32768_ <> quotRem(          131072_,                     0_) or
14609                          -4295229444_ divRem                -65538_ <> quotRem(           65538_,                     0_) or
14610                          -8629125120_ divRem           -4833607680_ <> quotRem(               1_,           -3795517440_) or
14611                -18446744073709551616_ divRem                -32767_ <> quotRem( 562967133814800_,                   -16_) or
14612                -18446744073709551616_ divRem                -32768_ <> quotRem( 562949953421312_,                     0_) or
14613                -18446744073709551616_ divRem                -65535_ <> quotRem( 281479271743489_,                    -1_) or
14614                -18446744073709551616_ divRem               -131071_ <> quotRem( 140738562105344_,                 -8192_) or
14615                -18446744073709551616_ divRem           -2147483648_ <> quotRem(      8589934592_,                     0_) or
14616                -18446744073709551616_ divRem           -4294967296_ <> quotRem(      4294967296_,                     0_) or
14617                -18446744073709551616_ divRem           -4294967297_ <> quotRem(      4294967295_,                    -1_) or
14618                -18446744073709551616_ divRem -18446744073709551616_ <> quotRem(               1_,                     0_) or
14619                -18446744073709551616_ divRem -18446744073709551617_ <> quotRem(               0_, -18446744073709551616_) or
14620                 -9223372036854775808_ divRem      -140737488355329_ <> quotRem(           65535_,      -140737488289793_) or
14621                 -9223372036854775808_ divRem      -140737488420863_ <> quotRem(           65535_,      -140733193519103_) or
14622                 -9223372036854775808_ divRem      -140737488420864_ <> quotRem(           65535_,      -140733193453568_) or
14623                 -9223372036854775808_ divRem      -140741783322623_ <> quotRem(           65534_,           -8590000126_) or
14624                 -1152921504606846976_ divRem       -17596481011711_ <> quotRem(           65520_,          -68719542256_) or
14625                 -9223231303661387776_ divRem      -140739636002821_ <> quotRem(           65533_,      -140737488519183_) or
14626       -39614081257132168796771975168_ divRem  -9223372036854775809_ <> quotRem(      4294967295_,  -9223372032559808513_) then
14627      writeln("Division of bigInteger with divRem does not work correct. (4)");
14628      okay := FALSE;
14629    end if;
14630
14631    if okay then
14632      writeln("Division of bigInteger with divRem works correct.");
14633    else
14634      writeln(" ***** Division of bigInteger with divRem does not work correct.");
14635      writeln;
14636    end if;
14637  end func;
14638
14639
14640const proc: chkModDivision is func
14641  local
14642    var bigInteger: number is 0_;
14643    var boolean: okay is TRUE;
14644  begin
14645    if                          32766_ mdiv                     1_ <>            32766_ or
14646                                32767_ mdiv                     1_ <>            32767_ or
14647                                32768_ mdiv                     1_ <>            32768_ or
14648                                32769_ mdiv                     1_ <>            32769_ or
14649                                32770_ mdiv                     1_ <>            32770_ or
14650                                65534_ mdiv                     1_ <>            65534_ or
14651                                65535_ mdiv                     1_ <>            65535_ or
14652                                65536_ mdiv                     1_ <>            65536_ or
14653                                65537_ mdiv                     1_ <>            65537_ or
14654                                65538_ mdiv                     1_ <>            65538_ or
14655                                65536_ mdiv                   128_ <>              512_ or
14656                                32766_ mdiv                 32766_ <>                1_ or
14657                                32767_ mdiv                 32767_ <>                1_ or
14658                                32768_ mdiv                 32768_ <>                1_ or
14659                                32769_ mdiv                 32769_ <>                1_ or
14660                                32770_ mdiv                 32770_ <>                1_ or
14661                                65534_ mdiv                 65534_ <>                1_ or
14662                                65535_ mdiv                 65535_ <>                1_ or
14663                                65536_ mdiv                 65536_ <>                1_ or
14664                                65537_ mdiv                 65537_ <>                1_ or
14665                                65538_ mdiv                 65538_ <>                1_ or
14666                                32765_ mdiv                 32766_ <>                0_ or
14667                                32766_ mdiv                 32767_ <>                0_ or
14668                                32767_ mdiv                 32768_ <>                0_ or
14669                                32768_ mdiv                 32769_ <>                0_ or
14670                                32769_ mdiv                 32770_ <>                0_ or
14671                                65533_ mdiv                 65534_ <>                0_ or
14672                                65534_ mdiv                 65535_ <>                0_ or
14673                                65535_ mdiv                 65536_ <>                0_ or
14674                                65536_ mdiv                 65537_ <>                0_ or
14675                                65537_ mdiv                 65538_ <>                0_ or
14676                                32766_ mdiv  18446744073709551616_ <>                0_ or
14677                                32767_ mdiv  18446744073709551616_ <>                0_ or
14678                                32768_ mdiv  18446744073709551616_ <>                0_ or
14679                                32769_ mdiv  18446744073709551616_ <>                0_ or
14680                                32770_ mdiv  18446744073709551616_ <>                0_ or
14681                                65534_ mdiv  18446744073709551616_ <>                0_ or
14682                                65535_ mdiv  18446744073709551616_ <>                0_ or
14683                                65536_ mdiv  18446744073709551616_ <>                0_ or
14684                                65537_ mdiv  18446744073709551616_ <>                0_ or
14685                                65538_ mdiv  18446744073709551616_ <>                0_ or
14686                           2147483647_ mdiv            2147483647_ <>                1_ or
14687                           2147483647_ mdiv            2147483648_ <>                0_ or
14688                           2147483647_ mdiv            2147483649_ <>                0_ or
14689                           2147483648_ mdiv            2147483647_ <>                1_ or
14690                           2147483648_ mdiv            2147483648_ <>                1_ or
14691                           2147483648_ mdiv            2147483649_ <>                0_ or
14692                           2147483649_ mdiv            2147483647_ <>                1_ or
14693                           2147483649_ mdiv            2147483648_ <>                1_ or
14694                           2147483649_ mdiv            2147483649_ <>                1_ or
14695                           4294967295_ mdiv            4294967295_ <>                1_ or
14696                           4294967295_ mdiv            4294967296_ <>                0_ or
14697                           4294967295_ mdiv            4294967297_ <>                0_ or
14698                           4294967296_ mdiv            4294967295_ <>                1_ or
14699                           4294967296_ mdiv            4294967296_ <>                1_ or
14700                           4294967296_ mdiv            4294967297_ <>                0_ or
14701                           4294967297_ mdiv            4294967295_ <>                1_ or
14702                           4294967297_ mdiv            4294967296_ <>                1_ or
14703                           4294967297_ mdiv            4294967297_ <>                1_ or
14704                      140737488355327_ mdiv       140737488355328_ <>                0_ or
14705                      140737488355328_ mdiv       140737488355327_ <>                1_ or
14706                      140737488355328_ mdiv       140737488355328_ <>                1_ or
14707                      140737488355328_ mdiv       140737488355329_ <>                0_ or
14708                  9223372036854775807_ mdiv                 32768_ <>  281474976710655_ or
14709                  9223090561878065152_ mdiv                 32767_ <>  281474976710656_ or
14710                           4294967296_ mdiv                 32768_ <>           131072_ or
14711                           4295229444_ mdiv                 65538_ <>            65538_ or
14712                           8629125120_ mdiv            4833607680_ <>                1_ or
14713                 18446744073709551616_ mdiv                 32767_ <>  562967133814800_ or
14714                 18446744073709551616_ mdiv                 32768_ <>  562949953421312_ or
14715                 18446744073709551616_ mdiv                 65535_ <>  281479271743489_ or
14716                 18446744073709551616_ mdiv                131071_ <>  140738562105344_ or
14717                 18446744073709551616_ mdiv            2147483648_ <>       8589934592_ or
14718                 18446744073709551616_ mdiv            4294967296_ <>       4294967296_ or
14719                 18446744073709551616_ mdiv            4294967297_ <>       4294967295_ or
14720                 18446744073709551616_ mdiv  18446744073709551616_ <>                1_ or
14721                 18446744073709551616_ mdiv  18446744073709551617_ <>                0_ or
14722                  9223372036854775808_ mdiv       140737488355329_ <>            65535_ or
14723                  9223372036854775808_ mdiv       140737488420863_ <>            65535_ or
14724                  9223372036854775808_ mdiv       140737488420864_ <>            65535_ or
14725                  9223372036854775808_ mdiv       140741783322623_ <>            65534_ or
14726                  1152921504606846976_ mdiv        17596481011711_ <>            65520_ or
14727                  9223231303661387776_ mdiv       140739636002821_ <>            65533_ or
14728        39614081257132168796771975168_ mdiv   9223372036854775809_ <>       4294967295_ then
14729      writeln("Modulo division of bigInteger does not work correct. (1)");
14730      okay := FALSE;
14731    end if;
14732
14733    if                          32766_ mdiv                    -1_ <>           -32766_ or
14734                                32767_ mdiv                    -1_ <>           -32767_ or
14735                                32768_ mdiv                    -1_ <>           -32768_ or
14736                                32769_ mdiv                    -1_ <>           -32769_ or
14737                                32770_ mdiv                    -1_ <>           -32770_ or
14738                                65534_ mdiv                    -1_ <>           -65534_ or
14739                                65535_ mdiv                    -1_ <>           -65535_ or
14740                                65536_ mdiv                    -1_ <>           -65536_ or
14741                                65537_ mdiv                    -1_ <>           -65537_ or
14742                                65538_ mdiv                    -1_ <>           -65538_ or
14743                                65536_ mdiv                  -128_ <>             -512_ or
14744                                32766_ mdiv                -32766_ <>               -1_ or
14745                                32767_ mdiv                -32767_ <>               -1_ or
14746                                32768_ mdiv                -32768_ <>               -1_ or
14747                                32769_ mdiv                -32769_ <>               -1_ or
14748                                32770_ mdiv                -32770_ <>               -1_ or
14749                                65534_ mdiv                -65534_ <>               -1_ or
14750                                65535_ mdiv                -65535_ <>               -1_ or
14751                                65536_ mdiv                -65536_ <>               -1_ or
14752                                65537_ mdiv                -65537_ <>               -1_ or
14753                                65538_ mdiv                -65538_ <>               -1_ or
14754                                32765_ mdiv                -32766_ <>               -1_ or
14755                                32766_ mdiv                -32767_ <>               -1_ or
14756                                32767_ mdiv                -32768_ <>               -1_ or
14757                                32768_ mdiv                -32769_ <>               -1_ or
14758                                32769_ mdiv                -32770_ <>               -1_ or
14759                                65533_ mdiv                -65534_ <>               -1_ or
14760                                65534_ mdiv                -65535_ <>               -1_ or
14761                                65535_ mdiv                -65536_ <>               -1_ or
14762                                65536_ mdiv                -65537_ <>               -1_ or
14763                                65537_ mdiv                -65538_ <>               -1_ or
14764                                32766_ mdiv -18446744073709551616_ <>               -1_ or
14765                                32767_ mdiv -18446744073709551616_ <>               -1_ or
14766                                32768_ mdiv -18446744073709551616_ <>               -1_ or
14767                                32769_ mdiv -18446744073709551616_ <>               -1_ or
14768                                32770_ mdiv -18446744073709551616_ <>               -1_ or
14769                                65534_ mdiv -18446744073709551616_ <>               -1_ or
14770                                65535_ mdiv -18446744073709551616_ <>               -1_ or
14771                                65536_ mdiv -18446744073709551616_ <>               -1_ or
14772                                65537_ mdiv -18446744073709551616_ <>               -1_ or
14773                                65538_ mdiv -18446744073709551616_ <>               -1_ or
14774                           2147483647_ mdiv           -2147483647_ <>               -1_ or
14775                           2147483647_ mdiv           -2147483648_ <>               -1_ or
14776                           2147483647_ mdiv           -2147483649_ <>               -1_ or
14777                           2147483648_ mdiv           -2147483647_ <>               -2_ or
14778                           2147483648_ mdiv           -2147483648_ <>               -1_ or
14779                           2147483648_ mdiv           -2147483649_ <>               -1_ or
14780                           2147483649_ mdiv           -2147483647_ <>               -2_ or
14781                           2147483649_ mdiv           -2147483648_ <>               -2_ or
14782                           2147483649_ mdiv           -2147483649_ <>               -1_ or
14783                           4294967295_ mdiv           -4294967295_ <>               -1_ or
14784                           4294967295_ mdiv           -4294967296_ <>               -1_ or
14785                           4294967295_ mdiv           -4294967297_ <>               -1_ or
14786                           4294967296_ mdiv           -4294967295_ <>               -2_ or
14787                           4294967296_ mdiv           -4294967296_ <>               -1_ or
14788                           4294967296_ mdiv           -4294967297_ <>               -1_ or
14789                           4294967297_ mdiv           -4294967295_ <>               -2_ or
14790                           4294967297_ mdiv           -4294967296_ <>               -2_ or
14791                           4294967297_ mdiv           -4294967297_ <>               -1_ or
14792                      140737488355327_ mdiv      -140737488355328_ <>               -1_ or
14793                      140737488355328_ mdiv      -140737488355327_ <>               -2_ or
14794                      140737488355328_ mdiv      -140737488355328_ <>               -1_ or
14795                      140737488355328_ mdiv      -140737488355329_ <>               -1_ or
14796                  9223372036854775807_ mdiv                -32768_ <> -281474976710656_ or
14797                  9223090561878065152_ mdiv                -32767_ <> -281474976710656_ or
14798                           4294967296_ mdiv                -32768_ <>          -131072_ or
14799                           4295229444_ mdiv                -65538_ <>           -65538_ or
14800                           8629125120_ mdiv           -4833607680_ <>               -2_ or
14801                 18446744073709551616_ mdiv                -32767_ <> -562967133814801_ or
14802                 18446744073709551616_ mdiv                -32768_ <> -562949953421312_ or
14803                 18446744073709551616_ mdiv                -65535_ <> -281479271743490_ or
14804                 18446744073709551616_ mdiv               -131071_ <> -140738562105345_ or
14805                 18446744073709551616_ mdiv           -2147483648_ <>      -8589934592_ or
14806                 18446744073709551616_ mdiv           -4294967296_ <>      -4294967296_ or
14807                 18446744073709551616_ mdiv           -4294967297_ <>      -4294967296_ or
14808                 18446744073709551616_ mdiv -18446744073709551616_ <>               -1_ or
14809                 18446744073709551616_ mdiv -18446744073709551617_ <>               -1_ or
14810                  9223372036854775808_ mdiv      -140737488355329_ <>           -65536_ or
14811                  9223372036854775808_ mdiv      -140737488420863_ <>           -65536_ or
14812                  9223372036854775808_ mdiv      -140737488420864_ <>           -65536_ or
14813                  9223372036854775808_ mdiv      -140741783322623_ <>           -65535_ or
14814                  1152921504606846976_ mdiv       -17596481011711_ <>           -65521_ or
14815                  9223231303661387776_ mdiv      -140739636002821_ <>           -65534_ or
14816        39614081257132168796771975168_ mdiv  -9223372036854775809_ <>      -4294967296_ then
14817      writeln("Modulo division of bigInteger does not work correct. (2)");
14818      okay := FALSE;
14819    end if;
14820
14821    if                         -32766_ mdiv                     1_ <>           -32766_ or
14822                               -32767_ mdiv                     1_ <>           -32767_ or
14823                               -32768_ mdiv                     1_ <>           -32768_ or
14824                               -32769_ mdiv                     1_ <>           -32769_ or
14825                               -32770_ mdiv                     1_ <>           -32770_ or
14826                               -65534_ mdiv                     1_ <>           -65534_ or
14827                               -65535_ mdiv                     1_ <>           -65535_ or
14828                               -65536_ mdiv                     1_ <>           -65536_ or
14829                               -65537_ mdiv                     1_ <>           -65537_ or
14830                               -65538_ mdiv                     1_ <>           -65538_ or
14831                               -65536_ mdiv                   128_ <>             -512_ or
14832                               -32766_ mdiv                 32766_ <>               -1_ or
14833                               -32767_ mdiv                 32767_ <>               -1_ or
14834                               -32768_ mdiv                 32768_ <>               -1_ or
14835                               -32769_ mdiv                 32769_ <>               -1_ or
14836                               -32770_ mdiv                 32770_ <>               -1_ or
14837                               -65534_ mdiv                 65534_ <>               -1_ or
14838                               -65535_ mdiv                 65535_ <>               -1_ or
14839                               -65536_ mdiv                 65536_ <>               -1_ or
14840                               -65537_ mdiv                 65537_ <>               -1_ or
14841                               -65538_ mdiv                 65538_ <>               -1_ or
14842                               -32765_ mdiv                 32766_ <>               -1_ or
14843                               -32766_ mdiv                 32767_ <>               -1_ or
14844                               -32767_ mdiv                 32768_ <>               -1_ or
14845                               -32768_ mdiv                 32769_ <>               -1_ or
14846                               -32769_ mdiv                 32770_ <>               -1_ or
14847                               -65533_ mdiv                 65534_ <>               -1_ or
14848                               -65534_ mdiv                 65535_ <>               -1_ or
14849                               -65535_ mdiv                 65536_ <>               -1_ or
14850                               -65536_ mdiv                 65537_ <>               -1_ or
14851                               -65537_ mdiv                 65538_ <>               -1_ or
14852                               -32766_ mdiv  18446744073709551616_ <>               -1_ or
14853                               -32767_ mdiv  18446744073709551616_ <>               -1_ or
14854                               -32768_ mdiv  18446744073709551616_ <>               -1_ or
14855                               -32769_ mdiv  18446744073709551616_ <>               -1_ or
14856                               -32770_ mdiv  18446744073709551616_ <>               -1_ or
14857                               -65534_ mdiv  18446744073709551616_ <>               -1_ or
14858                               -65535_ mdiv  18446744073709551616_ <>               -1_ or
14859                               -65536_ mdiv  18446744073709551616_ <>               -1_ or
14860                               -65537_ mdiv  18446744073709551616_ <>               -1_ or
14861                               -65538_ mdiv  18446744073709551616_ <>               -1_ or
14862                          -2147483647_ mdiv            2147483647_ <>               -1_ or
14863                          -2147483647_ mdiv            2147483648_ <>               -1_ or
14864                          -2147483647_ mdiv            2147483649_ <>               -1_ or
14865                          -2147483648_ mdiv            2147483647_ <>               -2_ or
14866                          -2147483648_ mdiv            2147483648_ <>               -1_ or
14867                          -2147483648_ mdiv            2147483649_ <>               -1_ or
14868                          -2147483649_ mdiv            2147483647_ <>               -2_ or
14869                          -2147483649_ mdiv            2147483648_ <>               -2_ or
14870                          -2147483649_ mdiv            2147483649_ <>               -1_ or
14871                          -4294967295_ mdiv            4294967295_ <>               -1_ or
14872                          -4294967295_ mdiv            4294967296_ <>               -1_ or
14873                          -4294967295_ mdiv            4294967297_ <>               -1_ or
14874                          -4294967296_ mdiv            4294967295_ <>               -2_ or
14875                          -4294967296_ mdiv            4294967296_ <>               -1_ or
14876                          -4294967296_ mdiv            4294967297_ <>               -1_ or
14877                          -4294967297_ mdiv            4294967295_ <>               -2_ or
14878                          -4294967297_ mdiv            4294967296_ <>               -2_ or
14879                          -4294967297_ mdiv            4294967297_ <>               -1_ or
14880                     -140737488355327_ mdiv       140737488355328_ <>               -1_ or
14881                     -140737488355328_ mdiv       140737488355327_ <>               -2_ or
14882                     -140737488355328_ mdiv       140737488355328_ <>               -1_ or
14883                     -140737488355328_ mdiv       140737488355329_ <>               -1_ or
14884                 -9223372036854775807_ mdiv                 32768_ <> -281474976710656_ or
14885                 -9223090561878065152_ mdiv                 32767_ <> -281474976710656_ or
14886                          -4294967296_ mdiv                 32768_ <>          -131072_ or
14887                          -4295229444_ mdiv                 65538_ <>           -65538_ or
14888                          -8629125120_ mdiv            4833607680_ <>               -2_ or
14889                -18446744073709551616_ mdiv                 32767_ <> -562967133814801_ or
14890                -18446744073709551616_ mdiv                 32768_ <> -562949953421312_ or
14891                -18446744073709551616_ mdiv                 65535_ <> -281479271743490_ or
14892                -18446744073709551616_ mdiv                131071_ <> -140738562105345_ or
14893                -18446744073709551616_ mdiv            2147483648_ <>      -8589934592_ or
14894                -18446744073709551616_ mdiv            4294967296_ <>      -4294967296_ or
14895                -18446744073709551616_ mdiv            4294967297_ <>      -4294967296_ or
14896                -18446744073709551616_ mdiv  18446744073709551616_ <>               -1_ or
14897                -18446744073709551616_ mdiv  18446744073709551617_ <>               -1_ or
14898                 -9223372036854775808_ mdiv       140737488355329_ <>           -65536_ or
14899                 -9223372036854775808_ mdiv       140737488420863_ <>           -65536_ or
14900                 -9223372036854775808_ mdiv       140737488420864_ <>           -65536_ or
14901                 -9223372036854775808_ mdiv       140741783322623_ <>           -65535_ or
14902                 -1152921504606846976_ mdiv        17596481011711_ <>           -65521_ or
14903                 -9223231303661387776_ mdiv       140739636002821_ <>           -65534_ or
14904       -39614081257132168796771975168_ mdiv   9223372036854775809_ <>      -4294967296_ then
14905      writeln("Modulo division of bigInteger does not work correct. (3)");
14906      okay := FALSE;
14907    end if;
14908
14909    if                         -32766_ mdiv                    -1_ <>            32766_ or
14910                               -32767_ mdiv                    -1_ <>            32767_ or
14911                               -32768_ mdiv                    -1_ <>            32768_ or
14912                               -32769_ mdiv                    -1_ <>            32769_ or
14913                               -32770_ mdiv                    -1_ <>            32770_ or
14914                               -65534_ mdiv                    -1_ <>            65534_ or
14915                               -65535_ mdiv                    -1_ <>            65535_ or
14916                               -65536_ mdiv                    -1_ <>            65536_ or
14917                               -65537_ mdiv                    -1_ <>            65537_ or
14918                               -65538_ mdiv                    -1_ <>            65538_ or
14919                               -65536_ mdiv                  -128_ <>              512_ or
14920                               -32766_ mdiv                -32766_ <>                1_ or
14921                               -32767_ mdiv                -32767_ <>                1_ or
14922                               -32768_ mdiv                -32768_ <>                1_ or
14923                               -32769_ mdiv                -32769_ <>                1_ or
14924                               -32770_ mdiv                -32770_ <>                1_ or
14925                               -65534_ mdiv                -65534_ <>                1_ or
14926                               -65535_ mdiv                -65535_ <>                1_ or
14927                               -65536_ mdiv                -65536_ <>                1_ or
14928                               -65537_ mdiv                -65537_ <>                1_ or
14929                               -65538_ mdiv                -65538_ <>                1_ or
14930                               -32765_ mdiv                -32766_ <>                0_ or
14931                               -32766_ mdiv                -32767_ <>                0_ or
14932                               -32767_ mdiv                -32768_ <>                0_ or
14933                               -32768_ mdiv                -32769_ <>                0_ or
14934                               -32769_ mdiv                -32770_ <>                0_ or
14935                               -65533_ mdiv                -65534_ <>                0_ or
14936                               -65534_ mdiv                -65535_ <>                0_ or
14937                               -65535_ mdiv                -65536_ <>                0_ or
14938                               -65536_ mdiv                -65537_ <>                0_ or
14939                               -65537_ mdiv                -65538_ <>                0_ or
14940                               -32766_ mdiv -18446744073709551616_ <>                0_ or
14941                               -32767_ mdiv -18446744073709551616_ <>                0_ or
14942                               -32768_ mdiv -18446744073709551616_ <>                0_ or
14943                               -32769_ mdiv -18446744073709551616_ <>                0_ or
14944                               -32770_ mdiv -18446744073709551616_ <>                0_ or
14945                               -65534_ mdiv -18446744073709551616_ <>                0_ or
14946                               -65535_ mdiv -18446744073709551616_ <>                0_ or
14947                               -65536_ mdiv -18446744073709551616_ <>                0_ or
14948                               -65537_ mdiv -18446744073709551616_ <>                0_ or
14949                               -65538_ mdiv -18446744073709551616_ <>                0_ or
14950                          -2147483647_ mdiv           -2147483647_ <>                1_ or
14951                          -2147483647_ mdiv           -2147483648_ <>                0_ or
14952                          -2147483647_ mdiv           -2147483649_ <>                0_ or
14953                          -2147483648_ mdiv           -2147483647_ <>                1_ or
14954                          -2147483648_ mdiv           -2147483648_ <>                1_ or
14955                          -2147483648_ mdiv           -2147483649_ <>                0_ or
14956                          -2147483649_ mdiv           -2147483647_ <>                1_ or
14957                          -2147483649_ mdiv           -2147483648_ <>                1_ or
14958                          -2147483649_ mdiv           -2147483649_ <>                1_ or
14959                          -4294967295_ mdiv           -4294967295_ <>                1_ or
14960                          -4294967295_ mdiv           -4294967296_ <>                0_ or
14961                          -4294967295_ mdiv           -4294967297_ <>                0_ or
14962                          -4294967296_ mdiv           -4294967295_ <>                1_ or
14963                          -4294967296_ mdiv           -4294967296_ <>                1_ or
14964                          -4294967296_ mdiv           -4294967297_ <>                0_ or
14965                          -4294967297_ mdiv           -4294967295_ <>                1_ or
14966                          -4294967297_ mdiv           -4294967296_ <>                1_ or
14967                          -4294967297_ mdiv           -4294967297_ <>                1_ or
14968                     -140737488355327_ mdiv      -140737488355328_ <>                0_ or
14969                     -140737488355328_ mdiv      -140737488355327_ <>                1_ or
14970                     -140737488355328_ mdiv      -140737488355328_ <>                1_ or
14971                     -140737488355328_ mdiv      -140737488355329_ <>                0_ or
14972                 -9223372036854775807_ mdiv                -32768_ <>  281474976710655_ or
14973                 -9223090561878065152_ mdiv                -32767_ <>  281474976710656_ or
14974                          -4294967296_ mdiv                -32768_ <>           131072_ or
14975                          -4295229444_ mdiv                -65538_ <>            65538_ or
14976                          -8629125120_ mdiv           -4833607680_ <>                1_ or
14977                -18446744073709551616_ mdiv                -32767_ <>  562967133814800_ or
14978                -18446744073709551616_ mdiv                -32768_ <>  562949953421312_ or
14979                -18446744073709551616_ mdiv                -65535_ <>  281479271743489_ or
14980                -18446744073709551616_ mdiv               -131071_ <>  140738562105344_ or
14981                -18446744073709551616_ mdiv           -2147483648_ <>       8589934592_ or
14982                -18446744073709551616_ mdiv           -4294967296_ <>       4294967296_ or
14983                -18446744073709551616_ mdiv           -4294967297_ <>       4294967295_ or
14984                -18446744073709551616_ mdiv -18446744073709551616_ <>                1_ or
14985                -18446744073709551616_ mdiv -18446744073709551617_ <>                0_ or
14986                 -9223372036854775808_ mdiv      -140737488355329_ <>            65535_ or
14987                 -9223372036854775808_ mdiv      -140737488420863_ <>            65535_ or
14988                 -9223372036854775808_ mdiv      -140737488420864_ <>            65535_ or
14989                 -9223372036854775808_ mdiv      -140741783322623_ <>            65534_ or
14990                 -1152921504606846976_ mdiv       -17596481011711_ <>            65520_ or
14991                 -9223231303661387776_ mdiv      -140739636002821_ <>            65533_ or
14992       -39614081257132168796771975168_ mdiv  -9223372036854775809_ <>       4294967295_ then
14993      writeln("Modulo division of bigInteger does not work correct. (4)");
14994      okay := FALSE;
14995    end if;
14996
14997    if            -9223372036854775808_  mdiv            9223372036854775808_  <> -1_ or
14998                  -9223372036854775808_  mdiv            9223372036854775809_  <> -1_ or
14999                  -9223372036854775807_  mdiv            9223372036854775808_  <> -1_ or
15000                  -9223372036854775808_  mdiv bigintExpr(9223372036854775808_) <> -1_ or
15001                  -9223372036854775808_  mdiv bigintExpr(9223372036854775809_) <> -1_ or
15002                  -9223372036854775807_  mdiv bigintExpr(9223372036854775808_) <> -1_ or
15003       bigintExpr(-9223372036854775808_) mdiv            9223372036854775808_  <> -1_ or
15004       bigintExpr(-9223372036854775808_) mdiv            9223372036854775809_  <> -1_ or
15005       bigintExpr(-9223372036854775807_) mdiv            9223372036854775808_  <> -1_ or
15006       bigintExpr(-9223372036854775808_) mdiv bigintExpr(9223372036854775808_) <> -1_ or
15007       bigintExpr(-9223372036854775808_) mdiv bigintExpr(9223372036854775809_) <> -1_ or
15008       bigintExpr(-9223372036854775807_) mdiv bigintExpr(9223372036854775808_) <> -1_ or
15009                  -39614081257132168796771975168_  mdiv            39614081257132168796771975168_  <> -1_ or
15010                  -39614081257132168796771975168_  mdiv            39614081257132168796771975169_  <> -1_ or
15011                  -39614081257132168796771975167_  mdiv            39614081257132168796771975168_  <> -1_ or
15012                  -39614081257132168796771975168_  mdiv bigintExpr(39614081257132168796771975168_) <> -1_ or
15013                  -39614081257132168796771975168_  mdiv bigintExpr(39614081257132168796771975169_) <> -1_ or
15014                  -39614081257132168796771975167_  mdiv bigintExpr(39614081257132168796771975168_) <> -1_ or
15015       bigintExpr(-39614081257132168796771975168_) mdiv            39614081257132168796771975168_  <> -1_ or
15016       bigintExpr(-39614081257132168796771975168_) mdiv            39614081257132168796771975169_  <> -1_ or
15017       bigintExpr(-39614081257132168796771975167_) mdiv            39614081257132168796771975168_  <> -1_ or
15018       bigintExpr(-39614081257132168796771975168_) mdiv bigintExpr(39614081257132168796771975168_) <> -1_ or
15019       bigintExpr(-39614081257132168796771975168_) mdiv bigintExpr(39614081257132168796771975169_) <> -1_ or
15020       bigintExpr(-39614081257132168796771975167_) mdiv bigintExpr(39614081257132168796771975168_) <> -1_ or
15021                  -170141183460469231731687303715884105728_  mdiv            170141183460469231731687303715884105728_  <> -1_ or
15022                  -170141183460469231731687303715884105728_  mdiv            170141183460469231731687303715884105729_  <> -1_ or
15023                  -170141183460469231731687303715884105727_  mdiv            170141183460469231731687303715884105728_  <> -1_ or
15024                  -170141183460469231731687303715884105728_  mdiv bigintExpr(170141183460469231731687303715884105728_) <> -1_ or
15025                  -170141183460469231731687303715884105728_  mdiv bigintExpr(170141183460469231731687303715884105729_) <> -1_ or
15026                  -170141183460469231731687303715884105727_  mdiv bigintExpr(170141183460469231731687303715884105728_) <> -1_ or
15027       bigintExpr(-170141183460469231731687303715884105728_) mdiv            170141183460469231731687303715884105728_  <> -1_ or
15028       bigintExpr(-170141183460469231731687303715884105728_) mdiv            170141183460469231731687303715884105729_  <> -1_ or
15029       bigintExpr(-170141183460469231731687303715884105727_) mdiv            170141183460469231731687303715884105728_  <> -1_ or
15030       bigintExpr(-170141183460469231731687303715884105728_) mdiv bigintExpr(170141183460469231731687303715884105728_) <> -1_ or
15031       bigintExpr(-170141183460469231731687303715884105728_) mdiv bigintExpr(170141183460469231731687303715884105729_) <> -1_ or
15032       bigintExpr(-170141183460469231731687303715884105727_) mdiv bigintExpr(170141183460469231731687303715884105728_) <> -1_ then
15033      writeln("Modulo division of bigInteger does not work correct. (5)");
15034      okay := FALSE;
15035    end if;
15036
15037    if              9223372036854775807_  mdiv                                            9223372036854775808_  <>  0_ or
15038                    9223372036854775807_  mdiv             99999999999999999999999999999999999999999999999999_  <>  0_ or
15039                    9223372036854775807_  mdiv                                           -9223372036854775809_  <> -1_ or
15040                    9223372036854775807_  mdiv            -99999999999999999999999999999999999999999999999999_  <> -1_ or
15041                   -9223372036854775808_  mdiv                                            9223372036854775808_  <> -1_ or
15042                   -9223372036854775808_  mdiv             99999999999999999999999999999999999999999999999999_  <> -1_ or
15043                   -9223372036854775808_  mdiv                                           -9223372036854775809_  <>  0_ or
15044                   -9223372036854775808_  mdiv            -99999999999999999999999999999999999999999999999999_  <>  0_ or
15045                    9223372036854775807_  mdiv bigintExpr(                                9223372036854775808_) <>  0_ or
15046                    9223372036854775807_  mdiv bigintExpr( 99999999999999999999999999999999999999999999999999_) <>  0_ or
15047                    9223372036854775807_  mdiv bigintExpr(                               -9223372036854775809_) <> -1_ or
15048                    9223372036854775807_  mdiv bigintExpr(-99999999999999999999999999999999999999999999999999_) <> -1_ or
15049                   -9223372036854775808_  mdiv bigintExpr(                                9223372036854775808_) <> -1_ or
15050                   -9223372036854775808_  mdiv bigintExpr( 99999999999999999999999999999999999999999999999999_) <> -1_ or
15051                   -9223372036854775808_  mdiv bigintExpr(                               -9223372036854775809_) <>  0_ or
15052                   -9223372036854775808_  mdiv bigintExpr(-99999999999999999999999999999999999999999999999999_) <>  0_ or
15053        bigintExpr( 9223372036854775807_) mdiv                                            9223372036854775808_  <>  0_ or
15054        bigintExpr( 9223372036854775807_) mdiv             99999999999999999999999999999999999999999999999999_  <>  0_ or
15055        bigintExpr( 9223372036854775807_) mdiv                                           -9223372036854775809_  <> -1_ or
15056        bigintExpr( 9223372036854775807_) mdiv            -99999999999999999999999999999999999999999999999999_  <> -1_ or
15057        bigintExpr(-9223372036854775808_) mdiv                                            9223372036854775808_  <> -1_ or
15058        bigintExpr(-9223372036854775808_) mdiv             99999999999999999999999999999999999999999999999999_  <> -1_ or
15059        bigintExpr(-9223372036854775808_) mdiv                                           -9223372036854775809_  <>  0_ or
15060        bigintExpr(-9223372036854775808_) mdiv            -99999999999999999999999999999999999999999999999999_  <>  0_ or
15061        bigintExpr( 9223372036854775807_) mdiv bigintExpr(                                9223372036854775808_) <>  0_ or
15062        bigintExpr( 9223372036854775807_) mdiv bigintExpr( 99999999999999999999999999999999999999999999999999_) <>  0_ or
15063        bigintExpr( 9223372036854775807_) mdiv bigintExpr(                               -9223372036854775809_) <> -1_ or
15064        bigintExpr( 9223372036854775807_) mdiv bigintExpr(-99999999999999999999999999999999999999999999999999_) <> -1_ or
15065        bigintExpr(-9223372036854775808_) mdiv bigintExpr(                                9223372036854775808_) <> -1_ or
15066        bigintExpr(-9223372036854775808_) mdiv bigintExpr( 99999999999999999999999999999999999999999999999999_) <> -1_ or
15067        bigintExpr(-9223372036854775808_) mdiv bigintExpr(                               -9223372036854775809_) <>  0_ or
15068        bigintExpr(-9223372036854775808_) mdiv bigintExpr(-99999999999999999999999999999999999999999999999999_) <>  0_ then
15069      writeln("Modulo division of bigInteger does not work correct. (6)");
15070      okay := FALSE;
15071    end if;
15072
15073    if  0_ mdiv -170141183460469231731687303715884105729_ <> 0_ or
15074        0_ mdiv -170141183460469231731687303715884105728_ <> 0_ or
15075        0_ mdiv                     -9223372036854775809_ <> 0_ or
15076        0_ mdiv                     -9223372036854775808_ <> 0_ or
15077        0_ mdiv                              -2147483649_ <> 0_ or
15078        0_ mdiv                              -2147483648_ <> 0_ or
15079        0_ mdiv                                   -32769_ <> 0_ or
15080        0_ mdiv                                   -32768_ <> 0_ or
15081        0_ mdiv                                     -129_ <> 0_ or
15082        0_ mdiv                                     -128_ <> 0_ or
15083        0_ mdiv                                       -1_ <> 0_ or
15084        0_ mdiv                                        1_ <> 0_ or
15085        0_ mdiv                                      127_ <> 0_ or
15086        0_ mdiv                                      128_ <> 0_ or
15087        0_ mdiv                                    32767_ <> 0_ or
15088        0_ mdiv                                    32768_ <> 0_ or
15089        0_ mdiv                               2147483647_ <> 0_ or
15090        0_ mdiv                               2147483648_ <> 0_ or
15091        0_ mdiv                      9223372036854775807_ <> 0_ or
15092        0_ mdiv                      9223372036854775808_ <> 0_ or
15093        0_ mdiv  170141183460469231731687303715884105727_ <> 0_ or
15094        0_ mdiv  170141183460469231731687303715884105728_ <> 0_ or
15095        0_ mdiv bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
15096        0_ mdiv bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
15097        0_ mdiv bigintExpr(                    -9223372036854775809_) <> 0_ or
15098        0_ mdiv bigintExpr(                    -9223372036854775808_) <> 0_ or
15099        0_ mdiv bigintExpr(                             -2147483649_) <> 0_ or
15100        0_ mdiv bigintExpr(                             -2147483648_) <> 0_ or
15101        0_ mdiv bigintExpr(                                  -32769_) <> 0_ or
15102        0_ mdiv bigintExpr(                                  -32768_) <> 0_ or
15103        0_ mdiv bigintExpr(                                    -129_) <> 0_ or
15104        0_ mdiv bigintExpr(                                    -128_) <> 0_ or
15105        0_ mdiv bigintExpr(                                      -1_) <> 0_ or
15106        0_ mdiv bigintExpr(                                       1_) <> 0_ or
15107        0_ mdiv bigintExpr(                                     127_) <> 0_ or
15108        0_ mdiv bigintExpr(                                     128_) <> 0_ or
15109        0_ mdiv bigintExpr(                                   32767_) <> 0_ or
15110        0_ mdiv bigintExpr(                                   32768_) <> 0_ or
15111        0_ mdiv bigintExpr(                              2147483647_) <> 0_ or
15112        0_ mdiv bigintExpr(                              2147483648_) <> 0_ or
15113        0_ mdiv bigintExpr(                     9223372036854775807_) <> 0_ or
15114        0_ mdiv bigintExpr(                     9223372036854775808_) <> 0_ or
15115        0_ mdiv bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
15116        0_ mdiv bigintExpr( 170141183460469231731687303715884105728_) <> 0_ or
15117        bigintExpr(0_) mdiv -170141183460469231731687303715884105729_ <> 0_ or
15118        bigintExpr(0_) mdiv -170141183460469231731687303715884105728_ <> 0_ or
15119        bigintExpr(0_) mdiv                     -9223372036854775809_ <> 0_ or
15120        bigintExpr(0_) mdiv                     -9223372036854775808_ <> 0_ or
15121        bigintExpr(0_) mdiv                              -2147483649_ <> 0_ or
15122        bigintExpr(0_) mdiv                              -2147483648_ <> 0_ or
15123        bigintExpr(0_) mdiv                                   -32769_ <> 0_ or
15124        bigintExpr(0_) mdiv                                   -32768_ <> 0_ or
15125        bigintExpr(0_) mdiv                                     -129_ <> 0_ or
15126        bigintExpr(0_) mdiv                                     -128_ <> 0_ or
15127        bigintExpr(0_) mdiv                                       -1_ <> 0_ or
15128        bigintExpr(0_) mdiv                                        1_ <> 0_ or
15129        bigintExpr(0_) mdiv                                      127_ <> 0_ or
15130        bigintExpr(0_) mdiv                                      128_ <> 0_ or
15131        bigintExpr(0_) mdiv                                    32767_ <> 0_ or
15132        bigintExpr(0_) mdiv                                    32768_ <> 0_ or
15133        bigintExpr(0_) mdiv                               2147483647_ <> 0_ or
15134        bigintExpr(0_) mdiv                               2147483648_ <> 0_ or
15135        bigintExpr(0_) mdiv                      9223372036854775807_ <> 0_ or
15136        bigintExpr(0_) mdiv                      9223372036854775808_ <> 0_ or
15137        bigintExpr(0_) mdiv  170141183460469231731687303715884105727_ <> 0_ or
15138        bigintExpr(0_) mdiv  170141183460469231731687303715884105728_ <> 0_ or
15139        bigintExpr(0_) mdiv bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
15140        bigintExpr(0_) mdiv bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
15141        bigintExpr(0_) mdiv bigintExpr(                    -9223372036854775809_) <> 0_ or
15142        bigintExpr(0_) mdiv bigintExpr(                    -9223372036854775808_) <> 0_ or
15143        bigintExpr(0_) mdiv bigintExpr(                             -2147483649_) <> 0_ or
15144        bigintExpr(0_) mdiv bigintExpr(                             -2147483648_) <> 0_ or
15145        bigintExpr(0_) mdiv bigintExpr(                                  -32769_) <> 0_ or
15146        bigintExpr(0_) mdiv bigintExpr(                                  -32768_) <> 0_ or
15147        bigintExpr(0_) mdiv bigintExpr(                                    -129_) <> 0_ or
15148        bigintExpr(0_) mdiv bigintExpr(                                    -128_) <> 0_ or
15149        bigintExpr(0_) mdiv bigintExpr(                                      -1_) <> 0_ or
15150        bigintExpr(0_) mdiv bigintExpr(                                       1_) <> 0_ or
15151        bigintExpr(0_) mdiv bigintExpr(                                     127_) <> 0_ or
15152        bigintExpr(0_) mdiv bigintExpr(                                     128_) <> 0_ or
15153        bigintExpr(0_) mdiv bigintExpr(                                   32767_) <> 0_ or
15154        bigintExpr(0_) mdiv bigintExpr(                                   32768_) <> 0_ or
15155        bigintExpr(0_) mdiv bigintExpr(                              2147483647_) <> 0_ or
15156        bigintExpr(0_) mdiv bigintExpr(                              2147483648_) <> 0_ or
15157        bigintExpr(0_) mdiv bigintExpr(                     9223372036854775807_) <> 0_ or
15158        bigintExpr(0_) mdiv bigintExpr(                     9223372036854775808_) <> 0_ or
15159        bigintExpr(0_) mdiv bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
15160        bigintExpr(0_) mdiv bigintExpr( 170141183460469231731687303715884105728_) <> 0_ then
15161      writeln("Modulo division of bigInteger does not work correct. (7)");
15162      okay := FALSE;
15163    end if;
15164
15165    if   280223983525050_ mdiv              1_ <>  280223983525050_ or
15166         280223983525050_ mdiv              2_ <>  140111991762525_ or
15167         280223983525050_ mdiv              4_ <>   70055995881262_ or
15168         280223983525050_ mdiv              8_ <>   35027997940631_ or
15169         280223983525050_ mdiv           1024_ <>     273656233911_ or
15170         280223983525050_ mdiv        1048576_ <>        267242415_ or
15171         280223983525050_ mdiv     1073741824_ <>           260978_ or
15172         280223983525050_ mdiv     2147483648_ <>           130489_ or
15173         280223983525050_ mdiv     4294967296_ <>            65244_ or
15174         280223983525050_ mdiv  1099511627776_ <>              254_ or
15175         280223983525050_ mdiv             -1_ <> -280223983525050_ or
15176         280223983525050_ mdiv             -2_ <> -140111991762525_ or
15177         280223983525050_ mdiv             -4_ <>  -70055995881263_ or
15178         280223983525050_ mdiv             -8_ <>  -35027997940632_ or
15179         280223983525050_ mdiv          -1024_ <>    -273656233912_ or
15180         280223983525050_ mdiv       -1048576_ <>       -267242416_ or
15181         280223983525050_ mdiv    -1073741824_ <>          -260979_ or
15182         280223983525050_ mdiv    -2147483648_ <>          -130490_ or
15183         280223983525050_ mdiv    -4294967296_ <>           -65245_ or
15184         280223983525050_ mdiv -1099511627776_ <>             -255_ or
15185        -280223983525050_ mdiv              1_ <> -280223983525050_ or
15186        -280223983525050_ mdiv              2_ <> -140111991762525_ or
15187        -280223983525050_ mdiv              4_ <>  -70055995881263_ or
15188        -280223983525050_ mdiv              8_ <>  -35027997940632_ or
15189        -280223983525050_ mdiv           1024_ <>    -273656233912_ or
15190        -280223983525050_ mdiv        1048576_ <>       -267242416_ or
15191        -280223983525050_ mdiv     1073741824_ <>          -260979_ or
15192        -280223983525050_ mdiv     2147483648_ <>          -130490_ or
15193        -280223983525050_ mdiv     4294967296_ <>           -65245_ or
15194        -280223983525050_ mdiv  1099511627776_ <>             -255_ or
15195        -280223983525050_ mdiv             -1_ <>  280223983525050_ or
15196        -280223983525050_ mdiv             -2_ <>  140111991762525_ or
15197        -280223983525050_ mdiv             -4_ <>   70055995881262_ or
15198        -280223983525050_ mdiv             -8_ <>   35027997940631_ or
15199        -280223983525050_ mdiv          -1024_ <>     273656233911_ or
15200        -280223983525050_ mdiv       -1048576_ <>        267242415_ or
15201        -280223983525050_ mdiv    -1073741824_ <>           260978_ or
15202        -280223983525050_ mdiv    -2147483648_ <>           130489_ or
15203        -280223983525050_ mdiv    -4294967296_ <>            65244_ or
15204        -280223983525050_ mdiv -1099511627776_ <>              254_ or
15205
15206         280223983525050_ mdiv bigintExpr(             1_) <>  280223983525050_ or
15207         280223983525050_ mdiv bigintExpr(             2_) <>  140111991762525_ or
15208         280223983525050_ mdiv bigintExpr(             4_) <>   70055995881262_ or
15209         280223983525050_ mdiv bigintExpr(             8_) <>   35027997940631_ or
15210         280223983525050_ mdiv bigintExpr(          1024_) <>     273656233911_ or
15211         280223983525050_ mdiv bigintExpr(       1048576_) <>        267242415_ or
15212         280223983525050_ mdiv bigintExpr(    1073741824_) <>           260978_ or
15213         280223983525050_ mdiv bigintExpr(    2147483648_) <>           130489_ or
15214         280223983525050_ mdiv bigintExpr(    4294967296_) <>            65244_ or
15215         280223983525050_ mdiv bigintExpr( 1099511627776_) <>              254_ or
15216         280223983525050_ mdiv bigintExpr(            -1_) <> -280223983525050_ or
15217         280223983525050_ mdiv bigintExpr(            -2_) <> -140111991762525_ or
15218         280223983525050_ mdiv bigintExpr(            -4_) <>  -70055995881263_ or
15219         280223983525050_ mdiv bigintExpr(            -8_) <>  -35027997940632_ or
15220         280223983525050_ mdiv bigintExpr(         -1024_) <>    -273656233912_ or
15221         280223983525050_ mdiv bigintExpr(      -1048576_) <>       -267242416_ or
15222         280223983525050_ mdiv bigintExpr(   -1073741824_) <>          -260979_ or
15223         280223983525050_ mdiv bigintExpr(   -2147483648_) <>          -130490_ or
15224         280223983525050_ mdiv bigintExpr(   -4294967296_) <>           -65245_ or
15225         280223983525050_ mdiv bigintExpr(-1099511627776_) <>             -255_ or
15226        -280223983525050_ mdiv bigintExpr(             1_) <> -280223983525050_ or
15227        -280223983525050_ mdiv bigintExpr(             2_) <> -140111991762525_ or
15228        -280223983525050_ mdiv bigintExpr(             4_) <>  -70055995881263_ or
15229        -280223983525050_ mdiv bigintExpr(             8_) <>  -35027997940632_ or
15230        -280223983525050_ mdiv bigintExpr(          1024_) <>    -273656233912_ or
15231        -280223983525050_ mdiv bigintExpr(       1048576_) <>       -267242416_ or
15232        -280223983525050_ mdiv bigintExpr(    1073741824_) <>          -260979_ or
15233        -280223983525050_ mdiv bigintExpr(    2147483648_) <>          -130490_ or
15234        -280223983525050_ mdiv bigintExpr(    4294967296_) <>           -65245_ or
15235        -280223983525050_ mdiv bigintExpr( 1099511627776_) <>             -255_ or
15236        -280223983525050_ mdiv bigintExpr(            -1_) <>  280223983525050_ or
15237        -280223983525050_ mdiv bigintExpr(            -2_) <>  140111991762525_ or
15238        -280223983525050_ mdiv bigintExpr(            -4_) <>   70055995881262_ or
15239        -280223983525050_ mdiv bigintExpr(            -8_) <>   35027997940631_ or
15240        -280223983525050_ mdiv bigintExpr(         -1024_) <>     273656233911_ or
15241        -280223983525050_ mdiv bigintExpr(      -1048576_) <>        267242415_ or
15242        -280223983525050_ mdiv bigintExpr(   -1073741824_) <>           260978_ or
15243        -280223983525050_ mdiv bigintExpr(   -2147483648_) <>           130489_ or
15244        -280223983525050_ mdiv bigintExpr(   -4294967296_) <>            65244_ or
15245        -280223983525050_ mdiv bigintExpr(-1099511627776_) <>              254_ or
15246
15247        bigintExpr( 280223983525050_) mdiv              1_ <>  280223983525050_ or
15248        bigintExpr( 280223983525050_) mdiv              2_ <>  140111991762525_ or
15249        bigintExpr( 280223983525050_) mdiv              4_ <>   70055995881262_ or
15250        bigintExpr( 280223983525050_) mdiv              8_ <>   35027997940631_ or
15251        bigintExpr( 280223983525050_) mdiv           1024_ <>     273656233911_ or
15252        bigintExpr( 280223983525050_) mdiv        1048576_ <>        267242415_ or
15253        bigintExpr( 280223983525050_) mdiv     1073741824_ <>           260978_ or
15254        bigintExpr( 280223983525050_) mdiv     2147483648_ <>           130489_ or
15255        bigintExpr( 280223983525050_) mdiv     4294967296_ <>            65244_ or
15256        bigintExpr( 280223983525050_) mdiv  1099511627776_ <>              254_ or
15257        bigintExpr( 280223983525050_) mdiv             -1_ <> -280223983525050_ or
15258        bigintExpr( 280223983525050_) mdiv             -2_ <> -140111991762525_ or
15259        bigintExpr( 280223983525050_) mdiv             -4_ <>  -70055995881263_ or
15260        bigintExpr( 280223983525050_) mdiv             -8_ <>  -35027997940632_ or
15261        bigintExpr( 280223983525050_) mdiv          -1024_ <>    -273656233912_ or
15262        bigintExpr( 280223983525050_) mdiv       -1048576_ <>       -267242416_ or
15263        bigintExpr( 280223983525050_) mdiv    -1073741824_ <>          -260979_ or
15264        bigintExpr( 280223983525050_) mdiv    -2147483648_ <>          -130490_ or
15265        bigintExpr( 280223983525050_) mdiv    -4294967296_ <>           -65245_ or
15266        bigintExpr( 280223983525050_) mdiv -1099511627776_ <>             -255_ or
15267        bigintExpr(-280223983525050_) mdiv              1_ <> -280223983525050_ or
15268        bigintExpr(-280223983525050_) mdiv              2_ <> -140111991762525_ or
15269        bigintExpr(-280223983525050_) mdiv              4_ <>  -70055995881263_ or
15270        bigintExpr(-280223983525050_) mdiv              8_ <>  -35027997940632_ or
15271        bigintExpr(-280223983525050_) mdiv           1024_ <>    -273656233912_ or
15272        bigintExpr(-280223983525050_) mdiv        1048576_ <>       -267242416_ or
15273        bigintExpr(-280223983525050_) mdiv     1073741824_ <>          -260979_ or
15274        bigintExpr(-280223983525050_) mdiv     2147483648_ <>          -130490_ or
15275        bigintExpr(-280223983525050_) mdiv     4294967296_ <>           -65245_ or
15276        bigintExpr(-280223983525050_) mdiv  1099511627776_ <>             -255_ or
15277        bigintExpr(-280223983525050_) mdiv             -1_ <>  280223983525050_ or
15278        bigintExpr(-280223983525050_) mdiv             -2_ <>  140111991762525_ or
15279        bigintExpr(-280223983525050_) mdiv             -4_ <>   70055995881262_ or
15280        bigintExpr(-280223983525050_) mdiv             -8_ <>   35027997940631_ or
15281        bigintExpr(-280223983525050_) mdiv          -1024_ <>     273656233911_ or
15282        bigintExpr(-280223983525050_) mdiv       -1048576_ <>        267242415_ or
15283        bigintExpr(-280223983525050_) mdiv    -1073741824_ <>           260978_ or
15284        bigintExpr(-280223983525050_) mdiv    -2147483648_ <>           130489_ or
15285        bigintExpr(-280223983525050_) mdiv    -4294967296_ <>            65244_ or
15286        bigintExpr(-280223983525050_) mdiv -1099511627776_ <>              254_ or
15287
15288        bigintExpr( 280223983525050_) mdiv bigintExpr(             1_) <>  280223983525050_ or
15289        bigintExpr( 280223983525050_) mdiv bigintExpr(             2_) <>  140111991762525_ or
15290        bigintExpr( 280223983525050_) mdiv bigintExpr(             4_) <>   70055995881262_ or
15291        bigintExpr( 280223983525050_) mdiv bigintExpr(             8_) <>   35027997940631_ or
15292        bigintExpr( 280223983525050_) mdiv bigintExpr(          1024_) <>     273656233911_ or
15293        bigintExpr( 280223983525050_) mdiv bigintExpr(       1048576_) <>        267242415_ or
15294        bigintExpr( 280223983525050_) mdiv bigintExpr(    1073741824_) <>           260978_ or
15295        bigintExpr( 280223983525050_) mdiv bigintExpr(    2147483648_) <>           130489_ or
15296        bigintExpr( 280223983525050_) mdiv bigintExpr(    4294967296_) <>            65244_ or
15297        bigintExpr( 280223983525050_) mdiv bigintExpr( 1099511627776_) <>              254_ or
15298        bigintExpr( 280223983525050_) mdiv bigintExpr(            -1_) <> -280223983525050_ or
15299        bigintExpr( 280223983525050_) mdiv bigintExpr(            -2_) <> -140111991762525_ or
15300        bigintExpr( 280223983525050_) mdiv bigintExpr(            -4_) <>  -70055995881263_ or
15301        bigintExpr( 280223983525050_) mdiv bigintExpr(            -8_) <>  -35027997940632_ or
15302        bigintExpr( 280223983525050_) mdiv bigintExpr(         -1024_) <>    -273656233912_ or
15303        bigintExpr( 280223983525050_) mdiv bigintExpr(      -1048576_) <>       -267242416_ or
15304        bigintExpr( 280223983525050_) mdiv bigintExpr(   -1073741824_) <>          -260979_ or
15305        bigintExpr( 280223983525050_) mdiv bigintExpr(   -2147483648_) <>          -130490_ or
15306        bigintExpr( 280223983525050_) mdiv bigintExpr(   -4294967296_) <>           -65245_ or
15307        bigintExpr( 280223983525050_) mdiv bigintExpr(-1099511627776_) <>             -255_ or
15308        bigintExpr(-280223983525050_) mdiv bigintExpr(             1_) <> -280223983525050_ or
15309        bigintExpr(-280223983525050_) mdiv bigintExpr(             2_) <> -140111991762525_ or
15310        bigintExpr(-280223983525050_) mdiv bigintExpr(             4_) <>  -70055995881263_ or
15311        bigintExpr(-280223983525050_) mdiv bigintExpr(             8_) <>  -35027997940632_ or
15312        bigintExpr(-280223983525050_) mdiv bigintExpr(          1024_) <>    -273656233912_ or
15313        bigintExpr(-280223983525050_) mdiv bigintExpr(       1048576_) <>       -267242416_ or
15314        bigintExpr(-280223983525050_) mdiv bigintExpr(    1073741824_) <>          -260979_ or
15315        bigintExpr(-280223983525050_) mdiv bigintExpr(    2147483648_) <>          -130490_ or
15316        bigintExpr(-280223983525050_) mdiv bigintExpr(    4294967296_) <>           -65245_ or
15317        bigintExpr(-280223983525050_) mdiv bigintExpr( 1099511627776_) <>             -255_ or
15318        bigintExpr(-280223983525050_) mdiv bigintExpr(            -1_) <>  280223983525050_ or
15319        bigintExpr(-280223983525050_) mdiv bigintExpr(            -2_) <>  140111991762525_ or
15320        bigintExpr(-280223983525050_) mdiv bigintExpr(            -4_) <>   70055995881262_ or
15321        bigintExpr(-280223983525050_) mdiv bigintExpr(            -8_) <>   35027997940631_ or
15322        bigintExpr(-280223983525050_) mdiv bigintExpr(         -1024_) <>     273656233911_ or
15323        bigintExpr(-280223983525050_) mdiv bigintExpr(      -1048576_) <>        267242415_ or
15324        bigintExpr(-280223983525050_) mdiv bigintExpr(   -1073741824_) <>           260978_ or
15325        bigintExpr(-280223983525050_) mdiv bigintExpr(   -2147483648_) <>           130489_ or
15326        bigintExpr(-280223983525050_) mdiv bigintExpr(   -4294967296_) <>            65244_ or
15327        bigintExpr(-280223983525050_) mdiv bigintExpr(-1099511627776_) <>              254_ then
15328      writeln("Modulo division of bigInteger by power of two does not work correct.");
15329      okay := FALSE;
15330    end if;
15331
15332    number := 123456789012345678901234567890_;
15333    if  number mdiv                            -1_ <> -123456789012345678901234567890_ or
15334        number mdiv                            -2_ <>  -61728394506172839450617283945_ or
15335        number mdiv                            -3_ <>  -41152263004115226300411522630_ or
15336        number mdiv                            -4_ <>  -30864197253086419725308641973_ or
15337        number mdiv                         -1023_ <>    -120681123179223537537863703_ or
15338        number mdiv                         -1024_ <>    -120563270519868827051986883_ or
15339        number mdiv                      -1048576_ <>       -117737568867059401417956_ or
15340        number mdiv                   -1073741824_ <>          -114978094596737696698_ or
15341        number mdiv                   -2147483647_ <>           -57489047325139272133_ or
15342        number mdiv                   -4294967295_ <>           -28744523655877030119_ or
15343        number mdiv                -1099511627776_ <>             -112283295504626657_ or
15344        number mdiv          -1152921504606846976_ <>                   -107081695085_ or
15345        number mdiv    -1208925819614629174706176_ <>                         -102122_ or
15346        number mdiv -1237940039285380274899124224_ <>                            -100_ then
15347      writeln("Modulo division of bigInteger by negative number does not work correct.");
15348      okay := FALSE;
15349    end if;
15350
15351    if  not raisesNumericError(           -9223372036854775808_  mdiv            0_ ) or
15352        not raisesNumericError(           -9223372036854775807_  mdiv            0_ ) or
15353        not raisesNumericError(                    -4294967296_  mdiv            0_ ) or
15354        not raisesNumericError(                    -4294967295_  mdiv            0_ ) or
15355        not raisesNumericError(                    -2147483648_  mdiv            0_ ) or
15356        not raisesNumericError(                    -2147483647_  mdiv            0_ ) or
15357        not raisesNumericError(                              0_  mdiv            0_ ) or
15358        not raisesNumericError(                     2147483647_  mdiv            0_ ) or
15359        not raisesNumericError(                     2147483648_  mdiv            0_ ) or
15360        not raisesNumericError(                     4294967295_  mdiv            0_ ) or
15361        not raisesNumericError(                     4294967296_  mdiv            0_ ) or
15362        not raisesNumericError(            9223372036854775807_  mdiv            0_ ) or
15363        not raisesNumericError(            9223372036854775808_  mdiv            0_ ) or
15364        not raisesNumericError(bigintExpr(-9223372036854775808_) mdiv            0_ ) or
15365        not raisesNumericError(bigintExpr(-9223372036854775807_) mdiv            0_ ) or
15366        not raisesNumericError(bigintExpr(         -4294967296_) mdiv            0_ ) or
15367        not raisesNumericError(bigintExpr(         -4294967295_) mdiv            0_ ) or
15368        not raisesNumericError(bigintExpr(         -2147483648_) mdiv            0_ ) or
15369        not raisesNumericError(bigintExpr(         -2147483647_) mdiv            0_ ) or
15370        not raisesNumericError(bigintExpr(                   0_) mdiv            0_ ) or
15371        not raisesNumericError(bigintExpr(          2147483647_) mdiv            0_ ) or
15372        not raisesNumericError(bigintExpr(          2147483648_) mdiv            0_ ) or
15373        not raisesNumericError(bigintExpr(          4294967295_) mdiv            0_ ) or
15374        not raisesNumericError(bigintExpr(          4294967296_) mdiv            0_ ) or
15375        not raisesNumericError(bigintExpr( 9223372036854775807_) mdiv            0_ ) or
15376        not raisesNumericError(bigintExpr( 9223372036854775808_) mdiv            0_ ) or
15377        not raisesNumericError(           -9223372036854775808_  mdiv bigintExpr(0_)) or
15378        not raisesNumericError(           -9223372036854775807_  mdiv bigintExpr(0_)) or
15379        not raisesNumericError(                    -4294967296_  mdiv bigintExpr(0_)) or
15380        not raisesNumericError(                    -4294967295_  mdiv bigintExpr(0_)) or
15381        not raisesNumericError(                    -2147483648_  mdiv bigintExpr(0_)) or
15382        not raisesNumericError(                    -2147483647_  mdiv bigintExpr(0_)) or
15383        not raisesNumericError(                              0_  mdiv bigintExpr(0_)) or
15384        not raisesNumericError(                     2147483647_  mdiv bigintExpr(0_)) or
15385        not raisesNumericError(                     2147483648_  mdiv bigintExpr(0_)) or
15386        not raisesNumericError(                     4294967295_  mdiv bigintExpr(0_)) or
15387        not raisesNumericError(                     4294967296_  mdiv bigintExpr(0_)) or
15388        not raisesNumericError(            9223372036854775807_  mdiv bigintExpr(0_)) or
15389        not raisesNumericError(            9223372036854775808_  mdiv bigintExpr(0_)) or
15390        not raisesNumericError(bigintExpr(-9223372036854775808_) mdiv bigintExpr(0_)) or
15391        not raisesNumericError(bigintExpr(-9223372036854775807_) mdiv bigintExpr(0_)) or
15392        not raisesNumericError(bigintExpr(         -4294967296_) mdiv bigintExpr(0_)) or
15393        not raisesNumericError(bigintExpr(         -4294967295_) mdiv bigintExpr(0_)) or
15394        not raisesNumericError(bigintExpr(         -2147483648_) mdiv bigintExpr(0_)) or
15395        not raisesNumericError(bigintExpr(         -2147483647_) mdiv bigintExpr(0_)) or
15396        not raisesNumericError(bigintExpr(                   0_) mdiv bigintExpr(0_)) or
15397        not raisesNumericError(bigintExpr(          2147483647_) mdiv bigintExpr(0_)) or
15398        not raisesNumericError(bigintExpr(          2147483648_) mdiv bigintExpr(0_)) or
15399        not raisesNumericError(bigintExpr(          4294967295_) mdiv bigintExpr(0_)) or
15400        not raisesNumericError(bigintExpr(          4294967296_) mdiv bigintExpr(0_)) or
15401        not raisesNumericError(bigintExpr( 9223372036854775807_) mdiv bigintExpr(0_)) or
15402        not raisesNumericError(bigintExpr( 9223372036854775808_) mdiv bigintExpr(0_)) then
15403      writeln(" ***** Modulo division of bigInteger by zero does not raise NUMERIC_ERROR.");
15404      okay := FALSE;
15405    end if;
15406
15407    if okay then
15408      writeln("Modulo division of bigInteger works correct.");
15409    else
15410      writeln(" ***** Modulo division of bigInteger does not work correct.");
15411      writeln;
15412    end if;
15413  end func;
15414
15415
15416const proc: chkModulo is func
15417  local
15418    var boolean: okay is TRUE;
15419  begin
15420    if                          32766_ mod                     1_ <>                     0_ or
15421                                32767_ mod                     1_ <>                     0_ or
15422                                32768_ mod                     1_ <>                     0_ or
15423                                32769_ mod                     1_ <>                     0_ or
15424                                32770_ mod                     1_ <>                     0_ or
15425                                65534_ mod                     1_ <>                     0_ or
15426                                65535_ mod                     1_ <>                     0_ or
15427                                65536_ mod                     1_ <>                     0_ or
15428                                65537_ mod                     1_ <>                     0_ or
15429                                65538_ mod                     1_ <>                     0_ or
15430                                65536_ mod                   128_ <>                     0_ or
15431                                32766_ mod                 32766_ <>                     0_ or
15432                                32767_ mod                 32767_ <>                     0_ or
15433                                32768_ mod                 32768_ <>                     0_ or
15434                                32769_ mod                 32769_ <>                     0_ or
15435                                32770_ mod                 32770_ <>                     0_ or
15436                                65534_ mod                 65534_ <>                     0_ or
15437                                65535_ mod                 65535_ <>                     0_ or
15438                                65536_ mod                 65536_ <>                     0_ or
15439                                65537_ mod                 65537_ <>                     0_ or
15440                                65538_ mod                 65538_ <>                     0_ or
15441                                32765_ mod                 32766_ <>                 32765_ or
15442                                32766_ mod                 32767_ <>                 32766_ or
15443                                32767_ mod                 32768_ <>                 32767_ or
15444                                32768_ mod                 32769_ <>                 32768_ or
15445                                32769_ mod                 32770_ <>                 32769_ or
15446                                65533_ mod                 65534_ <>                 65533_ or
15447                                65534_ mod                 65535_ <>                 65534_ or
15448                                65535_ mod                 65536_ <>                 65535_ or
15449                                65536_ mod                 65537_ <>                 65536_ or
15450                                65537_ mod                 65538_ <>                 65537_ or
15451                                32766_ mod  18446744073709551616_ <>                 32766_ or
15452                                32767_ mod  18446744073709551616_ <>                 32767_ or
15453                                32768_ mod  18446744073709551616_ <>                 32768_ or
15454                                32769_ mod  18446744073709551616_ <>                 32769_ or
15455                                32770_ mod  18446744073709551616_ <>                 32770_ or
15456                                65534_ mod  18446744073709551616_ <>                 65534_ or
15457                                65535_ mod  18446744073709551616_ <>                 65535_ or
15458                                65536_ mod  18446744073709551616_ <>                 65536_ or
15459                                65537_ mod  18446744073709551616_ <>                 65537_ or
15460                                65538_ mod  18446744073709551616_ <>                 65538_ or
15461                           2147483647_ mod            2147483647_ <>                     0_ or
15462                           2147483647_ mod            2147483648_ <>            2147483647_ or
15463                           2147483647_ mod            2147483649_ <>            2147483647_ or
15464                           2147483648_ mod            2147483647_ <>                     1_ or
15465                           2147483648_ mod            2147483648_ <>                     0_ or
15466                           2147483648_ mod            2147483649_ <>            2147483648_ or
15467                           2147483649_ mod            2147483647_ <>                     2_ or
15468                           2147483649_ mod            2147483648_ <>                     1_ or
15469                           2147483649_ mod            2147483649_ <>                     0_ or
15470                           4294967295_ mod            4294967295_ <>                     0_ or
15471                           4294967295_ mod            4294967296_ <>            4294967295_ or
15472                           4294967295_ mod            4294967297_ <>            4294967295_ or
15473                           4294967296_ mod            4294967295_ <>                     1_ or
15474                           4294967296_ mod            4294967296_ <>                     0_ or
15475                           4294967296_ mod            4294967297_ <>            4294967296_ or
15476                           4294967297_ mod            4294967295_ <>                     2_ or
15477                           4294967297_ mod            4294967296_ <>                     1_ or
15478                           4294967297_ mod            4294967297_ <>                     0_ or
15479                      140737488355327_ mod       140737488355328_ <>       140737488355327_ or
15480                      140737488355328_ mod       140737488355327_ <>                     1_ or
15481                      140737488355328_ mod       140737488355328_ <>                     0_ or
15482                      140737488355328_ mod       140737488355329_ <>       140737488355328_ or
15483                  9223372036854775807_ mod                 32768_ <>                 32767_ or
15484                  9223090561878065152_ mod                 32767_ <>                     0_ or
15485                           4294967296_ mod                 32768_ <>                     0_ or
15486                           4295229444_ mod                 65538_ <>                     0_ or
15487                           8629125120_ mod            4833607680_ <>            3795517440_ or
15488                 18446744073709551616_ mod                 32767_ <>                    16_ or
15489                 18446744073709551616_ mod                 32768_ <>                     0_ or
15490                 18446744073709551616_ mod                 65535_ <>                     1_ or
15491                 18446744073709551616_ mod                131071_ <>                  8192_ or
15492                 18446744073709551616_ mod            2147483648_ <>                     0_ or
15493                 18446744073709551616_ mod            4294967296_ <>                     0_ or
15494                 18446744073709551616_ mod            4294967297_ <>                     1_ or
15495                 18446744073709551616_ mod  18446744073709551616_ <>                     0_ or
15496                 18446744073709551616_ mod  18446744073709551617_ <>  18446744073709551616_ or
15497                  9223372036854775808_ mod       140737488355329_ <>       140737488289793_ or
15498                  9223372036854775808_ mod       140737488420863_ <>       140733193519103_ or
15499                  9223372036854775808_ mod       140737488420864_ <>       140733193453568_ or
15500                  9223372036854775808_ mod       140741783322623_ <>            8590000126_ or
15501                  1152921504606846976_ mod        17596481011711_ <>           68719542256_ or
15502                  9223231303661387776_ mod       140739636002821_ <>       140737488519183_ or
15503        39614081257132168796771975168_ mod   9223372036854775809_ <>   9223372032559808513_ then
15504      writeln("Modulo of bigInteger division does not work correct. (1)");
15505      okay := FALSE;
15506    end if;
15507
15508    if                          32766_ mod                    -1_ <>                     0_ or
15509                                32767_ mod                    -1_ <>                     0_ or
15510                                32768_ mod                    -1_ <>                     0_ or
15511                                32769_ mod                    -1_ <>                     0_ or
15512                                32770_ mod                    -1_ <>                     0_ or
15513                                65534_ mod                    -1_ <>                     0_ or
15514                                65535_ mod                    -1_ <>                     0_ or
15515                                65536_ mod                    -1_ <>                     0_ or
15516                                65537_ mod                    -1_ <>                     0_ or
15517                                65538_ mod                    -1_ <>                     0_ or
15518                                65536_ mod                  -128_ <>                     0_ or
15519                                32766_ mod                -32766_ <>                     0_ or
15520                                32767_ mod                -32767_ <>                     0_ or
15521                                32768_ mod                -32768_ <>                     0_ or
15522                                32769_ mod                -32769_ <>                     0_ or
15523                                32770_ mod                -32770_ <>                     0_ or
15524                                65534_ mod                -65534_ <>                     0_ or
15525                                65535_ mod                -65535_ <>                     0_ or
15526                                65536_ mod                -65536_ <>                     0_ or
15527                                65537_ mod                -65537_ <>                     0_ or
15528                                65538_ mod                -65538_ <>                     0_ or
15529                                32765_ mod                -32766_ <>                    -1_ or
15530                                32766_ mod                -32767_ <>                    -1_ or
15531                                32767_ mod                -32768_ <>                    -1_ or
15532                                32768_ mod                -32769_ <>                    -1_ or
15533                                32769_ mod                -32770_ <>                    -1_ or
15534                                65533_ mod                -65534_ <>                    -1_ or
15535                                65534_ mod                -65535_ <>                    -1_ or
15536                                65535_ mod                -65536_ <>                    -1_ or
15537                                65536_ mod                -65537_ <>                    -1_ or
15538                                65537_ mod                -65538_ <>                    -1_ or
15539                                32766_ mod -18446744073709551616_ <> -18446744073709518850_ or
15540                                32767_ mod -18446744073709551616_ <> -18446744073709518849_ or
15541                                32768_ mod -18446744073709551616_ <> -18446744073709518848_ or
15542                                32769_ mod -18446744073709551616_ <> -18446744073709518847_ or
15543                                32770_ mod -18446744073709551616_ <> -18446744073709518846_ or
15544                                65534_ mod -18446744073709551616_ <> -18446744073709486082_ or
15545                                65535_ mod -18446744073709551616_ <> -18446744073709486081_ or
15546                                65536_ mod -18446744073709551616_ <> -18446744073709486080_ or
15547                                65537_ mod -18446744073709551616_ <> -18446744073709486079_ or
15548                                65538_ mod -18446744073709551616_ <> -18446744073709486078_ or
15549                           2147483647_ mod           -2147483647_ <>                     0_ or
15550                           2147483647_ mod           -2147483648_ <>                    -1_ or
15551                           2147483647_ mod           -2147483649_ <>                    -2_ or
15552                           2147483648_ mod           -2147483647_ <>           -2147483646_ or
15553                           2147483648_ mod           -2147483648_ <>                     0_ or
15554                           2147483648_ mod           -2147483649_ <>                    -1_ or
15555                           2147483649_ mod           -2147483647_ <>           -2147483645_ or
15556                           2147483649_ mod           -2147483648_ <>           -2147483647_ or
15557                           2147483649_ mod           -2147483649_ <>                     0_ or
15558                           4294967295_ mod           -4294967295_ <>                     0_ or
15559                           4294967295_ mod           -4294967296_ <>                    -1_ or
15560                           4294967295_ mod           -4294967297_ <>                    -2_ or
15561                           4294967296_ mod           -4294967295_ <>           -4294967294_ or
15562                           4294967296_ mod           -4294967296_ <>                     0_ or
15563                           4294967296_ mod           -4294967297_ <>                    -1_ or
15564                           4294967297_ mod           -4294967295_ <>           -4294967293_ or
15565                           4294967297_ mod           -4294967296_ <>           -4294967295_ or
15566                           4294967297_ mod           -4294967297_ <>                     0_ or
15567                      140737488355327_ mod      -140737488355328_ <>                    -1_ or
15568                      140737488355328_ mod      -140737488355327_ <>      -140737488355326_ or
15569                      140737488355328_ mod      -140737488355328_ <>                     0_ or
15570                      140737488355328_ mod      -140737488355329_ <>                    -1_ or
15571                  9223372036854775807_ mod                -32768_ <>                    -1_ or
15572                  9223090561878065152_ mod                -32767_ <>                     0_ or
15573                           4294967296_ mod                -32768_ <>                     0_ or
15574                           4295229444_ mod                -65538_ <>                     0_ or
15575                           8629125120_ mod           -4833607680_ <>           -1038090240_ or
15576                 18446744073709551616_ mod                -32767_ <>                -32751_ or
15577                 18446744073709551616_ mod                -32768_ <>                     0_ or
15578                 18446744073709551616_ mod                -65535_ <>                -65534_ or
15579                 18446744073709551616_ mod               -131071_ <>               -122879_ or
15580                 18446744073709551616_ mod           -2147483648_ <>                     0_ or
15581                 18446744073709551616_ mod           -4294967296_ <>                     0_ or
15582                 18446744073709551616_ mod           -4294967297_ <>           -4294967296_ or
15583                 18446744073709551616_ mod -18446744073709551616_ <>                     0_ or
15584                 18446744073709551616_ mod -18446744073709551617_ <>                    -1_ or
15585                  9223372036854775808_ mod      -140737488355329_ <>                -65536_ or
15586                  9223372036854775808_ mod      -140737488420863_ <>           -4294901760_ or
15587                  9223372036854775808_ mod      -140737488420864_ <>           -4294967296_ or
15588                  9223372036854775808_ mod      -140741783322623_ <>      -140733193322497_ or
15589                  1152921504606846976_ mod       -17596481011711_ <>       -17527761469455_ or
15590                  9223231303661387776_ mod      -140739636002821_ <>           -2147483638_ or
15591        39614081257132168796771975168_ mod  -9223372036854775809_ <>           -4294967296_ then
15592      writeln("Modulo of bigInteger division does not work correct. (2)");
15593      okay := FALSE;
15594    end if;
15595
15596    if                         -32766_ mod                     1_ <>                     0_ or
15597                               -32767_ mod                     1_ <>                     0_ or
15598                               -32768_ mod                     1_ <>                     0_ or
15599                               -32769_ mod                     1_ <>                     0_ or
15600                               -32770_ mod                     1_ <>                     0_ or
15601                               -65534_ mod                     1_ <>                     0_ or
15602                               -65535_ mod                     1_ <>                     0_ or
15603                               -65536_ mod                     1_ <>                     0_ or
15604                               -65537_ mod                     1_ <>                     0_ or
15605                               -65538_ mod                     1_ <>                     0_ or
15606                               -65536_ mod                   128_ <>                     0_ or
15607                               -32766_ mod                 32766_ <>                     0_ or
15608                               -32767_ mod                 32767_ <>                     0_ or
15609                               -32768_ mod                 32768_ <>                     0_ or
15610                               -32769_ mod                 32769_ <>                     0_ or
15611                               -32770_ mod                 32770_ <>                     0_ or
15612                               -65534_ mod                 65534_ <>                     0_ or
15613                               -65535_ mod                 65535_ <>                     0_ or
15614                               -65536_ mod                 65536_ <>                     0_ or
15615                               -65537_ mod                 65537_ <>                     0_ or
15616                               -65538_ mod                 65538_ <>                     0_ or
15617                               -32765_ mod                 32766_ <>                     1_ or
15618                               -32766_ mod                 32767_ <>                     1_ or
15619                               -32767_ mod                 32768_ <>                     1_ or
15620                               -32768_ mod                 32769_ <>                     1_ or
15621                               -32769_ mod                 32770_ <>                     1_ or
15622                               -65533_ mod                 65534_ <>                     1_ or
15623                               -65534_ mod                 65535_ <>                     1_ or
15624                               -65535_ mod                 65536_ <>                     1_ or
15625                               -65536_ mod                 65537_ <>                     1_ or
15626                               -65537_ mod                 65538_ <>                     1_ or
15627                               -32766_ mod  18446744073709551616_ <>  18446744073709518850_ or
15628                               -32767_ mod  18446744073709551616_ <>  18446744073709518849_ or
15629                               -32768_ mod  18446744073709551616_ <>  18446744073709518848_ or
15630                               -32769_ mod  18446744073709551616_ <>  18446744073709518847_ or
15631                               -32770_ mod  18446744073709551616_ <>  18446744073709518846_ or
15632                               -65534_ mod  18446744073709551616_ <>  18446744073709486082_ or
15633                               -65535_ mod  18446744073709551616_ <>  18446744073709486081_ or
15634                               -65536_ mod  18446744073709551616_ <>  18446744073709486080_ or
15635                               -65537_ mod  18446744073709551616_ <>  18446744073709486079_ or
15636                               -65538_ mod  18446744073709551616_ <>  18446744073709486078_ or
15637                          -2147483647_ mod            2147483647_ <>                     0_ or
15638                          -2147483647_ mod            2147483648_ <>                     1_ or
15639                          -2147483647_ mod            2147483649_ <>                     2_ or
15640                          -2147483648_ mod            2147483647_ <>            2147483646_ or
15641                          -2147483648_ mod            2147483648_ <>                     0_ or
15642                          -2147483648_ mod            2147483649_ <>                     1_ or
15643                          -2147483649_ mod            2147483647_ <>            2147483645_ or
15644                          -2147483649_ mod            2147483648_ <>            2147483647_ or
15645                          -2147483649_ mod            2147483649_ <>                     0_ or
15646                          -4294967295_ mod            4294967295_ <>                     0_ or
15647                          -4294967295_ mod            4294967296_ <>                     1_ or
15648                          -4294967295_ mod            4294967297_ <>                     2_ or
15649                          -4294967296_ mod            4294967295_ <>            4294967294_ or
15650                          -4294967296_ mod            4294967296_ <>                     0_ or
15651                          -4294967296_ mod            4294967297_ <>                     1_ or
15652                          -4294967297_ mod            4294967295_ <>            4294967293_ or
15653                          -4294967297_ mod            4294967296_ <>            4294967295_ or
15654                          -4294967297_ mod            4294967297_ <>                     0_ or
15655                     -140737488355327_ mod       140737488355328_ <>                     1_ or
15656                     -140737488355328_ mod       140737488355327_ <>       140737488355326_ or
15657                     -140737488355328_ mod       140737488355328_ <>                     0_ or
15658                     -140737488355328_ mod       140737488355329_ <>                     1_ or
15659                 -9223372036854775807_ mod                 32768_ <>                     1_ or
15660                 -9223090561878065152_ mod                 32767_ <>                     0_ or
15661                          -4294967296_ mod                 32768_ <>                     0_ or
15662                          -4295229444_ mod                 65538_ <>                     0_ or
15663                          -8629125120_ mod            4833607680_ <>            1038090240_ or
15664                -18446744073709551616_ mod                 32767_ <>                 32751_ or
15665                -18446744073709551616_ mod                 32768_ <>                     0_ or
15666                -18446744073709551616_ mod                 65535_ <>                 65534_ or
15667                -18446744073709551616_ mod                131071_ <>                122879_ or
15668                -18446744073709551616_ mod            2147483648_ <>                     0_ or
15669                -18446744073709551616_ mod            4294967296_ <>                     0_ or
15670                -18446744073709551616_ mod            4294967297_ <>            4294967296_ or
15671                -18446744073709551616_ mod  18446744073709551616_ <>                     0_ or
15672                -18446744073709551616_ mod  18446744073709551617_ <>                     1_ or
15673                 -9223372036854775808_ mod       140737488355329_ <>                 65536_ or
15674                 -9223372036854775808_ mod       140737488420863_ <>            4294901760_ or
15675                 -9223372036854775808_ mod       140737488420864_ <>            4294967296_ or
15676                 -9223372036854775808_ mod       140741783322623_ <>       140733193322497_ or
15677                 -1152921504606846976_ mod        17596481011711_ <>        17527761469455_ or
15678                 -9223231303661387776_ mod       140739636002821_ <>            2147483638_ or
15679       -39614081257132168796771975168_ mod   9223372036854775809_ <>            4294967296_ then
15680      writeln("Modulo of bigInteger division does not work correct. (3)");
15681      okay := FALSE;
15682    end if;
15683
15684    if                         -32766_ mod                    -1_ <>                     0_ or
15685                               -32767_ mod                    -1_ <>                     0_ or
15686                               -32768_ mod                    -1_ <>                     0_ or
15687                               -32769_ mod                    -1_ <>                     0_ or
15688                               -32770_ mod                    -1_ <>                     0_ or
15689                               -65534_ mod                    -1_ <>                     0_ or
15690                               -65535_ mod                    -1_ <>                     0_ or
15691                               -65536_ mod                    -1_ <>                     0_ or
15692                               -65537_ mod                    -1_ <>                     0_ or
15693                               -65538_ mod                    -1_ <>                     0_ or
15694                               -65536_ mod                  -128_ <>                     0_ or
15695                               -32766_ mod                -32766_ <>                     0_ or
15696                               -32767_ mod                -32767_ <>                     0_ or
15697                               -32768_ mod                -32768_ <>                     0_ or
15698                               -32769_ mod                -32769_ <>                     0_ or
15699                               -32770_ mod                -32770_ <>                     0_ or
15700                               -65534_ mod                -65534_ <>                     0_ or
15701                               -65535_ mod                -65535_ <>                     0_ or
15702                               -65536_ mod                -65536_ <>                     0_ or
15703                               -65537_ mod                -65537_ <>                     0_ or
15704                               -65538_ mod                -65538_ <>                     0_ or
15705                               -32765_ mod                -32766_ <>                -32765_ or
15706                               -32766_ mod                -32767_ <>                -32766_ or
15707                               -32767_ mod                -32768_ <>                -32767_ or
15708                               -32768_ mod                -32769_ <>                -32768_ or
15709                               -32769_ mod                -32770_ <>                -32769_ or
15710                               -65533_ mod                -65534_ <>                -65533_ or
15711                               -65534_ mod                -65535_ <>                -65534_ or
15712                               -65535_ mod                -65536_ <>                -65535_ or
15713                               -65536_ mod                -65537_ <>                -65536_ or
15714                               -65537_ mod                -65538_ <>                -65537_ or
15715                               -32766_ mod -18446744073709551616_ <>                -32766_ or
15716                               -32767_ mod -18446744073709551616_ <>                -32767_ or
15717                               -32768_ mod -18446744073709551616_ <>                -32768_ or
15718                               -32769_ mod -18446744073709551616_ <>                -32769_ or
15719                               -32770_ mod -18446744073709551616_ <>                -32770_ or
15720                               -65534_ mod -18446744073709551616_ <>                -65534_ or
15721                               -65535_ mod -18446744073709551616_ <>                -65535_ or
15722                               -65536_ mod -18446744073709551616_ <>                -65536_ or
15723                               -65537_ mod -18446744073709551616_ <>                -65537_ or
15724                               -65538_ mod -18446744073709551616_ <>                -65538_ or
15725                          -2147483647_ mod           -2147483647_ <>                     0_ or
15726                          -2147483647_ mod           -2147483648_ <>           -2147483647_ or
15727                          -2147483647_ mod           -2147483649_ <>           -2147483647_ or
15728                          -2147483648_ mod           -2147483647_ <>                    -1_ or
15729                          -2147483648_ mod           -2147483648_ <>                     0_ or
15730                          -2147483648_ mod           -2147483649_ <>           -2147483648_ or
15731                          -2147483649_ mod           -2147483647_ <>                    -2_ or
15732                          -2147483649_ mod           -2147483648_ <>                    -1_ or
15733                          -2147483649_ mod           -2147483649_ <>                     0_ or
15734                          -4294967295_ mod           -4294967295_ <>                     0_ or
15735                          -4294967295_ mod           -4294967296_ <>           -4294967295_ or
15736                          -4294967295_ mod           -4294967297_ <>           -4294967295_ or
15737                          -4294967296_ mod           -4294967295_ <>                    -1_ or
15738                          -4294967296_ mod           -4294967296_ <>                     0_ or
15739                          -4294967296_ mod           -4294967297_ <>           -4294967296_ or
15740                          -4294967297_ mod           -4294967295_ <>                    -2_ or
15741                          -4294967297_ mod           -4294967296_ <>                    -1_ or
15742                          -4294967297_ mod           -4294967297_ <>                     0_ or
15743                     -140737488355327_ mod      -140737488355328_ <>      -140737488355327_ or
15744                     -140737488355328_ mod      -140737488355327_ <>                    -1_ or
15745                     -140737488355328_ mod      -140737488355328_ <>                     0_ or
15746                     -140737488355328_ mod      -140737488355329_ <>      -140737488355328_ or
15747                 -9223372036854775807_ mod                -32768_ <>                -32767_ or
15748                 -9223090561878065152_ mod                -32767_ <>                     0_ or
15749                          -4294967296_ mod                -32768_ <>                     0_ or
15750                          -4295229444_ mod                -65538_ <>                     0_ or
15751                          -8629125120_ mod           -4833607680_ <>           -3795517440_ or
15752                -18446744073709551616_ mod                -32767_ <>                   -16_ or
15753                -18446744073709551616_ mod                -32768_ <>                     0_ or
15754                -18446744073709551616_ mod                -65535_ <>                    -1_ or
15755                -18446744073709551616_ mod               -131071_ <>                 -8192_ or
15756                -18446744073709551616_ mod           -2147483648_ <>                     0_ or
15757                -18446744073709551616_ mod           -4294967296_ <>                     0_ or
15758                -18446744073709551616_ mod           -4294967297_ <>                    -1_ or
15759                -18446744073709551616_ mod -18446744073709551616_ <>                     0_ or
15760                -18446744073709551616_ mod -18446744073709551617_ <> -18446744073709551616_ or
15761                 -9223372036854775808_ mod      -140737488355329_ <>      -140737488289793_ or
15762                 -9223372036854775808_ mod      -140737488420863_ <>      -140733193519103_ or
15763                 -9223372036854775808_ mod      -140737488420864_ <>      -140733193453568_ or
15764                 -9223372036854775808_ mod      -140741783322623_ <>           -8590000126_ or
15765                 -1152921504606846976_ mod       -17596481011711_ <>          -68719542256_ or
15766                 -9223231303661387776_ mod      -140739636002821_ <>      -140737488519183_ or
15767       -39614081257132168796771975168_ mod  -9223372036854775809_ <>  -9223372032559808513_ then
15768      writeln("Modulo of bigInteger division does not work correct. (4)");
15769      okay := FALSE;
15770    end if;
15771
15772    if            -9223372036854775808_  mod            9223372036854775808_  <> 0_ or
15773                  -9223372036854775808_  mod            9223372036854775809_  <> 1_ or
15774                  -9223372036854775807_  mod            9223372036854775808_  <> 1_ or
15775                  -9223372036854775808_  mod bigintExpr(9223372036854775808_) <> 0_ or
15776                  -9223372036854775808_  mod bigintExpr(9223372036854775809_) <> 1_ or
15777                  -9223372036854775807_  mod bigintExpr(9223372036854775808_) <> 1_ or
15778       bigintExpr(-9223372036854775808_) mod            9223372036854775808_  <> 0_ or
15779       bigintExpr(-9223372036854775808_) mod            9223372036854775809_  <> 1_ or
15780       bigintExpr(-9223372036854775807_) mod            9223372036854775808_  <> 1_ or
15781       bigintExpr(-9223372036854775808_) mod bigintExpr(9223372036854775808_) <> 0_ or
15782       bigintExpr(-9223372036854775808_) mod bigintExpr(9223372036854775809_) <> 1_ or
15783       bigintExpr(-9223372036854775807_) mod bigintExpr(9223372036854775808_) <> 1_ or
15784                  -39614081257132168796771975168_  mod            39614081257132168796771975168_  <> 0_ or
15785                  -39614081257132168796771975168_  mod            39614081257132168796771975169_  <> 1_ or
15786                  -39614081257132168796771975167_  mod            39614081257132168796771975168_  <> 1_ or
15787                  -39614081257132168796771975168_  mod bigintExpr(39614081257132168796771975168_) <> 0_ or
15788                  -39614081257132168796771975168_  mod bigintExpr(39614081257132168796771975169_) <> 1_ or
15789                  -39614081257132168796771975167_  mod bigintExpr(39614081257132168796771975168_) <> 1_ or
15790       bigintExpr(-39614081257132168796771975168_) mod            39614081257132168796771975168_  <> 0_ or
15791       bigintExpr(-39614081257132168796771975168_) mod            39614081257132168796771975169_  <> 1_ or
15792       bigintExpr(-39614081257132168796771975167_) mod            39614081257132168796771975168_  <> 1_ or
15793       bigintExpr(-39614081257132168796771975168_) mod bigintExpr(39614081257132168796771975168_) <> 0_ or
15794       bigintExpr(-39614081257132168796771975168_) mod bigintExpr(39614081257132168796771975169_) <> 1_ or
15795       bigintExpr(-39614081257132168796771975167_) mod bigintExpr(39614081257132168796771975168_) <> 1_ or
15796                  -170141183460469231731687303715884105728_  mod            170141183460469231731687303715884105728_  <> 0_ or
15797                  -170141183460469231731687303715884105728_  mod            170141183460469231731687303715884105729_  <> 1_ or
15798                  -170141183460469231731687303715884105727_  mod            170141183460469231731687303715884105728_  <> 1_ or
15799                  -170141183460469231731687303715884105728_  mod bigintExpr(170141183460469231731687303715884105728_) <> 0_ or
15800                  -170141183460469231731687303715884105728_  mod bigintExpr(170141183460469231731687303715884105729_) <> 1_ or
15801                  -170141183460469231731687303715884105727_  mod bigintExpr(170141183460469231731687303715884105728_) <> 1_ or
15802       bigintExpr(-170141183460469231731687303715884105728_) mod            170141183460469231731687303715884105728_  <> 0_ or
15803       bigintExpr(-170141183460469231731687303715884105728_) mod            170141183460469231731687303715884105729_  <> 1_ or
15804       bigintExpr(-170141183460469231731687303715884105727_) mod            170141183460469231731687303715884105728_  <> 1_ or
15805       bigintExpr(-170141183460469231731687303715884105728_) mod bigintExpr(170141183460469231731687303715884105728_) <> 0_ or
15806       bigintExpr(-170141183460469231731687303715884105728_) mod bigintExpr(170141183460469231731687303715884105729_) <> 1_ or
15807       bigintExpr(-170141183460469231731687303715884105727_) mod bigintExpr(170141183460469231731687303715884105728_) <> 1_ then
15808      writeln("Modulo division of bigInteger does not work correct. (5)");
15809      okay := FALSE;
15810    end if;
15811
15812    if              9223372036854775807_  mod                        9223372036854775808_  <>             9223372036854775807_ or
15813                    9223372036854775807_  mod             999999999999999999999999999999_  <>             9223372036854775807_ or
15814                    9223372036854775807_  mod                       -9223372036854775809_  <>                              -2_ or
15815                    9223372036854775807_  mod            -999999999999999999999999999999_  <> -999999999990776627963145224192_ or
15816                   -9223372036854775808_  mod                        9223372036854775808_  <>                               0_ or
15817                   -9223372036854775808_  mod             999999999999999999999999999999_  <>  999999999990776627963145224191_ or
15818                   -9223372036854775808_  mod                       -9223372036854775809_  <>            -9223372036854775808_ or
15819                   -9223372036854775808_  mod            -999999999999999999999999999999_  <>            -9223372036854775808_ or
15820                    9223372036854775807_  mod bigintExpr(            9223372036854775808_) <>             9223372036854775807_ or
15821                    9223372036854775807_  mod bigintExpr( 999999999999999999999999999999_) <>             9223372036854775807_ or
15822                    9223372036854775807_  mod bigintExpr(           -9223372036854775809_) <>                              -2_ or
15823                    9223372036854775807_  mod bigintExpr(-999999999999999999999999999999_) <> -999999999990776627963145224192_ or
15824                   -9223372036854775808_  mod bigintExpr(            9223372036854775808_) <>                               0_ or
15825                   -9223372036854775808_  mod bigintExpr( 999999999999999999999999999999_) <>  999999999990776627963145224191_ or
15826                   -9223372036854775808_  mod bigintExpr(           -9223372036854775809_) <>            -9223372036854775808_ or
15827                   -9223372036854775808_  mod bigintExpr(-999999999999999999999999999999_) <>            -9223372036854775808_ or
15828        bigintExpr( 9223372036854775807_) mod                        9223372036854775808_  <>             9223372036854775807_ or
15829        bigintExpr( 9223372036854775807_) mod             999999999999999999999999999999_  <>             9223372036854775807_ or
15830        bigintExpr( 9223372036854775807_) mod                       -9223372036854775809_  <>                              -2_ or
15831        bigintExpr( 9223372036854775807_) mod            -999999999999999999999999999999_  <> -999999999990776627963145224192_ or
15832        bigintExpr(-9223372036854775808_) mod                        9223372036854775808_  <>                               0_ or
15833        bigintExpr(-9223372036854775808_) mod             999999999999999999999999999999_  <>  999999999990776627963145224191_ or
15834        bigintExpr(-9223372036854775808_) mod                       -9223372036854775809_  <>            -9223372036854775808_ or
15835        bigintExpr(-9223372036854775808_) mod            -999999999999999999999999999999_  <>            -9223372036854775808_ or
15836        bigintExpr( 9223372036854775807_) mod bigintExpr(            9223372036854775808_) <>             9223372036854775807_ or
15837        bigintExpr( 9223372036854775807_) mod bigintExpr( 999999999999999999999999999999_) <>             9223372036854775807_ or
15838        bigintExpr( 9223372036854775807_) mod bigintExpr(           -9223372036854775809_) <>                              -2_ or
15839        bigintExpr( 9223372036854775807_) mod bigintExpr(-999999999999999999999999999999_) <> -999999999990776627963145224192_ or
15840        bigintExpr(-9223372036854775808_) mod bigintExpr(            9223372036854775808_) <>                               0_ or
15841        bigintExpr(-9223372036854775808_) mod bigintExpr( 999999999999999999999999999999_) <>  999999999990776627963145224191_ or
15842        bigintExpr(-9223372036854775808_) mod bigintExpr(           -9223372036854775809_) <>            -9223372036854775808_ or
15843        bigintExpr(-9223372036854775808_) mod bigintExpr(-999999999999999999999999999999_) <>            -9223372036854775808_ then
15844      writeln("Modulo of bigInteger division does not work correct. (6)");
15845      okay := FALSE;
15846    end if;
15847
15848    if  0_ mod -170141183460469231731687303715884105729_ <> 0_ or
15849        0_ mod -170141183460469231731687303715884105728_ <> 0_ or
15850        0_ mod                     -9223372036854775809_ <> 0_ or
15851        0_ mod                     -9223372036854775808_ <> 0_ or
15852        0_ mod                              -2147483649_ <> 0_ or
15853        0_ mod                              -2147483648_ <> 0_ or
15854        0_ mod                                   -32769_ <> 0_ or
15855        0_ mod                                   -32768_ <> 0_ or
15856        0_ mod                                     -129_ <> 0_ or
15857        0_ mod                                     -128_ <> 0_ or
15858        0_ mod                                       -1_ <> 0_ or
15859        0_ mod                                        1_ <> 0_ or
15860        0_ mod                                      127_ <> 0_ or
15861        0_ mod                                      128_ <> 0_ or
15862        0_ mod                                    32767_ <> 0_ or
15863        0_ mod                                    32768_ <> 0_ or
15864        0_ mod                               2147483647_ <> 0_ or
15865        0_ mod                               2147483648_ <> 0_ or
15866        0_ mod                      9223372036854775807_ <> 0_ or
15867        0_ mod                      9223372036854775808_ <> 0_ or
15868        0_ mod  170141183460469231731687303715884105727_ <> 0_ or
15869        0_ mod  170141183460469231731687303715884105728_ <> 0_ or
15870        0_ mod bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
15871        0_ mod bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
15872        0_ mod bigintExpr(                    -9223372036854775809_) <> 0_ or
15873        0_ mod bigintExpr(                    -9223372036854775808_) <> 0_ or
15874        0_ mod bigintExpr(                             -2147483649_) <> 0_ or
15875        0_ mod bigintExpr(                             -2147483648_) <> 0_ or
15876        0_ mod bigintExpr(                                  -32769_) <> 0_ or
15877        0_ mod bigintExpr(                                  -32768_) <> 0_ or
15878        0_ mod bigintExpr(                                    -129_) <> 0_ or
15879        0_ mod bigintExpr(                                    -128_) <> 0_ or
15880        0_ mod bigintExpr(                                      -1_) <> 0_ or
15881        0_ mod bigintExpr(                                       1_) <> 0_ or
15882        0_ mod bigintExpr(                                     127_) <> 0_ or
15883        0_ mod bigintExpr(                                     128_) <> 0_ or
15884        0_ mod bigintExpr(                                   32767_) <> 0_ or
15885        0_ mod bigintExpr(                                   32768_) <> 0_ or
15886        0_ mod bigintExpr(                              2147483647_) <> 0_ or
15887        0_ mod bigintExpr(                              2147483648_) <> 0_ or
15888        0_ mod bigintExpr(                     9223372036854775807_) <> 0_ or
15889        0_ mod bigintExpr(                     9223372036854775808_) <> 0_ or
15890        0_ mod bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
15891        0_ mod bigintExpr( 170141183460469231731687303715884105728_) <> 0_ or
15892        bigintExpr(0_) mod -170141183460469231731687303715884105729_ <> 0_ or
15893        bigintExpr(0_) mod -170141183460469231731687303715884105728_ <> 0_ or
15894        bigintExpr(0_) mod                     -9223372036854775809_ <> 0_ or
15895        bigintExpr(0_) mod                     -9223372036854775808_ <> 0_ or
15896        bigintExpr(0_) mod                              -2147483649_ <> 0_ or
15897        bigintExpr(0_) mod                              -2147483648_ <> 0_ or
15898        bigintExpr(0_) mod                                   -32769_ <> 0_ or
15899        bigintExpr(0_) mod                                   -32768_ <> 0_ or
15900        bigintExpr(0_) mod                                     -129_ <> 0_ or
15901        bigintExpr(0_) mod                                     -128_ <> 0_ or
15902        bigintExpr(0_) mod                                       -1_ <> 0_ or
15903        bigintExpr(0_) mod                                        1_ <> 0_ or
15904        bigintExpr(0_) mod                                      127_ <> 0_ or
15905        bigintExpr(0_) mod                                      128_ <> 0_ or
15906        bigintExpr(0_) mod                                    32767_ <> 0_ or
15907        bigintExpr(0_) mod                                    32768_ <> 0_ or
15908        bigintExpr(0_) mod                               2147483647_ <> 0_ or
15909        bigintExpr(0_) mod                               2147483648_ <> 0_ or
15910        bigintExpr(0_) mod                      9223372036854775807_ <> 0_ or
15911        bigintExpr(0_) mod                      9223372036854775808_ <> 0_ or
15912        bigintExpr(0_) mod  170141183460469231731687303715884105727_ <> 0_ or
15913        bigintExpr(0_) mod  170141183460469231731687303715884105728_ <> 0_ or
15914        bigintExpr(0_) mod bigintExpr(-170141183460469231731687303715884105729_) <> 0_ or
15915        bigintExpr(0_) mod bigintExpr(-170141183460469231731687303715884105728_) <> 0_ or
15916        bigintExpr(0_) mod bigintExpr(                    -9223372036854775809_) <> 0_ or
15917        bigintExpr(0_) mod bigintExpr(                    -9223372036854775808_) <> 0_ or
15918        bigintExpr(0_) mod bigintExpr(                             -2147483649_) <> 0_ or
15919        bigintExpr(0_) mod bigintExpr(                             -2147483648_) <> 0_ or
15920        bigintExpr(0_) mod bigintExpr(                                  -32769_) <> 0_ or
15921        bigintExpr(0_) mod bigintExpr(                                  -32768_) <> 0_ or
15922        bigintExpr(0_) mod bigintExpr(                                    -129_) <> 0_ or
15923        bigintExpr(0_) mod bigintExpr(                                    -128_) <> 0_ or
15924        bigintExpr(0_) mod bigintExpr(                                      -1_) <> 0_ or
15925        bigintExpr(0_) mod bigintExpr(                                       1_) <> 0_ or
15926        bigintExpr(0_) mod bigintExpr(                                     127_) <> 0_ or
15927        bigintExpr(0_) mod bigintExpr(                                     128_) <> 0_ or
15928        bigintExpr(0_) mod bigintExpr(                                   32767_) <> 0_ or
15929        bigintExpr(0_) mod bigintExpr(                                   32768_) <> 0_ or
15930        bigintExpr(0_) mod bigintExpr(                              2147483647_) <> 0_ or
15931        bigintExpr(0_) mod bigintExpr(                              2147483648_) <> 0_ or
15932        bigintExpr(0_) mod bigintExpr(                     9223372036854775807_) <> 0_ or
15933        bigintExpr(0_) mod bigintExpr(                     9223372036854775808_) <> 0_ or
15934        bigintExpr(0_) mod bigintExpr( 170141183460469231731687303715884105727_) <> 0_ or
15935        bigintExpr(0_) mod bigintExpr( 170141183460469231731687303715884105728_) <> 0_ then
15936      writeln("Modulo of bigInteger division does not work correct. (7)");
15937      okay := FALSE;
15938    end if;
15939
15940    if   280223983525050_ mod              1_ <>                0_ or
15941         280223983525050_ mod              2_ <>                0_ or
15942         280223983525050_ mod              4_ <>                2_ or
15943         280223983525050_ mod              8_ <>                2_ or
15944         280223983525050_ mod           1024_ <>              186_ or
15945         280223983525050_ mod        1048576_ <>           974010_ or
15946         280223983525050_ mod     1073741824_ <>        989781178_ or
15947         280223983525050_ mod     2147483648_ <>        989781178_ or
15948         280223983525050_ mod     4294967296_ <>       3137264826_ or
15949         280223983525050_ mod  1099511627776_ <>     948030069946_ or
15950         280223983525050_ mod             -1_ <>                0_ or
15951         280223983525050_ mod             -2_ <>                0_ or
15952         280223983525050_ mod             -4_ <>               -2_ or
15953         280223983525050_ mod             -8_ <>               -6_ or
15954         280223983525050_ mod          -1024_ <>             -838_ or
15955         280223983525050_ mod       -1048576_ <>           -74566_ or
15956         280223983525050_ mod    -1073741824_ <>        -83960646_ or
15957         280223983525050_ mod    -2147483648_ <>      -1157702470_ or
15958         280223983525050_ mod    -4294967296_ <>      -1157702470_ or
15959         280223983525050_ mod -1099511627776_ <>    -151481557830_ or
15960        -280223983525050_ mod              1_ <>                0_ or
15961        -280223983525050_ mod              2_ <>                0_ or
15962        -280223983525050_ mod              4_ <>                2_ or
15963        -280223983525050_ mod              8_ <>                6_ or
15964        -280223983525050_ mod           1024_ <>              838_ or
15965        -280223983525050_ mod        1048576_ <>            74566_ or
15966        -280223983525050_ mod     1073741824_ <>         83960646_ or
15967        -280223983525050_ mod     2147483648_ <>       1157702470_ or
15968        -280223983525050_ mod     4294967296_ <>       1157702470_ or
15969        -280223983525050_ mod  1099511627776_ <>     151481557830_ or
15970        -280223983525050_ mod             -1_ <>               -0_ or
15971        -280223983525050_ mod             -2_ <>               -0_ or
15972        -280223983525050_ mod             -4_ <>               -2_ or
15973        -280223983525050_ mod             -8_ <>               -2_ or
15974        -280223983525050_ mod          -1024_ <>             -186_ or
15975        -280223983525050_ mod       -1048576_ <>          -974010_ or
15976        -280223983525050_ mod    -1073741824_ <>       -989781178_ or
15977        -280223983525050_ mod    -2147483648_ <>       -989781178_ or
15978        -280223983525050_ mod    -4294967296_ <>      -3137264826_ or
15979        -280223983525050_ mod -1099511627776_ <>    -948030069946_ or
15980
15981         280223983525050_ mod bigintExpr(             1_) <>                0_ or
15982         280223983525050_ mod bigintExpr(             2_) <>                0_ or
15983         280223983525050_ mod bigintExpr(             4_) <>                2_ or
15984         280223983525050_ mod bigintExpr(             8_) <>                2_ or
15985         280223983525050_ mod bigintExpr(          1024_) <>              186_ or
15986         280223983525050_ mod bigintExpr(       1048576_) <>           974010_ or
15987         280223983525050_ mod bigintExpr(    1073741824_) <>        989781178_ or
15988         280223983525050_ mod bigintExpr(    2147483648_) <>        989781178_ or
15989         280223983525050_ mod bigintExpr(    4294967296_) <>       3137264826_ or
15990         280223983525050_ mod bigintExpr( 1099511627776_) <>     948030069946_ or
15991         280223983525050_ mod bigintExpr(            -1_) <>                0_ or
15992         280223983525050_ mod bigintExpr(            -2_) <>                0_ or
15993         280223983525050_ mod bigintExpr(            -4_) <>               -2_ or
15994         280223983525050_ mod bigintExpr(            -8_) <>               -6_ or
15995         280223983525050_ mod bigintExpr(         -1024_) <>             -838_ or
15996         280223983525050_ mod bigintExpr(      -1048576_) <>           -74566_ or
15997         280223983525050_ mod bigintExpr(   -1073741824_) <>        -83960646_ or
15998         280223983525050_ mod bigintExpr(   -2147483648_) <>      -1157702470_ or
15999         280223983525050_ mod bigintExpr(   -4294967296_) <>      -1157702470_ or
16000         280223983525050_ mod bigintExpr(-1099511627776_) <>    -151481557830_ or
16001        -280223983525050_ mod bigintExpr(             1_) <>                0_ or
16002        -280223983525050_ mod bigintExpr(             2_) <>                0_ or
16003        -280223983525050_ mod bigintExpr(             4_) <>                2_ or
16004        -280223983525050_ mod bigintExpr(             8_) <>                6_ or
16005        -280223983525050_ mod bigintExpr(          1024_) <>              838_ or
16006        -280223983525050_ mod bigintExpr(       1048576_) <>            74566_ or
16007        -280223983525050_ mod bigintExpr(    1073741824_) <>         83960646_ or
16008        -280223983525050_ mod bigintExpr(    2147483648_) <>       1157702470_ or
16009        -280223983525050_ mod bigintExpr(    4294967296_) <>       1157702470_ or
16010        -280223983525050_ mod bigintExpr( 1099511627776_) <>     151481557830_ or
16011        -280223983525050_ mod bigintExpr(            -1_) <>               -0_ or
16012        -280223983525050_ mod bigintExpr(            -2_) <>               -0_ or
16013        -280223983525050_ mod bigintExpr(            -4_) <>               -2_ or
16014        -280223983525050_ mod bigintExpr(            -8_) <>               -2_ or
16015        -280223983525050_ mod bigintExpr(         -1024_) <>             -186_ or
16016        -280223983525050_ mod bigintExpr(      -1048576_) <>          -974010_ or
16017        -280223983525050_ mod bigintExpr(   -1073741824_) <>       -989781178_ or
16018        -280223983525050_ mod bigintExpr(   -2147483648_) <>       -989781178_ or
16019        -280223983525050_ mod bigintExpr(   -4294967296_) <>      -3137264826_ or
16020        -280223983525050_ mod bigintExpr(-1099511627776_) <>    -948030069946_ or
16021
16022        bigintExpr( 280223983525050_) mod              1_ <>                0_ or
16023        bigintExpr( 280223983525050_) mod              2_ <>                0_ or
16024        bigintExpr( 280223983525050_) mod              4_ <>                2_ or
16025        bigintExpr( 280223983525050_) mod              8_ <>                2_ or
16026        bigintExpr( 280223983525050_) mod           1024_ <>              186_ or
16027        bigintExpr( 280223983525050_) mod        1048576_ <>           974010_ or
16028        bigintExpr( 280223983525050_) mod     1073741824_ <>        989781178_ or
16029        bigintExpr( 280223983525050_) mod     2147483648_ <>        989781178_ or
16030        bigintExpr( 280223983525050_) mod     4294967296_ <>       3137264826_ or
16031        bigintExpr( 280223983525050_) mod  1099511627776_ <>     948030069946_ or
16032        bigintExpr( 280223983525050_) mod             -1_ <>                0_ or
16033        bigintExpr( 280223983525050_) mod             -2_ <>                0_ or
16034        bigintExpr( 280223983525050_) mod             -4_ <>               -2_ or
16035        bigintExpr( 280223983525050_) mod             -8_ <>               -6_ or
16036        bigintExpr( 280223983525050_) mod          -1024_ <>             -838_ or
16037        bigintExpr( 280223983525050_) mod       -1048576_ <>           -74566_ or
16038        bigintExpr( 280223983525050_) mod    -1073741824_ <>        -83960646_ or
16039        bigintExpr( 280223983525050_) mod    -2147483648_ <>      -1157702470_ or
16040        bigintExpr( 280223983525050_) mod    -4294967296_ <>      -1157702470_ or
16041        bigintExpr( 280223983525050_) mod -1099511627776_ <>    -151481557830_ or
16042        bigintExpr(-280223983525050_) mod              1_ <>                0_ or
16043        bigintExpr(-280223983525050_) mod              2_ <>                0_ or
16044        bigintExpr(-280223983525050_) mod              4_ <>                2_ or
16045        bigintExpr(-280223983525050_) mod              8_ <>                6_ or
16046        bigintExpr(-280223983525050_) mod           1024_ <>              838_ or
16047        bigintExpr(-280223983525050_) mod        1048576_ <>            74566_ or
16048        bigintExpr(-280223983525050_) mod     1073741824_ <>         83960646_ or
16049        bigintExpr(-280223983525050_) mod     2147483648_ <>       1157702470_ or
16050        bigintExpr(-280223983525050_) mod     4294967296_ <>       1157702470_ or
16051        bigintExpr(-280223983525050_) mod  1099511627776_ <>     151481557830_ or
16052        bigintExpr(-280223983525050_) mod             -1_ <>               -0_ or
16053        bigintExpr(-280223983525050_) mod             -2_ <>               -0_ or
16054        bigintExpr(-280223983525050_) mod             -4_ <>               -2_ or
16055        bigintExpr(-280223983525050_) mod             -8_ <>               -2_ or
16056        bigintExpr(-280223983525050_) mod          -1024_ <>             -186_ or
16057        bigintExpr(-280223983525050_) mod       -1048576_ <>          -974010_ or
16058        bigintExpr(-280223983525050_) mod    -1073741824_ <>       -989781178_ or
16059        bigintExpr(-280223983525050_) mod    -2147483648_ <>       -989781178_ or
16060        bigintExpr(-280223983525050_) mod    -4294967296_ <>      -3137264826_ or
16061        bigintExpr(-280223983525050_) mod -1099511627776_ <>    -948030069946_ or
16062
16063        bigintExpr( 280223983525050_) mod bigintExpr(             1_) <>                0_ or
16064        bigintExpr( 280223983525050_) mod bigintExpr(             2_) <>                0_ or
16065        bigintExpr( 280223983525050_) mod bigintExpr(             4_) <>                2_ or
16066        bigintExpr( 280223983525050_) mod bigintExpr(             8_) <>                2_ or
16067        bigintExpr( 280223983525050_) mod bigintExpr(          1024_) <>              186_ or
16068        bigintExpr( 280223983525050_) mod bigintExpr(       1048576_) <>           974010_ or
16069        bigintExpr( 280223983525050_) mod bigintExpr(    1073741824_) <>        989781178_ or
16070        bigintExpr( 280223983525050_) mod bigintExpr(    2147483648_) <>        989781178_ or
16071        bigintExpr( 280223983525050_) mod bigintExpr(    4294967296_) <>       3137264826_ or
16072        bigintExpr( 280223983525050_) mod bigintExpr( 1099511627776_) <>     948030069946_ or
16073        bigintExpr( 280223983525050_) mod bigintExpr(            -1_) <>                0_ or
16074        bigintExpr( 280223983525050_) mod bigintExpr(            -2_) <>                0_ or
16075        bigintExpr( 280223983525050_) mod bigintExpr(            -4_) <>               -2_ or
16076        bigintExpr( 280223983525050_) mod bigintExpr(            -8_) <>               -6_ or
16077        bigintExpr( 280223983525050_) mod bigintExpr(         -1024_) <>             -838_ or
16078        bigintExpr( 280223983525050_) mod bigintExpr(      -1048576_) <>           -74566_ or
16079        bigintExpr( 280223983525050_) mod bigintExpr(   -1073741824_) <>        -83960646_ or
16080        bigintExpr( 280223983525050_) mod bigintExpr(   -2147483648_) <>      -1157702470_ or
16081        bigintExpr( 280223983525050_) mod bigintExpr(   -4294967296_) <>      -1157702470_ or
16082        bigintExpr( 280223983525050_) mod bigintExpr(-1099511627776_) <>    -151481557830_ or
16083        bigintExpr(-280223983525050_) mod bigintExpr(             1_) <>                0_ or
16084        bigintExpr(-280223983525050_) mod bigintExpr(             2_) <>                0_ or
16085        bigintExpr(-280223983525050_) mod bigintExpr(             4_) <>                2_ or
16086        bigintExpr(-280223983525050_) mod bigintExpr(             8_) <>                6_ or
16087        bigintExpr(-280223983525050_) mod bigintExpr(          1024_) <>              838_ or
16088        bigintExpr(-280223983525050_) mod bigintExpr(       1048576_) <>            74566_ or
16089        bigintExpr(-280223983525050_) mod bigintExpr(    1073741824_) <>         83960646_ or
16090        bigintExpr(-280223983525050_) mod bigintExpr(    2147483648_) <>       1157702470_ or
16091        bigintExpr(-280223983525050_) mod bigintExpr(    4294967296_) <>       1157702470_ or
16092        bigintExpr(-280223983525050_) mod bigintExpr( 1099511627776_) <>     151481557830_ or
16093        bigintExpr(-280223983525050_) mod bigintExpr(            -1_) <>               -0_ or
16094        bigintExpr(-280223983525050_) mod bigintExpr(            -2_) <>               -0_ or
16095        bigintExpr(-280223983525050_) mod bigintExpr(            -4_) <>               -2_ or
16096        bigintExpr(-280223983525050_) mod bigintExpr(            -8_) <>               -2_ or
16097        bigintExpr(-280223983525050_) mod bigintExpr(         -1024_) <>             -186_ or
16098        bigintExpr(-280223983525050_) mod bigintExpr(      -1048576_) <>          -974010_ or
16099        bigintExpr(-280223983525050_) mod bigintExpr(   -1073741824_) <>       -989781178_ or
16100        bigintExpr(-280223983525050_) mod bigintExpr(   -2147483648_) <>       -989781178_ or
16101        bigintExpr(-280223983525050_) mod bigintExpr(   -4294967296_) <>      -3137264826_ or
16102        bigintExpr(-280223983525050_) mod bigintExpr(-1099511627776_) <>    -948030069946_ or
16103
16104         11259375_ mod                       2147483648_ <>                         11259375_ or
16105         11259375_ mod                       4294967296_ <>                         11259375_ or
16106         11259375_ mod                       8589934592_ <>                         11259375_ or
16107         11259375_ mod                    1099511627776_ <>                         11259375_ or
16108         11259375_ mod                 1125899906842624_ <>                         11259375_ or
16109         11259375_ mod              9223372036854775808_ <>                         11259375_ or
16110         11259375_ mod             18446744073709551616_ <>                         11259375_ or
16111         11259375_ mod             36893488147419103232_ <>                         11259375_ or
16112         11259375_ mod           1180591620717411303424_ <>                         11259375_ or
16113         11259375_ mod        1208925819614629174706176_ <>                         11259375_ or
16114         11259375_ mod    39614081257132168796771975168_ <>                         11259375_ or
16115         11259375_ mod    79228162514264337593543950336_ <>                         11259375_ or
16116         11259375_ mod   158456325028528675187087900672_ <>                         11259375_ or
16117         11259375_ mod  1267650600228229401496703205376_ <>                         11259375_ or
16118         11259375_ mod                      -2147483648_ <>                      -2136224273_ or
16119         11259375_ mod                      -4294967296_ <>                      -4283707921_ or
16120         11259375_ mod                      -8589934592_ <>                      -8578675217_ or
16121         11259375_ mod                   -1099511627776_ <>                   -1099500368401_ or
16122         11259375_ mod                -1125899906842624_ <>                -1125899895583249_ or
16123         11259375_ mod             -9223372036854775808_ <>             -9223372036843516433_ or
16124         11259375_ mod            -18446744073709551616_ <>            -18446744073698292241_ or
16125         11259375_ mod            -36893488147419103232_ <>            -36893488147407843857_ or
16126         11259375_ mod          -1180591620717411303424_ <>          -1180591620717400044049_ or
16127         11259375_ mod       -1208925819614629174706176_ <>       -1208925819614629163446801_ or
16128         11259375_ mod   -39614081257132168796771975168_ <>   -39614081257132168796760715793_ or
16129         11259375_ mod   -79228162514264337593543950336_ <>   -79228162514264337593532690961_ or
16130         11259375_ mod  -158456325028528675187087900672_ <>  -158456325028528675187076641297_ or
16131         11259375_ mod -1267650600228229401496703205376_ <> -1267650600228229401496691946001_ or
16132        -11259375_ mod                       2147483648_ <>                       2136224273_ or
16133        -11259375_ mod                       4294967296_ <>                       4283707921_ or
16134        -11259375_ mod                       8589934592_ <>                       8578675217_ or
16135        -11259375_ mod                    1099511627776_ <>                    1099500368401_ or
16136        -11259375_ mod                 1125899906842624_ <>                 1125899895583249_ or
16137        -11259375_ mod              9223372036854775808_ <>              9223372036843516433_ or
16138        -11259375_ mod             18446744073709551616_ <>             18446744073698292241_ or
16139        -11259375_ mod             36893488147419103232_ <>             36893488147407843857_ or
16140        -11259375_ mod           1180591620717411303424_ <>           1180591620717400044049_ or
16141        -11259375_ mod        1208925819614629174706176_ <>        1208925819614629163446801_ or
16142        -11259375_ mod    39614081257132168796771975168_ <>    39614081257132168796760715793_ or
16143        -11259375_ mod    79228162514264337593543950336_ <>    79228162514264337593532690961_ or
16144        -11259375_ mod   158456325028528675187087900672_ <>   158456325028528675187076641297_ or
16145        -11259375_ mod  1267650600228229401496703205376_ <>  1267650600228229401496691946001_ or
16146        -11259375_ mod                      -2147483648_ <>                        -11259375_ or
16147        -11259375_ mod                      -4294967296_ <>                        -11259375_ or
16148        -11259375_ mod                      -8589934592_ <>                        -11259375_ or
16149        -11259375_ mod                   -1099511627776_ <>                        -11259375_ or
16150        -11259375_ mod                -1125899906842624_ <>                        -11259375_ or
16151        -11259375_ mod             -9223372036854775808_ <>                        -11259375_ or
16152        -11259375_ mod            -18446744073709551616_ <>                        -11259375_ or
16153        -11259375_ mod            -36893488147419103232_ <>                        -11259375_ or
16154        -11259375_ mod          -1180591620717411303424_ <>                        -11259375_ or
16155        -11259375_ mod       -1208925819614629174706176_ <>                        -11259375_ or
16156        -11259375_ mod   -39614081257132168796771975168_ <>                        -11259375_ or
16157        -11259375_ mod   -79228162514264337593543950336_ <>                        -11259375_ or
16158        -11259375_ mod  -158456325028528675187087900672_ <>                        -11259375_ or
16159        -11259375_ mod -1267650600228229401496703205376_ <>                        -11259375_ or
16160
16161         11259375_ mod bigintExpr(                      2147483648_) <>                         11259375_ or
16162         11259375_ mod bigintExpr(                      4294967296_) <>                         11259375_ or
16163         11259375_ mod bigintExpr(                      8589934592_) <>                         11259375_ or
16164         11259375_ mod bigintExpr(                   1099511627776_) <>                         11259375_ or
16165         11259375_ mod bigintExpr(                1125899906842624_) <>                         11259375_ or
16166         11259375_ mod bigintExpr(             9223372036854775808_) <>                         11259375_ or
16167         11259375_ mod bigintExpr(            18446744073709551616_) <>                         11259375_ or
16168         11259375_ mod bigintExpr(            36893488147419103232_) <>                         11259375_ or
16169         11259375_ mod bigintExpr(          1180591620717411303424_) <>                         11259375_ or
16170         11259375_ mod bigintExpr(       1208925819614629174706176_) <>                         11259375_ or
16171         11259375_ mod bigintExpr(   39614081257132168796771975168_) <>                         11259375_ or
16172         11259375_ mod bigintExpr(   79228162514264337593543950336_) <>                         11259375_ or
16173         11259375_ mod bigintExpr(  158456325028528675187087900672_) <>                         11259375_ or
16174         11259375_ mod bigintExpr( 1267650600228229401496703205376_) <>                         11259375_ or
16175         11259375_ mod bigintExpr(                     -2147483648_) <>                      -2136224273_ or
16176         11259375_ mod bigintExpr(                     -4294967296_) <>                      -4283707921_ or
16177         11259375_ mod bigintExpr(                     -8589934592_) <>                      -8578675217_ or
16178         11259375_ mod bigintExpr(                  -1099511627776_) <>                   -1099500368401_ or
16179         11259375_ mod bigintExpr(               -1125899906842624_) <>                -1125899895583249_ or
16180         11259375_ mod bigintExpr(            -9223372036854775808_) <>             -9223372036843516433_ or
16181         11259375_ mod bigintExpr(           -18446744073709551616_) <>            -18446744073698292241_ or
16182         11259375_ mod bigintExpr(           -36893488147419103232_) <>            -36893488147407843857_ or
16183         11259375_ mod bigintExpr(         -1180591620717411303424_) <>          -1180591620717400044049_ or
16184         11259375_ mod bigintExpr(      -1208925819614629174706176_) <>       -1208925819614629163446801_ or
16185         11259375_ mod bigintExpr(  -39614081257132168796771975168_) <>   -39614081257132168796760715793_ or
16186         11259375_ mod bigintExpr(  -79228162514264337593543950336_) <>   -79228162514264337593532690961_ or
16187         11259375_ mod bigintExpr( -158456325028528675187087900672_) <>  -158456325028528675187076641297_ or
16188         11259375_ mod bigintExpr(-1267650600228229401496703205376_) <> -1267650600228229401496691946001_ or
16189        -11259375_ mod bigintExpr(                      2147483648_) <>                       2136224273_ or
16190        -11259375_ mod bigintExpr(                      4294967296_) <>                       4283707921_ or
16191        -11259375_ mod bigintExpr(                      8589934592_) <>                       8578675217_ or
16192        -11259375_ mod bigintExpr(                   1099511627776_) <>                    1099500368401_ or
16193        -11259375_ mod bigintExpr(                1125899906842624_) <>                 1125899895583249_ or
16194        -11259375_ mod bigintExpr(             9223372036854775808_) <>              9223372036843516433_ or
16195        -11259375_ mod bigintExpr(            18446744073709551616_) <>             18446744073698292241_ or
16196        -11259375_ mod bigintExpr(            36893488147419103232_) <>             36893488147407843857_ or
16197        -11259375_ mod bigintExpr(          1180591620717411303424_) <>           1180591620717400044049_ or
16198        -11259375_ mod bigintExpr(       1208925819614629174706176_) <>        1208925819614629163446801_ or
16199        -11259375_ mod bigintExpr(   39614081257132168796771975168_) <>    39614081257132168796760715793_ or
16200        -11259375_ mod bigintExpr(   79228162514264337593543950336_) <>    79228162514264337593532690961_ or
16201        -11259375_ mod bigintExpr(  158456325028528675187087900672_) <>   158456325028528675187076641297_ or
16202        -11259375_ mod bigintExpr( 1267650600228229401496703205376_) <>  1267650600228229401496691946001_ or
16203        -11259375_ mod bigintExpr(                     -2147483648_) <>                        -11259375_ or
16204        -11259375_ mod bigintExpr(                     -4294967296_) <>                        -11259375_ or
16205        -11259375_ mod bigintExpr(                     -8589934592_) <>                        -11259375_ or
16206        -11259375_ mod bigintExpr(                  -1099511627776_) <>                        -11259375_ or
16207        -11259375_ mod bigintExpr(               -1125899906842624_) <>                        -11259375_ or
16208        -11259375_ mod bigintExpr(            -9223372036854775808_) <>                        -11259375_ or
16209        -11259375_ mod bigintExpr(           -18446744073709551616_) <>                        -11259375_ or
16210        -11259375_ mod bigintExpr(           -36893488147419103232_) <>                        -11259375_ or
16211        -11259375_ mod bigintExpr(         -1180591620717411303424_) <>                        -11259375_ or
16212        -11259375_ mod bigintExpr(      -1208925819614629174706176_) <>                        -11259375_ or
16213        -11259375_ mod bigintExpr(  -39614081257132168796771975168_) <>                        -11259375_ or
16214        -11259375_ mod bigintExpr(  -79228162514264337593543950336_) <>                        -11259375_ or
16215        -11259375_ mod bigintExpr( -158456325028528675187087900672_) <>                        -11259375_ or
16216        -11259375_ mod bigintExpr(-1267650600228229401496703205376_) <>                        -11259375_ or
16217
16218        bigintExpr( 11259375_) mod                       2147483648_ <>                         11259375_ or
16219        bigintExpr( 11259375_) mod                       4294967296_ <>                         11259375_ or
16220        bigintExpr( 11259375_) mod                       8589934592_ <>                         11259375_ or
16221        bigintExpr( 11259375_) mod                    1099511627776_ <>                         11259375_ or
16222        bigintExpr( 11259375_) mod                 1125899906842624_ <>                         11259375_ or
16223        bigintExpr( 11259375_) mod              9223372036854775808_ <>                         11259375_ or
16224        bigintExpr( 11259375_) mod             18446744073709551616_ <>                         11259375_ or
16225        bigintExpr( 11259375_) mod             36893488147419103232_ <>                         11259375_ or
16226        bigintExpr( 11259375_) mod           1180591620717411303424_ <>                         11259375_ or
16227        bigintExpr( 11259375_) mod        1208925819614629174706176_ <>                         11259375_ or
16228        bigintExpr( 11259375_) mod    39614081257132168796771975168_ <>                         11259375_ or
16229        bigintExpr( 11259375_) mod    79228162514264337593543950336_ <>                         11259375_ or
16230        bigintExpr( 11259375_) mod   158456325028528675187087900672_ <>                         11259375_ or
16231        bigintExpr( 11259375_) mod  1267650600228229401496703205376_ <>                         11259375_ or
16232        bigintExpr( 11259375_) mod                      -2147483648_ <>                      -2136224273_ or
16233        bigintExpr( 11259375_) mod                      -4294967296_ <>                      -4283707921_ or
16234        bigintExpr( 11259375_) mod                      -8589934592_ <>                      -8578675217_ or
16235        bigintExpr( 11259375_) mod                   -1099511627776_ <>                   -1099500368401_ or
16236        bigintExpr( 11259375_) mod                -1125899906842624_ <>                -1125899895583249_ or
16237        bigintExpr( 11259375_) mod             -9223372036854775808_ <>             -9223372036843516433_ or
16238        bigintExpr( 11259375_) mod            -18446744073709551616_ <>            -18446744073698292241_ or
16239        bigintExpr( 11259375_) mod            -36893488147419103232_ <>            -36893488147407843857_ or
16240        bigintExpr( 11259375_) mod          -1180591620717411303424_ <>          -1180591620717400044049_ or
16241        bigintExpr( 11259375_) mod       -1208925819614629174706176_ <>       -1208925819614629163446801_ or
16242        bigintExpr( 11259375_) mod   -39614081257132168796771975168_ <>   -39614081257132168796760715793_ or
16243        bigintExpr( 11259375_) mod   -79228162514264337593543950336_ <>   -79228162514264337593532690961_ or
16244        bigintExpr( 11259375_) mod  -158456325028528675187087900672_ <>  -158456325028528675187076641297_ or
16245        bigintExpr( 11259375_) mod -1267650600228229401496703205376_ <> -1267650600228229401496691946001_ or
16246        bigintExpr(-11259375_) mod                       2147483648_ <>                       2136224273_ or
16247        bigintExpr(-11259375_) mod                       4294967296_ <>                       4283707921_ or
16248        bigintExpr(-11259375_) mod                       8589934592_ <>                       8578675217_ or
16249        bigintExpr(-11259375_) mod                    1099511627776_ <>                    1099500368401_ or
16250        bigintExpr(-11259375_) mod                 1125899906842624_ <>                 1125899895583249_ or
16251        bigintExpr(-11259375_) mod              9223372036854775808_ <>              9223372036843516433_ or
16252        bigintExpr(-11259375_) mod             18446744073709551616_ <>             18446744073698292241_ or
16253        bigintExpr(-11259375_) mod             36893488147419103232_ <>             36893488147407843857_ or
16254        bigintExpr(-11259375_) mod           1180591620717411303424_ <>           1180591620717400044049_ or
16255        bigintExpr(-11259375_) mod        1208925819614629174706176_ <>        1208925819614629163446801_ or
16256        bigintExpr(-11259375_) mod    39614081257132168796771975168_ <>    39614081257132168796760715793_ or
16257        bigintExpr(-11259375_) mod    79228162514264337593543950336_ <>    79228162514264337593532690961_ or
16258        bigintExpr(-11259375_) mod   158456325028528675187087900672_ <>   158456325028528675187076641297_ or
16259        bigintExpr(-11259375_) mod  1267650600228229401496703205376_ <>  1267650600228229401496691946001_ or
16260        bigintExpr(-11259375_) mod                      -2147483648_ <>                        -11259375_ or
16261        bigintExpr(-11259375_) mod                      -4294967296_ <>                        -11259375_ or
16262        bigintExpr(-11259375_) mod                      -8589934592_ <>                        -11259375_ or
16263        bigintExpr(-11259375_) mod                   -1099511627776_ <>                        -11259375_ or
16264        bigintExpr(-11259375_) mod                -1125899906842624_ <>                        -11259375_ or
16265        bigintExpr(-11259375_) mod             -9223372036854775808_ <>                        -11259375_ or
16266        bigintExpr(-11259375_) mod            -18446744073709551616_ <>                        -11259375_ or
16267        bigintExpr(-11259375_) mod            -36893488147419103232_ <>                        -11259375_ or
16268        bigintExpr(-11259375_) mod          -1180591620717411303424_ <>                        -11259375_ or
16269        bigintExpr(-11259375_) mod       -1208925819614629174706176_ <>                        -11259375_ or
16270        bigintExpr(-11259375_) mod   -39614081257132168796771975168_ <>                        -11259375_ or
16271        bigintExpr(-11259375_) mod   -79228162514264337593543950336_ <>                        -11259375_ or
16272        bigintExpr(-11259375_) mod  -158456325028528675187087900672_ <>                        -11259375_ or
16273        bigintExpr(-11259375_) mod -1267650600228229401496703205376_ <>                        -11259375_ or
16274
16275        bigintExpr( 11259375_) mod bigintExpr(                      2147483648_) <>                         11259375_ or
16276        bigintExpr( 11259375_) mod bigintExpr(                      4294967296_) <>                         11259375_ or
16277        bigintExpr( 11259375_) mod bigintExpr(                      8589934592_) <>                         11259375_ or
16278        bigintExpr( 11259375_) mod bigintExpr(                   1099511627776_) <>                         11259375_ or
16279        bigintExpr( 11259375_) mod bigintExpr(                1125899906842624_) <>                         11259375_ or
16280        bigintExpr( 11259375_) mod bigintExpr(             9223372036854775808_) <>                         11259375_ or
16281        bigintExpr( 11259375_) mod bigintExpr(            18446744073709551616_) <>                         11259375_ or
16282        bigintExpr( 11259375_) mod bigintExpr(            36893488147419103232_) <>                         11259375_ or
16283        bigintExpr( 11259375_) mod bigintExpr(          1180591620717411303424_) <>                         11259375_ or
16284        bigintExpr( 11259375_) mod bigintExpr(       1208925819614629174706176_) <>                         11259375_ or
16285        bigintExpr( 11259375_) mod bigintExpr(   39614081257132168796771975168_) <>                         11259375_ or
16286        bigintExpr( 11259375_) mod bigintExpr(   79228162514264337593543950336_) <>                         11259375_ or
16287        bigintExpr( 11259375_) mod bigintExpr(  158456325028528675187087900672_) <>                         11259375_ or
16288        bigintExpr( 11259375_) mod bigintExpr( 1267650600228229401496703205376_) <>                         11259375_ or
16289        bigintExpr( 11259375_) mod bigintExpr(                     -2147483648_) <>                      -2136224273_ or
16290        bigintExpr( 11259375_) mod bigintExpr(                     -4294967296_) <>                      -4283707921_ or
16291        bigintExpr( 11259375_) mod bigintExpr(                     -8589934592_) <>                      -8578675217_ or
16292        bigintExpr( 11259375_) mod bigintExpr(                  -1099511627776_) <>                   -1099500368401_ or
16293        bigintExpr( 11259375_) mod bigintExpr(               -1125899906842624_) <>                -1125899895583249_ or
16294        bigintExpr( 11259375_) mod bigintExpr(            -9223372036854775808_) <>             -9223372036843516433_ or
16295        bigintExpr( 11259375_) mod bigintExpr(           -18446744073709551616_) <>            -18446744073698292241_ or
16296        bigintExpr( 11259375_) mod bigintExpr(           -36893488147419103232_) <>            -36893488147407843857_ or
16297        bigintExpr( 11259375_) mod bigintExpr(         -1180591620717411303424_) <>          -1180591620717400044049_ or
16298        bigintExpr( 11259375_) mod bigintExpr(      -1208925819614629174706176_) <>       -1208925819614629163446801_ or
16299        bigintExpr( 11259375_) mod bigintExpr(  -39614081257132168796771975168_) <>   -39614081257132168796760715793_ or
16300        bigintExpr( 11259375_) mod bigintExpr(  -79228162514264337593543950336_) <>   -79228162514264337593532690961_ or
16301        bigintExpr( 11259375_) mod bigintExpr( -158456325028528675187087900672_) <>  -158456325028528675187076641297_ or
16302        bigintExpr( 11259375_) mod bigintExpr(-1267650600228229401496703205376_) <> -1267650600228229401496691946001_ or
16303        bigintExpr(-11259375_) mod bigintExpr(                      2147483648_) <>                       2136224273_ or
16304        bigintExpr(-11259375_) mod bigintExpr(                      4294967296_) <>                       4283707921_ or
16305        bigintExpr(-11259375_) mod bigintExpr(                      8589934592_) <>                       8578675217_ or
16306        bigintExpr(-11259375_) mod bigintExpr(                   1099511627776_) <>                    1099500368401_ or
16307        bigintExpr(-11259375_) mod bigintExpr(                1125899906842624_) <>                 1125899895583249_ or
16308        bigintExpr(-11259375_) mod bigintExpr(             9223372036854775808_) <>              9223372036843516433_ or
16309        bigintExpr(-11259375_) mod bigintExpr(            18446744073709551616_) <>             18446744073698292241_ or
16310        bigintExpr(-11259375_) mod bigintExpr(            36893488147419103232_) <>             36893488147407843857_ or
16311        bigintExpr(-11259375_) mod bigintExpr(          1180591620717411303424_) <>           1180591620717400044049_ or
16312        bigintExpr(-11259375_) mod bigintExpr(       1208925819614629174706176_) <>        1208925819614629163446801_ or
16313        bigintExpr(-11259375_) mod bigintExpr(   39614081257132168796771975168_) <>    39614081257132168796760715793_ or
16314        bigintExpr(-11259375_) mod bigintExpr(   79228162514264337593543950336_) <>    79228162514264337593532690961_ or
16315        bigintExpr(-11259375_) mod bigintExpr(  158456325028528675187087900672_) <>   158456325028528675187076641297_ or
16316        bigintExpr(-11259375_) mod bigintExpr( 1267650600228229401496703205376_) <>  1267650600228229401496691946001_ or
16317        bigintExpr(-11259375_) mod bigintExpr(                     -2147483648_) <>                        -11259375_ or
16318        bigintExpr(-11259375_) mod bigintExpr(                     -4294967296_) <>                        -11259375_ or
16319        bigintExpr(-11259375_) mod bigintExpr(                     -8589934592_) <>                        -11259375_ or
16320        bigintExpr(-11259375_) mod bigintExpr(                  -1099511627776_) <>                        -11259375_ or
16321        bigintExpr(-11259375_) mod bigintExpr(               -1125899906842624_) <>                        -11259375_ or
16322        bigintExpr(-11259375_) mod bigintExpr(            -9223372036854775808_) <>                        -11259375_ or
16323        bigintExpr(-11259375_) mod bigintExpr(           -18446744073709551616_) <>                        -11259375_ or
16324        bigintExpr(-11259375_) mod bigintExpr(           -36893488147419103232_) <>                        -11259375_ or
16325        bigintExpr(-11259375_) mod bigintExpr(         -1180591620717411303424_) <>                        -11259375_ or
16326        bigintExpr(-11259375_) mod bigintExpr(      -1208925819614629174706176_) <>                        -11259375_ or
16327        bigintExpr(-11259375_) mod bigintExpr(  -39614081257132168796771975168_) <>                        -11259375_ or
16328        bigintExpr(-11259375_) mod bigintExpr(  -79228162514264337593543950336_) <>                        -11259375_ or
16329        bigintExpr(-11259375_) mod bigintExpr( -158456325028528675187087900672_) <>                        -11259375_ or
16330        bigintExpr(-11259375_) mod bigintExpr(-1267650600228229401496703205376_) <>                        -11259375_ then
16331      writeln("Modulo of bigInteger division by power of two does not work correct.");
16332      okay := FALSE;
16333    end if;
16334
16335    if  not raisesNumericError(           -9223372036854775808_  mod            0_ ) or
16336        not raisesNumericError(           -9223372036854775807_  mod            0_ ) or
16337        not raisesNumericError(                    -4294967296_  mod            0_ ) or
16338        not raisesNumericError(                    -4294967295_  mod            0_ ) or
16339        not raisesNumericError(                    -2147483648_  mod            0_ ) or
16340        not raisesNumericError(                    -2147483647_  mod            0_ ) or
16341        not raisesNumericError(                              0_  mod            0_ ) or
16342        not raisesNumericError(                     2147483647_  mod            0_ ) or
16343        not raisesNumericError(                     2147483648_  mod            0_ ) or
16344        not raisesNumericError(                     4294967295_  mod            0_ ) or
16345        not raisesNumericError(                     4294967296_  mod            0_ ) or
16346        not raisesNumericError(            9223372036854775807_  mod            0_ ) or
16347        not raisesNumericError(            9223372036854775808_  mod            0_ ) or
16348        not raisesNumericError(bigintExpr(-9223372036854775808_) mod            0_ ) or
16349        not raisesNumericError(bigintExpr(-9223372036854775807_) mod            0_ ) or
16350        not raisesNumericError(bigintExpr(         -4294967296_) mod            0_ ) or
16351        not raisesNumericError(bigintExpr(         -4294967295_) mod            0_ ) or
16352        not raisesNumericError(bigintExpr(         -2147483648_) mod            0_ ) or
16353        not raisesNumericError(bigintExpr(         -2147483647_) mod            0_ ) or
16354        not raisesNumericError(bigintExpr(                   0_) mod            0_ ) or
16355        not raisesNumericError(bigintExpr(          2147483647_) mod            0_ ) or
16356        not raisesNumericError(bigintExpr(          2147483648_) mod            0_ ) or
16357        not raisesNumericError(bigintExpr(          4294967295_) mod            0_ ) or
16358        not raisesNumericError(bigintExpr(          4294967296_) mod            0_ ) or
16359        not raisesNumericError(bigintExpr( 9223372036854775807_) mod            0_ ) or
16360        not raisesNumericError(bigintExpr( 9223372036854775808_) mod            0_ ) or
16361        not raisesNumericError(           -9223372036854775808_  mod bigintExpr(0_)) or
16362        not raisesNumericError(           -9223372036854775807_  mod bigintExpr(0_)) or
16363        not raisesNumericError(                    -4294967296_  mod bigintExpr(0_)) or
16364        not raisesNumericError(                    -4294967295_  mod bigintExpr(0_)) or
16365        not raisesNumericError(                    -2147483648_  mod bigintExpr(0_)) or
16366        not raisesNumericError(                    -2147483647_  mod bigintExpr(0_)) or
16367        not raisesNumericError(                              0_  mod bigintExpr(0_)) or
16368        not raisesNumericError(                     2147483647_  mod bigintExpr(0_)) or
16369        not raisesNumericError(                     2147483648_  mod bigintExpr(0_)) or
16370        not raisesNumericError(                     4294967295_  mod bigintExpr(0_)) or
16371        not raisesNumericError(                     4294967296_  mod bigintExpr(0_)) or
16372        not raisesNumericError(            9223372036854775807_  mod bigintExpr(0_)) or
16373        not raisesNumericError(            9223372036854775808_  mod bigintExpr(0_)) or
16374        not raisesNumericError(bigintExpr(-9223372036854775808_) mod bigintExpr(0_)) or
16375        not raisesNumericError(bigintExpr(-9223372036854775807_) mod bigintExpr(0_)) or
16376        not raisesNumericError(bigintExpr(         -4294967296_) mod bigintExpr(0_)) or
16377        not raisesNumericError(bigintExpr(         -4294967295_) mod bigintExpr(0_)) or
16378        not raisesNumericError(bigintExpr(         -2147483648_) mod bigintExpr(0_)) or
16379        not raisesNumericError(bigintExpr(         -2147483647_) mod bigintExpr(0_)) or
16380        not raisesNumericError(bigintExpr(                   0_) mod bigintExpr(0_)) or
16381        not raisesNumericError(bigintExpr(          2147483647_) mod bigintExpr(0_)) or
16382        not raisesNumericError(bigintExpr(          2147483648_) mod bigintExpr(0_)) or
16383        not raisesNumericError(bigintExpr(          4294967295_) mod bigintExpr(0_)) or
16384        not raisesNumericError(bigintExpr(          4294967296_) mod bigintExpr(0_)) or
16385        not raisesNumericError(bigintExpr( 9223372036854775807_) mod bigintExpr(0_)) or
16386        not raisesNumericError(bigintExpr( 9223372036854775808_) mod bigintExpr(0_)) then
16387      writeln(" ***** Modulo of bigInteger division by zero does not raise NUMERIC_ERROR.");
16388      okay := FALSE;
16389    end if;
16390
16391    if okay then
16392      writeln("Modulo of bigInteger division works correct.");
16393    else
16394      writeln(" ***** Modulo of bigInteger division does not work correct.");
16395      writeln;
16396    end if;
16397  end func;
16398
16399
16400const proc: chkPower is func
16401  local
16402    var boolean: okay is TRUE;
16403  begin
16404    if       0_ **            0 <>                                     1_ or
16405             0_ **            1 <>                                     0_ or
16406             0_ **            2 <>                                     0_ or
16407             0_ **           15 <>                                     0_ or
16408             0_ **           64 <>                                     0_ or
16409             0_ **           99 <>                                     0_ or
16410             0_ **          999 <>                                     0_ or
16411             0_ **    999999999 <>                                     0_ or
16412             0_ **   2147483647 <>                                     0_ or
16413             0_ ** integer.last <>                                     0_ or
16414
16415             1_ **            0 <>                                     1_ or
16416             1_ **            1 <>                                     1_ or
16417             1_ **            2 <>                                     1_ or
16418             1_ **           15 <>                                     1_ or
16419             1_ **           64 <>                                     1_ or
16420             1_ **           99 <>                                     1_ or
16421             1_ **          999 <>                                     1_ or
16422             1_ **    999999999 <>                                     1_ or
16423             1_ **   2147483647 <>                                     1_ or
16424             1_ ** integer.last <>                                     1_ or
16425
16426             2_ **   0 <>                                              1_ or
16427             2_ **   1 <>                                              2_ or
16428             2_ **   2 <>                                              4_ or
16429             2_ **   3 <>                                              8_ or
16430             2_ **   4 <>                                             16_ or
16431             2_ **   5 <>                                             32_ or
16432             2_ **   6 <>                                             64_ or
16433             2_ **   7 <>                                            128_ or
16434             2_ **   8 <>                                            256_ or
16435             2_ **  10 <>                                           1024_ or
16436             2_ **  14 <>                                          16384_ or
16437             2_ **  15 <>                                          32768_ or
16438             2_ **  16 <>                                          65536_ or
16439             2_ **  25 <>                                       33554432_ or
16440             2_ **  30 <>                                     1073741824_ or
16441             2_ **  31 <>                                     2147483648_ or
16442             2_ **  32 <>                                     4294967296_ or
16443             2_ **  50 <>                               1125899906842624_ or
16444             2_ **  62 <>                            4611686018427387904_ or
16445             2_ **  63 <>                            9223372036854775808_ or
16446             2_ **  64 <>                           18446744073709551616_ or
16447             2_ **  75 <>                        37778931862957161709568_ or
16448             2_ **  99 <>                 633825300114114700748351602688_ or
16449             2_ ** 100 <>                1267650600228229401496703205376_ or
16450             2_ ** 126 <>         85070591730234615865843651857942052864_ or
16451             2_ ** 127 <>        170141183460469231731687303715884105728_ or
16452             2_ ** 128 <>        340282366920938463463374607431768211456_ or
16453             2_ ** 150 <> 1427247692705959881058285969449495136382746624_ or
16454             2_ ** 152 <> 5708990770823839524233143877797980545530986496_ or
16455
16456             4_ **   0 <>                                              1_ or
16457             4_ **   1 <>                                              4_ or
16458             4_ **   2 <>                                             16_ or
16459             4_ **   3 <>                                             64_ or
16460             4_ **   4 <>                                            256_ or
16461             4_ **  10 <>                                        1048576_ or
16462             4_ **  14 <>                                      268435456_ or
16463             4_ **  15 <>                                     1073741824_ or
16464             4_ **  16 <>                                     4294967296_ or
16465             4_ **  25 <>                               1125899906842624_ or
16466             4_ **  30 <>                            1152921504606846976_ or
16467             4_ **  31 <>                            4611686018427387904_ or
16468             4_ **  32 <>                           18446744073709551616_ or
16469             4_ **  50 <>                1267650600228229401496703205376_ or
16470             4_ **  62 <>         21267647932558653966460912964485513216_ or
16471             4_ **  63 <>         85070591730234615865843651857942052864_ or
16472             4_ **  64 <>        340282366920938463463374607431768211456_ or
16473             4_ **  75 <> 1427247692705959881058285969449495136382746624_ or
16474             4_ **  76 <> 5708990770823839524233143877797980545530986496_ or
16475
16476             8_ **   0 <>                                              1_ or
16477             8_ **   1 <>                                              8_ or
16478             8_ **   2 <>                                             64_ or
16479             8_ **   3 <>                                            512_ or
16480             8_ **   4 <>                                           4096_ or
16481             8_ **  16 <>                                281474976710656_ or
16482             8_ **  31 <>                   9903520314283042199192993792_ or
16483             8_ **  32 <>                  79228162514264337593543950336_ or
16484             8_ **  50 <> 1427247692705959881058285969449495136382746624_ or
16485
16486            10_ **   0 <>                                              1_ or
16487            10_ **   1 <>                                             10_ or
16488            10_ **   2 <>                                            100_ or
16489            10_ **   3 <>                                           1000_ or
16490            10_ **   4 <>                                          10000_ or
16491            10_ **   5 <>                                         100000_ or
16492            10_ **  10 <>                                    10000000000_ or
16493            10_ **  20 <>                          100000000000000000000_ or
16494            10_ **  30 <>                1000000000000000000000000000000_ or
16495            10_ **  35 <>           100000000000000000000000000000000000_ or
16496            10_ **  40 <>      10000000000000000000000000000000000000000_ or
16497            10_ **  45 <> 1000000000000000000000000000000000000000000000_ or
16498
16499            16_ **   0 <>                                              1_ or
16500            16_ **   1 <>                                             16_ or
16501            16_ **   2 <>                                            256_ or
16502            16_ **   3 <>                                           4096_ or
16503            16_ **   4 <>                                          65536_ or
16504            16_ **   8 <>                                     4294967296_ or
16505            16_ **  16 <>                           18446744073709551616_ or
16506            16_ **  25 <>                1267650600228229401496703205376_ or
16507            16_ **  32 <>        340282366920938463463374607431768211456_ or
16508            16_ **  38 <> 5708990770823839524233143877797980545530986496_ or
16509
16510            97_ **   0 <>                                              1_ or
16511            97_ **   1 <>                                             97_ or
16512            97_ **   2 <>                                           9409_ or
16513            97_ **   3 <>                                         912673_ or
16514            97_ **   4 <>                                       88529281_ or
16515            97_ **   8 <>                               7837433594376961_ or
16516            97_ **  10 <>                           73742412689492826049_ or
16517            97_ **  15 <>                 633251189136789386043275954593_ or
16518            97_ **  16 <>               61425365346268570446197767595521_ or
16519            97_ **  20 <>       5437943429267472574499737549036572950401_ or
16520            97_ **  23 <> 4963064143419831996986398968091856144361331873_ or
16521
16522           255_ **   0 <>                                              1_ or
16523           255_ **   1 <>                                            255_ or
16524           255_ **   2 <>                                          65025_ or
16525           255_ **   3 <>                                       16581375_ or
16526           255_ **   4 <>                                     4228250625_ or
16527           255_ **   5 <>                                  1078203909375_ or
16528           255_ **   6 <>                                274941996890625_ or
16529           255_ **   7 <>                              70110209207109375_ or
16530           255_ **   8 <>                           17878103347812890625_ or
16531           255_ **   9 <>                         4558916353692287109375_ or
16532           255_ **  10 <>                      1162523670191533212890625_ or
16533           255_ **  11 <>                    296443535898840969287109375_ or
16534           255_ **  12 <>                  75593101654204447168212890625_ or
16535           255_ **  13 <>               19276240921822134027894287109375_ or
16536           255_ **  14 <>             4915441435064644177113043212890625_ or
16537           255_ **  15 <>          1253437565941484265163826019287109375_ or
16538           255_ **  16 <>        319626579315078487616775634918212890625_ or
16539           255_ **  17 <>      81504777725345014342277786904144287109375_ or
16540           255_ **  18 <>   20783718319962978657280835660556793212890625_ or
16541
16542           256_ **   0 <>                                              1_ or
16543           256_ **   1 <>                                            256_ or
16544           256_ **   2 <>                                          65536_ or
16545           256_ **   3 <>                                       16777216_ or
16546           256_ **   4 <>                                     4294967296_ or
16547           256_ **   5 <>                                  1099511627776_ or
16548           256_ **   6 <>                                281474976710656_ or
16549           256_ **   7 <>                              72057594037927936_ or
16550           256_ **   8 <>                           18446744073709551616_ or
16551           256_ **   9 <>                         4722366482869645213696_ or
16552           256_ **  10 <>                      1208925819614629174706176_ or
16553           256_ **  11 <>                    309485009821345068724781056_ or
16554           256_ **  12 <>                  79228162514264337593543950336_ or
16555           256_ **  13 <>               20282409603651670423947251286016_ or
16556           256_ **  14 <>             5192296858534827628530496329220096_ or
16557           256_ **  15 <>          1329227995784915872903807060280344576_ or
16558           256_ **  16 <>        340282366920938463463374607431768211456_ or
16559           256_ **  17 <>      87112285931760246646623899502532662132736_ or
16560           256_ **  18 <>   22300745198530623141535718272648361505980416_ or
16561
16562         32767_ **   0 <>                                              1_ or
16563         32767_ **   1 <>                                          32767_ or
16564         32767_ **   2 <>                                     1073676289_ or
16565         32767_ **   3 <>                                 35181150961663_ or
16566         32767_ **   4 <>                            1152780773560811521_ or
16567         32767_ **   5 <>                        37773167607267111108607_ or
16568         32767_ **   6 <>                   1237713382987321429695725569_ or
16569         32767_ **   7 <>               40556154420345561286839839719423_ or
16570         32767_ **   8 <>          1328903511891463006685881028086333441_ or
16571         32767_ **   9 <>      43544181374147568340076263647304887861247_ or
16572         32767_ **  10 <> 1426812191086693371799278930931239260549480449_ or
16573
16574         32768_ **   0 <>                                              1_ or
16575         32768_ **   1 <>                                          32768_ or
16576         32768_ **   2 <>                                     1073741824_ or
16577         32768_ **   3 <>                                 35184372088832_ or
16578         32768_ **   4 <>                            1152921504606846976_ or
16579         32768_ **   5 <>                        37778931862957161709568_ or
16580         32768_ **   6 <>                   1237940039285380274899124224_ or
16581         32768_ **   7 <>               40564819207303340847894502572032_ or
16582         32768_ **   8 <>          1329227995784915872903807060280344576_ or
16583         32768_ **   9 <>      43556142965880123323311949751266331066368_ or
16584         32768_ **  10 <> 1427247692705959881058285969449495136382746624_ or
16585
16586         65535_ **   0 <>                                              1_ or
16587         65535_ **   1 <>                                          65535_ or
16588         65535_ **   2 <>                                     4294836225_ or
16589         65535_ **   3 <>                                281462092005375_ or
16590         65535_ **   4 <>                           18445618199572250625_ or
16591         65535_ **   5 <>                      1208833588708967444709375_ or
16592         65535_ **   6 <>                  79220909236042181489028890625_ or
16593         65535_ **   7 <>             5191742286784024363883508347109375_ or
16594         65535_ **   8 <>        340240830764391036687105719527812890625_ or
16595         65535_ **   9 <>   22297682844144366589289473329255217787109375_ or
16596
16597         4294967295_ ** 0 <>                                                                              1_ or
16598         4294967295_ ** 1 <>                                                                     4294967295_ or
16599         4294967295_ ** 2 <>                                                           18446744065119617025_ or
16600         4294967295_ ** 3 <>                                                  79228162458924105385300197375_ or
16601         4294967295_ ** 4 <>                                        340282366604025813516997721482669850625_ or
16602         4294967295_ ** 5 <>                              1461501635629491084391274140357585917716910309375_ or
16603         4294967295_ ** 6 <>                     6277101726617670944954607416215071121746690847213956890625_ or
16604         4294967295_ ** 7 <>           26959946623210927677651784112208183154001000463259786712774267109375_ or
16605         4294967295_ ** 8 <> 115792089021636622262124715160334756877804245386980633020041035952359812890625_ or
16606
16607         281474976710655_ ** 0 <>                                                                         1_ or
16608         281474976710655_ ** 1 <>                                                           281474976710655_ or
16609         281474976710655_ ** 2 <>                                             79228162514263774643590529025_ or
16610         281474976710655_ ** 3 <>                              22300745198530385457048175480480005804261375_ or
16611         281474976710655_ ** 4 <>                6277101735386591560854995301190469248314849750679367450625_ or
16612         281474976710655_ ** 5 <> 1766847064778352944074620567562106788865673297677270486428898935623909375_ or
16613
16614         18446744073709551615_ ** 0 <>                                                          1_ or
16615         18446744073709551615_ ** 1 <>                                       18446744073709551615_ or
16616         18446744073709551615_ ** 2 <>                    340282366920938463426481119284349108225_ or
16617         18446744073709551615_ ** 3 <> 6277101735386680762814942322444851025767571854389858533375_ or
16618
16619        (-1_) **   0 <>  1_ or
16620        (-1_) **   1 <> -1_ or
16621        (-1_) **   2 <>  1_ or
16622        (-1_) **   3 <> -1_ or
16623        (-1_) **   4 <>  1_ or
16624        (-1_) **  15 <> -1_ or
16625        (-1_) **  16 <>  1_ or
16626        (-1_) **  63 <> -1_ or
16627        (-1_) **  64 <>  1_ or
16628        (-1_) **  99 <> -1_ or
16629        (-1_) ** 100 <>  1_ or
16630
16631        (-2_) **   0 <>                                              1_ or
16632        (-2_) **   1 <>                                             -2_ or
16633        (-2_) **   2 <>                                              4_ or
16634        (-2_) **   3 <>                                             -8_ or
16635        (-2_) **   4 <>                                             16_ or
16636        (-2_) **   5 <>                                            -32_ or
16637        (-2_) **   6 <>                                             64_ or
16638        (-2_) **  10 <>                                           1024_ or
16639        (-2_) **  25 <>                                      -33554432_ or
16640        (-2_) **  32 <>                                     4294967296_ or
16641        (-2_) **  50 <>                               1125899906842624_ or
16642        (-2_) **  63 <>                           -9223372036854775808_ or
16643        (-2_) **  64 <>                           18446744073709551616_ or
16644        (-2_) **  75 <>                       -37778931862957161709568_ or
16645        (-2_) **  99 <>                -633825300114114700748351602688_ or
16646        (-2_) ** 100 <>                1267650600228229401496703205376_ or
16647        (-2_) ** 127 <>       -170141183460469231731687303715884105728_ or
16648        (-2_) ** 128 <>        340282366920938463463374607431768211456_ or
16649        (-2_) ** 150 <> 1427247692705959881058285969449495136382746624_ or
16650        (-2_) ** 152 <> 5708990770823839524233143877797980545530986496_ or
16651
16652        (-4_) **   0 <>                                               1_ or
16653        (-4_) **   1 <>                                              -4_ or
16654        (-4_) **   2 <>                                              16_ or
16655        (-4_) **   3 <>                                             -64_ or
16656        (-4_) **   4 <>                                             256_ or
16657        (-4_) **  10 <>                                         1048576_ or
16658        (-4_) **  25 <>                               -1125899906842624_ or
16659        (-4_) **  31 <>                            -4611686018427387904_ or
16660        (-4_) **  32 <>                            18446744073709551616_ or
16661        (-4_) **  50 <>                 1267650600228229401496703205376_ or
16662        (-4_) **  63 <>         -85070591730234615865843651857942052864_ or
16663        (-4_) **  64 <>         340282366920938463463374607431768211456_ or
16664        (-4_) **  75 <> -1427247692705959881058285969449495136382746624_ or
16665        (-4_) **  76 <>  5708990770823839524233143877797980545530986496_ or
16666
16667        (-10_) **   0 <>                                               1_ or
16668        (-10_) **   1 <>                                             -10_ or
16669        (-10_) **   2 <>                                             100_ or
16670        (-10_) **   3 <>                                           -1000_ or
16671        (-10_) **   4 <>                                           10000_ or
16672        (-10_) **   5 <>                                         -100000_ or
16673        (-10_) **  10 <>                                     10000000000_ or
16674        (-10_) **  20 <>                           100000000000000000000_ or
16675        (-10_) **  30 <>                 1000000000000000000000000000000_ or
16676        (-10_) **  35 <>           -100000000000000000000000000000000000_ or
16677        (-10_) **  40 <>       10000000000000000000000000000000000000000_ or
16678        (-10_) **  45 <> -1000000000000000000000000000000000000000000000_ or
16679
16680        (-65535_) ** 0 <>                                         1_ or
16681        (-65535_) ** 1 <>                                    -65535_ or
16682        (-65535_) ** 2 <>                                4294836225_ or
16683        (-65535_) ** 3 <>                          -281462092005375_ or
16684        (-65535_) ** 4 <>                      18445618199572250625_ or
16685        (-65535_) ** 5 <>                -1208833588708967444709375_ or
16686        (-65535_) ** 6 <>             79220909236042181489028890625_ or
16687        (-65535_) ** 7 <>       -5191742286784024363883508347109375_ or
16688        (-65535_) ** 8 <>   340240830764391036687105719527812890625_ or
16689
16690        (-18446744073709551615_) ** 0 <>                                                           1_ or
16691        (-18446744073709551615_) ** 1 <>                                       -18446744073709551615_ or
16692        (-18446744073709551615_) ** 2 <>                     340282366920938463426481119284349108225_ or
16693        (-18446744073709551615_) ** 3 <> -6277101735386680762814942322444851025767571854389858533375_ then
16694      writeln("Power of bigInteger does not work correct.");
16695      okay := FALSE;
16696    end if;
16697
16698    if  bigintExpr(     0_) **            0 <>                                     1_ or
16699        bigintExpr(     0_) **            1 <>                                     0_ or
16700        bigintExpr(     0_) **            2 <>                                     0_ or
16701        bigintExpr(     0_) **           15 <>                                     0_ or
16702        bigintExpr(     0_) **           64 <>                                     0_ or
16703        bigintExpr(     0_) **           99 <>                                     0_ or
16704        bigintExpr(     0_) **          999 <>                                     0_ or
16705        bigintExpr(     0_) **    999999999 <>                                     0_ or
16706        bigintExpr(     0_) **   2147483647 <>                                     0_ or
16707        bigintExpr(     0_) ** integer.last <>                                     0_ or
16708
16709        bigintExpr(     1_) **            0 <>                                     1_ or
16710        bigintExpr(     1_) **            1 <>                                     1_ or
16711        bigintExpr(     1_) **            2 <>                                     1_ or
16712        bigintExpr(     1_) **           15 <>                                     1_ or
16713        bigintExpr(     1_) **           64 <>                                     1_ or
16714        bigintExpr(     1_) **           99 <>                                     1_ or
16715        bigintExpr(     1_) **          999 <>                                     1_ or
16716        bigintExpr(     1_) **    999999999 <>                                     1_ or
16717        bigintExpr(     1_) **   2147483647 <>                                     1_ or
16718        bigintExpr(     1_) ** integer.last <>                                     1_ or
16719
16720        bigintExpr(     2_) **   0 <>                                              1_ or
16721        bigintExpr(     2_) **   1 <>                                              2_ or
16722        bigintExpr(     2_) **   2 <>                                              4_ or
16723        bigintExpr(     2_) **   3 <>                                              8_ or
16724        bigintExpr(     2_) **   4 <>                                             16_ or
16725        bigintExpr(     2_) **   5 <>                                             32_ or
16726        bigintExpr(     2_) **   6 <>                                             64_ or
16727        bigintExpr(     2_) **  10 <>                                           1024_ or
16728        bigintExpr(     2_) **  25 <>                                       33554432_ or
16729        bigintExpr(     2_) **  32 <>                                     4294967296_ or
16730        bigintExpr(     2_) **  50 <>                               1125899906842624_ or
16731        bigintExpr(     2_) **  63 <>                            9223372036854775808_ or
16732        bigintExpr(     2_) **  64 <>                           18446744073709551616_ or
16733        bigintExpr(     2_) **  75 <>                        37778931862957161709568_ or
16734        bigintExpr(     2_) **  99 <>                 633825300114114700748351602688_ or
16735        bigintExpr(     2_) ** 100 <>                1267650600228229401496703205376_ or
16736        bigintExpr(     2_) ** 127 <>        170141183460469231731687303715884105728_ or
16737        bigintExpr(     2_) ** 128 <>        340282366920938463463374607431768211456_ or
16738        bigintExpr(     2_) ** 150 <> 1427247692705959881058285969449495136382746624_ or
16739        bigintExpr(     2_) ** 152 <> 5708990770823839524233143877797980545530986496_ or
16740
16741        bigintExpr(     4_) **   0 <>                                              1_ or
16742        bigintExpr(     4_) **   1 <>                                              4_ or
16743        bigintExpr(     4_) **   2 <>                                             16_ or
16744        bigintExpr(     4_) **   3 <>                                             64_ or
16745        bigintExpr(     4_) **   4 <>                                            256_ or
16746        bigintExpr(     4_) **  10 <>                                        1048576_ or
16747        bigintExpr(     4_) **  25 <>                               1125899906842624_ or
16748        bigintExpr(     4_) **  31 <>                            4611686018427387904_ or
16749        bigintExpr(     4_) **  32 <>                           18446744073709551616_ or
16750        bigintExpr(     4_) **  50 <>                1267650600228229401496703205376_ or
16751        bigintExpr(     4_) **  63 <>         85070591730234615865843651857942052864_ or
16752        bigintExpr(     4_) **  64 <>        340282366920938463463374607431768211456_ or
16753        bigintExpr(     4_) **  75 <> 1427247692705959881058285969449495136382746624_ or
16754        bigintExpr(     4_) **  76 <> 5708990770823839524233143877797980545530986496_ or
16755
16756        bigintExpr(     8_) **   0 <>                                              1_ or
16757        bigintExpr(     8_) **   1 <>                                              8_ or
16758        bigintExpr(     8_) **   2 <>                                             64_ or
16759        bigintExpr(     8_) **   3 <>                                            512_ or
16760        bigintExpr(     8_) **   4 <>                                           4096_ or
16761        bigintExpr(     8_) **  16 <>                                281474976710656_ or
16762        bigintExpr(     8_) **  31 <>                   9903520314283042199192993792_ or
16763        bigintExpr(     8_) **  32 <>                  79228162514264337593543950336_ or
16764        bigintExpr(     8_) **  50 <> 1427247692705959881058285969449495136382746624_ or
16765
16766        bigintExpr(    10_) **   0 <>                                              1_ or
16767        bigintExpr(    10_) **   1 <>                                             10_ or
16768        bigintExpr(    10_) **   2 <>                                            100_ or
16769        bigintExpr(    10_) **   3 <>                                           1000_ or
16770        bigintExpr(    10_) **   4 <>                                          10000_ or
16771        bigintExpr(    10_) **   5 <>                                         100000_ or
16772        bigintExpr(    10_) **  10 <>                                    10000000000_ or
16773        bigintExpr(    10_) **  20 <>                          100000000000000000000_ or
16774        bigintExpr(    10_) **  30 <>                1000000000000000000000000000000_ or
16775        bigintExpr(    10_) **  35 <>           100000000000000000000000000000000000_ or
16776        bigintExpr(    10_) **  40 <>      10000000000000000000000000000000000000000_ or
16777        bigintExpr(    10_) **  45 <> 1000000000000000000000000000000000000000000000_ or
16778
16779        bigintExpr(    16_) **   0 <>                                              1_ or
16780        bigintExpr(    16_) **   1 <>                                             16_ or
16781        bigintExpr(    16_) **   2 <>                                            256_ or
16782        bigintExpr(    16_) **   3 <>                                           4096_ or
16783        bigintExpr(    16_) **   4 <>                                          65536_ or
16784        bigintExpr(    16_) **   8 <>                                     4294967296_ or
16785        bigintExpr(    16_) **  16 <>                           18446744073709551616_ or
16786        bigintExpr(    16_) **  25 <>                1267650600228229401496703205376_ or
16787        bigintExpr(    16_) **  32 <>        340282366920938463463374607431768211456_ or
16788        bigintExpr(    16_) **  38 <> 5708990770823839524233143877797980545530986496_ or
16789
16790        bigintExpr(    97_) **   0 <>                                              1_ or
16791        bigintExpr(    97_) **   1 <>                                             97_ or
16792        bigintExpr(    97_) **   2 <>                                           9409_ or
16793        bigintExpr(    97_) **   3 <>                                         912673_ or
16794        bigintExpr(    97_) **   4 <>                                       88529281_ or
16795        bigintExpr(    97_) **   8 <>                               7837433594376961_ or
16796        bigintExpr(    97_) **  10 <>                           73742412689492826049_ or
16797        bigintExpr(    97_) **  15 <>                 633251189136789386043275954593_ or
16798        bigintExpr(    97_) **  16 <>               61425365346268570446197767595521_ or
16799        bigintExpr(    97_) **  20 <>       5437943429267472574499737549036572950401_ or
16800        bigintExpr(    97_) **  23 <> 4963064143419831996986398968091856144361331873_ or
16801
16802        bigintExpr(   255_) **   0 <>                                              1_ or
16803        bigintExpr(   255_) **   1 <>                                            255_ or
16804        bigintExpr(   255_) **   2 <>                                          65025_ or
16805        bigintExpr(   255_) **   3 <>                                       16581375_ or
16806        bigintExpr(   255_) **   4 <>                                     4228250625_ or
16807        bigintExpr(   255_) **   5 <>                                  1078203909375_ or
16808        bigintExpr(   255_) **   6 <>                                274941996890625_ or
16809        bigintExpr(   255_) **   7 <>                              70110209207109375_ or
16810        bigintExpr(   255_) **   8 <>                           17878103347812890625_ or
16811        bigintExpr(   255_) **   9 <>                         4558916353692287109375_ or
16812        bigintExpr(   255_) **  10 <>                      1162523670191533212890625_ or
16813        bigintExpr(   255_) **  11 <>                    296443535898840969287109375_ or
16814        bigintExpr(   255_) **  12 <>                  75593101654204447168212890625_ or
16815        bigintExpr(   255_) **  13 <>               19276240921822134027894287109375_ or
16816        bigintExpr(   255_) **  14 <>             4915441435064644177113043212890625_ or
16817        bigintExpr(   255_) **  15 <>          1253437565941484265163826019287109375_ or
16818        bigintExpr(   255_) **  16 <>        319626579315078487616775634918212890625_ or
16819        bigintExpr(   255_) **  17 <>      81504777725345014342277786904144287109375_ or
16820        bigintExpr(   255_) **  18 <>   20783718319962978657280835660556793212890625_ or
16821
16822        bigintExpr(   256_) **   0 <>                                              1_ or
16823        bigintExpr(   256_) **   1 <>                                            256_ or
16824        bigintExpr(   256_) **   2 <>                                          65536_ or
16825        bigintExpr(   256_) **   3 <>                                       16777216_ or
16826        bigintExpr(   256_) **   4 <>                                     4294967296_ or
16827        bigintExpr(   256_) **   5 <>                                  1099511627776_ or
16828        bigintExpr(   256_) **   6 <>                                281474976710656_ or
16829        bigintExpr(   256_) **   7 <>                              72057594037927936_ or
16830        bigintExpr(   256_) **   8 <>                           18446744073709551616_ or
16831        bigintExpr(   256_) **   9 <>                         4722366482869645213696_ or
16832        bigintExpr(   256_) **  10 <>                      1208925819614629174706176_ or
16833        bigintExpr(   256_) **  11 <>                    309485009821345068724781056_ or
16834        bigintExpr(   256_) **  12 <>                  79228162514264337593543950336_ or
16835        bigintExpr(   256_) **  13 <>               20282409603651670423947251286016_ or
16836        bigintExpr(   256_) **  14 <>             5192296858534827628530496329220096_ or
16837        bigintExpr(   256_) **  15 <>          1329227995784915872903807060280344576_ or
16838        bigintExpr(   256_) **  16 <>        340282366920938463463374607431768211456_ or
16839        bigintExpr(   256_) **  17 <>      87112285931760246646623899502532662132736_ or
16840        bigintExpr(   256_) **  18 <>   22300745198530623141535718272648361505980416_ or
16841
16842        bigintExpr( 32767_) **   0 <>                                              1_ or
16843        bigintExpr( 32767_) **   1 <>                                          32767_ or
16844        bigintExpr( 32767_) **   2 <>                                     1073676289_ or
16845        bigintExpr( 32767_) **   3 <>                                 35181150961663_ or
16846        bigintExpr( 32767_) **   4 <>                            1152780773560811521_ or
16847        bigintExpr( 32767_) **   5 <>                        37773167607267111108607_ or
16848        bigintExpr( 32767_) **   6 <>                   1237713382987321429695725569_ or
16849        bigintExpr( 32767_) **   7 <>               40556154420345561286839839719423_ or
16850        bigintExpr( 32767_) **   8 <>          1328903511891463006685881028086333441_ or
16851        bigintExpr( 32767_) **   9 <>      43544181374147568340076263647304887861247_ or
16852        bigintExpr( 32767_) **  10 <> 1426812191086693371799278930931239260549480449_ or
16853
16854        bigintExpr( 32768_) **   0 <>                                              1_ or
16855        bigintExpr( 32768_) **   1 <>                                          32768_ or
16856        bigintExpr( 32768_) **   2 <>                                     1073741824_ or
16857        bigintExpr( 32768_) **   3 <>                                 35184372088832_ or
16858        bigintExpr( 32768_) **   4 <>                            1152921504606846976_ or
16859        bigintExpr( 32768_) **   5 <>                        37778931862957161709568_ or
16860        bigintExpr( 32768_) **   6 <>                   1237940039285380274899124224_ or
16861        bigintExpr( 32768_) **   7 <>               40564819207303340847894502572032_ or
16862        bigintExpr( 32768_) **   8 <>          1329227995784915872903807060280344576_ or
16863        bigintExpr( 32768_) **   9 <>      43556142965880123323311949751266331066368_ or
16864        bigintExpr( 32768_) **  10 <> 1427247692705959881058285969449495136382746624_ or
16865
16866        bigintExpr( 65535_) **   0 <>                                              1_ or
16867        bigintExpr( 65535_) **   1 <>                                          65535_ or
16868        bigintExpr( 65535_) **   2 <>                                     4294836225_ or
16869        bigintExpr( 65535_) **   3 <>                                281462092005375_ or
16870        bigintExpr( 65535_) **   4 <>                           18445618199572250625_ or
16871        bigintExpr( 65535_) **   5 <>                      1208833588708967444709375_ or
16872        bigintExpr( 65535_) **   6 <>                  79220909236042181489028890625_ or
16873        bigintExpr( 65535_) **   7 <>             5191742286784024363883508347109375_ or
16874        bigintExpr( 65535_) **   8 <>        340240830764391036687105719527812890625_ or
16875        bigintExpr( 65535_) **   9 <>   22297682844144366589289473329255217787109375_ or
16876
16877        bigintExpr(4294967295_) ** 0 <>                                                                              1_ or
16878        bigintExpr(4294967295_) ** 1 <>                                                                     4294967295_ or
16879        bigintExpr(4294967295_) ** 2 <>                                                           18446744065119617025_ or
16880        bigintExpr(4294967295_) ** 3 <>                                                  79228162458924105385300197375_ or
16881        bigintExpr(4294967295_) ** 4 <>                                        340282366604025813516997721482669850625_ or
16882        bigintExpr(4294967295_) ** 5 <>                              1461501635629491084391274140357585917716910309375_ or
16883        bigintExpr(4294967295_) ** 6 <>                     6277101726617670944954607416215071121746690847213956890625_ or
16884        bigintExpr(4294967295_) ** 7 <>           26959946623210927677651784112208183154001000463259786712774267109375_ or
16885        bigintExpr(4294967295_) ** 8 <> 115792089021636622262124715160334756877804245386980633020041035952359812890625_ or
16886
16887        bigintExpr(281474976710655_) ** 0 <>                                                                         1_ or
16888        bigintExpr(281474976710655_) ** 1 <>                                                           281474976710655_ or
16889        bigintExpr(281474976710655_) ** 2 <>                                             79228162514263774643590529025_ or
16890        bigintExpr(281474976710655_) ** 3 <>                              22300745198530385457048175480480005804261375_ or
16891        bigintExpr(281474976710655_) ** 4 <>                6277101735386591560854995301190469248314849750679367450625_ or
16892        bigintExpr(281474976710655_) ** 5 <> 1766847064778352944074620567562106788865673297677270486428898935623909375_ or
16893
16894        bigintExpr(18446744073709551615_) ** 0 <>                                                          1_ or
16895        bigintExpr(18446744073709551615_) ** 1 <>                                       18446744073709551615_ or
16896        bigintExpr(18446744073709551615_) ** 2 <>                    340282366920938463426481119284349108225_ or
16897        bigintExpr(18446744073709551615_) ** 3 <> 6277101735386680762814942322444851025767571854389858533375_ or
16898
16899        bigintExpr(-1_) **   0 <>  1_ or
16900        bigintExpr(-1_) **   1 <> -1_ or
16901        bigintExpr(-1_) **   2 <>  1_ or
16902        bigintExpr(-1_) **   3 <> -1_ or
16903        bigintExpr(-1_) **   4 <>  1_ or
16904        bigintExpr(-1_) **  15 <> -1_ or
16905        bigintExpr(-1_) **  16 <>  1_ or
16906        bigintExpr(-1_) **  63 <> -1_ or
16907        bigintExpr(-1_) **  64 <>  1_ or
16908        bigintExpr(-1_) **  99 <> -1_ or
16909        bigintExpr(-1_) ** 100 <>  1_ or
16910
16911        bigintExpr(-65535_) ** 0 <>                                         1_ or
16912        bigintExpr(-65535_) ** 1 <>                                    -65535_ or
16913        bigintExpr(-65535_) ** 2 <>                                4294836225_ or
16914        bigintExpr(-65535_) ** 3 <>                          -281462092005375_ or
16915        bigintExpr(-65535_) ** 4 <>                      18445618199572250625_ or
16916        bigintExpr(-65535_) ** 5 <>                -1208833588708967444709375_ or
16917        bigintExpr(-65535_) ** 6 <>             79220909236042181489028890625_ or
16918        bigintExpr(-65535_) ** 7 <>       -5191742286784024363883508347109375_ or
16919        bigintExpr(-65535_) ** 8 <>   340240830764391036687105719527812890625_ or
16920
16921        bigintExpr(-18446744073709551615_) ** 0 <>                                                           1_ or
16922        bigintExpr(-18446744073709551615_) ** 1 <>                                       -18446744073709551615_ or
16923        bigintExpr(-18446744073709551615_) ** 2 <>                     340282366920938463426481119284349108225_ or
16924        bigintExpr(-18446744073709551615_) ** 3 <> -6277101735386680762814942322444851025767571854389858533375_ then
16925      writeln("Power of bigInteger does not work correct.");
16926      okay := FALSE;
16927    end if;
16928
16929    if       0_ ** intExpr(           0) <>                                     1_ or
16930             0_ ** intExpr(           1) <>                                     0_ or
16931             0_ ** intExpr(           2) <>                                     0_ or
16932             0_ ** intExpr(          15) <>                                     0_ or
16933             0_ ** intExpr(          64) <>                                     0_ or
16934             0_ ** intExpr(          99) <>                                     0_ or
16935             0_ ** intExpr(         999) <>                                     0_ or
16936             0_ ** intExpr(   999999999) <>                                     0_ or
16937             0_ ** intExpr(  2147483647) <>                                     0_ or
16938             0_ ** intExpr(integer.last) <>                                     0_ or
16939
16940             1_ ** intExpr(           0) <>                                     1_ or
16941             1_ ** intExpr(           1) <>                                     1_ or
16942             1_ ** intExpr(           2) <>                                     1_ or
16943             1_ ** intExpr(          15) <>                                     1_ or
16944             1_ ** intExpr(          64) <>                                     1_ or
16945             1_ ** intExpr(          99) <>                                     1_ or
16946             1_ ** intExpr(         999) <>                                     1_ or
16947             1_ ** intExpr(   999999999) <>                                     1_ or
16948             1_ ** intExpr(  2147483647) <>                                     1_ or
16949             1_ ** intExpr(integer.last) <>                                     1_ or
16950
16951             2_ ** intExpr(  0) <>                                              1_ or
16952             2_ ** intExpr(  1) <>                                              2_ or
16953             2_ ** intExpr(  2) <>                                              4_ or
16954             2_ ** intExpr(  3) <>                                              8_ or
16955             2_ ** intExpr(  4) <>                                             16_ or
16956             2_ ** intExpr(  5) <>                                             32_ or
16957             2_ ** intExpr(  6) <>                                             64_ or
16958             2_ ** intExpr( 10) <>                                           1024_ or
16959             2_ ** intExpr( 25) <>                                       33554432_ or
16960             2_ ** intExpr( 32) <>                                     4294967296_ or
16961             2_ ** intExpr( 50) <>                               1125899906842624_ or
16962             2_ ** intExpr( 63) <>                            9223372036854775808_ or
16963             2_ ** intExpr( 64) <>                           18446744073709551616_ or
16964             2_ ** intExpr( 75) <>                        37778931862957161709568_ or
16965             2_ ** intExpr( 99) <>                 633825300114114700748351602688_ or
16966             2_ ** intExpr(100) <>                1267650600228229401496703205376_ or
16967             2_ ** intExpr(127) <>        170141183460469231731687303715884105728_ or
16968             2_ ** intExpr(128) <>        340282366920938463463374607431768211456_ or
16969             2_ ** intExpr(150) <> 1427247692705959881058285969449495136382746624_ or
16970             2_ ** intExpr(152) <> 5708990770823839524233143877797980545530986496_ or
16971
16972             4_ ** intExpr(  0) <>                                              1_ or
16973             4_ ** intExpr(  1) <>                                              4_ or
16974             4_ ** intExpr(  2) <>                                             16_ or
16975             4_ ** intExpr(  3) <>                                             64_ or
16976             4_ ** intExpr(  4) <>                                            256_ or
16977             4_ ** intExpr( 10) <>                                        1048576_ or
16978             4_ ** intExpr( 25) <>                               1125899906842624_ or
16979             4_ ** intExpr( 31) <>                            4611686018427387904_ or
16980             4_ ** intExpr( 32) <>                           18446744073709551616_ or
16981             4_ ** intExpr( 50) <>                1267650600228229401496703205376_ or
16982             4_ ** intExpr( 63) <>         85070591730234615865843651857942052864_ or
16983             4_ ** intExpr( 64) <>        340282366920938463463374607431768211456_ or
16984             4_ ** intExpr( 75) <> 1427247692705959881058285969449495136382746624_ or
16985             4_ ** intExpr( 76) <> 5708990770823839524233143877797980545530986496_ or
16986
16987             8_ ** intExpr(  0) <>                                              1_ or
16988             8_ ** intExpr(  1) <>                                              8_ or
16989             8_ ** intExpr(  2) <>                                             64_ or
16990             8_ ** intExpr(  3) <>                                            512_ or
16991             8_ ** intExpr(  4) <>                                           4096_ or
16992             8_ ** intExpr( 16) <>                                281474976710656_ or
16993             8_ ** intExpr( 31) <>                   9903520314283042199192993792_ or
16994             8_ ** intExpr( 32) <>                  79228162514264337593543950336_ or
16995             8_ ** intExpr( 50) <> 1427247692705959881058285969449495136382746624_ or
16996
16997            10_ ** intExpr(  0) <>                                              1_ or
16998            10_ ** intExpr(  1) <>                                             10_ or
16999            10_ ** intExpr(  2) <>                                            100_ or
17000            10_ ** intExpr(  3) <>                                           1000_ or
17001            10_ ** intExpr(  4) <>                                          10000_ or
17002            10_ ** intExpr(  5) <>                                         100000_ or
17003            10_ ** intExpr( 10) <>                                    10000000000_ or
17004            10_ ** intExpr( 20) <>                          100000000000000000000_ or
17005            10_ ** intExpr( 30) <>                1000000000000000000000000000000_ or
17006            10_ ** intExpr( 35) <>           100000000000000000000000000000000000_ or
17007            10_ ** intExpr( 40) <>      10000000000000000000000000000000000000000_ or
17008            10_ ** intExpr( 45) <> 1000000000000000000000000000000000000000000000_ or
17009
17010            16_ ** intExpr(  0) <>                                              1_ or
17011            16_ ** intExpr(  1) <>                                             16_ or
17012            16_ ** intExpr(  2) <>                                            256_ or
17013            16_ ** intExpr(  3) <>                                           4096_ or
17014            16_ ** intExpr(  4) <>                                          65536_ or
17015            16_ ** intExpr(  8) <>                                     4294967296_ or
17016            16_ ** intExpr( 16) <>                           18446744073709551616_ or
17017            16_ ** intExpr( 25) <>                1267650600228229401496703205376_ or
17018            16_ ** intExpr( 32) <>        340282366920938463463374607431768211456_ or
17019            16_ ** intExpr( 38) <> 5708990770823839524233143877797980545530986496_ or
17020
17021            97_ ** intExpr(  0) <>                                              1_ or
17022            97_ ** intExpr(  1) <>                                             97_ or
17023            97_ ** intExpr(  2) <>                                           9409_ or
17024            97_ ** intExpr(  3) <>                                         912673_ or
17025            97_ ** intExpr(  4) <>                                       88529281_ or
17026            97_ ** intExpr(  8) <>                               7837433594376961_ or
17027            97_ ** intExpr( 10) <>                           73742412689492826049_ or
17028            97_ ** intExpr( 15) <>                 633251189136789386043275954593_ or
17029            97_ ** intExpr( 16) <>               61425365346268570446197767595521_ or
17030            97_ ** intExpr( 20) <>       5437943429267472574499737549036572950401_ or
17031            97_ ** intExpr( 23) <> 4963064143419831996986398968091856144361331873_ or
17032
17033           255_ ** intExpr(  0) <>                                              1_ or
17034           255_ ** intExpr(  1) <>                                            255_ or
17035           255_ ** intExpr(  2) <>                                          65025_ or
17036           255_ ** intExpr(  3) <>                                       16581375_ or
17037           255_ ** intExpr(  4) <>                                     4228250625_ or
17038           255_ ** intExpr(  5) <>                                  1078203909375_ or
17039           255_ ** intExpr(  6) <>                                274941996890625_ or
17040           255_ ** intExpr(  7) <>                              70110209207109375_ or
17041           255_ ** intExpr(  8) <>                           17878103347812890625_ or
17042           255_ ** intExpr(  9) <>                         4558916353692287109375_ or
17043           255_ ** intExpr( 10) <>                      1162523670191533212890625_ or
17044           255_ ** intExpr( 11) <>                    296443535898840969287109375_ or
17045           255_ ** intExpr( 12) <>                  75593101654204447168212890625_ or
17046           255_ ** intExpr( 13) <>               19276240921822134027894287109375_ or
17047           255_ ** intExpr( 14) <>             4915441435064644177113043212890625_ or
17048           255_ ** intExpr( 15) <>          1253437565941484265163826019287109375_ or
17049           255_ ** intExpr( 16) <>        319626579315078487616775634918212890625_ or
17050           255_ ** intExpr( 17) <>      81504777725345014342277786904144287109375_ or
17051           255_ ** intExpr( 18) <>   20783718319962978657280835660556793212890625_ or
17052
17053           256_ ** intExpr(  0) <>                                              1_ or
17054           256_ ** intExpr(  1) <>                                            256_ or
17055           256_ ** intExpr(  2) <>                                          65536_ or
17056           256_ ** intExpr(  3) <>                                       16777216_ or
17057           256_ ** intExpr(  4) <>                                     4294967296_ or
17058           256_ ** intExpr(  5) <>                                  1099511627776_ or
17059           256_ ** intExpr(  6) <>                                281474976710656_ or
17060           256_ ** intExpr(  7) <>                              72057594037927936_ or
17061           256_ ** intExpr(  8) <>                           18446744073709551616_ or
17062           256_ ** intExpr(  9) <>                         4722366482869645213696_ or
17063           256_ ** intExpr( 10) <>                      1208925819614629174706176_ or
17064           256_ ** intExpr( 11) <>                    309485009821345068724781056_ or
17065           256_ ** intExpr( 12) <>                  79228162514264337593543950336_ or
17066           256_ ** intExpr( 13) <>               20282409603651670423947251286016_ or
17067           256_ ** intExpr( 14) <>             5192296858534827628530496329220096_ or
17068           256_ ** intExpr( 15) <>          1329227995784915872903807060280344576_ or
17069           256_ ** intExpr( 16) <>        340282366920938463463374607431768211456_ or
17070           256_ ** intExpr( 17) <>      87112285931760246646623899502532662132736_ or
17071           256_ ** intExpr( 18) <>   22300745198530623141535718272648361505980416_ or
17072
17073         32767_ ** intExpr(  0) <>                                              1_ or
17074         32767_ ** intExpr(  1) <>                                          32767_ or
17075         32767_ ** intExpr(  2) <>                                     1073676289_ or
17076         32767_ ** intExpr(  3) <>                                 35181150961663_ or
17077         32767_ ** intExpr(  4) <>                            1152780773560811521_ or
17078         32767_ ** intExpr(  5) <>                        37773167607267111108607_ or
17079         32767_ ** intExpr(  6) <>                   1237713382987321429695725569_ or
17080         32767_ ** intExpr(  7) <>               40556154420345561286839839719423_ or
17081         32767_ ** intExpr(  8) <>          1328903511891463006685881028086333441_ or
17082         32767_ ** intExpr(  9) <>      43544181374147568340076263647304887861247_ or
17083         32767_ ** intExpr( 10) <> 1426812191086693371799278930931239260549480449_ or
17084
17085         32768_ ** intExpr(  0) <>                                              1_ or
17086         32768_ ** intExpr(  1) <>                                          32768_ or
17087         32768_ ** intExpr(  2) <>                                     1073741824_ or
17088         32768_ ** intExpr(  3) <>                                 35184372088832_ or
17089         32768_ ** intExpr(  4) <>                            1152921504606846976_ or
17090         32768_ ** intExpr(  5) <>                        37778931862957161709568_ or
17091         32768_ ** intExpr(  6) <>                   1237940039285380274899124224_ or
17092         32768_ ** intExpr(  7) <>               40564819207303340847894502572032_ or
17093         32768_ ** intExpr(  8) <>          1329227995784915872903807060280344576_ or
17094         32768_ ** intExpr(  9) <>      43556142965880123323311949751266331066368_ or
17095         32768_ ** intExpr( 10) <> 1427247692705959881058285969449495136382746624_ or
17096
17097         65535_ ** intExpr(  0) <>                                              1_ or
17098         65535_ ** intExpr(  1) <>                                          65535_ or
17099         65535_ ** intExpr(  2) <>                                     4294836225_ or
17100         65535_ ** intExpr(  3) <>                                281462092005375_ or
17101         65535_ ** intExpr(  4) <>                           18445618199572250625_ or
17102         65535_ ** intExpr(  5) <>                      1208833588708967444709375_ or
17103         65535_ ** intExpr(  6) <>                  79220909236042181489028890625_ or
17104         65535_ ** intExpr(  7) <>             5191742286784024363883508347109375_ or
17105         65535_ ** intExpr(  8) <>        340240830764391036687105719527812890625_ or
17106         65535_ ** intExpr(  9) <>   22297682844144366589289473329255217787109375_ or
17107
17108         4294967295_ ** intExpr(0) <>                                                                              1_ or
17109         4294967295_ ** intExpr(1) <>                                                                     4294967295_ or
17110         4294967295_ ** intExpr(2) <>                                                           18446744065119617025_ or
17111         4294967295_ ** intExpr(3) <>                                                  79228162458924105385300197375_ or
17112         4294967295_ ** intExpr(4) <>                                        340282366604025813516997721482669850625_ or
17113         4294967295_ ** intExpr(5) <>                              1461501635629491084391274140357585917716910309375_ or
17114         4294967295_ ** intExpr(6) <>                     6277101726617670944954607416215071121746690847213956890625_ or
17115         4294967295_ ** intExpr(7) <>           26959946623210927677651784112208183154001000463259786712774267109375_ or
17116         4294967295_ ** intExpr(8) <> 115792089021636622262124715160334756877804245386980633020041035952359812890625_ or
17117
17118         281474976710655_ ** intExpr(0) <>                                                                         1_ or
17119         281474976710655_ ** intExpr(1) <>                                                           281474976710655_ or
17120         281474976710655_ ** intExpr(2) <>                                             79228162514263774643590529025_ or
17121         281474976710655_ ** intExpr(3) <>                              22300745198530385457048175480480005804261375_ or
17122         281474976710655_ ** intExpr(4) <>                6277101735386591560854995301190469248314849750679367450625_ or
17123         281474976710655_ ** intExpr(5) <> 1766847064778352944074620567562106788865673297677270486428898935623909375_ or
17124
17125         18446744073709551615_ ** intExpr(0) <>                                                          1_ or
17126         18446744073709551615_ ** intExpr(1) <>                                       18446744073709551615_ or
17127         18446744073709551615_ ** intExpr(2) <>                    340282366920938463426481119284349108225_ or
17128         18446744073709551615_ ** intExpr(3) <> 6277101735386680762814942322444851025767571854389858533375_ or
17129
17130        (-1_) ** intExpr(  0) <>  1_ or
17131        (-1_) ** intExpr(  1) <> -1_ or
17132        (-1_) ** intExpr(  2) <>  1_ or
17133        (-1_) ** intExpr(  3) <> -1_ or
17134        (-1_) ** intExpr(  4) <>  1_ or
17135        (-1_) ** intExpr( 15) <> -1_ or
17136        (-1_) ** intExpr( 16) <>  1_ or
17137        (-1_) ** intExpr( 63) <> -1_ or
17138        (-1_) ** intExpr( 64) <>  1_ or
17139        (-1_) ** intExpr( 99) <> -1_ or
17140        (-1_) ** intExpr(100) <>  1_ or
17141
17142        (-65535_) ** intExpr(0) <>                                         1_ or
17143        (-65535_) ** intExpr(1) <>                                    -65535_ or
17144        (-65535_) ** intExpr(2) <>                                4294836225_ or
17145        (-65535_) ** intExpr(3) <>                          -281462092005375_ or
17146        (-65535_) ** intExpr(4) <>                      18445618199572250625_ or
17147        (-65535_) ** intExpr(5) <>                -1208833588708967444709375_ or
17148        (-65535_) ** intExpr(6) <>             79220909236042181489028890625_ or
17149        (-65535_) ** intExpr(7) <>       -5191742286784024363883508347109375_ or
17150        (-65535_) ** intExpr(8) <>   340240830764391036687105719527812890625_ or
17151
17152        (-18446744073709551615_) ** intExpr(0) <>                                                           1_ or
17153        (-18446744073709551615_) ** intExpr(1) <>                                       -18446744073709551615_ or
17154        (-18446744073709551615_) ** intExpr(2) <>                     340282366920938463426481119284349108225_ or
17155        (-18446744073709551615_) ** intExpr(3) <> -6277101735386680762814942322444851025767571854389858533375_ then
17156      writeln("Power of bigInteger does not work correct.");
17157      okay := FALSE;
17158    end if;
17159
17160    if  bigintExpr(     0_) ** intExpr(           0) <>                                     1_ or
17161        bigintExpr(     0_) ** intExpr(           1) <>                                     0_ or
17162        bigintExpr(     0_) ** intExpr(           2) <>                                     0_ or
17163        bigintExpr(     0_) ** intExpr(          15) <>                                     0_ or
17164        bigintExpr(     0_) ** intExpr(          64) <>                                     0_ or
17165        bigintExpr(     0_) ** intExpr(          99) <>                                     0_ or
17166        bigintExpr(     0_) ** intExpr(         999) <>                                     0_ or
17167        bigintExpr(     0_) ** intExpr(   999999999) <>                                     0_ or
17168        bigintExpr(     0_) ** intExpr(  2147483647) <>                                     0_ or
17169        bigintExpr(     0_) ** intExpr(integer.last) <>                                     0_ or
17170
17171        bigintExpr(     1_) ** intExpr(           0) <>                                     1_ or
17172        bigintExpr(     1_) ** intExpr(           1) <>                                     1_ or
17173        bigintExpr(     1_) ** intExpr(           2) <>                                     1_ or
17174        bigintExpr(     1_) ** intExpr(          15) <>                                     1_ or
17175        bigintExpr(     1_) ** intExpr(          64) <>                                     1_ or
17176        bigintExpr(     1_) ** intExpr(          99) <>                                     1_ or
17177        bigintExpr(     1_) ** intExpr(         999) <>                                     1_ or
17178        bigintExpr(     1_) ** intExpr(   999999999) <>                                     1_ or
17179        bigintExpr(     1_) ** intExpr(  2147483647) <>                                     1_ or
17180        bigintExpr(     1_) ** intExpr(integer.last) <>                                     1_ or
17181
17182        bigintExpr(     2_) ** intExpr(  0) <>                                              1_ or
17183        bigintExpr(     2_) ** intExpr(  1) <>                                              2_ or
17184        bigintExpr(     2_) ** intExpr(  2) <>                                              4_ or
17185        bigintExpr(     2_) ** intExpr(  3) <>                                              8_ or
17186        bigintExpr(     2_) ** intExpr(  4) <>                                             16_ or
17187        bigintExpr(     2_) ** intExpr(  5) <>                                             32_ or
17188        bigintExpr(     2_) ** intExpr(  6) <>                                             64_ or
17189        bigintExpr(     2_) ** intExpr( 10) <>                                           1024_ or
17190        bigintExpr(     2_) ** intExpr( 25) <>                                       33554432_ or
17191        bigintExpr(     2_) ** intExpr( 32) <>                                     4294967296_ or
17192        bigintExpr(     2_) ** intExpr( 50) <>                               1125899906842624_ or
17193        bigintExpr(     2_) ** intExpr( 63) <>                            9223372036854775808_ or
17194        bigintExpr(     2_) ** intExpr( 64) <>                           18446744073709551616_ or
17195        bigintExpr(     2_) ** intExpr( 75) <>                        37778931862957161709568_ or
17196        bigintExpr(     2_) ** intExpr( 99) <>                 633825300114114700748351602688_ or
17197        bigintExpr(     2_) ** intExpr(100) <>                1267650600228229401496703205376_ or
17198        bigintExpr(     2_) ** intExpr(127) <>        170141183460469231731687303715884105728_ or
17199        bigintExpr(     2_) ** intExpr(128) <>        340282366920938463463374607431768211456_ or
17200        bigintExpr(     2_) ** intExpr(150) <> 1427247692705959881058285969449495136382746624_ or
17201        bigintExpr(     2_) ** intExpr(152) <> 5708990770823839524233143877797980545530986496_ or
17202
17203        bigintExpr(     4_) ** intExpr(  0) <>                                              1_ or
17204        bigintExpr(     4_) ** intExpr(  1) <>                                              4_ or
17205        bigintExpr(     4_) ** intExpr(  2) <>                                             16_ or
17206        bigintExpr(     4_) ** intExpr(  3) <>                                             64_ or
17207        bigintExpr(     4_) ** intExpr(  4) <>                                            256_ or
17208        bigintExpr(     4_) ** intExpr( 10) <>                                        1048576_ or
17209        bigintExpr(     4_) ** intExpr( 25) <>                               1125899906842624_ or
17210        bigintExpr(     4_) ** intExpr( 31) <>                            4611686018427387904_ or
17211        bigintExpr(     4_) ** intExpr( 32) <>                           18446744073709551616_ or
17212        bigintExpr(     4_) ** intExpr( 50) <>                1267650600228229401496703205376_ or
17213        bigintExpr(     4_) ** intExpr( 63) <>         85070591730234615865843651857942052864_ or
17214        bigintExpr(     4_) ** intExpr( 64) <>        340282366920938463463374607431768211456_ or
17215        bigintExpr(     4_) ** intExpr( 75) <> 1427247692705959881058285969449495136382746624_ or
17216        bigintExpr(     4_) ** intExpr( 76) <> 5708990770823839524233143877797980545530986496_ or
17217
17218        bigintExpr(     8_) ** intExpr(  0) <>                                              1_ or
17219        bigintExpr(     8_) ** intExpr(  1) <>                                              8_ or
17220        bigintExpr(     8_) ** intExpr(  2) <>                                             64_ or
17221        bigintExpr(     8_) ** intExpr(  3) <>                                            512_ or
17222        bigintExpr(     8_) ** intExpr(  4) <>                                           4096_ or
17223        bigintExpr(     8_) ** intExpr( 16) <>                                281474976710656_ or
17224        bigintExpr(     8_) ** intExpr( 31) <>                   9903520314283042199192993792_ or
17225        bigintExpr(     8_) ** intExpr( 32) <>                  79228162514264337593543950336_ or
17226        bigintExpr(     8_) ** intExpr( 50) <> 1427247692705959881058285969449495136382746624_ or
17227
17228        bigintExpr(    10_) ** intExpr(  0) <>                                              1_ or
17229        bigintExpr(    10_) ** intExpr(  1) <>                                             10_ or
17230        bigintExpr(    10_) ** intExpr(  2) <>                                            100_ or
17231        bigintExpr(    10_) ** intExpr(  3) <>                                           1000_ or
17232        bigintExpr(    10_) ** intExpr(  4) <>                                          10000_ or
17233        bigintExpr(    10_) ** intExpr(  5) <>                                         100000_ or
17234        bigintExpr(    10_) ** intExpr( 10) <>                                    10000000000_ or
17235        bigintExpr(    10_) ** intExpr( 20) <>                          100000000000000000000_ or
17236        bigintExpr(    10_) ** intExpr( 30) <>                1000000000000000000000000000000_ or
17237        bigintExpr(    10_) ** intExpr( 35) <>           100000000000000000000000000000000000_ or
17238        bigintExpr(    10_) ** intExpr( 40) <>      10000000000000000000000000000000000000000_ or
17239        bigintExpr(    10_) ** intExpr( 45) <> 1000000000000000000000000000000000000000000000_ or
17240
17241        bigintExpr(    16_) ** intExpr(  0) <>                                              1_ or
17242        bigintExpr(    16_) ** intExpr(  1) <>                                             16_ or
17243        bigintExpr(    16_) ** intExpr(  2) <>                                            256_ or
17244        bigintExpr(    16_) ** intExpr(  3) <>                                           4096_ or
17245        bigintExpr(    16_) ** intExpr(  4) <>                                          65536_ or
17246        bigintExpr(    16_) ** intExpr(  8) <>                                     4294967296_ or
17247        bigintExpr(    16_) ** intExpr( 16) <>                           18446744073709551616_ or
17248        bigintExpr(    16_) ** intExpr( 25) <>                1267650600228229401496703205376_ or
17249        bigintExpr(    16_) ** intExpr( 32) <>        340282366920938463463374607431768211456_ or
17250        bigintExpr(    16_) ** intExpr( 38) <> 5708990770823839524233143877797980545530986496_ or
17251
17252        bigintExpr(    97_) ** intExpr(  0) <>                                              1_ or
17253        bigintExpr(    97_) ** intExpr(  1) <>                                             97_ or
17254        bigintExpr(    97_) ** intExpr(  2) <>                                           9409_ or
17255        bigintExpr(    97_) ** intExpr(  3) <>                                         912673_ or
17256        bigintExpr(    97_) ** intExpr(  4) <>                                       88529281_ or
17257        bigintExpr(    97_) ** intExpr(  8) <>                               7837433594376961_ or
17258        bigintExpr(    97_) ** intExpr( 10) <>                           73742412689492826049_ or
17259        bigintExpr(    97_) ** intExpr( 15) <>                 633251189136789386043275954593_ or
17260        bigintExpr(    97_) ** intExpr( 16) <>               61425365346268570446197767595521_ or
17261        bigintExpr(    97_) ** intExpr( 20) <>       5437943429267472574499737549036572950401_ or
17262        bigintExpr(    97_) ** intExpr( 23) <> 4963064143419831996986398968091856144361331873_ or
17263
17264        bigintExpr(   255_) ** intExpr(  0) <>                                              1_ or
17265        bigintExpr(   255_) ** intExpr(  1) <>                                            255_ or
17266        bigintExpr(   255_) ** intExpr(  2) <>                                          65025_ or
17267        bigintExpr(   255_) ** intExpr(  3) <>                                       16581375_ or
17268        bigintExpr(   255_) ** intExpr(  4) <>                                     4228250625_ or
17269        bigintExpr(   255_) ** intExpr(  5) <>                                  1078203909375_ or
17270        bigintExpr(   255_) ** intExpr(  6) <>                                274941996890625_ or
17271        bigintExpr(   255_) ** intExpr(  7) <>                              70110209207109375_ or
17272        bigintExpr(   255_) ** intExpr(  8) <>                           17878103347812890625_ or
17273        bigintExpr(   255_) ** intExpr(  9) <>                         4558916353692287109375_ or
17274        bigintExpr(   255_) ** intExpr( 10) <>                      1162523670191533212890625_ or
17275        bigintExpr(   255_) ** intExpr( 11) <>                    296443535898840969287109375_ or
17276        bigintExpr(   255_) ** intExpr( 12) <>                  75593101654204447168212890625_ or
17277        bigintExpr(   255_) ** intExpr( 13) <>               19276240921822134027894287109375_ or
17278        bigintExpr(   255_) ** intExpr( 14) <>             4915441435064644177113043212890625_ or
17279        bigintExpr(   255_) ** intExpr( 15) <>          1253437565941484265163826019287109375_ or
17280        bigintExpr(   255_) ** intExpr( 16) <>        319626579315078487616775634918212890625_ or
17281        bigintExpr(   255_) ** intExpr( 17) <>      81504777725345014342277786904144287109375_ or
17282        bigintExpr(   255_) ** intExpr( 18) <>   20783718319962978657280835660556793212890625_ or
17283
17284        bigintExpr(   256_) ** intExpr(  0) <>                                              1_ or
17285        bigintExpr(   256_) ** intExpr(  1) <>                                            256_ or
17286        bigintExpr(   256_) ** intExpr(  2) <>                                          65536_ or
17287        bigintExpr(   256_) ** intExpr(  3) <>                                       16777216_ or
17288        bigintExpr(   256_) ** intExpr(  4) <>                                     4294967296_ or
17289        bigintExpr(   256_) ** intExpr(  5) <>                                  1099511627776_ or
17290        bigintExpr(   256_) ** intExpr(  6) <>                                281474976710656_ or
17291        bigintExpr(   256_) ** intExpr(  7) <>                              72057594037927936_ or
17292        bigintExpr(   256_) ** intExpr(  8) <>                           18446744073709551616_ or
17293        bigintExpr(   256_) ** intExpr(  9) <>                         4722366482869645213696_ or
17294        bigintExpr(   256_) ** intExpr( 10) <>                      1208925819614629174706176_ or
17295        bigintExpr(   256_) ** intExpr( 11) <>                    309485009821345068724781056_ or
17296        bigintExpr(   256_) ** intExpr( 12) <>                  79228162514264337593543950336_ or
17297        bigintExpr(   256_) ** intExpr( 13) <>               20282409603651670423947251286016_ or
17298        bigintExpr(   256_) ** intExpr( 14) <>             5192296858534827628530496329220096_ or
17299        bigintExpr(   256_) ** intExpr( 15) <>          1329227995784915872903807060280344576_ or
17300        bigintExpr(   256_) ** intExpr( 16) <>        340282366920938463463374607431768211456_ or
17301        bigintExpr(   256_) ** intExpr( 17) <>      87112285931760246646623899502532662132736_ or
17302        bigintExpr(   256_) ** intExpr( 18) <>   22300745198530623141535718272648361505980416_ or
17303
17304        bigintExpr( 32767_) ** intExpr(  0) <>                                              1_ or
17305        bigintExpr( 32767_) ** intExpr(  1) <>                                          32767_ or
17306        bigintExpr( 32767_) ** intExpr(  2) <>                                     1073676289_ or
17307        bigintExpr( 32767_) ** intExpr(  3) <>                                 35181150961663_ or
17308        bigintExpr( 32767_) ** intExpr(  4) <>                            1152780773560811521_ or
17309        bigintExpr( 32767_) ** intExpr(  5) <>                        37773167607267111108607_ or
17310        bigintExpr( 32767_) ** intExpr(  6) <>                   1237713382987321429695725569_ or
17311        bigintExpr( 32767_) ** intExpr(  7) <>               40556154420345561286839839719423_ or
17312        bigintExpr( 32767_) ** intExpr(  8) <>          1328903511891463006685881028086333441_ or
17313        bigintExpr( 32767_) ** intExpr(  9) <>      43544181374147568340076263647304887861247_ or
17314        bigintExpr( 32767_) ** intExpr( 10) <> 1426812191086693371799278930931239260549480449_ or
17315
17316        bigintExpr( 32768_) ** intExpr(  0) <>                                              1_ or
17317        bigintExpr( 32768_) ** intExpr(  1) <>                                          32768_ or
17318        bigintExpr( 32768_) ** intExpr(  2) <>                                     1073741824_ or
17319        bigintExpr( 32768_) ** intExpr(  3) <>                                 35184372088832_ or
17320        bigintExpr( 32768_) ** intExpr(  4) <>                            1152921504606846976_ or
17321        bigintExpr( 32768_) ** intExpr(  5) <>                        37778931862957161709568_ or
17322        bigintExpr( 32768_) ** intExpr(  6) <>                   1237940039285380274899124224_ or
17323        bigintExpr( 32768_) ** intExpr(  7) <>               40564819207303340847894502572032_ or
17324        bigintExpr( 32768_) ** intExpr(  8) <>          1329227995784915872903807060280344576_ or
17325        bigintExpr( 32768_) ** intExpr(  9) <>      43556142965880123323311949751266331066368_ or
17326        bigintExpr( 32768_) ** intExpr( 10) <> 1427247692705959881058285969449495136382746624_ or
17327
17328        bigintExpr( 65535_) ** intExpr(  0) <>                                              1_ or
17329        bigintExpr( 65535_) ** intExpr(  1) <>                                          65535_ or
17330        bigintExpr( 65535_) ** intExpr(  2) <>                                     4294836225_ or
17331        bigintExpr( 65535_) ** intExpr(  3) <>                                281462092005375_ or
17332        bigintExpr( 65535_) ** intExpr(  4) <>                           18445618199572250625_ or
17333        bigintExpr( 65535_) ** intExpr(  5) <>                      1208833588708967444709375_ or
17334        bigintExpr( 65535_) ** intExpr(  6) <>                  79220909236042181489028890625_ or
17335        bigintExpr( 65535_) ** intExpr(  7) <>             5191742286784024363883508347109375_ or
17336        bigintExpr( 65535_) ** intExpr(  8) <>        340240830764391036687105719527812890625_ or
17337        bigintExpr( 65535_) ** intExpr(  9) <>   22297682844144366589289473329255217787109375_ or
17338
17339        bigintExpr(4294967295_) ** intExpr(0) <>                                                                              1_ or
17340        bigintExpr(4294967295_) ** intExpr(1) <>                                                                     4294967295_ or
17341        bigintExpr(4294967295_) ** intExpr(2) <>                                                           18446744065119617025_ or
17342        bigintExpr(4294967295_) ** intExpr(3) <>                                                  79228162458924105385300197375_ or
17343        bigintExpr(4294967295_) ** intExpr(4) <>                                        340282366604025813516997721482669850625_ or
17344        bigintExpr(4294967295_) ** intExpr(5) <>                              1461501635629491084391274140357585917716910309375_ or
17345        bigintExpr(4294967295_) ** intExpr(6) <>                     6277101726617670944954607416215071121746690847213956890625_ or
17346        bigintExpr(4294967295_) ** intExpr(7) <>           26959946623210927677651784112208183154001000463259786712774267109375_ or
17347        bigintExpr(4294967295_) ** intExpr(8) <> 115792089021636622262124715160334756877804245386980633020041035952359812890625_ or
17348
17349        bigintExpr(281474976710655_) ** intExpr(0) <>                                                                         1_ or
17350        bigintExpr(281474976710655_) ** intExpr(1) <>                                                           281474976710655_ or
17351        bigintExpr(281474976710655_) ** intExpr(2) <>                                             79228162514263774643590529025_ or
17352        bigintExpr(281474976710655_) ** intExpr(3) <>                              22300745198530385457048175480480005804261375_ or
17353        bigintExpr(281474976710655_) ** intExpr(4) <>                6277101735386591560854995301190469248314849750679367450625_ or
17354        bigintExpr(281474976710655_) ** intExpr(5) <> 1766847064778352944074620567562106788865673297677270486428898935623909375_ or
17355
17356        bigintExpr(18446744073709551615_) ** intExpr(0) <>                                                          1_ or
17357        bigintExpr(18446744073709551615_) ** intExpr(1) <>                                       18446744073709551615_ or
17358        bigintExpr(18446744073709551615_) ** intExpr(2) <>                    340282366920938463426481119284349108225_ or
17359        bigintExpr(18446744073709551615_) ** intExpr(3) <> 6277101735386680762814942322444851025767571854389858533375_ or
17360
17361        bigintExpr(-1_) ** intExpr(  0) <>  1_ or
17362        bigintExpr(-1_) ** intExpr(  1) <> -1_ or
17363        bigintExpr(-1_) ** intExpr(  2) <>  1_ or
17364        bigintExpr(-1_) ** intExpr(  3) <> -1_ or
17365        bigintExpr(-1_) ** intExpr(  4) <>  1_ or
17366        bigintExpr(-1_) ** intExpr( 15) <> -1_ or
17367        bigintExpr(-1_) ** intExpr( 16) <>  1_ or
17368        bigintExpr(-1_) ** intExpr( 63) <> -1_ or
17369        bigintExpr(-1_) ** intExpr( 64) <>  1_ or
17370        bigintExpr(-1_) ** intExpr( 99) <> -1_ or
17371        bigintExpr(-1_) ** intExpr(100) <>  1_ or
17372
17373        bigintExpr(-65535_) ** intExpr(0) <>                                         1_ or
17374        bigintExpr(-65535_) ** intExpr(1) <>                                    -65535_ or
17375        bigintExpr(-65535_) ** intExpr(2) <>                                4294836225_ or
17376        bigintExpr(-65535_) ** intExpr(3) <>                          -281462092005375_ or
17377        bigintExpr(-65535_) ** intExpr(4) <>                      18445618199572250625_ or
17378        bigintExpr(-65535_) ** intExpr(5) <>                -1208833588708967444709375_ or
17379        bigintExpr(-65535_) ** intExpr(6) <>             79220909236042181489028890625_ or
17380        bigintExpr(-65535_) ** intExpr(7) <>       -5191742286784024363883508347109375_ or
17381        bigintExpr(-65535_) ** intExpr(8) <>   340240830764391036687105719527812890625_ or
17382
17383        bigintExpr(-18446744073709551615_) ** intExpr(0) <>                                                           1_ or
17384        bigintExpr(-18446744073709551615_) ** intExpr(1) <>                                       -18446744073709551615_ or
17385        bigintExpr(-18446744073709551615_) ** intExpr(2) <>                     340282366920938463426481119284349108225_ or
17386        bigintExpr(-18446744073709551615_) ** intExpr(3) <> -6277101735386680762814942322444851025767571854389858533375_ then
17387      writeln("Power of bigInteger does not work correct.");
17388      okay := FALSE;
17389    end if;
17390
17391    if  bigintExpr(1_ << 130) ** 2 <> 1_ << 260 or
17392        bigintExpr(1161340369873035520884048730253466326445886201751996434653427479399910802323027371849057109924586786533938250296147516920378236884141048435357879035639099561834934534337128154577044653202227250618254396894666559478446007380050375364076575603570861069426238825466394537444725481657494563677908582686749_) ** 2 <> 1348711454696838949709367737938366380793371449834458063877697348222391774977144371407384587024336878467697734883495079072103632910975405446082232033634456681533151057781302140222614328986715577027592004926238814520604379703759025578659856593360050133231502185826106407050868269555537614536754415635556514317385077905369966428459006363946017239007406317918928226210391247415201675939445253650842845608903996723367734524459073868885521558748499558821917343696265089415948377085664473742290811050679918760860288180556961216408577721995769912156811281633388366260180065214826817244845771730806031460189001_ or
17393        120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_ ** intExpr(2) <> 120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_ * 120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_ or
17394        bigintExpr(120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_) ** 2 <> 120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_ * 120256867586748271047375168293728188324494460045600223705147481157539604179964325824446322498693765719156959910820231808463252500979648599536176905375364505254626629487913624517673513613473819155708806903701436591000021551553601591419092198226350722039795751813672774400815896751057461490306899970107333221607517459076348054504157442046802577756143528369925293859873375809726628219074358628939830831246233898189044339346108440400446861489787905114112568596592239218265784818224240837410605233432775241193694755125187116283819563387652711175869673133503443763180480390421707661270752_ or
17395        bigintExpr(514098279667722339163434240809284975998719911581783309272748977622873939837259049281278668404377060306863730028955625693731387726908953290576519553694744870036982879590108441151612687361910510948218614663933732069622345439645878398993692284635629537786660832496307083053744379271206603371774229507936_) ** 2 <> 514098279667722339163434240809284975998719911581783309272748977622873939837259049281278668404377060306863730028955625693731387726908953290576519553694744870036982879590108441151612687361910510948218614663933732069622345439645878398993692284635629537786660832496307083053744379271206603371774229507936_ * 514098279667722339163434240809284975998719911581783309272748977622873939837259049281278668404377060306863730028955625693731387726908953290576519553694744870036982879590108441151612687361910510948218614663933732069622345439645878398993692284635629537786660832496307083053744379271206603371774229507936_ then
17396      writeln("Karatsuba square does not work correct.");
17397      okay := FALSE;
17398    end if;
17399
17400    if  not raisesNumericError((-18446744073709551617_) **          (-1)) or
17401        not raisesNumericError((-18446744073709551617_) **          (-2)) or
17402        not raisesNumericError((-18446744073709551617_) **         (-23)) or
17403        not raisesNumericError((-18446744073709551617_) ** (-2147483648)) or
17404        not raisesNumericError((-18446744073709551617_) ** integer.first) or
17405        not raisesNumericError(                  (-97_) **          (-1)) or
17406        not raisesNumericError(                  (-97_) **          (-2)) or
17407        not raisesNumericError(                  (-97_) **         (-23)) or
17408        not raisesNumericError(                  (-97_) ** (-2147483648)) or
17409        not raisesNumericError(                  (-97_) ** integer.first) or
17410        not raisesNumericError(                  (-64_) **          (-1)) or
17411        not raisesNumericError(                  (-64_) **          (-2)) or
17412        not raisesNumericError(                  (-64_) **         (-23)) or
17413        not raisesNumericError(                  (-64_) ** (-2147483648)) or
17414        not raisesNumericError(                  (-64_) ** integer.first) or
17415        not raisesNumericError(                   (-1_) **          (-1)) or
17416        not raisesNumericError(                   (-1_) **          (-2)) or
17417        not raisesNumericError(                   (-1_) **         (-23)) or
17418        not raisesNumericError(                   (-1_) ** (-2147483648)) or
17419        not raisesNumericError(                   (-1_) ** integer.first) or
17420        not raisesNumericError(                     0_  **          (-1)) or
17421        not raisesNumericError(                     0_  **          (-2)) or
17422        not raisesNumericError(                     0_  **         (-23)) or
17423        not raisesNumericError(                     0_  ** (-2147483648)) or
17424        not raisesNumericError(                     0_  ** integer.first) or
17425        not raisesNumericError(                     1_  **          (-1)) or
17426        not raisesNumericError(                     1_  **          (-2)) or
17427        not raisesNumericError(                     1_  **         (-23)) or
17428        not raisesNumericError(                     1_  ** (-2147483648)) or
17429        not raisesNumericError(                     1_  ** integer.first) or
17430        not raisesNumericError(                    64_  **          (-1)) or
17431        not raisesNumericError(                    64_  **          (-2)) or
17432        not raisesNumericError(                    64_  **         (-23)) or
17433        not raisesNumericError(                    64_  ** (-2147483648)) or
17434        not raisesNumericError(                    64_  ** integer.first) or
17435        not raisesNumericError(                    97_  **          (-1)) or
17436        not raisesNumericError(                    97_  **          (-2)) or
17437        not raisesNumericError(                    97_  **         (-23)) or
17438        not raisesNumericError(                    97_  ** (-2147483648)) or
17439        not raisesNumericError(                    97_  ** integer.first) or
17440        not raisesNumericError(  18446744073709551617_  **          (-1)) or
17441        not raisesNumericError(  18446744073709551617_  **          (-2)) or
17442        not raisesNumericError(  18446744073709551617_  **         (-23)) or
17443        not raisesNumericError(  18446744073709551617_  ** (-2147483648)) or
17444        not raisesNumericError(  18446744073709551617_  ** integer.first) or
17445        not raisesNumericError(bigintExpr(-18446744073709551617_) **          (-1)) or
17446        not raisesNumericError(bigintExpr(-18446744073709551617_) **          (-2)) or
17447        not raisesNumericError(bigintExpr(-18446744073709551617_) **         (-23)) or
17448        not raisesNumericError(bigintExpr(-18446744073709551617_) ** (-2147483648)) or
17449        not raisesNumericError(bigintExpr(-18446744073709551617_) ** integer.first) or
17450        not raisesNumericError(bigintExpr(                  -97_) **          (-1)) or
17451        not raisesNumericError(bigintExpr(                  -97_) **          (-2)) or
17452        not raisesNumericError(bigintExpr(                  -97_) **         (-23)) or
17453        not raisesNumericError(bigintExpr(                  -97_) ** (-2147483648)) or
17454        not raisesNumericError(bigintExpr(                  -97_) ** integer.first) or
17455        not raisesNumericError(bigintExpr(                  -64_) **          (-1)) or
17456        not raisesNumericError(bigintExpr(                  -64_) **          (-2)) or
17457        not raisesNumericError(bigintExpr(                  -64_) **         (-23)) or
17458        not raisesNumericError(bigintExpr(                  -64_) ** (-2147483648)) or
17459        not raisesNumericError(bigintExpr(                  -64_) ** integer.first) or
17460        not raisesNumericError(bigintExpr(                   -1_) **          (-1)) or
17461        not raisesNumericError(bigintExpr(                   -1_) **          (-2)) or
17462        not raisesNumericError(bigintExpr(                   -1_) **         (-23)) or
17463        not raisesNumericError(bigintExpr(                   -1_) ** (-2147483648)) or
17464        not raisesNumericError(bigintExpr(                   -1_) ** integer.first) or
17465        not raisesNumericError(bigintExpr(                    0_) **          (-1)) or
17466        not raisesNumericError(bigintExpr(                    0_) **          (-2)) or
17467        not raisesNumericError(bigintExpr(                    0_) **         (-23)) or
17468        not raisesNumericError(bigintExpr(                    0_) ** (-2147483648)) or
17469        not raisesNumericError(bigintExpr(                    0_) ** integer.first) or
17470        not raisesNumericError(bigintExpr(                    1_) **          (-1)) or
17471        not raisesNumericError(bigintExpr(                    1_) **          (-2)) or
17472        not raisesNumericError(bigintExpr(                    1_) **         (-23)) or
17473        not raisesNumericError(bigintExpr(                    1_) ** (-2147483648)) or
17474        not raisesNumericError(bigintExpr(                    1_) ** integer.first) or
17475        not raisesNumericError(bigintExpr(                   64_) **          (-1)) or
17476        not raisesNumericError(bigintExpr(                   64_) **          (-2)) or
17477        not raisesNumericError(bigintExpr(                   64_) **         (-23)) or
17478        not raisesNumericError(bigintExpr(                   64_) ** (-2147483648)) or
17479        not raisesNumericError(bigintExpr(                   64_) ** integer.first) or
17480        not raisesNumericError(bigintExpr(                   97_) **          (-1)) or
17481        not raisesNumericError(bigintExpr(                   97_) **          (-2)) or
17482        not raisesNumericError(bigintExpr(                   97_) **         (-23)) or
17483        not raisesNumericError(bigintExpr(                   97_) ** (-2147483648)) or
17484        not raisesNumericError(bigintExpr(                   97_) ** integer.first) or
17485        not raisesNumericError(bigintExpr( 18446744073709551617_) **          (-1)) or
17486        not raisesNumericError(bigintExpr( 18446744073709551617_) **          (-2)) or
17487        not raisesNumericError(bigintExpr( 18446744073709551617_) **         (-23)) or
17488        not raisesNumericError(bigintExpr( 18446744073709551617_) ** (-2147483648)) or
17489        not raisesNumericError(bigintExpr( 18446744073709551617_) ** integer.first) or
17490        not raisesNumericError((-18446744073709551617_) ** intExpr(           -1)) or
17491        not raisesNumericError((-18446744073709551617_) ** intExpr(           -2)) or
17492        not raisesNumericError((-18446744073709551617_) ** intExpr(          -23)) or
17493        not raisesNumericError((-18446744073709551617_) ** intExpr(  -2147483648)) or
17494        not raisesNumericError((-18446744073709551617_) ** intExpr(integer.first)) or
17495        not raisesNumericError(                  (-97_) ** intExpr(           -1)) or
17496        not raisesNumericError(                  (-97_) ** intExpr(           -2)) or
17497        not raisesNumericError(                  (-97_) ** intExpr(          -23)) or
17498        not raisesNumericError(                  (-97_) ** intExpr(  -2147483648)) or
17499        not raisesNumericError(                  (-97_) ** intExpr(integer.first)) or
17500        not raisesNumericError(                  (-64_) ** intExpr(           -1)) or
17501        not raisesNumericError(                  (-64_) ** intExpr(           -2)) or
17502        not raisesNumericError(                  (-64_) ** intExpr(          -23)) or
17503        not raisesNumericError(                  (-64_) ** intExpr(  -2147483648)) or
17504        not raisesNumericError(                  (-64_) ** intExpr(integer.first)) or
17505        not raisesNumericError(                   (-1_) ** intExpr(           -1)) or
17506        not raisesNumericError(                   (-1_) ** intExpr(           -2)) or
17507        not raisesNumericError(                   (-1_) ** intExpr(          -23)) or
17508        not raisesNumericError(                   (-1_) ** intExpr(  -2147483648)) or
17509        not raisesNumericError(                   (-1_) ** intExpr(integer.first)) or
17510        not raisesNumericError(                     0_  ** intExpr(           -1)) or
17511        not raisesNumericError(                     0_  ** intExpr(           -2)) or
17512        not raisesNumericError(                     0_  ** intExpr(          -23)) or
17513        not raisesNumericError(                     0_  ** intExpr(  -2147483648)) or
17514        not raisesNumericError(                     0_  ** intExpr(integer.first)) or
17515        not raisesNumericError(                     1_  ** intExpr(           -1)) or
17516        not raisesNumericError(                     1_  ** intExpr(           -2)) or
17517        not raisesNumericError(                     1_  ** intExpr(          -23)) or
17518        not raisesNumericError(                     1_  ** intExpr(  -2147483648)) or
17519        not raisesNumericError(                     1_  ** intExpr(integer.first)) or
17520        not raisesNumericError(                    64_  ** intExpr(           -1)) or
17521        not raisesNumericError(                    64_  ** intExpr(           -2)) or
17522        not raisesNumericError(                    64_  ** intExpr(          -23)) or
17523        not raisesNumericError(                    64_  ** intExpr(  -2147483648)) or
17524        not raisesNumericError(                    64_  ** intExpr(integer.first)) or
17525        not raisesNumericError(                    97_  ** intExpr(           -1)) or
17526        not raisesNumericError(                    97_  ** intExpr(           -2)) or
17527        not raisesNumericError(                    97_  ** intExpr(          -23)) or
17528        not raisesNumericError(                    97_  ** intExpr(  -2147483648)) or
17529        not raisesNumericError(                    97_  ** intExpr(integer.first)) or
17530        not raisesNumericError(  18446744073709551617_  ** intExpr(           -1)) or
17531        not raisesNumericError(  18446744073709551617_  ** intExpr(           -2)) or
17532        not raisesNumericError(  18446744073709551617_  ** intExpr(          -23)) or
17533        not raisesNumericError(  18446744073709551617_  ** intExpr(  -2147483648)) or
17534        not raisesNumericError(  18446744073709551617_  ** intExpr(integer.first)) or
17535        not raisesNumericError(bigintExpr(-18446744073709551617_) ** intExpr(           -1)) or
17536        not raisesNumericError(bigintExpr(-18446744073709551617_) ** intExpr(           -2)) or
17537        not raisesNumericError(bigintExpr(-18446744073709551617_) ** intExpr(          -23)) or
17538        not raisesNumericError(bigintExpr(-18446744073709551617_) ** intExpr(  -2147483648)) or
17539        not raisesNumericError(bigintExpr(-18446744073709551617_) ** intExpr(integer.first)) or
17540        not raisesNumericError(bigintExpr(                  -97_) ** intExpr(           -1)) or
17541        not raisesNumericError(bigintExpr(                  -97_) ** intExpr(           -2)) or
17542        not raisesNumericError(bigintExpr(                  -97_) ** intExpr(          -23)) or
17543        not raisesNumericError(bigintExpr(                  -97_) ** intExpr(  -2147483648)) or
17544        not raisesNumericError(bigintExpr(                  -97_) ** intExpr(integer.first)) or
17545        not raisesNumericError(bigintExpr(                  -64_) ** intExpr(           -1)) or
17546        not raisesNumericError(bigintExpr(                  -64_) ** intExpr(           -2)) or
17547        not raisesNumericError(bigintExpr(                  -64_) ** intExpr(          -23)) or
17548        not raisesNumericError(bigintExpr(                  -64_) ** intExpr(  -2147483648)) or
17549        not raisesNumericError(bigintExpr(                  -64_) ** intExpr(integer.first)) or
17550        not raisesNumericError(bigintExpr(                   -1_) ** intExpr(           -1)) or
17551        not raisesNumericError(bigintExpr(                   -1_) ** intExpr(           -2)) or
17552        not raisesNumericError(bigintExpr(                   -1_) ** intExpr(          -23)) or
17553        not raisesNumericError(bigintExpr(                   -1_) ** intExpr(  -2147483648)) or
17554        not raisesNumericError(bigintExpr(                   -1_) ** intExpr(integer.first)) or
17555        not raisesNumericError(bigintExpr(                    0_) ** intExpr(           -1)) or
17556        not raisesNumericError(bigintExpr(                    0_) ** intExpr(           -2)) or
17557        not raisesNumericError(bigintExpr(                    0_) ** intExpr(          -23)) or
17558        not raisesNumericError(bigintExpr(                    0_) ** intExpr(  -2147483648)) or
17559        not raisesNumericError(bigintExpr(                    0_) ** intExpr(integer.first)) or
17560        not raisesNumericError(bigintExpr(                    1_) ** intExpr(           -1)) or
17561        not raisesNumericError(bigintExpr(                    1_) ** intExpr(           -2)) or
17562        not raisesNumericError(bigintExpr(                    1_) ** intExpr(          -23)) or
17563        not raisesNumericError(bigintExpr(                    1_) ** intExpr(  -2147483648)) or
17564        not raisesNumericError(bigintExpr(                    1_) ** intExpr(integer.first)) or
17565        not raisesNumericError(bigintExpr(                   64_) ** intExpr(           -1)) or
17566        not raisesNumericError(bigintExpr(                   64_) ** intExpr(           -2)) or
17567        not raisesNumericError(bigintExpr(                   64_) ** intExpr(          -23)) or
17568        not raisesNumericError(bigintExpr(                   64_) ** intExpr(  -2147483648)) or
17569        not raisesNumericError(bigintExpr(                   64_) ** intExpr(integer.first)) or
17570        not raisesNumericError(bigintExpr(                   97_) ** intExpr(           -1)) or
17571        not raisesNumericError(bigintExpr(                   97_) ** intExpr(           -2)) or
17572        not raisesNumericError(bigintExpr(                   97_) ** intExpr(          -23)) or
17573        not raisesNumericError(bigintExpr(                   97_) ** intExpr(  -2147483648)) or
17574        not raisesNumericError(bigintExpr(                   97_) ** intExpr(integer.first)) or
17575        not raisesNumericError(bigintExpr( 18446744073709551617_) ** intExpr(           -1)) or
17576        not raisesNumericError(bigintExpr( 18446744073709551617_) ** intExpr(           -2)) or
17577        not raisesNumericError(bigintExpr( 18446744073709551617_) ** intExpr(          -23)) or
17578        not raisesNumericError(bigintExpr( 18446744073709551617_) ** intExpr(  -2147483648)) or
17579        not raisesNumericError(bigintExpr( 18446744073709551617_) ** intExpr(integer.first)) then
17580      writeln(" ***** Power of bigInteger with negative exponent does not raise NUMERIC_ERROR.");
17581      okay := FALSE;
17582    end if;
17583
17584    if okay then
17585      writeln("Power of bigInteger works correct.");
17586    else
17587      writeln(" ***** Power of bigInteger does not work correct.");
17588      writeln;
17589    end if;
17590  end func;
17591
17592
17593const proc: chkFactorial is func
17594  local
17595    var boolean: okay is TRUE;
17596    var bigInteger: number is 0_;
17597    var bigInteger: fact is 0_;
17598  begin
17599    okay := TRUE;
17600    if !0 <> 1 then
17601      okay := FALSE;
17602    else
17603      fact := 1_;
17604      for number range 1_ to 100_ do
17605        fact *:= number;
17606        if !number <> fact then
17607          write(" ***** !");
17608          write(number);
17609          writeln(" is not correct computed.");
17610          okay := FALSE;
17611        end if;
17612      end for;
17613    end if;
17614
17615    if  not raisesNumericError(!           (                  -1_)) or
17616        not raisesNumericError(!           (         -2147483647_)) or
17617        not raisesNumericError(!           (         -2147483648_)) or
17618        not raisesNumericError(!           (         -4294967295_)) or
17619        not raisesNumericError(!           (         -4294967296_)) or
17620        not raisesNumericError(!           (-9223372036854775808_)) or
17621        not raisesNumericError(! bigintExpr(                  -1_)) or
17622        not raisesNumericError(! bigintExpr(         -2147483647_)) or
17623        not raisesNumericError(! bigintExpr(         -2147483648_)) or
17624        not raisesNumericError(! bigintExpr(         -4294967295_)) or
17625        not raisesNumericError(! bigintExpr(         -4294967296_)) or
17626        not raisesNumericError(! bigintExpr(-9223372036854775808_)) then
17627      writeln(" ***** Factorial of negative number does not raise NUMERIC_ERROR.");
17628      okay := FALSE;
17629    end if;
17630
17631    if okay then
17632      writeln("Factorial of bigInteger works correct.");
17633    end if;
17634  end func;
17635
17636
17637const proc: chkBinom is func
17638  local
17639    var boolean: okay is TRUE;
17640    var bigInteger: n is 0_;
17641    var bigInteger: k is 0_;
17642  begin
17643    okay := TRUE;
17644    for n range 0_ to 100_ do
17645      for k range 0_ to n do
17646        if n ! k <> !n div (!(n - k) * !k) then
17647          write(" ***** ");
17648          write(n);
17649          write(" ! ");
17650          write(k);
17651          writeln(" is not correct computed.");
17652          okay := FALSE;
17653        end if;
17654      end for;
17655      for k range succ(n) to 100_ do
17656        if n ! k <> 0_ then
17657          write(" ***** ");
17658          write(n);
17659          write(" ! ");
17660          write(k);
17661          writeln(" is not correct computed.");
17662          okay := FALSE;
17663        end if;
17664      end for;
17665    end for;
17666
17667    if okay then
17668      writeln("Binomial coefficient of bigInteger works correct.");
17669    else
17670      writeln(" ***** Binomial coefficient of bigInteger does not work correct.");
17671      writeln;
17672    end if;
17673  end func;
17674
17675
17676const proc: chkCompare is func
17677  local
17678    var boolean: okay is TRUE;
17679  begin
17680    if  compare(-4294967298_, -4294967298_) <>  0 or
17681        compare(-4294967298_, -4294967297_) <> -1 or
17682        compare(-4294967298_, -4294967296_) <> -1 or
17683        compare(-4294967298_, -4294967295_) <> -1 or
17684        compare(-4294967298_, -4294967294_) <> -1 or
17685        compare(-4294967298_,          -2_) <> -1 or
17686        compare(-4294967298_,          -1_) <> -1 or
17687        compare(-4294967298_,           0_) <> -1 or
17688        compare(-4294967298_,           1_) <> -1 or
17689        compare(-4294967298_,           2_) <> -1 or
17690        compare(-4294967298_,  4294967294_) <> -1 or
17691        compare(-4294967298_,  4294967295_) <> -1 or
17692        compare(-4294967298_,  4294967296_) <> -1 or
17693        compare(-4294967298_,  4294967297_) <> -1 or
17694        compare(-4294967298_,  4294967298_) <> -1 or
17695        compare(-4294967297_, -4294967298_) <>  1 or
17696        compare(-4294967297_, -4294967297_) <>  0 or
17697        compare(-4294967297_, -4294967296_) <> -1 or
17698        compare(-4294967297_, -4294967295_) <> -1 or
17699        compare(-4294967297_, -4294967294_) <> -1 or
17700        compare(-4294967297_,          -2_) <> -1 or
17701        compare(-4294967297_,          -1_) <> -1 or
17702        compare(-4294967297_,           0_) <> -1 or
17703        compare(-4294967297_,           1_) <> -1 or
17704        compare(-4294967297_,           2_) <> -1 or
17705        compare(-4294967297_,  4294967294_) <> -1 or
17706        compare(-4294967297_,  4294967295_) <> -1 or
17707        compare(-4294967297_,  4294967296_) <> -1 or
17708        compare(-4294967297_,  4294967297_) <> -1 or
17709        compare(-4294967297_,  4294967298_) <> -1 or
17710        compare(-4294967296_, -4294967298_) <>  1 or
17711        compare(-4294967296_, -4294967297_) <>  1 or
17712        compare(-4294967296_, -4294967296_) <>  0 or
17713        compare(-4294967296_, -4294967295_) <> -1 or
17714        compare(-4294967296_, -4294967294_) <> -1 or
17715        compare(-4294967296_,          -2_) <> -1 or
17716        compare(-4294967296_,          -1_) <> -1 or
17717        compare(-4294967296_,           0_) <> -1 or
17718        compare(-4294967296_,           1_) <> -1 or
17719        compare(-4294967296_,           2_) <> -1 or
17720        compare(-4294967296_,  4294967294_) <> -1 or
17721        compare(-4294967296_,  4294967295_) <> -1 or
17722        compare(-4294967296_,  4294967296_) <> -1 or
17723        compare(-4294967296_,  4294967297_) <> -1 or
17724        compare(-4294967296_,  4294967298_) <> -1 or
17725        compare(-4294967295_, -4294967298_) <>  1 or
17726        compare(-4294967295_, -4294967297_) <>  1 or
17727        compare(-4294967295_, -4294967296_) <>  1 or
17728        compare(-4294967295_, -4294967295_) <>  0 or
17729        compare(-4294967295_, -4294967294_) <> -1 or
17730        compare(-4294967295_,          -2_) <> -1 or
17731        compare(-4294967295_,          -1_) <> -1 or
17732        compare(-4294967295_,           0_) <> -1 or
17733        compare(-4294967295_,           1_) <> -1 or
17734        compare(-4294967295_,           2_) <> -1 or
17735        compare(-4294967295_,  4294967294_) <> -1 or
17736        compare(-4294967295_,  4294967295_) <> -1 or
17737        compare(-4294967295_,  4294967296_) <> -1 or
17738        compare(-4294967295_,  4294967297_) <> -1 or
17739        compare(-4294967295_,  4294967298_) <> -1 or
17740        compare(-4294967294_, -4294967298_) <>  1 or
17741        compare(-4294967294_, -4294967297_) <>  1 or
17742        compare(-4294967294_, -4294967296_) <>  1 or
17743        compare(-4294967294_, -4294967295_) <>  1 or
17744        compare(-4294967294_, -4294967294_) <>  0 or
17745        compare(-4294967294_,          -2_) <> -1 or
17746        compare(-4294967294_,          -1_) <> -1 or
17747        compare(-4294967294_,           0_) <> -1 or
17748        compare(-4294967294_,           1_) <> -1 or
17749        compare(-4294967294_,           2_) <> -1 or
17750        compare(-4294967294_,  4294967294_) <> -1 or
17751        compare(-4294967294_,  4294967295_) <> -1 or
17752        compare(-4294967294_,  4294967296_) <> -1 or
17753        compare(-4294967294_,  4294967297_) <> -1 or
17754        compare(-4294967294_,  4294967298_) <> -1 or
17755        compare(         -2_, -4294967298_) <>  1 or
17756        compare(         -2_, -4294967297_) <>  1 or
17757        compare(         -2_, -4294967296_) <>  1 or
17758        compare(         -2_, -4294967295_) <>  1 or
17759        compare(         -2_, -4294967294_) <>  1 or
17760        compare(         -2_,          -2_) <>  0 or
17761        compare(         -2_,          -1_) <> -1 or
17762        compare(         -2_,           0_) <> -1 or
17763        compare(         -2_,           1_) <> -1 or
17764        compare(         -2_,           2_) <> -1 or
17765        compare(         -2_,  4294967294_) <> -1 or
17766        compare(         -2_,  4294967295_) <> -1 or
17767        compare(         -2_,  4294967296_) <> -1 or
17768        compare(         -2_,  4294967297_) <> -1 or
17769        compare(         -2_,  4294967298_) <> -1 or
17770        compare(         -1_, -4294967298_) <>  1 or
17771        compare(         -1_, -4294967297_) <>  1 or
17772        compare(         -1_, -4294967296_) <>  1 or
17773        compare(         -1_, -4294967295_) <>  1 or
17774        compare(         -1_, -4294967294_) <>  1 or
17775        compare(         -1_,          -2_) <>  1 or
17776        compare(         -1_,          -1_) <>  0 or
17777        compare(         -1_,           0_) <> -1 or
17778        compare(         -1_,           1_) <> -1 or
17779        compare(         -1_,           2_) <> -1 or
17780        compare(         -1_,  4294967294_) <> -1 or
17781        compare(         -1_,  4294967295_) <> -1 or
17782        compare(         -1_,  4294967296_) <> -1 or
17783        compare(         -1_,  4294967297_) <> -1 or
17784        compare(         -1_,  4294967298_) <> -1 or
17785        compare(          0_, -4294967298_) <>  1 or
17786        compare(          0_, -4294967297_) <>  1 or
17787        compare(          0_, -4294967296_) <>  1 or
17788        compare(          0_, -4294967295_) <>  1 or
17789        compare(          0_, -4294967294_) <>  1 or
17790        compare(          0_,          -2_) <>  1 or
17791        compare(          0_,          -1_) <>  1 or
17792        compare(          0_,           0_) <>  0 or
17793        compare(          0_,           1_) <> -1 or
17794        compare(          0_,           2_) <> -1 or
17795        compare(          0_,  4294967294_) <> -1 or
17796        compare(          0_,  4294967295_) <> -1 or
17797        compare(          0_,  4294967296_) <> -1 or
17798        compare(          0_,  4294967297_) <> -1 or
17799        compare(          0_,  4294967298_) <> -1 or
17800        compare(          1_, -4294967298_) <>  1 or
17801        compare(          1_, -4294967297_) <>  1 or
17802        compare(          1_, -4294967296_) <>  1 or
17803        compare(          1_, -4294967295_) <>  1 or
17804        compare(          1_, -4294967294_) <>  1 or
17805        compare(          1_,          -2_) <>  1 or
17806        compare(          1_,          -1_) <>  1 or
17807        compare(          1_,           0_) <>  1 or
17808        compare(          1_,           1_) <>  0 or
17809        compare(          1_,           2_) <> -1 or
17810        compare(          1_,  4294967294_) <> -1 or
17811        compare(          1_,  4294967295_) <> -1 or
17812        compare(          1_,  4294967296_) <> -1 or
17813        compare(          1_,  4294967297_) <> -1 or
17814        compare(          1_,  4294967298_) <> -1 or
17815        compare(          2_, -4294967298_) <>  1 or
17816        compare(          2_, -4294967297_) <>  1 or
17817        compare(          2_, -4294967296_) <>  1 or
17818        compare(          2_, -4294967295_) <>  1 or
17819        compare(          2_, -4294967294_) <>  1 or
17820        compare(          2_,          -2_) <>  1 or
17821        compare(          2_,          -1_) <>  1 or
17822        compare(          2_,           0_) <>  1 or
17823        compare(          2_,           1_) <>  1 or
17824        compare(          2_,           2_) <>  0 or
17825        compare(          2_,  4294967294_) <> -1 or
17826        compare(          2_,  4294967295_) <> -1 or
17827        compare(          2_,  4294967296_) <> -1 or
17828        compare(          2_,  4294967297_) <> -1 or
17829        compare(          2_,  4294967298_) <> -1 or
17830        compare( 4294967294_, -4294967298_) <>  1 or
17831        compare( 4294967294_, -4294967297_) <>  1 or
17832        compare( 4294967294_, -4294967296_) <>  1 or
17833        compare( 4294967294_, -4294967295_) <>  1 or
17834        compare( 4294967294_, -4294967294_) <>  1 or
17835        compare( 4294967294_,          -2_) <>  1 or
17836        compare( 4294967294_,          -1_) <>  1 or
17837        compare( 4294967294_,           0_) <>  1 or
17838        compare( 4294967294_,           1_) <>  1 or
17839        compare( 4294967294_,           2_) <>  1 or
17840        compare( 4294967294_,  4294967294_) <>  0 or
17841        compare( 4294967294_,  4294967295_) <> -1 or
17842        compare( 4294967294_,  4294967296_) <> -1 or
17843        compare( 4294967294_,  4294967297_) <> -1 or
17844        compare( 4294967294_,  4294967298_) <> -1 or
17845        compare( 4294967295_, -4294967298_) <>  1 or
17846        compare( 4294967295_, -4294967297_) <>  1 or
17847        compare( 4294967295_, -4294967296_) <>  1 or
17848        compare( 4294967295_, -4294967295_) <>  1 or
17849        compare( 4294967295_, -4294967294_) <>  1 or
17850        compare( 4294967295_,          -2_) <>  1 or
17851        compare( 4294967295_,          -1_) <>  1 or
17852        compare( 4294967295_,           0_) <>  1 or
17853        compare( 4294967295_,           1_) <>  1 or
17854        compare( 4294967295_,           2_) <>  1 or
17855        compare( 4294967295_,  4294967294_) <>  1 or
17856        compare( 4294967295_,  4294967295_) <>  0 or
17857        compare( 4294967295_,  4294967296_) <> -1 or
17858        compare( 4294967295_,  4294967297_) <> -1 or
17859        compare( 4294967295_,  4294967298_) <> -1 or
17860        compare( 4294967296_, -4294967298_) <>  1 or
17861        compare( 4294967296_, -4294967297_) <>  1 or
17862        compare( 4294967296_, -4294967296_) <>  1 or
17863        compare( 4294967296_, -4294967295_) <>  1 or
17864        compare( 4294967296_, -4294967294_) <>  1 or
17865        compare( 4294967296_,          -2_) <>  1 or
17866        compare( 4294967296_,          -1_) <>  1 or
17867        compare( 4294967296_,           0_) <>  1 or
17868        compare( 4294967296_,           1_) <>  1 or
17869        compare( 4294967296_,           2_) <>  1 or
17870        compare( 4294967296_,  4294967294_) <>  1 or
17871        compare( 4294967296_,  4294967295_) <>  1 or
17872        compare( 4294967296_,  4294967296_) <>  0 or
17873        compare( 4294967296_,  4294967297_) <> -1 or
17874        compare( 4294967296_,  4294967298_) <> -1 or
17875        compare( 4294967297_, -4294967298_) <>  1 or
17876        compare( 4294967297_, -4294967297_) <>  1 or
17877        compare( 4294967297_, -4294967296_) <>  1 or
17878        compare( 4294967297_, -4294967295_) <>  1 or
17879        compare( 4294967297_, -4294967294_) <>  1 or
17880        compare( 4294967297_,          -2_) <>  1 or
17881        compare( 4294967297_,          -1_) <>  1 or
17882        compare( 4294967297_,           0_) <>  1 or
17883        compare( 4294967297_,           1_) <>  1 or
17884        compare( 4294967297_,           2_) <>  1 or
17885        compare( 4294967297_,  4294967294_) <>  1 or
17886        compare( 4294967296_,  4294967295_) <>  1 or
17887        compare( 4294967297_,  4294967296_) <>  1 or
17888        compare( 4294967297_,  4294967297_) <>  0 or
17889        compare( 4294967297_,  4294967298_) <> -1 or
17890        compare( 4294967298_, -4294967298_) <>  1 or
17891        compare( 4294967298_, -4294967297_) <>  1 or
17892        compare( 4294967298_, -4294967296_) <>  1 or
17893        compare( 4294967298_, -4294967295_) <>  1 or
17894        compare( 4294967298_, -4294967294_) <>  1 or
17895        compare( 4294967298_,          -2_) <>  1 or
17896        compare( 4294967298_,          -1_) <>  1 or
17897        compare( 4294967298_,           0_) <>  1 or
17898        compare( 4294967298_,           1_) <>  1 or
17899        compare( 4294967298_,           2_) <>  1 or
17900        compare( 4294967298_,  4294967294_) <>  1 or
17901        compare( 4294967298_,  4294967295_) <>  1 or
17902        compare( 4294967298_,  4294967296_) <>  1 or
17903        compare( 4294967298_,  4294967297_) <>  1 or
17904        compare( 4294967298_,  4294967298_) <>  0 then
17905      writeln("The bigInteger compare does not work correct.");
17906      okay := FALSE;
17907    end if;
17908
17909    if  compare(bigintExpr(-4294967298_), -4294967298_) <>  0 or
17910        compare(bigintExpr(-4294967298_), -4294967297_) <> -1 or
17911        compare(bigintExpr(-4294967298_), -4294967296_) <> -1 or
17912        compare(bigintExpr(-4294967298_), -4294967295_) <> -1 or
17913        compare(bigintExpr(-4294967298_), -4294967294_) <> -1 or
17914        compare(bigintExpr(-4294967298_),          -2_) <> -1 or
17915        compare(bigintExpr(-4294967298_),          -1_) <> -1 or
17916        compare(bigintExpr(-4294967298_),           0_) <> -1 or
17917        compare(bigintExpr(-4294967298_),           1_) <> -1 or
17918        compare(bigintExpr(-4294967298_),           2_) <> -1 or
17919        compare(bigintExpr(-4294967298_),  4294967294_) <> -1 or
17920        compare(bigintExpr(-4294967298_),  4294967295_) <> -1 or
17921        compare(bigintExpr(-4294967298_),  4294967296_) <> -1 or
17922        compare(bigintExpr(-4294967298_),  4294967297_) <> -1 or
17923        compare(bigintExpr(-4294967298_),  4294967298_) <> -1 or
17924        compare(bigintExpr(-4294967297_), -4294967298_) <>  1 or
17925        compare(bigintExpr(-4294967297_), -4294967297_) <>  0 or
17926        compare(bigintExpr(-4294967297_), -4294967296_) <> -1 or
17927        compare(bigintExpr(-4294967297_), -4294967295_) <> -1 or
17928        compare(bigintExpr(-4294967297_), -4294967294_) <> -1 or
17929        compare(bigintExpr(-4294967297_),          -2_) <> -1 or
17930        compare(bigintExpr(-4294967297_),          -1_) <> -1 or
17931        compare(bigintExpr(-4294967297_),           0_) <> -1 or
17932        compare(bigintExpr(-4294967297_),           1_) <> -1 or
17933        compare(bigintExpr(-4294967297_),           2_) <> -1 or
17934        compare(bigintExpr(-4294967297_),  4294967294_) <> -1 or
17935        compare(bigintExpr(-4294967297_),  4294967295_) <> -1 or
17936        compare(bigintExpr(-4294967297_),  4294967296_) <> -1 or
17937        compare(bigintExpr(-4294967297_),  4294967297_) <> -1 or
17938        compare(bigintExpr(-4294967297_),  4294967298_) <> -1 or
17939        compare(bigintExpr(-4294967296_), -4294967298_) <>  1 or
17940        compare(bigintExpr(-4294967296_), -4294967297_) <>  1 or
17941        compare(bigintExpr(-4294967296_), -4294967296_) <>  0 or
17942        compare(bigintExpr(-4294967296_), -4294967295_) <> -1 or
17943        compare(bigintExpr(-4294967296_), -4294967294_) <> -1 or
17944        compare(bigintExpr(-4294967296_),          -2_) <> -1 or
17945        compare(bigintExpr(-4294967296_),          -1_) <> -1 or
17946        compare(bigintExpr(-4294967296_),           0_) <> -1 or
17947        compare(bigintExpr(-4294967296_),           1_) <> -1 or
17948        compare(bigintExpr(-4294967296_),           2_) <> -1 or
17949        compare(bigintExpr(-4294967296_),  4294967294_) <> -1 or
17950        compare(bigintExpr(-4294967296_),  4294967295_) <> -1 or
17951        compare(bigintExpr(-4294967296_),  4294967296_) <> -1 or
17952        compare(bigintExpr(-4294967296_),  4294967297_) <> -1 or
17953        compare(bigintExpr(-4294967296_),  4294967298_) <> -1 or
17954        compare(bigintExpr(-4294967295_), -4294967298_) <>  1 or
17955        compare(bigintExpr(-4294967295_), -4294967297_) <>  1 or
17956        compare(bigintExpr(-4294967295_), -4294967296_) <>  1 or
17957        compare(bigintExpr(-4294967295_), -4294967295_) <>  0 or
17958        compare(bigintExpr(-4294967295_), -4294967294_) <> -1 or
17959        compare(bigintExpr(-4294967295_),          -2_) <> -1 or
17960        compare(bigintExpr(-4294967295_),          -1_) <> -1 or
17961        compare(bigintExpr(-4294967295_),           0_) <> -1 or
17962        compare(bigintExpr(-4294967295_),           1_) <> -1 or
17963        compare(bigintExpr(-4294967295_),           2_) <> -1 or
17964        compare(bigintExpr(-4294967295_),  4294967294_) <> -1 or
17965        compare(bigintExpr(-4294967295_),  4294967295_) <> -1 or
17966        compare(bigintExpr(-4294967295_),  4294967296_) <> -1 or
17967        compare(bigintExpr(-4294967295_),  4294967297_) <> -1 or
17968        compare(bigintExpr(-4294967295_),  4294967298_) <> -1 or
17969        compare(bigintExpr(-4294967294_), -4294967298_) <>  1 or
17970        compare(bigintExpr(-4294967294_), -4294967297_) <>  1 or
17971        compare(bigintExpr(-4294967294_), -4294967296_) <>  1 or
17972        compare(bigintExpr(-4294967294_), -4294967295_) <>  1 or
17973        compare(bigintExpr(-4294967294_), -4294967294_) <>  0 or
17974        compare(bigintExpr(-4294967294_),          -2_) <> -1 or
17975        compare(bigintExpr(-4294967294_),          -1_) <> -1 or
17976        compare(bigintExpr(-4294967294_),           0_) <> -1 or
17977        compare(bigintExpr(-4294967294_),           1_) <> -1 or
17978        compare(bigintExpr(-4294967294_),           2_) <> -1 or
17979        compare(bigintExpr(-4294967294_),  4294967294_) <> -1 or
17980        compare(bigintExpr(-4294967294_),  4294967295_) <> -1 or
17981        compare(bigintExpr(-4294967294_),  4294967296_) <> -1 or
17982        compare(bigintExpr(-4294967294_),  4294967297_) <> -1 or
17983        compare(bigintExpr(-4294967294_),  4294967298_) <> -1 or
17984        compare(bigintExpr(         -2_), -4294967298_) <>  1 or
17985        compare(bigintExpr(         -2_), -4294967297_) <>  1 or
17986        compare(bigintExpr(         -2_), -4294967296_) <>  1 or
17987        compare(bigintExpr(         -2_), -4294967295_) <>  1 or
17988        compare(bigintExpr(         -2_), -4294967294_) <>  1 or
17989        compare(bigintExpr(         -2_),          -2_) <>  0 or
17990        compare(bigintExpr(         -2_),          -1_) <> -1 or
17991        compare(bigintExpr(         -2_),           0_) <> -1 or
17992        compare(bigintExpr(         -2_),           1_) <> -1 or
17993        compare(bigintExpr(         -2_),           2_) <> -1 or
17994        compare(bigintExpr(         -2_),  4294967294_) <> -1 or
17995        compare(bigintExpr(         -2_),  4294967295_) <> -1 or
17996        compare(bigintExpr(         -2_),  4294967296_) <> -1 or
17997        compare(bigintExpr(         -2_),  4294967297_) <> -1 or
17998        compare(bigintExpr(         -2_),  4294967298_) <> -1 or
17999        compare(bigintExpr(         -1_), -4294967298_) <>  1 or
18000        compare(bigintExpr(         -1_), -4294967297_) <>  1 or
18001        compare(bigintExpr(         -1_), -4294967296_) <>  1 or
18002        compare(bigintExpr(         -1_), -4294967295_) <>  1 or
18003        compare(bigintExpr(         -1_), -4294967294_) <>  1 or
18004        compare(bigintExpr(         -1_),          -2_) <>  1 or
18005        compare(bigintExpr(         -1_),          -1_) <>  0 or
18006        compare(bigintExpr(         -1_),           0_) <> -1 or
18007        compare(bigintExpr(         -1_),           1_) <> -1 or
18008        compare(bigintExpr(         -1_),           2_) <> -1 or
18009        compare(bigintExpr(         -1_),  4294967294_) <> -1 or
18010        compare(bigintExpr(         -1_),  4294967295_) <> -1 or
18011        compare(bigintExpr(         -1_),  4294967296_) <> -1 or
18012        compare(bigintExpr(         -1_),  4294967297_) <> -1 or
18013        compare(bigintExpr(         -1_),  4294967298_) <> -1 or
18014        compare(bigintExpr(          0_), -4294967298_) <>  1 or
18015        compare(bigintExpr(          0_), -4294967297_) <>  1 or
18016        compare(bigintExpr(          0_), -4294967296_) <>  1 or
18017        compare(bigintExpr(          0_), -4294967295_) <>  1 or
18018        compare(bigintExpr(          0_), -4294967294_) <>  1 or
18019        compare(bigintExpr(          0_),          -2_) <>  1 or
18020        compare(bigintExpr(          0_),          -1_) <>  1 or
18021        compare(bigintExpr(          0_),           0_) <>  0 or
18022        compare(bigintExpr(          0_),           1_) <> -1 or
18023        compare(bigintExpr(          0_),           2_) <> -1 or
18024        compare(bigintExpr(          0_),  4294967294_) <> -1 or
18025        compare(bigintExpr(          0_),  4294967295_) <> -1 or
18026        compare(bigintExpr(          0_),  4294967296_) <> -1 or
18027        compare(bigintExpr(          0_),  4294967297_) <> -1 or
18028        compare(bigintExpr(          0_),  4294967298_) <> -1 or
18029        compare(bigintExpr(          1_), -4294967298_) <>  1 or
18030        compare(bigintExpr(          1_), -4294967297_) <>  1 or
18031        compare(bigintExpr(          1_), -4294967296_) <>  1 or
18032        compare(bigintExpr(          1_), -4294967295_) <>  1 or
18033        compare(bigintExpr(          1_), -4294967294_) <>  1 or
18034        compare(bigintExpr(          1_),          -2_) <>  1 or
18035        compare(bigintExpr(          1_),          -1_) <>  1 or
18036        compare(bigintExpr(          1_),           0_) <>  1 or
18037        compare(bigintExpr(          1_),           1_) <>  0 or
18038        compare(bigintExpr(          1_),           2_) <> -1 or
18039        compare(bigintExpr(          1_),  4294967294_) <> -1 or
18040        compare(bigintExpr(          1_),  4294967295_) <> -1 or
18041        compare(bigintExpr(          1_),  4294967296_) <> -1 or
18042        compare(bigintExpr(          1_),  4294967297_) <> -1 or
18043        compare(bigintExpr(          1_),  4294967298_) <> -1 or
18044        compare(bigintExpr(          2_), -4294967298_) <>  1 or
18045        compare(bigintExpr(          2_), -4294967297_) <>  1 or
18046        compare(bigintExpr(          2_), -4294967296_) <>  1 or
18047        compare(bigintExpr(          2_), -4294967295_) <>  1 or
18048        compare(bigintExpr(          2_), -4294967294_) <>  1 or
18049        compare(bigintExpr(          2_),          -2_) <>  1 or
18050        compare(bigintExpr(          2_),          -1_) <>  1 or
18051        compare(bigintExpr(          2_),           0_) <>  1 or
18052        compare(bigintExpr(          2_),           1_) <>  1 or
18053        compare(bigintExpr(          2_),           2_) <>  0 or
18054        compare(bigintExpr(          2_),  4294967294_) <> -1 or
18055        compare(bigintExpr(          2_),  4294967295_) <> -1 or
18056        compare(bigintExpr(          2_),  4294967296_) <> -1 or
18057        compare(bigintExpr(          2_),  4294967297_) <> -1 or
18058        compare(bigintExpr(          2_),  4294967298_) <> -1 or
18059        compare(bigintExpr( 4294967294_), -4294967298_) <>  1 or
18060        compare(bigintExpr( 4294967294_), -4294967297_) <>  1 or
18061        compare(bigintExpr( 4294967294_), -4294967296_) <>  1 or
18062        compare(bigintExpr( 4294967294_), -4294967295_) <>  1 or
18063        compare(bigintExpr( 4294967294_), -4294967294_) <>  1 or
18064        compare(bigintExpr( 4294967294_),          -2_) <>  1 or
18065        compare(bigintExpr( 4294967294_),          -1_) <>  1 or
18066        compare(bigintExpr( 4294967294_),           0_) <>  1 or
18067        compare(bigintExpr( 4294967294_),           1_) <>  1 or
18068        compare(bigintExpr( 4294967294_),           2_) <>  1 or
18069        compare(bigintExpr( 4294967294_),  4294967294_) <>  0 or
18070        compare(bigintExpr( 4294967294_),  4294967295_) <> -1 or
18071        compare(bigintExpr( 4294967294_),  4294967296_) <> -1 or
18072        compare(bigintExpr( 4294967294_),  4294967297_) <> -1 or
18073        compare(bigintExpr( 4294967294_),  4294967298_) <> -1 or
18074        compare(bigintExpr( 4294967295_), -4294967298_) <>  1 or
18075        compare(bigintExpr( 4294967295_), -4294967297_) <>  1 or
18076        compare(bigintExpr( 4294967295_), -4294967296_) <>  1 or
18077        compare(bigintExpr( 4294967295_), -4294967295_) <>  1 or
18078        compare(bigintExpr( 4294967295_), -4294967294_) <>  1 or
18079        compare(bigintExpr( 4294967295_),          -2_) <>  1 or
18080        compare(bigintExpr( 4294967295_),          -1_) <>  1 or
18081        compare(bigintExpr( 4294967295_),           0_) <>  1 or
18082        compare(bigintExpr( 4294967295_),           1_) <>  1 or
18083        compare(bigintExpr( 4294967295_),           2_) <>  1 or
18084        compare(bigintExpr( 4294967295_),  4294967294_) <>  1 or
18085        compare(bigintExpr( 4294967295_),  4294967295_) <>  0 or
18086        compare(bigintExpr( 4294967295_),  4294967296_) <> -1 or
18087        compare(bigintExpr( 4294967295_),  4294967297_) <> -1 or
18088        compare(bigintExpr( 4294967295_),  4294967298_) <> -1 or
18089        compare(bigintExpr( 4294967296_), -4294967298_) <>  1 or
18090        compare(bigintExpr( 4294967296_), -4294967297_) <>  1 or
18091        compare(bigintExpr( 4294967296_), -4294967296_) <>  1 or
18092        compare(bigintExpr( 4294967296_), -4294967295_) <>  1 or
18093        compare(bigintExpr( 4294967296_), -4294967294_) <>  1 or
18094        compare(bigintExpr( 4294967296_),          -2_) <>  1 or
18095        compare(bigintExpr( 4294967296_),          -1_) <>  1 or
18096        compare(bigintExpr( 4294967296_),           0_) <>  1 or
18097        compare(bigintExpr( 4294967296_),           1_) <>  1 or
18098        compare(bigintExpr( 4294967296_),           2_) <>  1 or
18099        compare(bigintExpr( 4294967296_),  4294967294_) <>  1 or
18100        compare(bigintExpr( 4294967296_),  4294967295_) <>  1 or
18101        compare(bigintExpr( 4294967296_),  4294967296_) <>  0 or
18102        compare(bigintExpr( 4294967296_),  4294967297_) <> -1 or
18103        compare(bigintExpr( 4294967296_),  4294967298_) <> -1 or
18104        compare(bigintExpr( 4294967297_), -4294967298_) <>  1 or
18105        compare(bigintExpr( 4294967297_), -4294967297_) <>  1 or
18106        compare(bigintExpr( 4294967297_), -4294967296_) <>  1 or
18107        compare(bigintExpr( 4294967297_), -4294967295_) <>  1 or
18108        compare(bigintExpr( 4294967297_), -4294967294_) <>  1 or
18109        compare(bigintExpr( 4294967297_),          -2_) <>  1 or
18110        compare(bigintExpr( 4294967297_),          -1_) <>  1 or
18111        compare(bigintExpr( 4294967297_),           0_) <>  1 or
18112        compare(bigintExpr( 4294967297_),           1_) <>  1 or
18113        compare(bigintExpr( 4294967297_),           2_) <>  1 or
18114        compare(bigintExpr( 4294967297_),  4294967294_) <>  1 or
18115        compare(bigintExpr( 4294967296_),  4294967295_) <>  1 or
18116        compare(bigintExpr( 4294967297_),  4294967296_) <>  1 or
18117        compare(bigintExpr( 4294967297_),  4294967297_) <>  0 or
18118        compare(bigintExpr( 4294967297_),  4294967298_) <> -1 or
18119        compare(bigintExpr( 4294967298_), -4294967298_) <>  1 or
18120        compare(bigintExpr( 4294967298_), -4294967297_) <>  1 or
18121        compare(bigintExpr( 4294967298_), -4294967296_) <>  1 or
18122        compare(bigintExpr( 4294967298_), -4294967295_) <>  1 or
18123        compare(bigintExpr( 4294967298_), -4294967294_) <>  1 or
18124        compare(bigintExpr( 4294967298_),          -2_) <>  1 or
18125        compare(bigintExpr( 4294967298_),          -1_) <>  1 or
18126        compare(bigintExpr( 4294967298_),           0_) <>  1 or
18127        compare(bigintExpr( 4294967298_),           1_) <>  1 or
18128        compare(bigintExpr( 4294967298_),           2_) <>  1 or
18129        compare(bigintExpr( 4294967298_),  4294967294_) <>  1 or
18130        compare(bigintExpr( 4294967298_),  4294967295_) <>  1 or
18131        compare(bigintExpr( 4294967298_),  4294967296_) <>  1 or
18132        compare(bigintExpr( 4294967298_),  4294967297_) <>  1 or
18133        compare(bigintExpr( 4294967298_),  4294967298_) <>  0 then
18134      writeln("The bigInteger compare does not work correct.");
18135      okay := FALSE;
18136    end if;
18137
18138    if  compare(-4294967298_, bigintExpr(-4294967298_)) <>  0 or
18139        compare(-4294967298_, bigintExpr(-4294967297_)) <> -1 or
18140        compare(-4294967298_, bigintExpr(-4294967296_)) <> -1 or
18141        compare(-4294967298_, bigintExpr(-4294967295_)) <> -1 or
18142        compare(-4294967298_, bigintExpr(-4294967294_)) <> -1 or
18143        compare(-4294967298_, bigintExpr(         -2_)) <> -1 or
18144        compare(-4294967298_, bigintExpr(         -1_)) <> -1 or
18145        compare(-4294967298_, bigintExpr(          0_)) <> -1 or
18146        compare(-4294967298_, bigintExpr(          1_)) <> -1 or
18147        compare(-4294967298_, bigintExpr(          2_)) <> -1 or
18148        compare(-4294967298_, bigintExpr( 4294967294_)) <> -1 or
18149        compare(-4294967298_, bigintExpr( 4294967295_)) <> -1 or
18150        compare(-4294967298_, bigintExpr( 4294967296_)) <> -1 or
18151        compare(-4294967298_, bigintExpr( 4294967297_)) <> -1 or
18152        compare(-4294967298_, bigintExpr( 4294967298_)) <> -1 or
18153        compare(-4294967297_, bigintExpr(-4294967298_)) <>  1 or
18154        compare(-4294967297_, bigintExpr(-4294967297_)) <>  0 or
18155        compare(-4294967297_, bigintExpr(-4294967296_)) <> -1 or
18156        compare(-4294967297_, bigintExpr(-4294967295_)) <> -1 or
18157        compare(-4294967297_, bigintExpr(-4294967294_)) <> -1 or
18158        compare(-4294967297_, bigintExpr(         -2_)) <> -1 or
18159        compare(-4294967297_, bigintExpr(         -1_)) <> -1 or
18160        compare(-4294967297_, bigintExpr(          0_)) <> -1 or
18161        compare(-4294967297_, bigintExpr(          1_)) <> -1 or
18162        compare(-4294967297_, bigintExpr(          2_)) <> -1 or
18163        compare(-4294967297_, bigintExpr( 4294967294_)) <> -1 or
18164        compare(-4294967297_, bigintExpr( 4294967295_)) <> -1 or
18165        compare(-4294967297_, bigintExpr( 4294967296_)) <> -1 or
18166        compare(-4294967297_, bigintExpr( 4294967297_)) <> -1 or
18167        compare(-4294967297_, bigintExpr( 4294967298_)) <> -1 or
18168        compare(-4294967296_, bigintExpr(-4294967298_)) <>  1 or
18169        compare(-4294967296_, bigintExpr(-4294967297_)) <>  1 or
18170        compare(-4294967296_, bigintExpr(-4294967296_)) <>  0 or
18171        compare(-4294967296_, bigintExpr(-4294967295_)) <> -1 or
18172        compare(-4294967296_, bigintExpr(-4294967294_)) <> -1 or
18173        compare(-4294967296_, bigintExpr(         -2_)) <> -1 or
18174        compare(-4294967296_, bigintExpr(         -1_)) <> -1 or
18175        compare(-4294967296_, bigintExpr(          0_)) <> -1 or
18176        compare(-4294967296_, bigintExpr(          1_)) <> -1 or
18177        compare(-4294967296_, bigintExpr(          2_)) <> -1 or
18178        compare(-4294967296_, bigintExpr( 4294967294_)) <> -1 or
18179        compare(-4294967296_, bigintExpr( 4294967295_)) <> -1 or
18180        compare(-4294967296_, bigintExpr( 4294967296_)) <> -1 or
18181        compare(-4294967296_, bigintExpr( 4294967297_)) <> -1 or
18182        compare(-4294967296_, bigintExpr( 4294967298_)) <> -1 or
18183        compare(-4294967295_, bigintExpr(-4294967298_)) <>  1 or
18184        compare(-4294967295_, bigintExpr(-4294967297_)) <>  1 or
18185        compare(-4294967295_, bigintExpr(-4294967296_)) <>  1 or
18186        compare(-4294967295_, bigintExpr(-4294967295_)) <>  0 or
18187        compare(-4294967295_, bigintExpr(-4294967294_)) <> -1 or
18188        compare(-4294967295_, bigintExpr(         -2_)) <> -1 or
18189        compare(-4294967295_, bigintExpr(         -1_)) <> -1 or
18190        compare(-4294967295_, bigintExpr(          0_)) <> -1 or
18191        compare(-4294967295_, bigintExpr(          1_)) <> -1 or
18192        compare(-4294967295_, bigintExpr(          2_)) <> -1 or
18193        compare(-4294967295_, bigintExpr( 4294967294_)) <> -1 or
18194        compare(-4294967295_, bigintExpr( 4294967295_)) <> -1 or
18195        compare(-4294967295_, bigintExpr( 4294967296_)) <> -1 or
18196        compare(-4294967295_, bigintExpr( 4294967297_)) <> -1 or
18197        compare(-4294967295_, bigintExpr( 4294967298_)) <> -1 or
18198        compare(-4294967294_, bigintExpr(-4294967298_)) <>  1 or
18199        compare(-4294967294_, bigintExpr(-4294967297_)) <>  1 or
18200        compare(-4294967294_, bigintExpr(-4294967296_)) <>  1 or
18201        compare(-4294967294_, bigintExpr(-4294967295_)) <>  1 or
18202        compare(-4294967294_, bigintExpr(-4294967294_)) <>  0 or
18203        compare(-4294967294_, bigintExpr(         -2_)) <> -1 or
18204        compare(-4294967294_, bigintExpr(         -1_)) <> -1 or
18205        compare(-4294967294_, bigintExpr(          0_)) <> -1 or
18206        compare(-4294967294_, bigintExpr(          1_)) <> -1 or
18207        compare(-4294967294_, bigintExpr(          2_)) <> -1 or
18208        compare(-4294967294_, bigintExpr( 4294967294_)) <> -1 or
18209        compare(-4294967294_, bigintExpr( 4294967295_)) <> -1 or
18210        compare(-4294967294_, bigintExpr( 4294967296_)) <> -1 or
18211        compare(-4294967294_, bigintExpr( 4294967297_)) <> -1 or
18212        compare(-4294967294_, bigintExpr( 4294967298_)) <> -1 or
18213        compare(         -2_, bigintExpr(-4294967298_)) <>  1 or
18214        compare(         -2_, bigintExpr(-4294967297_)) <>  1 or
18215        compare(         -2_, bigintExpr(-4294967296_)) <>  1 or
18216        compare(         -2_, bigintExpr(-4294967295_)) <>  1 or
18217        compare(         -2_, bigintExpr(-4294967294_)) <>  1 or
18218        compare(         -2_, bigintExpr(         -2_)) <>  0 or
18219        compare(         -2_, bigintExpr(         -1_)) <> -1 or
18220        compare(         -2_, bigintExpr(          0_)) <> -1 or
18221        compare(         -2_, bigintExpr(          1_)) <> -1 or
18222        compare(         -2_, bigintExpr(          2_)) <> -1 or
18223        compare(         -2_, bigintExpr( 4294967294_)) <> -1 or
18224        compare(         -2_, bigintExpr( 4294967295_)) <> -1 or
18225        compare(         -2_, bigintExpr( 4294967296_)) <> -1 or
18226        compare(         -2_, bigintExpr( 4294967297_)) <> -1 or
18227        compare(         -2_, bigintExpr( 4294967298_)) <> -1 or
18228        compare(         -1_, bigintExpr(-4294967298_)) <>  1 or
18229        compare(         -1_, bigintExpr(-4294967297_)) <>  1 or
18230        compare(         -1_, bigintExpr(-4294967296_)) <>  1 or
18231        compare(         -1_, bigintExpr(-4294967295_)) <>  1 or
18232        compare(         -1_, bigintExpr(-4294967294_)) <>  1 or
18233        compare(         -1_, bigintExpr(         -2_)) <>  1 or
18234        compare(         -1_, bigintExpr(         -1_)) <>  0 or
18235        compare(         -1_, bigintExpr(          0_)) <> -1 or
18236        compare(         -1_, bigintExpr(          1_)) <> -1 or
18237        compare(         -1_, bigintExpr(          2_)) <> -1 or
18238        compare(         -1_, bigintExpr( 4294967294_)) <> -1 or
18239        compare(         -1_, bigintExpr( 4294967295_)) <> -1 or
18240        compare(         -1_, bigintExpr( 4294967296_)) <> -1 or
18241        compare(         -1_, bigintExpr( 4294967297_)) <> -1 or
18242        compare(         -1_, bigintExpr( 4294967298_)) <> -1 or
18243        compare(          0_, bigintExpr(-4294967298_)) <>  1 or
18244        compare(          0_, bigintExpr(-4294967297_)) <>  1 or
18245        compare(          0_, bigintExpr(-4294967296_)) <>  1 or
18246        compare(          0_, bigintExpr(-4294967295_)) <>  1 or
18247        compare(          0_, bigintExpr(-4294967294_)) <>  1 or
18248        compare(          0_, bigintExpr(         -2_)) <>  1 or
18249        compare(          0_, bigintExpr(         -1_)) <>  1 or
18250        compare(          0_, bigintExpr(          0_)) <>  0 or
18251        compare(          0_, bigintExpr(          1_)) <> -1 or
18252        compare(          0_, bigintExpr(          2_)) <> -1 or
18253        compare(          0_, bigintExpr( 4294967294_)) <> -1 or
18254        compare(          0_, bigintExpr( 4294967295_)) <> -1 or
18255        compare(          0_, bigintExpr( 4294967296_)) <> -1 or
18256        compare(          0_, bigintExpr( 4294967297_)) <> -1 or
18257        compare(          0_, bigintExpr( 4294967298_)) <> -1 or
18258        compare(          1_, bigintExpr(-4294967298_)) <>  1 or
18259        compare(          1_, bigintExpr(-4294967297_)) <>  1 or
18260        compare(          1_, bigintExpr(-4294967296_)) <>  1 or
18261        compare(          1_, bigintExpr(-4294967295_)) <>  1 or
18262        compare(          1_, bigintExpr(-4294967294_)) <>  1 or
18263        compare(          1_, bigintExpr(         -2_)) <>  1 or
18264        compare(          1_, bigintExpr(         -1_)) <>  1 or
18265        compare(          1_, bigintExpr(          0_)) <>  1 or
18266        compare(          1_, bigintExpr(          1_)) <>  0 or
18267        compare(          1_, bigintExpr(          2_)) <> -1 or
18268        compare(          1_, bigintExpr( 4294967294_)) <> -1 or
18269        compare(          1_, bigintExpr( 4294967295_)) <> -1 or
18270        compare(          1_, bigintExpr( 4294967296_)) <> -1 or
18271        compare(          1_, bigintExpr( 4294967297_)) <> -1 or
18272        compare(          1_, bigintExpr( 4294967298_)) <> -1 or
18273        compare(          2_, bigintExpr(-4294967298_)) <>  1 or
18274        compare(          2_, bigintExpr(-4294967297_)) <>  1 or
18275        compare(          2_, bigintExpr(-4294967296_)) <>  1 or
18276        compare(          2_, bigintExpr(-4294967295_)) <>  1 or
18277        compare(          2_, bigintExpr(-4294967294_)) <>  1 or
18278        compare(          2_, bigintExpr(         -2_)) <>  1 or
18279        compare(          2_, bigintExpr(         -1_)) <>  1 or
18280        compare(          2_, bigintExpr(          0_)) <>  1 or
18281        compare(          2_, bigintExpr(          1_)) <>  1 or
18282        compare(          2_, bigintExpr(          2_)) <>  0 or
18283        compare(          2_, bigintExpr( 4294967294_)) <> -1 or
18284        compare(          2_, bigintExpr( 4294967295_)) <> -1 or
18285        compare(          2_, bigintExpr( 4294967296_)) <> -1 or
18286        compare(          2_, bigintExpr( 4294967297_)) <> -1 or
18287        compare(          2_, bigintExpr( 4294967298_)) <> -1 or
18288        compare( 4294967294_, bigintExpr(-4294967298_)) <>  1 or
18289        compare( 4294967294_, bigintExpr(-4294967297_)) <>  1 or
18290        compare( 4294967294_, bigintExpr(-4294967296_)) <>  1 or
18291        compare( 4294967294_, bigintExpr(-4294967295_)) <>  1 or
18292        compare( 4294967294_, bigintExpr(-4294967294_)) <>  1 or
18293        compare( 4294967294_, bigintExpr(         -2_)) <>  1 or
18294        compare( 4294967294_, bigintExpr(         -1_)) <>  1 or
18295        compare( 4294967294_, bigintExpr(          0_)) <>  1 or
18296        compare( 4294967294_, bigintExpr(          1_)) <>  1 or
18297        compare( 4294967294_, bigintExpr(          2_)) <>  1 or
18298        compare( 4294967294_, bigintExpr( 4294967294_)) <>  0 or
18299        compare( 4294967294_, bigintExpr( 4294967295_)) <> -1 or
18300        compare( 4294967294_, bigintExpr( 4294967296_)) <> -1 or
18301        compare( 4294967294_, bigintExpr( 4294967297_)) <> -1 or
18302        compare( 4294967294_, bigintExpr( 4294967298_)) <> -1 or
18303        compare( 4294967295_, bigintExpr(-4294967298_)) <>  1 or
18304        compare( 4294967295_, bigintExpr(-4294967297_)) <>  1 or
18305        compare( 4294967295_, bigintExpr(-4294967296_)) <>  1 or
18306        compare( 4294967295_, bigintExpr(-4294967295_)) <>  1 or
18307        compare( 4294967295_, bigintExpr(-4294967294_)) <>  1 or
18308        compare( 4294967295_, bigintExpr(         -2_)) <>  1 or
18309        compare( 4294967295_, bigintExpr(         -1_)) <>  1 or
18310        compare( 4294967295_, bigintExpr(          0_)) <>  1 or
18311        compare( 4294967295_, bigintExpr(          1_)) <>  1 or
18312        compare( 4294967295_, bigintExpr(          2_)) <>  1 or
18313        compare( 4294967295_, bigintExpr( 4294967294_)) <>  1 or
18314        compare( 4294967295_, bigintExpr( 4294967295_)) <>  0 or
18315        compare( 4294967295_, bigintExpr( 4294967296_)) <> -1 or
18316        compare( 4294967295_, bigintExpr( 4294967297_)) <> -1 or
18317        compare( 4294967295_, bigintExpr( 4294967298_)) <> -1 or
18318        compare( 4294967296_, bigintExpr(-4294967298_)) <>  1 or
18319        compare( 4294967296_, bigintExpr(-4294967297_)) <>  1 or
18320        compare( 4294967296_, bigintExpr(-4294967296_)) <>  1 or
18321        compare( 4294967296_, bigintExpr(-4294967295_)) <>  1 or
18322        compare( 4294967296_, bigintExpr(-4294967294_)) <>  1 or
18323        compare( 4294967296_, bigintExpr(         -2_)) <>  1 or
18324        compare( 4294967296_, bigintExpr(         -1_)) <>  1 or
18325        compare( 4294967296_, bigintExpr(          0_)) <>  1 or
18326        compare( 4294967296_, bigintExpr(          1_)) <>  1 or
18327        compare( 4294967296_, bigintExpr(          2_)) <>  1 or
18328        compare( 4294967296_, bigintExpr( 4294967294_)) <>  1 or
18329        compare( 4294967296_, bigintExpr( 4294967295_)) <>  1 or
18330        compare( 4294967296_, bigintExpr( 4294967296_)) <>  0 or
18331        compare( 4294967296_, bigintExpr( 4294967297_)) <> -1 or
18332        compare( 4294967296_, bigintExpr( 4294967298_)) <> -1 or
18333        compare( 4294967297_, bigintExpr(-4294967298_)) <>  1 or
18334        compare( 4294967297_, bigintExpr(-4294967297_)) <>  1 or
18335        compare( 4294967297_, bigintExpr(-4294967296_)) <>  1 or
18336        compare( 4294967297_, bigintExpr(-4294967295_)) <>  1 or
18337        compare( 4294967297_, bigintExpr(-4294967294_)) <>  1 or
18338        compare( 4294967297_, bigintExpr(         -2_)) <>  1 or
18339        compare( 4294967297_, bigintExpr(         -1_)) <>  1 or
18340        compare( 4294967297_, bigintExpr(          0_)) <>  1 or
18341        compare( 4294967297_, bigintExpr(          1_)) <>  1 or
18342        compare( 4294967297_, bigintExpr(          2_)) <>  1 or
18343        compare( 4294967297_, bigintExpr( 4294967294_)) <>  1 or
18344        compare( 4294967296_, bigintExpr( 4294967295_)) <>  1 or
18345        compare( 4294967297_, bigintExpr( 4294967296_)) <>  1 or
18346        compare( 4294967297_, bigintExpr( 4294967297_)) <>  0 or
18347        compare( 4294967297_, bigintExpr( 4294967298_)) <> -1 or
18348        compare( 4294967298_, bigintExpr(-4294967298_)) <>  1 or
18349        compare( 4294967298_, bigintExpr(-4294967297_)) <>  1 or
18350        compare( 4294967298_, bigintExpr(-4294967296_)) <>  1 or
18351        compare( 4294967298_, bigintExpr(-4294967295_)) <>  1 or
18352        compare( 4294967298_, bigintExpr(-4294967294_)) <>  1 or
18353        compare( 4294967298_, bigintExpr(         -2_)) <>  1 or
18354        compare( 4294967298_, bigintExpr(         -1_)) <>  1 or
18355        compare( 4294967298_, bigintExpr(          0_)) <>  1 or
18356        compare( 4294967298_, bigintExpr(          1_)) <>  1 or
18357        compare( 4294967298_, bigintExpr(          2_)) <>  1 or
18358        compare( 4294967298_, bigintExpr( 4294967294_)) <>  1 or
18359        compare( 4294967298_, bigintExpr( 4294967295_)) <>  1 or
18360        compare( 4294967298_, bigintExpr( 4294967296_)) <>  1 or
18361        compare( 4294967298_, bigintExpr( 4294967297_)) <>  1 or
18362        compare( 4294967298_, bigintExpr( 4294967298_)) <>  0 then
18363      writeln("The bigInteger compare does not work correct.");
18364      okay := FALSE;
18365    end if;
18366
18367    if  compare(bigintExpr(-4294967298_), bigintExpr(-4294967298_)) <>  0 or
18368        compare(bigintExpr(-4294967298_), bigintExpr(-4294967297_)) <> -1 or
18369        compare(bigintExpr(-4294967298_), bigintExpr(-4294967296_)) <> -1 or
18370        compare(bigintExpr(-4294967298_), bigintExpr(-4294967295_)) <> -1 or
18371        compare(bigintExpr(-4294967298_), bigintExpr(-4294967294_)) <> -1 or
18372        compare(bigintExpr(-4294967298_), bigintExpr(         -2_)) <> -1 or
18373        compare(bigintExpr(-4294967298_), bigintExpr(         -1_)) <> -1 or
18374        compare(bigintExpr(-4294967298_), bigintExpr(          0_)) <> -1 or
18375        compare(bigintExpr(-4294967298_), bigintExpr(          1_)) <> -1 or
18376        compare(bigintExpr(-4294967298_), bigintExpr(          2_)) <> -1 or
18377        compare(bigintExpr(-4294967298_), bigintExpr( 4294967294_)) <> -1 or
18378        compare(bigintExpr(-4294967298_), bigintExpr( 4294967295_)) <> -1 or
18379        compare(bigintExpr(-4294967298_), bigintExpr( 4294967296_)) <> -1 or
18380        compare(bigintExpr(-4294967298_), bigintExpr( 4294967297_)) <> -1 or
18381        compare(bigintExpr(-4294967298_), bigintExpr( 4294967298_)) <> -1 or
18382        compare(bigintExpr(-4294967297_), bigintExpr(-4294967298_)) <>  1 or
18383        compare(bigintExpr(-4294967297_), bigintExpr(-4294967297_)) <>  0 or
18384        compare(bigintExpr(-4294967297_), bigintExpr(-4294967296_)) <> -1 or
18385        compare(bigintExpr(-4294967297_), bigintExpr(-4294967295_)) <> -1 or
18386        compare(bigintExpr(-4294967297_), bigintExpr(-4294967294_)) <> -1 or
18387        compare(bigintExpr(-4294967297_), bigintExpr(         -2_)) <> -1 or
18388        compare(bigintExpr(-4294967297_), bigintExpr(         -1_)) <> -1 or
18389        compare(bigintExpr(-4294967297_), bigintExpr(          0_)) <> -1 or
18390        compare(bigintExpr(-4294967297_), bigintExpr(          1_)) <> -1 or
18391        compare(bigintExpr(-4294967297_), bigintExpr(          2_)) <> -1 or
18392        compare(bigintExpr(-4294967297_), bigintExpr( 4294967294_)) <> -1 or
18393        compare(bigintExpr(-4294967297_), bigintExpr( 4294967295_)) <> -1 or
18394        compare(bigintExpr(-4294967297_), bigintExpr( 4294967296_)) <> -1 or
18395        compare(bigintExpr(-4294967297_), bigintExpr( 4294967297_)) <> -1 or
18396        compare(bigintExpr(-4294967297_), bigintExpr( 4294967298_)) <> -1 or
18397        compare(bigintExpr(-4294967296_), bigintExpr(-4294967298_)) <>  1 or
18398        compare(bigintExpr(-4294967296_), bigintExpr(-4294967297_)) <>  1 or
18399        compare(bigintExpr(-4294967296_), bigintExpr(-4294967296_)) <>  0 or
18400        compare(bigintExpr(-4294967296_), bigintExpr(-4294967295_)) <> -1 or
18401        compare(bigintExpr(-4294967296_), bigintExpr(-4294967294_)) <> -1 or
18402        compare(bigintExpr(-4294967296_), bigintExpr(         -2_)) <> -1 or
18403        compare(bigintExpr(-4294967296_), bigintExpr(         -1_)) <> -1 or
18404        compare(bigintExpr(-4294967296_), bigintExpr(          0_)) <> -1 or
18405        compare(bigintExpr(-4294967296_), bigintExpr(          1_)) <> -1 or
18406        compare(bigintExpr(-4294967296_), bigintExpr(          2_)) <> -1 or
18407        compare(bigintExpr(-4294967296_), bigintExpr( 4294967294_)) <> -1 or
18408        compare(bigintExpr(-4294967296_), bigintExpr( 4294967295_)) <> -1 or
18409        compare(bigintExpr(-4294967296_), bigintExpr( 4294967296_)) <> -1 or
18410        compare(bigintExpr(-4294967296_), bigintExpr( 4294967297_)) <> -1 or
18411        compare(bigintExpr(-4294967296_), bigintExpr( 4294967298_)) <> -1 or
18412        compare(bigintExpr(-4294967295_), bigintExpr(-4294967298_)) <>  1 or
18413        compare(bigintExpr(-4294967295_), bigintExpr(-4294967297_)) <>  1 or
18414        compare(bigintExpr(-4294967295_), bigintExpr(-4294967296_)) <>  1 or
18415        compare(bigintExpr(-4294967295_), bigintExpr(-4294967295_)) <>  0 or
18416        compare(bigintExpr(-4294967295_), bigintExpr(-4294967294_)) <> -1 or
18417        compare(bigintExpr(-4294967295_), bigintExpr(         -2_)) <> -1 or
18418        compare(bigintExpr(-4294967295_), bigintExpr(         -1_)) <> -1 or
18419        compare(bigintExpr(-4294967295_), bigintExpr(          0_)) <> -1 or
18420        compare(bigintExpr(-4294967295_), bigintExpr(          1_)) <> -1 or
18421        compare(bigintExpr(-4294967295_), bigintExpr(          2_)) <> -1 or
18422        compare(bigintExpr(-4294967295_), bigintExpr( 4294967294_)) <> -1 or
18423        compare(bigintExpr(-4294967295_), bigintExpr( 4294967295_)) <> -1 or
18424        compare(bigintExpr(-4294967295_), bigintExpr( 4294967296_)) <> -1 or
18425        compare(bigintExpr(-4294967295_), bigintExpr( 4294967297_)) <> -1 or
18426        compare(bigintExpr(-4294967295_), bigintExpr( 4294967298_)) <> -1 or
18427        compare(bigintExpr(-4294967294_), bigintExpr(-4294967298_)) <>  1 or
18428        compare(bigintExpr(-4294967294_), bigintExpr(-4294967297_)) <>  1 or
18429        compare(bigintExpr(-4294967294_), bigintExpr(-4294967296_)) <>  1 or
18430        compare(bigintExpr(-4294967294_), bigintExpr(-4294967295_)) <>  1 or
18431        compare(bigintExpr(-4294967294_), bigintExpr(-4294967294_)) <>  0 or
18432        compare(bigintExpr(-4294967294_), bigintExpr(         -2_)) <> -1 or
18433        compare(bigintExpr(-4294967294_), bigintExpr(         -1_)) <> -1 or
18434        compare(bigintExpr(-4294967294_), bigintExpr(          0_)) <> -1 or
18435        compare(bigintExpr(-4294967294_), bigintExpr(          1_)) <> -1 or
18436        compare(bigintExpr(-4294967294_), bigintExpr(          2_)) <> -1 or
18437        compare(bigintExpr(-4294967294_), bigintExpr( 4294967294_)) <> -1 or
18438        compare(bigintExpr(-4294967294_), bigintExpr( 4294967295_)) <> -1 or
18439        compare(bigintExpr(-4294967294_), bigintExpr( 4294967296_)) <> -1 or
18440        compare(bigintExpr(-4294967294_), bigintExpr( 4294967297_)) <> -1 or
18441        compare(bigintExpr(-4294967294_), bigintExpr( 4294967298_)) <> -1 or
18442        compare(bigintExpr(         -2_), bigintExpr(-4294967298_)) <>  1 or
18443        compare(bigintExpr(         -2_), bigintExpr(-4294967297_)) <>  1 or
18444        compare(bigintExpr(         -2_), bigintExpr(-4294967296_)) <>  1 or
18445        compare(bigintExpr(         -2_), bigintExpr(-4294967295_)) <>  1 or
18446        compare(bigintExpr(         -2_), bigintExpr(-4294967294_)) <>  1 or
18447        compare(bigintExpr(         -2_), bigintExpr(         -2_)) <>  0 or
18448        compare(bigintExpr(         -2_), bigintExpr(         -1_)) <> -1 or
18449        compare(bigintExpr(         -2_), bigintExpr(          0_)) <> -1 or
18450        compare(bigintExpr(         -2_), bigintExpr(          1_)) <> -1 or
18451        compare(bigintExpr(         -2_), bigintExpr(          2_)) <> -1 or
18452        compare(bigintExpr(         -2_), bigintExpr( 4294967294_)) <> -1 or
18453        compare(bigintExpr(         -2_), bigintExpr( 4294967295_)) <> -1 or
18454        compare(bigintExpr(         -2_), bigintExpr( 4294967296_)) <> -1 or
18455        compare(bigintExpr(         -2_), bigintExpr( 4294967297_)) <> -1 or
18456        compare(bigintExpr(         -2_), bigintExpr( 4294967298_)) <> -1 or
18457        compare(bigintExpr(         -1_), bigintExpr(-4294967298_)) <>  1 or
18458        compare(bigintExpr(         -1_), bigintExpr(-4294967297_)) <>  1 or
18459        compare(bigintExpr(         -1_), bigintExpr(-4294967296_)) <>  1 or
18460        compare(bigintExpr(         -1_), bigintExpr(-4294967295_)) <>  1 or
18461        compare(bigintExpr(         -1_), bigintExpr(-4294967294_)) <>  1 or
18462        compare(bigintExpr(         -1_), bigintExpr(         -2_)) <>  1 or
18463        compare(bigintExpr(         -1_), bigintExpr(         -1_)) <>  0 or
18464        compare(bigintExpr(         -1_), bigintExpr(          0_)) <> -1 or
18465        compare(bigintExpr(         -1_), bigintExpr(          1_)) <> -1 or
18466        compare(bigintExpr(         -1_), bigintExpr(          2_)) <> -1 or
18467        compare(bigintExpr(         -1_), bigintExpr( 4294967294_)) <> -1 or
18468        compare(bigintExpr(         -1_), bigintExpr( 4294967295_)) <> -1 or
18469        compare(bigintExpr(         -1_), bigintExpr( 4294967296_)) <> -1 or
18470        compare(bigintExpr(         -1_), bigintExpr( 4294967297_)) <> -1 or
18471        compare(bigintExpr(         -1_), bigintExpr( 4294967298_)) <> -1 or
18472        compare(bigintExpr(          0_), bigintExpr(-4294967298_)) <>  1 or
18473        compare(bigintExpr(          0_), bigintExpr(-4294967297_)) <>  1 or
18474        compare(bigintExpr(          0_), bigintExpr(-4294967296_)) <>  1 or
18475        compare(bigintExpr(          0_), bigintExpr(-4294967295_)) <>  1 or
18476        compare(bigintExpr(          0_), bigintExpr(-4294967294_)) <>  1 or
18477        compare(bigintExpr(          0_), bigintExpr(         -2_)) <>  1 or
18478        compare(bigintExpr(          0_), bigintExpr(         -1_)) <>  1 or
18479        compare(bigintExpr(          0_), bigintExpr(          0_)) <>  0 or
18480        compare(bigintExpr(          0_), bigintExpr(          1_)) <> -1 or
18481        compare(bigintExpr(          0_), bigintExpr(          2_)) <> -1 or
18482        compare(bigintExpr(          0_), bigintExpr( 4294967294_)) <> -1 or
18483        compare(bigintExpr(          0_), bigintExpr( 4294967295_)) <> -1 or
18484        compare(bigintExpr(          0_), bigintExpr( 4294967296_)) <> -1 or
18485        compare(bigintExpr(          0_), bigintExpr( 4294967297_)) <> -1 or
18486        compare(bigintExpr(          0_), bigintExpr( 4294967298_)) <> -1 or
18487        compare(bigintExpr(          1_), bigintExpr(-4294967298_)) <>  1 or
18488        compare(bigintExpr(          1_), bigintExpr(-4294967297_)) <>  1 or
18489        compare(bigintExpr(          1_), bigintExpr(-4294967296_)) <>  1 or
18490        compare(bigintExpr(          1_), bigintExpr(-4294967295_)) <>  1 or
18491        compare(bigintExpr(          1_), bigintExpr(-4294967294_)) <>  1 or
18492        compare(bigintExpr(          1_), bigintExpr(         -2_)) <>  1 or
18493        compare(bigintExpr(          1_), bigintExpr(         -1_)) <>  1 or
18494        compare(bigintExpr(          1_), bigintExpr(          0_)) <>  1 or
18495        compare(bigintExpr(          1_), bigintExpr(          1_)) <>  0 or
18496        compare(bigintExpr(          1_), bigintExpr(          2_)) <> -1 or
18497        compare(bigintExpr(          1_), bigintExpr( 4294967294_)) <> -1 or
18498        compare(bigintExpr(          1_), bigintExpr( 4294967295_)) <> -1 or
18499        compare(bigintExpr(          1_), bigintExpr( 4294967296_)) <> -1 or
18500        compare(bigintExpr(          1_), bigintExpr( 4294967297_)) <> -1 or
18501        compare(bigintExpr(          1_), bigintExpr( 4294967298_)) <> -1 or
18502        compare(bigintExpr(          2_), bigintExpr(-4294967298_)) <>  1 or
18503        compare(bigintExpr(          2_), bigintExpr(-4294967297_)) <>  1 or
18504        compare(bigintExpr(          2_), bigintExpr(-4294967296_)) <>  1 or
18505        compare(bigintExpr(          2_), bigintExpr(-4294967295_)) <>  1 or
18506        compare(bigintExpr(          2_), bigintExpr(-4294967294_)) <>  1 or
18507        compare(bigintExpr(          2_), bigintExpr(         -2_)) <>  1 or
18508        compare(bigintExpr(          2_), bigintExpr(         -1_)) <>  1 or
18509        compare(bigintExpr(          2_), bigintExpr(          0_)) <>  1 or
18510        compare(bigintExpr(          2_), bigintExpr(          1_)) <>  1 or
18511        compare(bigintExpr(          2_), bigintExpr(          2_)) <>  0 or
18512        compare(bigintExpr(          2_), bigintExpr( 4294967294_)) <> -1 or
18513        compare(bigintExpr(          2_), bigintExpr( 4294967295_)) <> -1 or
18514        compare(bigintExpr(          2_), bigintExpr( 4294967296_)) <> -1 or
18515        compare(bigintExpr(          2_), bigintExpr( 4294967297_)) <> -1 or
18516        compare(bigintExpr(          2_), bigintExpr( 4294967298_)) <> -1 or
18517        compare(bigintExpr( 4294967294_), bigintExpr(-4294967298_)) <>  1 or
18518        compare(bigintExpr( 4294967294_), bigintExpr(-4294967297_)) <>  1 or
18519        compare(bigintExpr( 4294967294_), bigintExpr(-4294967296_)) <>  1 or
18520        compare(bigintExpr( 4294967294_), bigintExpr(-4294967295_)) <>  1 or
18521        compare(bigintExpr( 4294967294_), bigintExpr(-4294967294_)) <>  1 or
18522        compare(bigintExpr( 4294967294_), bigintExpr(         -2_)) <>  1 or
18523        compare(bigintExpr( 4294967294_), bigintExpr(         -1_)) <>  1 or
18524        compare(bigintExpr( 4294967294_), bigintExpr(          0_)) <>  1 or
18525        compare(bigintExpr( 4294967294_), bigintExpr(          1_)) <>  1 or
18526        compare(bigintExpr( 4294967294_), bigintExpr(          2_)) <>  1 or
18527        compare(bigintExpr( 4294967294_), bigintExpr( 4294967294_)) <>  0 or
18528        compare(bigintExpr( 4294967294_), bigintExpr( 4294967295_)) <> -1 or
18529        compare(bigintExpr( 4294967294_), bigintExpr( 4294967296_)) <> -1 or
18530        compare(bigintExpr( 4294967294_), bigintExpr( 4294967297_)) <> -1 or
18531        compare(bigintExpr( 4294967294_), bigintExpr( 4294967298_)) <> -1 or
18532        compare(bigintExpr( 4294967295_), bigintExpr(-4294967298_)) <>  1 or
18533        compare(bigintExpr( 4294967295_), bigintExpr(-4294967297_)) <>  1 or
18534        compare(bigintExpr( 4294967295_), bigintExpr(-4294967296_)) <>  1 or
18535        compare(bigintExpr( 4294967295_), bigintExpr(-4294967295_)) <>  1 or
18536        compare(bigintExpr( 4294967295_), bigintExpr(-4294967294_)) <>  1 or
18537        compare(bigintExpr( 4294967295_), bigintExpr(         -2_)) <>  1 or
18538        compare(bigintExpr( 4294967295_), bigintExpr(         -1_)) <>  1 or
18539        compare(bigintExpr( 4294967295_), bigintExpr(          0_)) <>  1 or
18540        compare(bigintExpr( 4294967295_), bigintExpr(          1_)) <>  1 or
18541        compare(bigintExpr( 4294967295_), bigintExpr(          2_)) <>  1 or
18542        compare(bigintExpr( 4294967295_), bigintExpr( 4294967294_)) <>  1 or
18543        compare(bigintExpr( 4294967295_), bigintExpr( 4294967295_)) <>  0 or
18544        compare(bigintExpr( 4294967295_), bigintExpr( 4294967296_)) <> -1 or
18545        compare(bigintExpr( 4294967295_), bigintExpr( 4294967297_)) <> -1 or
18546        compare(bigintExpr( 4294967295_), bigintExpr( 4294967298_)) <> -1 or
18547        compare(bigintExpr( 4294967296_), bigintExpr(-4294967298_)) <>  1 or
18548        compare(bigintExpr( 4294967296_), bigintExpr(-4294967297_)) <>  1 or
18549        compare(bigintExpr( 4294967296_), bigintExpr(-4294967296_)) <>  1 or
18550        compare(bigintExpr( 4294967296_), bigintExpr(-4294967295_)) <>  1 or
18551        compare(bigintExpr( 4294967296_), bigintExpr(-4294967294_)) <>  1 or
18552        compare(bigintExpr( 4294967296_), bigintExpr(         -2_)) <>  1 or
18553        compare(bigintExpr( 4294967296_), bigintExpr(         -1_)) <>  1 or
18554        compare(bigintExpr( 4294967296_), bigintExpr(          0_)) <>  1 or
18555        compare(bigintExpr( 4294967296_), bigintExpr(          1_)) <>  1 or
18556        compare(bigintExpr( 4294967296_), bigintExpr(          2_)) <>  1 or
18557        compare(bigintExpr( 4294967296_), bigintExpr( 4294967294_)) <>  1 or
18558        compare(bigintExpr( 4294967296_), bigintExpr( 4294967295_)) <>  1 or
18559        compare(bigintExpr( 4294967296_), bigintExpr( 4294967296_)) <>  0 or
18560        compare(bigintExpr( 4294967296_), bigintExpr( 4294967297_)) <> -1 or
18561        compare(bigintExpr( 4294967296_), bigintExpr( 4294967298_)) <> -1 or
18562        compare(bigintExpr( 4294967297_), bigintExpr(-4294967298_)) <>  1 or
18563        compare(bigintExpr( 4294967297_), bigintExpr(-4294967297_)) <>  1 or
18564        compare(bigintExpr( 4294967297_), bigintExpr(-4294967296_)) <>  1 or
18565        compare(bigintExpr( 4294967297_), bigintExpr(-4294967295_)) <>  1 or
18566        compare(bigintExpr( 4294967297_), bigintExpr(-4294967294_)) <>  1 or
18567        compare(bigintExpr( 4294967297_), bigintExpr(         -2_)) <>  1 or
18568        compare(bigintExpr( 4294967297_), bigintExpr(         -1_)) <>  1 or
18569        compare(bigintExpr( 4294967297_), bigintExpr(          0_)) <>  1 or
18570        compare(bigintExpr( 4294967297_), bigintExpr(          1_)) <>  1 or
18571        compare(bigintExpr( 4294967297_), bigintExpr(          2_)) <>  1 or
18572        compare(bigintExpr( 4294967297_), bigintExpr( 4294967294_)) <>  1 or
18573        compare(bigintExpr( 4294967296_), bigintExpr( 4294967295_)) <>  1 or
18574        compare(bigintExpr( 4294967297_), bigintExpr( 4294967296_)) <>  1 or
18575        compare(bigintExpr( 4294967297_), bigintExpr( 4294967297_)) <>  0 or
18576        compare(bigintExpr( 4294967297_), bigintExpr( 4294967298_)) <> -1 or
18577        compare(bigintExpr( 4294967298_), bigintExpr(-4294967298_)) <>  1 or
18578        compare(bigintExpr( 4294967298_), bigintExpr(-4294967297_)) <>  1 or
18579        compare(bigintExpr( 4294967298_), bigintExpr(-4294967296_)) <>  1 or
18580        compare(bigintExpr( 4294967298_), bigintExpr(-4294967295_)) <>  1 or
18581        compare(bigintExpr( 4294967298_), bigintExpr(-4294967294_)) <>  1 or
18582        compare(bigintExpr( 4294967298_), bigintExpr(         -2_)) <>  1 or
18583        compare(bigintExpr( 4294967298_), bigintExpr(         -1_)) <>  1 or
18584        compare(bigintExpr( 4294967298_), bigintExpr(          0_)) <>  1 or
18585        compare(bigintExpr( 4294967298_), bigintExpr(          1_)) <>  1 or
18586        compare(bigintExpr( 4294967298_), bigintExpr(          2_)) <>  1 or
18587        compare(bigintExpr( 4294967298_), bigintExpr( 4294967294_)) <>  1 or
18588        compare(bigintExpr( 4294967298_), bigintExpr( 4294967295_)) <>  1 or
18589        compare(bigintExpr( 4294967298_), bigintExpr( 4294967296_)) <>  1 or
18590        compare(bigintExpr( 4294967298_), bigintExpr( 4294967297_)) <>  1 or
18591        compare(bigintExpr( 4294967298_), bigintExpr( 4294967298_)) <>  0 then
18592      writeln("The bigInteger compare does not work correct.");
18593      okay := FALSE;
18594    end if;
18595
18596    if okay then
18597      writeln("The bigInteger compare works correct.");
18598    else
18599      writeln(" ***** The bigInteger compare does not work correct.");
18600      writeln;
18601    end if;
18602  end func;
18603
18604
18605const proc: chkAbs is func
18606  local
18607    var boolean: okay is TRUE;
18608  begin
18609    if  abs(                        -0_) <>                         0_ or
18610        abs(                        -1_) <>                         1_ or
18611        abs(                        -2_) <>                         2_ or
18612        abs(                        -8_) <>                         8_ or
18613        abs(                        -9_) <>                         9_ or
18614        abs(                       -10_) <>                        10_ or
18615        abs(                       -11_) <>                        11_ or
18616        abs(                       -12_) <>                        12_ or
18617        abs(                       -98_) <>                        98_ or
18618        abs(                       -99_) <>                        99_ or
18619        abs(                      -100_) <>                       100_ or
18620        abs(                      -101_) <>                       101_ or
18621        abs(                      -102_) <>                       102_ or
18622        abs(                      -126_) <>                       126_ or
18623        abs(                      -127_) <>                       127_ or
18624        abs(                      -128_) <>                       128_ or
18625        abs(                      -129_) <>                       129_ or
18626        abs(                      -130_) <>                       130_ or
18627        abs(                      -254_) <>                       254_ or
18628        abs(                      -255_) <>                       255_ or
18629        abs(                      -256_) <>                       256_ or
18630        abs(                      -257_) <>                       257_ or
18631        abs(                      -258_) <>                       258_ or
18632        abs(                      -998_) <>                       998_ or
18633        abs(                      -999_) <>                       999_ or
18634        abs(                     -1000_) <>                      1000_ or
18635        abs(                     -1001_) <>                      1001_ or
18636        abs(                     -1002_) <>                      1002_ or
18637        abs(                     -9998_) <>                      9998_ or
18638        abs(                     -9999_) <>                      9999_ or
18639        abs(                    -10000_) <>                     10000_ or
18640        abs(                    -10001_) <>                     10001_ or
18641        abs(                    -10002_) <>                     10002_ or
18642        abs(                    -32766_) <>                     32766_ or
18643        abs(                    -32767_) <>                     32767_ or
18644        abs(                    -32768_) <>                     32768_ or
18645        abs(                    -32769_) <>                     32769_ or
18646        abs(                    -32770_) <>                     32770_ or
18647        abs(                    -65534_) <>                     65534_ or
18648        abs(                    -65535_) <>                     65535_ or
18649        abs(                    -65536_) <>                     65536_ or
18650        abs(                    -65537_) <>                     65537_ or
18651        abs(                    -65538_) <>                     65538_ or
18652        abs(                    -99998_) <>                     99998_ or
18653        abs(                    -99999_) <>                     99999_ or
18654        abs(                   -100000_) <>                    100000_ or
18655        abs(                   -100001_) <>                    100001_ or
18656        abs(                   -100002_) <>                    100002_ or
18657        abs(                   -999998_) <>                    999998_ or
18658        abs(                   -999999_) <>                    999999_ or
18659        abs(                  -1000000_) <>                   1000000_ or
18660        abs(                  -1000001_) <>                   1000001_ or
18661        abs(                  -1000002_) <>                   1000002_ or
18662        abs(                  -8388606_) <>                   8388606_ or
18663        abs(                  -8388607_) <>                   8388607_ or
18664        abs(                  -8388608_) <>                   8388608_ or
18665        abs(                  -8388609_) <>                   8388609_ or
18666        abs(                  -8388610_) <>                   8388610_ or
18667        abs(                  -9999998_) <>                   9999998_ or
18668        abs(                  -9999999_) <>                   9999999_ or
18669        abs(                 -10000000_) <>                  10000000_ or
18670        abs(                 -10000001_) <>                  10000001_ or
18671        abs(                 -10000002_) <>                  10000002_ or
18672        abs(                 -16777214_) <>                  16777214_ or
18673        abs(                 -16777215_) <>                  16777215_ or
18674        abs(                 -16777216_) <>                  16777216_ or
18675        abs(                 -16777217_) <>                  16777217_ or
18676        abs(                 -16777218_) <>                  16777218_ or
18677        abs(                 -99999998_) <>                  99999998_ or
18678        abs(                 -99999999_) <>                  99999999_ or
18679        abs(                -100000000_) <>                 100000000_ or
18680        abs(                -100000001_) <>                 100000001_ or
18681        abs(                -100000002_) <>                 100000002_ or
18682        abs(                -999999998_) <>                 999999998_ or
18683        abs(                -999999999_) <>                 999999999_ or
18684        abs(               -1000000000_) <>                1000000000_ or
18685        abs(               -1000000001_) <>                1000000001_ or
18686        abs(               -1000000002_) <>                1000000002_ or
18687        abs(               -2147483646_) <>                2147483646_ or
18688        abs(               -2147483647_) <>                2147483647_ or
18689        abs(               -2147483648_) <>                2147483648_ or
18690        abs(               -2147483649_) <>                2147483649_ or
18691        abs(               -2147483650_) <>                2147483650_ or
18692        abs(               -4294967294_) <>                4294967294_ or
18693        abs(               -4294967295_) <>                4294967295_ or
18694        abs(               -4294967296_) <>                4294967296_ or
18695        abs(               -4294967297_) <>                4294967297_ or
18696        abs(               -4294967298_) <>                4294967298_ or
18697        abs(               -9999999998_) <>                9999999998_ or
18698        abs(               -9999999999_) <>                9999999999_ or
18699        abs(              -10000000000_) <>               10000000000_ or
18700        abs(              -10000000001_) <>               10000000001_ or
18701        abs(              -10000000002_) <>               10000000002_ or
18702        abs(              -99999999998_) <>               99999999998_ or
18703        abs(              -99999999999_) <>               99999999999_ or
18704        abs(             -100000000000_) <>              100000000000_ or
18705        abs(             -100000000001_) <>              100000000001_ or
18706        abs(             -100000000002_) <>              100000000002_ or
18707        abs(             -549755813886_) <>              549755813886_ or
18708        abs(             -549755813887_) <>              549755813887_ or
18709        abs(             -549755813888_) <>              549755813888_ or
18710        abs(             -549755813889_) <>              549755813889_ or
18711        abs(             -549755813890_) <>              549755813890_ or
18712        abs(             -999999999998_) <>              999999999998_ or
18713        abs(             -999999999999_) <>              999999999999_ or
18714        abs(            -1000000000000_) <>             1000000000000_ or
18715        abs(            -1000000000001_) <>             1000000000001_ or
18716        abs(            -1000000000002_) <>             1000000000002_ or
18717        abs(            -1099511627774_) <>             1099511627774_ or
18718        abs(            -1099511627775_) <>             1099511627775_ or
18719        abs(            -1099511627776_) <>             1099511627776_ or
18720        abs(            -1099511627777_) <>             1099511627777_ or
18721        abs(            -1099511627778_) <>             1099511627778_ or
18722        abs(          -140737488355326_) <>           140737488355326_ or
18723        abs(          -140737488355327_) <>           140737488355327_ or
18724        abs(          -140737488355328_) <>           140737488355328_ or
18725        abs(          -140737488355329_) <>           140737488355329_ or
18726        abs(          -140737488355330_) <>           140737488355330_ or
18727        abs(          -281474976710654_) <>           281474976710654_ or
18728        abs(          -281474976710655_) <>           281474976710655_ or
18729        abs(          -281474976710656_) <>           281474976710656_ or
18730        abs(          -281474976710657_) <>           281474976710657_ or
18731        abs(          -281474976710658_) <>           281474976710658_ or
18732        abs(        -36028797018963966_) <>         36028797018963966_ or
18733        abs(        -36028797018963967_) <>         36028797018963967_ or
18734        abs(        -36028797018963968_) <>         36028797018963968_ or
18735        abs(        -36028797018963969_) <>         36028797018963969_ or
18736        abs(        -36028797018963970_) <>         36028797018963970_ or
18737        abs(        -72057594037927934_) <>         72057594037927934_ or
18738        abs(        -72057594037927935_) <>         72057594037927935_ or
18739        abs(        -72057594037927936_) <>         72057594037927936_ or
18740        abs(        -72057594037927937_) <>         72057594037927937_ or
18741        abs(        -72057594037927938_) <>         72057594037927938_ or
18742        abs(      -9223372036854775806_) <>       9223372036854775806_ or
18743        abs(      -9223372036854775807_) <>       9223372036854775807_ or
18744        abs(      -9223372036854775808_) <>       9223372036854775808_ or
18745        abs(      -9223372036854775809_) <>       9223372036854775809_ or
18746        abs(      -9223372036854775810_) <>       9223372036854775810_ or
18747        abs(     -18446744073709551614_) <>      18446744073709551614_ or
18748        abs(     -18446744073709551615_) <>      18446744073709551615_ or
18749        abs(     -18446744073709551616_) <>      18446744073709551616_ or
18750        abs(     -18446744073709551617_) <>      18446744073709551617_ or
18751        abs(     -18446744073709551618_) <>      18446744073709551618_ or
18752        abs(   -2361183241434822606846_) <>    2361183241434822606846_ or
18753        abs(   -2361183241434822606847_) <>    2361183241434822606847_ or
18754        abs(   -2361183241434822606848_) <>    2361183241434822606848_ or
18755        abs(   -2361183241434822606849_) <>    2361183241434822606849_ or
18756        abs(   -2361183241434822606850_) <>    2361183241434822606850_ or
18757        abs(   -4722366482869645213694_) <>    4722366482869645213694_ or
18758        abs(   -4722366482869645213695_) <>    4722366482869645213695_ or
18759        abs(   -4722366482869645213696_) <>    4722366482869645213696_ or
18760        abs(   -4722366482869645213697_) <>    4722366482869645213697_ or
18761        abs(   -4722366482869645213698_) <>    4722366482869645213698_ or
18762        abs( -604462909807314587353086_) <>  604462909807314587353086_ or
18763        abs( -604462909807314587353087_) <>  604462909807314587353087_ or
18764        abs( -604462909807314587353088_) <>  604462909807314587353088_ or
18765        abs( -604462909807314587353089_) <>  604462909807314587353089_ or
18766        abs( -604462909807314587353090_) <>  604462909807314587353090_ or
18767        abs(-1208925819614629174706174_) <> 1208925819614629174706174_ or
18768        abs(-1208925819614629174706175_) <> 1208925819614629174706175_ or
18769        abs(-1208925819614629174706176_) <> 1208925819614629174706176_ or
18770        abs(-1208925819614629174706177_) <> 1208925819614629174706177_ or
18771        abs(-1208925819614629174706178_) <> 1208925819614629174706178_ then
18772      writeln("The bigInteger abs function does not work correct. (1)");
18773      okay := FALSE;
18774    end if;
18775
18776    if  abs(                        0_) <>                         0_ or
18777        abs(                        1_) <>                         1_ or
18778        abs(                        2_) <>                         2_ or
18779        abs(                        8_) <>                         8_ or
18780        abs(                        9_) <>                         9_ or
18781        abs(                       10_) <>                        10_ or
18782        abs(                       11_) <>                        11_ or
18783        abs(                       12_) <>                        12_ or
18784        abs(                       98_) <>                        98_ or
18785        abs(                       99_) <>                        99_ or
18786        abs(                      100_) <>                       100_ or
18787        abs(                      101_) <>                       101_ or
18788        abs(                      102_) <>                       102_ or
18789        abs(                      126_) <>                       126_ or
18790        abs(                      127_) <>                       127_ or
18791        abs(                      128_) <>                       128_ or
18792        abs(                      129_) <>                       129_ or
18793        abs(                      130_) <>                       130_ or
18794        abs(                      254_) <>                       254_ or
18795        abs(                      255_) <>                       255_ or
18796        abs(                      256_) <>                       256_ or
18797        abs(                      257_) <>                       257_ or
18798        abs(                      258_) <>                       258_ or
18799        abs(                      998_) <>                       998_ or
18800        abs(                      999_) <>                       999_ or
18801        abs(                     1000_) <>                      1000_ or
18802        abs(                     1001_) <>                      1001_ or
18803        abs(                     1002_) <>                      1002_ or
18804        abs(                     9998_) <>                      9998_ or
18805        abs(                     9999_) <>                      9999_ or
18806        abs(                    10000_) <>                     10000_ or
18807        abs(                    10001_) <>                     10001_ or
18808        abs(                    10002_) <>                     10002_ or
18809        abs(                    32766_) <>                     32766_ or
18810        abs(                    32767_) <>                     32767_ or
18811        abs(                    32768_) <>                     32768_ or
18812        abs(                    32769_) <>                     32769_ or
18813        abs(                    32770_) <>                     32770_ or
18814        abs(                    65534_) <>                     65534_ or
18815        abs(                    65535_) <>                     65535_ or
18816        abs(                    65536_) <>                     65536_ or
18817        abs(                    65537_) <>                     65537_ or
18818        abs(                    65538_) <>                     65538_ or
18819        abs(                    99998_) <>                     99998_ or
18820        abs(                    99999_) <>                     99999_ or
18821        abs(                   100000_) <>                    100000_ or
18822        abs(                   100001_) <>                    100001_ or
18823        abs(                   100002_) <>                    100002_ or
18824        abs(                   999998_) <>                    999998_ or
18825        abs(                   999999_) <>                    999999_ or
18826        abs(                  1000000_) <>                   1000000_ or
18827        abs(                  1000001_) <>                   1000001_ or
18828        abs(                  1000002_) <>                   1000002_ or
18829        abs(                  8388606_) <>                   8388606_ or
18830        abs(                  8388607_) <>                   8388607_ or
18831        abs(                  8388608_) <>                   8388608_ or
18832        abs(                  8388609_) <>                   8388609_ or
18833        abs(                  8388610_) <>                   8388610_ or
18834        abs(                  9999998_) <>                   9999998_ or
18835        abs(                  9999999_) <>                   9999999_ or
18836        abs(                 10000000_) <>                  10000000_ or
18837        abs(                 10000001_) <>                  10000001_ or
18838        abs(                 10000002_) <>                  10000002_ or
18839        abs(                 16777214_) <>                  16777214_ or
18840        abs(                 16777215_) <>                  16777215_ or
18841        abs(                 16777216_) <>                  16777216_ or
18842        abs(                 16777217_) <>                  16777217_ or
18843        abs(                 16777218_) <>                  16777218_ or
18844        abs(                 99999998_) <>                  99999998_ or
18845        abs(                 99999999_) <>                  99999999_ or
18846        abs(                100000000_) <>                 100000000_ or
18847        abs(                100000001_) <>                 100000001_ or
18848        abs(                100000002_) <>                 100000002_ or
18849        abs(                999999998_) <>                 999999998_ or
18850        abs(                999999999_) <>                 999999999_ or
18851        abs(               1000000000_) <>                1000000000_ or
18852        abs(               1000000001_) <>                1000000001_ or
18853        abs(               1000000002_) <>                1000000002_ or
18854        abs(               2147483646_) <>                2147483646_ or
18855        abs(               2147483647_) <>                2147483647_ or
18856        abs(               2147483648_) <>                2147483648_ or
18857        abs(               2147483649_) <>                2147483649_ or
18858        abs(               2147483650_) <>                2147483650_ or
18859        abs(               4294967294_) <>                4294967294_ or
18860        abs(               4294967295_) <>                4294967295_ or
18861        abs(               4294967296_) <>                4294967296_ or
18862        abs(               4294967297_) <>                4294967297_ or
18863        abs(               4294967298_) <>                4294967298_ or
18864        abs(               9999999998_) <>                9999999998_ or
18865        abs(               9999999999_) <>                9999999999_ or
18866        abs(              10000000000_) <>               10000000000_ or
18867        abs(              10000000001_) <>               10000000001_ or
18868        abs(              10000000002_) <>               10000000002_ or
18869        abs(              99999999998_) <>               99999999998_ or
18870        abs(              99999999999_) <>               99999999999_ or
18871        abs(             100000000000_) <>              100000000000_ or
18872        abs(             100000000001_) <>              100000000001_ or
18873        abs(             100000000002_) <>              100000000002_ or
18874        abs(             549755813886_) <>              549755813886_ or
18875        abs(             549755813887_) <>              549755813887_ or
18876        abs(             549755813888_) <>              549755813888_ or
18877        abs(             549755813889_) <>              549755813889_ or
18878        abs(             549755813890_) <>              549755813890_ or
18879        abs(             999999999998_) <>              999999999998_ or
18880        abs(             999999999999_) <>              999999999999_ or
18881        abs(            1000000000000_) <>             1000000000000_ or
18882        abs(            1000000000001_) <>             1000000000001_ or
18883        abs(            1000000000002_) <>             1000000000002_ or
18884        abs(            1099511627774_) <>             1099511627774_ or
18885        abs(            1099511627775_) <>             1099511627775_ or
18886        abs(            1099511627776_) <>             1099511627776_ or
18887        abs(            1099511627777_) <>             1099511627777_ or
18888        abs(            1099511627778_) <>             1099511627778_ or
18889        abs(          140737488355326_) <>           140737488355326_ or
18890        abs(          140737488355327_) <>           140737488355327_ or
18891        abs(          140737488355328_) <>           140737488355328_ or
18892        abs(          140737488355329_) <>           140737488355329_ or
18893        abs(          140737488355330_) <>           140737488355330_ or
18894        abs(          281474976710654_) <>           281474976710654_ or
18895        abs(          281474976710655_) <>           281474976710655_ or
18896        abs(          281474976710656_) <>           281474976710656_ or
18897        abs(          281474976710657_) <>           281474976710657_ or
18898        abs(          281474976710658_) <>           281474976710658_ or
18899        abs(        36028797018963966_) <>         36028797018963966_ or
18900        abs(        36028797018963967_) <>         36028797018963967_ or
18901        abs(        36028797018963968_) <>         36028797018963968_ or
18902        abs(        36028797018963969_) <>         36028797018963969_ or
18903        abs(        36028797018963970_) <>         36028797018963970_ or
18904        abs(        72057594037927934_) <>         72057594037927934_ or
18905        abs(        72057594037927935_) <>         72057594037927935_ or
18906        abs(        72057594037927936_) <>         72057594037927936_ or
18907        abs(        72057594037927937_) <>         72057594037927937_ or
18908        abs(        72057594037927938_) <>         72057594037927938_ or
18909        abs(      9223372036854775806_) <>       9223372036854775806_ or
18910        abs(      9223372036854775807_) <>       9223372036854775807_ or
18911        abs(      9223372036854775808_) <>       9223372036854775808_ or
18912        abs(      9223372036854775809_) <>       9223372036854775809_ or
18913        abs(      9223372036854775810_) <>       9223372036854775810_ or
18914        abs(     18446744073709551614_) <>      18446744073709551614_ or
18915        abs(     18446744073709551615_) <>      18446744073709551615_ or
18916        abs(     18446744073709551616_) <>      18446744073709551616_ or
18917        abs(     18446744073709551617_) <>      18446744073709551617_ or
18918        abs(     18446744073709551618_) <>      18446744073709551618_ or
18919        abs(   2361183241434822606846_) <>    2361183241434822606846_ or
18920        abs(   2361183241434822606847_) <>    2361183241434822606847_ or
18921        abs(   2361183241434822606848_) <>    2361183241434822606848_ or
18922        abs(   2361183241434822606849_) <>    2361183241434822606849_ or
18923        abs(   2361183241434822606850_) <>    2361183241434822606850_ or
18924        abs(   4722366482869645213694_) <>    4722366482869645213694_ or
18925        abs(   4722366482869645213695_) <>    4722366482869645213695_ or
18926        abs(   4722366482869645213696_) <>    4722366482869645213696_ or
18927        abs(   4722366482869645213697_) <>    4722366482869645213697_ or
18928        abs(   4722366482869645213698_) <>    4722366482869645213698_ or
18929        abs( 604462909807314587353086_) <>  604462909807314587353086_ or
18930        abs( 604462909807314587353087_) <>  604462909807314587353087_ or
18931        abs( 604462909807314587353088_) <>  604462909807314587353088_ or
18932        abs( 604462909807314587353089_) <>  604462909807314587353089_ or
18933        abs( 604462909807314587353090_) <>  604462909807314587353090_ or
18934        abs(1208925819614629174706174_) <> 1208925819614629174706174_ or
18935        abs(1208925819614629174706175_) <> 1208925819614629174706175_ or
18936        abs(1208925819614629174706176_) <> 1208925819614629174706176_ or
18937        abs(1208925819614629174706177_) <> 1208925819614629174706177_ or
18938        abs(1208925819614629174706178_) <> 1208925819614629174706178_ then
18939      writeln("The bigInteger abs function does not work correct. (2)");
18940      okay := FALSE;
18941    end if;
18942
18943    if  abs(bigintExpr(                        -0_)) <>                         0_ or
18944        abs(bigintExpr(                        -1_)) <>                         1_ or
18945        abs(bigintExpr(                        -2_)) <>                         2_ or
18946        abs(bigintExpr(                        -8_)) <>                         8_ or
18947        abs(bigintExpr(                        -9_)) <>                         9_ or
18948        abs(bigintExpr(                       -10_)) <>                        10_ or
18949        abs(bigintExpr(                       -11_)) <>                        11_ or
18950        abs(bigintExpr(                       -12_)) <>                        12_ or
18951        abs(bigintExpr(                       -98_)) <>                        98_ or
18952        abs(bigintExpr(                       -99_)) <>                        99_ or
18953        abs(bigintExpr(                      -100_)) <>                       100_ or
18954        abs(bigintExpr(                      -101_)) <>                       101_ or
18955        abs(bigintExpr(                      -102_)) <>                       102_ or
18956        abs(bigintExpr(                      -126_)) <>                       126_ or
18957        abs(bigintExpr(                      -127_)) <>                       127_ or
18958        abs(bigintExpr(                      -128_)) <>                       128_ or
18959        abs(bigintExpr(                      -129_)) <>                       129_ or
18960        abs(bigintExpr(                      -130_)) <>                       130_ or
18961        abs(bigintExpr(                      -254_)) <>                       254_ or
18962        abs(bigintExpr(                      -255_)) <>                       255_ or
18963        abs(bigintExpr(                      -256_)) <>                       256_ or
18964        abs(bigintExpr(                      -257_)) <>                       257_ or
18965        abs(bigintExpr(                      -258_)) <>                       258_ or
18966        abs(bigintExpr(                      -998_)) <>                       998_ or
18967        abs(bigintExpr(                      -999_)) <>                       999_ or
18968        abs(bigintExpr(                     -1000_)) <>                      1000_ or
18969        abs(bigintExpr(                     -1001_)) <>                      1001_ or
18970        abs(bigintExpr(                     -1002_)) <>                      1002_ or
18971        abs(bigintExpr(                     -9998_)) <>                      9998_ or
18972        abs(bigintExpr(                     -9999_)) <>                      9999_ or
18973        abs(bigintExpr(                    -10000_)) <>                     10000_ or
18974        abs(bigintExpr(                    -10001_)) <>                     10001_ or
18975        abs(bigintExpr(                    -10002_)) <>                     10002_ or
18976        abs(bigintExpr(                    -32766_)) <>                     32766_ or
18977        abs(bigintExpr(                    -32767_)) <>                     32767_ or
18978        abs(bigintExpr(                    -32768_)) <>                     32768_ or
18979        abs(bigintExpr(                    -32769_)) <>                     32769_ or
18980        abs(bigintExpr(                    -32770_)) <>                     32770_ or
18981        abs(bigintExpr(                    -65534_)) <>                     65534_ or
18982        abs(bigintExpr(                    -65535_)) <>                     65535_ or
18983        abs(bigintExpr(                    -65536_)) <>                     65536_ or
18984        abs(bigintExpr(                    -65537_)) <>                     65537_ or
18985        abs(bigintExpr(                    -65538_)) <>                     65538_ or
18986        abs(bigintExpr(                    -99998_)) <>                     99998_ or
18987        abs(bigintExpr(                    -99999_)) <>                     99999_ or
18988        abs(bigintExpr(                   -100000_)) <>                    100000_ or
18989        abs(bigintExpr(                   -100001_)) <>                    100001_ or
18990        abs(bigintExpr(                   -100002_)) <>                    100002_ or
18991        abs(bigintExpr(                   -999998_)) <>                    999998_ or
18992        abs(bigintExpr(                   -999999_)) <>                    999999_ or
18993        abs(bigintExpr(                  -1000000_)) <>                   1000000_ or
18994        abs(bigintExpr(                  -1000001_)) <>                   1000001_ or
18995        abs(bigintExpr(                  -1000002_)) <>                   1000002_ or
18996        abs(bigintExpr(                  -8388606_)) <>                   8388606_ or
18997        abs(bigintExpr(                  -8388607_)) <>                   8388607_ or
18998        abs(bigintExpr(                  -8388608_)) <>                   8388608_ or
18999        abs(bigintExpr(                  -8388609_)) <>                   8388609_ or
19000        abs(bigintExpr(                  -8388610_)) <>                   8388610_ or
19001        abs(bigintExpr(                  -9999998_)) <>                   9999998_ or
19002        abs(bigintExpr(                  -9999999_)) <>                   9999999_ or
19003        abs(bigintExpr(                 -10000000_)) <>                  10000000_ or
19004        abs(bigintExpr(                 -10000001_)) <>                  10000001_ or
19005        abs(bigintExpr(                 -10000002_)) <>                  10000002_ or
19006        abs(bigintExpr(                 -16777214_)) <>                  16777214_ or
19007        abs(bigintExpr(                 -16777215_)) <>                  16777215_ or
19008        abs(bigintExpr(                 -16777216_)) <>                  16777216_ or
19009        abs(bigintExpr(                 -16777217_)) <>                  16777217_ or
19010        abs(bigintExpr(                 -16777218_)) <>                  16777218_ or
19011        abs(bigintExpr(                 -99999998_)) <>                  99999998_ or
19012        abs(bigintExpr(                 -99999999_)) <>                  99999999_ or
19013        abs(bigintExpr(                -100000000_)) <>                 100000000_ or
19014        abs(bigintExpr(                -100000001_)) <>                 100000001_ or
19015        abs(bigintExpr(                -100000002_)) <>                 100000002_ or
19016        abs(bigintExpr(                -999999998_)) <>                 999999998_ or
19017        abs(bigintExpr(                -999999999_)) <>                 999999999_ or
19018        abs(bigintExpr(               -1000000000_)) <>                1000000000_ or
19019        abs(bigintExpr(               -1000000001_)) <>                1000000001_ or
19020        abs(bigintExpr(               -1000000002_)) <>                1000000002_ or
19021        abs(bigintExpr(               -2147483646_)) <>                2147483646_ or
19022        abs(bigintExpr(               -2147483647_)) <>                2147483647_ or
19023        abs(bigintExpr(               -2147483648_)) <>                2147483648_ or
19024        abs(bigintExpr(               -2147483649_)) <>                2147483649_ or
19025        abs(bigintExpr(               -2147483650_)) <>                2147483650_ or
19026        abs(bigintExpr(               -4294967294_)) <>                4294967294_ or
19027        abs(bigintExpr(               -4294967295_)) <>                4294967295_ or
19028        abs(bigintExpr(               -4294967296_)) <>                4294967296_ or
19029        abs(bigintExpr(               -4294967297_)) <>                4294967297_ or
19030        abs(bigintExpr(               -4294967298_)) <>                4294967298_ or
19031        abs(bigintExpr(               -9999999998_)) <>                9999999998_ or
19032        abs(bigintExpr(               -9999999999_)) <>                9999999999_ or
19033        abs(bigintExpr(              -10000000000_)) <>               10000000000_ or
19034        abs(bigintExpr(              -10000000001_)) <>               10000000001_ or
19035        abs(bigintExpr(              -10000000002_)) <>               10000000002_ or
19036        abs(bigintExpr(              -99999999998_)) <>               99999999998_ or
19037        abs(bigintExpr(              -99999999999_)) <>               99999999999_ or
19038        abs(bigintExpr(             -100000000000_)) <>              100000000000_ or
19039        abs(bigintExpr(             -100000000001_)) <>              100000000001_ or
19040        abs(bigintExpr(             -100000000002_)) <>              100000000002_ or
19041        abs(bigintExpr(             -549755813886_)) <>              549755813886_ or
19042        abs(bigintExpr(             -549755813887_)) <>              549755813887_ or
19043        abs(bigintExpr(             -549755813888_)) <>              549755813888_ or
19044        abs(bigintExpr(             -549755813889_)) <>              549755813889_ or
19045        abs(bigintExpr(             -549755813890_)) <>              549755813890_ or
19046        abs(bigintExpr(             -999999999998_)) <>              999999999998_ or
19047        abs(bigintExpr(             -999999999999_)) <>              999999999999_ or
19048        abs(bigintExpr(            -1000000000000_)) <>             1000000000000_ or
19049        abs(bigintExpr(            -1000000000001_)) <>             1000000000001_ or
19050        abs(bigintExpr(            -1000000000002_)) <>             1000000000002_ or
19051        abs(bigintExpr(            -1099511627774_)) <>             1099511627774_ or
19052        abs(bigintExpr(            -1099511627775_)) <>             1099511627775_ or
19053        abs(bigintExpr(            -1099511627776_)) <>             1099511627776_ or
19054        abs(bigintExpr(            -1099511627777_)) <>             1099511627777_ or
19055        abs(bigintExpr(            -1099511627778_)) <>             1099511627778_ or
19056        abs(bigintExpr(          -140737488355326_)) <>           140737488355326_ or
19057        abs(bigintExpr(          -140737488355327_)) <>           140737488355327_ or
19058        abs(bigintExpr(          -140737488355328_)) <>           140737488355328_ or
19059        abs(bigintExpr(          -140737488355329_)) <>           140737488355329_ or
19060        abs(bigintExpr(          -140737488355330_)) <>           140737488355330_ or
19061        abs(bigintExpr(          -281474976710654_)) <>           281474976710654_ or
19062        abs(bigintExpr(          -281474976710655_)) <>           281474976710655_ or
19063        abs(bigintExpr(          -281474976710656_)) <>           281474976710656_ or
19064        abs(bigintExpr(          -281474976710657_)) <>           281474976710657_ or
19065        abs(bigintExpr(          -281474976710658_)) <>           281474976710658_ or
19066        abs(bigintExpr(        -36028797018963966_)) <>         36028797018963966_ or
19067        abs(bigintExpr(        -36028797018963967_)) <>         36028797018963967_ or
19068        abs(bigintExpr(        -36028797018963968_)) <>         36028797018963968_ or
19069        abs(bigintExpr(        -36028797018963969_)) <>         36028797018963969_ or
19070        abs(bigintExpr(        -36028797018963970_)) <>         36028797018963970_ or
19071        abs(bigintExpr(        -72057594037927934_)) <>         72057594037927934_ or
19072        abs(bigintExpr(        -72057594037927935_)) <>         72057594037927935_ or
19073        abs(bigintExpr(        -72057594037927936_)) <>         72057594037927936_ or
19074        abs(bigintExpr(        -72057594037927937_)) <>         72057594037927937_ or
19075        abs(bigintExpr(        -72057594037927938_)) <>         72057594037927938_ or
19076        abs(bigintExpr(      -9223372036854775806_)) <>       9223372036854775806_ or
19077        abs(bigintExpr(      -9223372036854775807_)) <>       9223372036854775807_ or
19078        abs(bigintExpr(      -9223372036854775808_)) <>       9223372036854775808_ or
19079        abs(bigintExpr(      -9223372036854775809_)) <>       9223372036854775809_ or
19080        abs(bigintExpr(      -9223372036854775810_)) <>       9223372036854775810_ or
19081        abs(bigintExpr(     -18446744073709551614_)) <>      18446744073709551614_ or
19082        abs(bigintExpr(     -18446744073709551615_)) <>      18446744073709551615_ or
19083        abs(bigintExpr(     -18446744073709551616_)) <>      18446744073709551616_ or
19084        abs(bigintExpr(     -18446744073709551617_)) <>      18446744073709551617_ or
19085        abs(bigintExpr(     -18446744073709551618_)) <>      18446744073709551618_ or
19086        abs(bigintExpr(   -2361183241434822606846_)) <>    2361183241434822606846_ or
19087        abs(bigintExpr(   -2361183241434822606847_)) <>    2361183241434822606847_ or
19088        abs(bigintExpr(   -2361183241434822606848_)) <>    2361183241434822606848_ or
19089        abs(bigintExpr(   -2361183241434822606849_)) <>    2361183241434822606849_ or
19090        abs(bigintExpr(   -2361183241434822606850_)) <>    2361183241434822606850_ or
19091        abs(bigintExpr(   -4722366482869645213694_)) <>    4722366482869645213694_ or
19092        abs(bigintExpr(   -4722366482869645213695_)) <>    4722366482869645213695_ or
19093        abs(bigintExpr(   -4722366482869645213696_)) <>    4722366482869645213696_ or
19094        abs(bigintExpr(   -4722366482869645213697_)) <>    4722366482869645213697_ or
19095        abs(bigintExpr(   -4722366482869645213698_)) <>    4722366482869645213698_ or
19096        abs(bigintExpr( -604462909807314587353086_)) <>  604462909807314587353086_ or
19097        abs(bigintExpr( -604462909807314587353087_)) <>  604462909807314587353087_ or
19098        abs(bigintExpr( -604462909807314587353088_)) <>  604462909807314587353088_ or
19099        abs(bigintExpr( -604462909807314587353089_)) <>  604462909807314587353089_ or
19100        abs(bigintExpr( -604462909807314587353090_)) <>  604462909807314587353090_ or
19101        abs(bigintExpr(-1208925819614629174706174_)) <> 1208925819614629174706174_ or
19102        abs(bigintExpr(-1208925819614629174706175_)) <> 1208925819614629174706175_ or
19103        abs(bigintExpr(-1208925819614629174706176_)) <> 1208925819614629174706176_ or
19104        abs(bigintExpr(-1208925819614629174706177_)) <> 1208925819614629174706177_ or
19105        abs(bigintExpr(-1208925819614629174706178_)) <> 1208925819614629174706178_ then
19106      writeln("The bigInteger abs function does not work correct. (3)");
19107      okay := FALSE;
19108    end if;
19109
19110    if  abs(bigintExpr(                        0_)) <>                         0_ or
19111        abs(bigintExpr(                        1_)) <>                         1_ or
19112        abs(bigintExpr(                        2_)) <>                         2_ or
19113        abs(bigintExpr(                        8_)) <>                         8_ or
19114        abs(bigintExpr(                        9_)) <>                         9_ or
19115        abs(bigintExpr(                       10_)) <>                        10_ or
19116        abs(bigintExpr(                       11_)) <>                        11_ or
19117        abs(bigintExpr(                       12_)) <>                        12_ or
19118        abs(bigintExpr(                       98_)) <>                        98_ or
19119        abs(bigintExpr(                       99_)) <>                        99_ or
19120        abs(bigintExpr(                      100_)) <>                       100_ or
19121        abs(bigintExpr(                      101_)) <>                       101_ or
19122        abs(bigintExpr(                      102_)) <>                       102_ or
19123        abs(bigintExpr(                      126_)) <>                       126_ or
19124        abs(bigintExpr(                      127_)) <>                       127_ or
19125        abs(bigintExpr(                      128_)) <>                       128_ or
19126        abs(bigintExpr(                      129_)) <>                       129_ or
19127        abs(bigintExpr(                      130_)) <>                       130_ or
19128        abs(bigintExpr(                      254_)) <>                       254_ or
19129        abs(bigintExpr(                      255_)) <>                       255_ or
19130        abs(bigintExpr(                      256_)) <>                       256_ or
19131        abs(bigintExpr(                      257_)) <>                       257_ or
19132        abs(bigintExpr(                      258_)) <>                       258_ or
19133        abs(bigintExpr(                      998_)) <>                       998_ or
19134        abs(bigintExpr(                      999_)) <>                       999_ or
19135        abs(bigintExpr(                     1000_)) <>                      1000_ or
19136        abs(bigintExpr(                     1001_)) <>                      1001_ or
19137        abs(bigintExpr(                     1002_)) <>                      1002_ or
19138        abs(bigintExpr(                     9998_)) <>                      9998_ or
19139        abs(bigintExpr(                     9999_)) <>                      9999_ or
19140        abs(bigintExpr(                    10000_)) <>                     10000_ or
19141        abs(bigintExpr(                    10001_)) <>                     10001_ or
19142        abs(bigintExpr(                    10002_)) <>                     10002_ or
19143        abs(bigintExpr(                    32766_)) <>                     32766_ or
19144        abs(bigintExpr(                    32767_)) <>                     32767_ or
19145        abs(bigintExpr(                    32768_)) <>                     32768_ or
19146        abs(bigintExpr(                    32769_)) <>                     32769_ or
19147        abs(bigintExpr(                    32770_)) <>                     32770_ or
19148        abs(bigintExpr(                    65534_)) <>                     65534_ or
19149        abs(bigintExpr(                    65535_)) <>                     65535_ or
19150        abs(bigintExpr(                    65536_)) <>                     65536_ or
19151        abs(bigintExpr(                    65537_)) <>                     65537_ or
19152        abs(bigintExpr(                    65538_)) <>                     65538_ or
19153        abs(bigintExpr(                    99998_)) <>                     99998_ or
19154        abs(bigintExpr(                    99999_)) <>                     99999_ or
19155        abs(bigintExpr(                   100000_)) <>                    100000_ or
19156        abs(bigintExpr(                   100001_)) <>                    100001_ or
19157        abs(bigintExpr(                   100002_)) <>                    100002_ or
19158        abs(bigintExpr(                   999998_)) <>                    999998_ or
19159        abs(bigintExpr(                   999999_)) <>                    999999_ or
19160        abs(bigintExpr(                  1000000_)) <>                   1000000_ or
19161        abs(bigintExpr(                  1000001_)) <>                   1000001_ or
19162        abs(bigintExpr(                  1000002_)) <>                   1000002_ or
19163        abs(bigintExpr(                  8388606_)) <>                   8388606_ or
19164        abs(bigintExpr(                  8388607_)) <>                   8388607_ or
19165        abs(bigintExpr(                  8388608_)) <>                   8388608_ or
19166        abs(bigintExpr(                  8388609_)) <>                   8388609_ or
19167        abs(bigintExpr(                  8388610_)) <>                   8388610_ or
19168        abs(bigintExpr(                  9999998_)) <>                   9999998_ or
19169        abs(bigintExpr(                  9999999_)) <>                   9999999_ or
19170        abs(bigintExpr(                 10000000_)) <>                  10000000_ or
19171        abs(bigintExpr(                 10000001_)) <>                  10000001_ or
19172        abs(bigintExpr(                 10000002_)) <>                  10000002_ or
19173        abs(bigintExpr(                 16777214_)) <>                  16777214_ or
19174        abs(bigintExpr(                 16777215_)) <>                  16777215_ or
19175        abs(bigintExpr(                 16777216_)) <>                  16777216_ or
19176        abs(bigintExpr(                 16777217_)) <>                  16777217_ or
19177        abs(bigintExpr(                 16777218_)) <>                  16777218_ or
19178        abs(bigintExpr(                 99999998_)) <>                  99999998_ or
19179        abs(bigintExpr(                 99999999_)) <>                  99999999_ or
19180        abs(bigintExpr(                100000000_)) <>                 100000000_ or
19181        abs(bigintExpr(                100000001_)) <>                 100000001_ or
19182        abs(bigintExpr(                100000002_)) <>                 100000002_ or
19183        abs(bigintExpr(                999999998_)) <>                 999999998_ or
19184        abs(bigintExpr(                999999999_)) <>                 999999999_ or
19185        abs(bigintExpr(               1000000000_)) <>                1000000000_ or
19186        abs(bigintExpr(               1000000001_)) <>                1000000001_ or
19187        abs(bigintExpr(               1000000002_)) <>                1000000002_ or
19188        abs(bigintExpr(               2147483646_)) <>                2147483646_ or
19189        abs(bigintExpr(               2147483647_)) <>                2147483647_ or
19190        abs(bigintExpr(               2147483648_)) <>                2147483648_ or
19191        abs(bigintExpr(               2147483649_)) <>                2147483649_ or
19192        abs(bigintExpr(               2147483650_)) <>                2147483650_ or
19193        abs(bigintExpr(               4294967294_)) <>                4294967294_ or
19194        abs(bigintExpr(               4294967295_)) <>                4294967295_ or
19195        abs(bigintExpr(               4294967296_)) <>                4294967296_ or
19196        abs(bigintExpr(               4294967297_)) <>                4294967297_ or
19197        abs(bigintExpr(               4294967298_)) <>                4294967298_ or
19198        abs(bigintExpr(               9999999998_)) <>                9999999998_ or
19199        abs(bigintExpr(               9999999999_)) <>                9999999999_ or
19200        abs(bigintExpr(              10000000000_)) <>               10000000000_ or
19201        abs(bigintExpr(              10000000001_)) <>               10000000001_ or
19202        abs(bigintExpr(              10000000002_)) <>               10000000002_ or
19203        abs(bigintExpr(              99999999998_)) <>               99999999998_ or
19204        abs(bigintExpr(              99999999999_)) <>               99999999999_ or
19205        abs(bigintExpr(             100000000000_)) <>              100000000000_ or
19206        abs(bigintExpr(             100000000001_)) <>              100000000001_ or
19207        abs(bigintExpr(             100000000002_)) <>              100000000002_ or
19208        abs(bigintExpr(             549755813886_)) <>              549755813886_ or
19209        abs(bigintExpr(             549755813887_)) <>              549755813887_ or
19210        abs(bigintExpr(             549755813888_)) <>              549755813888_ or
19211        abs(bigintExpr(             549755813889_)) <>              549755813889_ or
19212        abs(bigintExpr(             549755813890_)) <>              549755813890_ or
19213        abs(bigintExpr(             999999999998_)) <>              999999999998_ or
19214        abs(bigintExpr(             999999999999_)) <>              999999999999_ or
19215        abs(bigintExpr(            1000000000000_)) <>             1000000000000_ or
19216        abs(bigintExpr(            1000000000001_)) <>             1000000000001_ or
19217        abs(bigintExpr(            1000000000002_)) <>             1000000000002_ or
19218        abs(bigintExpr(            1099511627774_)) <>             1099511627774_ or
19219        abs(bigintExpr(            1099511627775_)) <>             1099511627775_ or
19220        abs(bigintExpr(            1099511627776_)) <>             1099511627776_ or
19221        abs(bigintExpr(            1099511627777_)) <>             1099511627777_ or
19222        abs(bigintExpr(            1099511627778_)) <>             1099511627778_ or
19223        abs(bigintExpr(          140737488355326_)) <>           140737488355326_ or
19224        abs(bigintExpr(          140737488355327_)) <>           140737488355327_ or
19225        abs(bigintExpr(          140737488355328_)) <>           140737488355328_ or
19226        abs(bigintExpr(          140737488355329_)) <>           140737488355329_ or
19227        abs(bigintExpr(          140737488355330_)) <>           140737488355330_ or
19228        abs(bigintExpr(          281474976710654_)) <>           281474976710654_ or
19229        abs(bigintExpr(          281474976710655_)) <>           281474976710655_ or
19230        abs(bigintExpr(          281474976710656_)) <>           281474976710656_ or
19231        abs(bigintExpr(          281474976710657_)) <>           281474976710657_ or
19232        abs(bigintExpr(          281474976710658_)) <>           281474976710658_ or
19233        abs(bigintExpr(        36028797018963966_)) <>         36028797018963966_ or
19234        abs(bigintExpr(        36028797018963967_)) <>         36028797018963967_ or
19235        abs(bigintExpr(        36028797018963968_)) <>         36028797018963968_ or
19236        abs(bigintExpr(        36028797018963969_)) <>         36028797018963969_ or
19237        abs(bigintExpr(        36028797018963970_)) <>         36028797018963970_ or
19238        abs(bigintExpr(        72057594037927934_)) <>         72057594037927934_ or
19239        abs(bigintExpr(        72057594037927935_)) <>         72057594037927935_ or
19240        abs(bigintExpr(        72057594037927936_)) <>         72057594037927936_ or
19241        abs(bigintExpr(        72057594037927937_)) <>         72057594037927937_ or
19242        abs(bigintExpr(        72057594037927938_)) <>         72057594037927938_ or
19243        abs(bigintExpr(      9223372036854775806_)) <>       9223372036854775806_ or
19244        abs(bigintExpr(      9223372036854775807_)) <>       9223372036854775807_ or
19245        abs(bigintExpr(      9223372036854775808_)) <>       9223372036854775808_ or
19246        abs(bigintExpr(      9223372036854775809_)) <>       9223372036854775809_ or
19247        abs(bigintExpr(      9223372036854775810_)) <>       9223372036854775810_ or
19248        abs(bigintExpr(     18446744073709551614_)) <>      18446744073709551614_ or
19249        abs(bigintExpr(     18446744073709551615_)) <>      18446744073709551615_ or
19250        abs(bigintExpr(     18446744073709551616_)) <>      18446744073709551616_ or
19251        abs(bigintExpr(     18446744073709551617_)) <>      18446744073709551617_ or
19252        abs(bigintExpr(     18446744073709551618_)) <>      18446744073709551618_ or
19253        abs(bigintExpr(   2361183241434822606846_)) <>    2361183241434822606846_ or
19254        abs(bigintExpr(   2361183241434822606847_)) <>    2361183241434822606847_ or
19255        abs(bigintExpr(   2361183241434822606848_)) <>    2361183241434822606848_ or
19256        abs(bigintExpr(   2361183241434822606849_)) <>    2361183241434822606849_ or
19257        abs(bigintExpr(   2361183241434822606850_)) <>    2361183241434822606850_ or
19258        abs(bigintExpr(   4722366482869645213694_)) <>    4722366482869645213694_ or
19259        abs(bigintExpr(   4722366482869645213695_)) <>    4722366482869645213695_ or
19260        abs(bigintExpr(   4722366482869645213696_)) <>    4722366482869645213696_ or
19261        abs(bigintExpr(   4722366482869645213697_)) <>    4722366482869645213697_ or
19262        abs(bigintExpr(   4722366482869645213698_)) <>    4722366482869645213698_ or
19263        abs(bigintExpr( 604462909807314587353086_)) <>  604462909807314587353086_ or
19264        abs(bigintExpr( 604462909807314587353087_)) <>  604462909807314587353087_ or
19265        abs(bigintExpr( 604462909807314587353088_)) <>  604462909807314587353088_ or
19266        abs(bigintExpr( 604462909807314587353089_)) <>  604462909807314587353089_ or
19267        abs(bigintExpr( 604462909807314587353090_)) <>  604462909807314587353090_ or
19268        abs(bigintExpr(1208925819614629174706174_)) <> 1208925819614629174706174_ or
19269        abs(bigintExpr(1208925819614629174706175_)) <> 1208925819614629174706175_ or
19270        abs(bigintExpr(1208925819614629174706176_)) <> 1208925819614629174706176_ or
19271        abs(bigintExpr(1208925819614629174706177_)) <> 1208925819614629174706177_ or
19272        abs(bigintExpr(1208925819614629174706178_)) <> 1208925819614629174706178_ then
19273      writeln("The bigInteger abs function does not work correct. (4)");
19274      okay := FALSE;
19275    end if;
19276
19277    if okay then
19278      writeln("The bigInteger abs function works correct.");
19279    else
19280      writeln(" ***** The bigInteger abs function does not work correct.");
19281      writeln;
19282    end if;
19283  end func;
19284
19285
19286const proc: chkOdd is func
19287  local
19288    var boolean: okay is TRUE;
19289    var bigInteger: number is 0_
19290  begin
19291    for 100 do
19292      number := rand(-10_ ** 10000, 10_ ** 10000);
19293      if odd(number) <> (number mod 2_ = 1_) then
19294        okay := FALSE;
19295      end if;
19296    end for;
19297    if okay then
19298      writeln("The bigInteger odd function works correct.");
19299    else
19300      writeln(" ***** The bigInteger odd function does not work correct.");
19301      writeln;
19302    end if;
19303  end func;
19304
19305
19306const proc: chkLog2 is func
19307  local
19308    var boolean: okay is TRUE;
19309  begin
19310    if  log2(                                                            0_) <>  -1_ or
19311        log2(                                                            1_) <>   0_ or
19312        log2(                                                            2_) <>   1_ or
19313        log2(                                                            3_) <>   1_ or
19314        log2(                                                            4_) <>   2_ or
19315        log2(                                                            5_) <>   2_ or
19316        log2(                                                            6_) <>   2_ or
19317        log2(                                                            7_) <>   2_ or
19318        log2(                                                            8_) <>   3_ or
19319        log2(                                                            9_) <>   3_ or
19320        log2(                                                           10_) <>   3_ or
19321        log2(                                                           15_) <>   3_ or
19322        log2(                                                           16_) <>   4_ or
19323        log2(                                                           25_) <>   4_ or
19324        log2(                                                           31_) <>   4_ or
19325        log2(                                                           32_) <>   5_ or
19326        log2(                                                           50_) <>   5_ or
19327        log2(                                                           63_) <>   5_ or
19328        log2(                                                           64_) <>   6_ or
19329        log2(                                                           71_) <>   6_ or
19330        log2(                                                          127_) <>   6_ or
19331        log2(                                                          128_) <>   7_ or
19332        log2(                                                          243_) <>   7_ or
19333        log2(                                                          255_) <>   7_ or
19334        log2(                                                          256_) <>   8_ or
19335        log2(                                                          467_) <>   8_ or
19336        log2(                                                          511_) <>   8_ or
19337        log2(                                                          512_) <>   9_ or
19338        log2(                                                          873_) <>   9_ or
19339        log2(                                                         1023_) <>   9_ or
19340        log2(                                                         1024_) <>  10_ or
19341        log2(                                                         1715_) <>  10_ or
19342        log2(                                                         2047_) <>  10_ or
19343        log2(                                                         2048_) <>  11_ or
19344        log2(                                                         3761_) <>  11_ or
19345        log2(                                                         4095_) <>  11_ or
19346        log2(                                                         4096_) <>  12_ or
19347        log2(                                                         5965_) <>  12_ or
19348        log2(                                                         8191_) <>  12_ or
19349        log2(                                                         8192_) <>  13_ or
19350        log2(                                                        10445_) <>  13_ or
19351        log2(                                                        16383_) <>  13_ or
19352        log2(                                                        16384_) <>  14_ or
19353        log2(                                                        22490_) <>  14_ or
19354        log2(                                                        32767_) <>  14_ or
19355        log2(                                                        32768_) <>  15_ or
19356        log2(                                                        46524_) <>  15_ or
19357        log2(                                                        65535_) <>  15_ or
19358        log2(                                                        65536_) <>  16_ or
19359        log2(                                                       106275_) <>  16_ or
19360        log2(                                                       131071_) <>  16_ or
19361        log2(                                                       131072_) <>  17_ or
19362        log2(                                                       206206_) <>  17_ or
19363        log2(                                                       262143_) <>  17_ or
19364        log2(                                                       262144_) <>  18_ or
19365        log2(                                                       415694_) <>  18_ or
19366        log2(                                                       524287_) <>  18_ or
19367        log2(                                                       524288_) <>  19_ or
19368        log2(                                                       923667_) <>  19_ or
19369        log2(                                                      1048575_) <>  19_ or
19370        log2(                                                      1048576_) <>  20_ or
19371        log2(                                                      1430124_) <>  20_ or
19372        log2(                                                      2097151_) <>  20_ or
19373        log2(                                                      2097152_) <>  21_ or
19374        log2(                                                      3297211_) <>  21_ or
19375        log2(                                                      4194303_) <>  21_ or
19376        log2(                                                      4194304_) <>  22_ or
19377        log2(                                                      5622078_) <>  22_ or
19378        log2(                                                      8388607_) <>  22_ or
19379        log2(                                                      8388608_) <>  23_ or
19380        log2(                                                     11404725_) <>  23_ or
19381        log2(                                                     16777215_) <>  23_ or
19382        log2(                                                     16777216_) <>  24_ or
19383        log2(                                                     23839458_) <>  24_ or
19384        log2(                                                     33554431_) <>  24_ or
19385        log2(                                                     33554432_) <>  25_ or
19386        log2(                                                     51314883_) <>  25_ or
19387        log2(                                                     67108863_) <>  25_ or
19388        log2(                                                     67108864_) <>  26_ or
19389        log2(                                                    118996825_) <>  26_ or
19390        log2(                                                    134217727_) <>  26_ or
19391        log2(                                                    134217728_) <>  27_ or
19392        log2(                                                    226885284_) <>  27_ or
19393        log2(                                                    268435455_) <>  27_ or
19394        log2(                                                    268435456_) <>  28_ or
19395        log2(                                                    374980260_) <>  28_ or
19396        log2(                                                    536870911_) <>  28_ or
19397        log2(                                                    536870912_) <>  29_ or
19398        log2(                                                    697499480_) <>  29_ or
19399        log2(                                                   1073741823_) <>  29_ or
19400        log2(                                                   1073741824_) <>  30_ or
19401        log2(                                                   1597096129_) <>  30_ or
19402        log2(                                                   2147483647_) <>  30_ or
19403        log2(                                                   2147483648_) <>  31_ or
19404        log2(                                                   3073770207_) <>  31_ or
19405        log2(                                                   4294967295_) <>  31_ or
19406        log2(                                                   4294967296_) <>  32_ or
19407        log2(                                                   6469698993_) <>  32_ or
19408        log2(                                                   8589934591_) <>  32_ or
19409        log2(                                                   8589934592_) <>  33_ or
19410        log2(                                                  13650611573_) <>  33_ or
19411        log2(                                                  17179869183_) <>  33_ or
19412        log2(                                                  17179869184_) <>  34_ or
19413        log2(                                                  25287317515_) <>  34_ or
19414        log2(                                                  34359738367_) <>  34_ or
19415        log2(                                                  34359738368_) <>  35_ or
19416        log2(                                                  34937365876_) <>  35_ or
19417        log2(                                                  68719476735_) <>  35_ or
19418        log2(                                                  68719476736_) <>  36_ or
19419        log2(                                                 130647586224_) <>  36_ or
19420        log2(                                                 137438953471_) <>  36_ or
19421        log2(                                                 137438953472_) <>  37_ or
19422        log2(                                                 237256050880_) <>  37_ or
19423        log2(                                                 274877906943_) <>  37_ or
19424        log2(                                                 274877906944_) <>  38_ or
19425        log2(                                                 421334752930_) <>  38_ or
19426        log2(                                                 549755813887_) <>  38_ or
19427        log2(                                                 549755813888_) <>  39_ or
19428        log2(                                                 831060064087_) <>  39_ or
19429        log2(                                                1099511627775_) <>  39_ or
19430        log2(                                                1099511627776_) <>  40_ or
19431        log2(                                                1872306393824_) <>  40_ or
19432        log2(                                                2199023255551_) <>  40_ or
19433        log2(                                                2199023255552_) <>  41_ or
19434        log2(                                                3817804165435_) <>  41_ or
19435        log2(                                                4398046511103_) <>  41_ or
19436        log2(                                                4398046511104_) <>  42_ or
19437        log2(                                                4470677607017_) <>  42_ or
19438        log2(                                                8796093022207_) <>  42_ or
19439        log2(                                                8796093022208_) <>  43_ or
19440        log2(                                               10425849001579_) <>  43_ or
19441        log2(                                               17592186044415_) <>  43_ or
19442        log2(                                               17592186044416_) <>  44_ or
19443        log2(                                               19482147609919_) <>  44_ or
19444        log2(                                               35184372088831_) <>  44_ or
19445        log2(                                               35184372088832_) <>  45_ or
19446        log2(                                               66834682939110_) <>  45_ or
19447        log2(                                               70368744177663_) <>  45_ or
19448        log2(                                               70368744177664_) <>  46_ or
19449        log2(                                               82108268360545_) <>  46_ or
19450        log2(                                              140737488355327_) <>  46_ or
19451        log2(                                              140737488355328_) <>  47_ or
19452        log2(                                              206038244745902_) <>  47_ or
19453        log2(                                              281474976710655_) <>  47_ or
19454        log2(                                              281474976710656_) <>  48_ or
19455        log2(                                              544184170812622_) <>  48_ or
19456        log2(                                              562949953421311_) <>  48_ or
19457        log2(                                              562949953421312_) <>  49_ or
19458        log2(                                              603954099898818_) <>  49_ or
19459        log2(                                             1125899906842623_) <>  49_ or
19460        log2(                                             1125899906842624_) <>  50_ or
19461        log2(                                             1511254381298056_) <>  50_ or
19462        log2(                                             2251799813685247_) <>  50_ or
19463        log2(                                             2251799813685248_) <>  51_ or
19464        log2(                                             2421662232362017_) <>  51_ or
19465        log2(                                             4503599627370495_) <>  51_ or
19466        log2(                                             4503599627370496_) <>  52_ or
19467        log2(                                             5024025365870990_) <>  52_ or
19468        log2(                                             9007199254740991_) <>  52_ or
19469        log2(                                             9007199254740992_) <>  53_ or
19470        log2(                                            16073745370364365_) <>  53_ or
19471        log2(                                            18014398509481983_) <>  53_ or
19472        log2(                                            18014398509481984_) <>  54_ or
19473        log2(                                            24311821029932255_) <>  54_ or
19474        log2(                                            36028797018963967_) <>  54_ or
19475        log2(                                            36028797018963968_) <>  55_ or
19476        log2(                                            56759843666346693_) <>  55_ or
19477        log2(                                            72057594037927935_) <>  55_ or
19478        log2(                                            72057594037927936_) <>  56_ or
19479        log2(                                           113417824017025917_) <>  56_ or
19480        log2(                                           144115188075855871_) <>  56_ or
19481        log2(                                           144115188075855872_) <>  57_ or
19482        log2(                                           176271357130037000_) <>  57_ or
19483        log2(                                           288230376151711743_) <>  57_ or
19484        log2(                                           288230376151711744_) <>  58_ or
19485        log2(                                           497522024285611367_) <>  58_ or
19486        log2(                                           576460752303423487_) <>  58_ or
19487        log2(                                           576460752303423488_) <>  59_ or
19488        log2(                                           644824263403665048_) <>  59_ or
19489        log2(                                          1152921504606846975_) <>  59_ or
19490        log2(                                          1152921504606846976_) <>  60_ or
19491        log2(                                          2059329953095273116_) <>  60_ or
19492        log2(                                          2305843009213693951_) <>  60_ or
19493        log2(                                          2305843009213693952_) <>  61_ or
19494        log2(                                          4164578334614561140_) <>  61_ or
19495        log2(                                          4611686018427387903_) <>  61_ or
19496        log2(                                          4611686018427387904_) <>  62_ or
19497        log2(                                          5807647918387067678_) <>  62_ or
19498        log2(                                          9223372036854775807_) <>  62_ or
19499        log2(                                          9223372036854775808_) <>  63_ or
19500        log2(                                         12753146212414642075_) <>  63_ or
19501        log2(                                         18446744073709551615_) <>  63_ or
19502        log2(                                         18446744073709551616_) <>  64_ or
19503        log2(                                         29612759245862090476_) <>  64_ or
19504        log2(                                         36893488147419103231_) <>  64_ or
19505        log2(                                         36893488147419103232_) <>  65_ or
19506        log2(                                         43515184798306208560_) <>  65_ or
19507        log2(                                         73786976294838206463_) <>  65_ or
19508        log2(                                         73786976294838206464_) <>  66_ or
19509        log2(                                        139676286748363941327_) <>  66_ or
19510        log2(                                        147573952589676412927_) <>  66_ or
19511        log2(                                        147573952589676412928_) <>  67_ or
19512        log2(                                        171675034002644223688_) <>  67_ or
19513        log2(                                        295147905179352825855_) <>  67_ or
19514        log2(                                        295147905179352825856_) <>  68_ or
19515        log2(                                        343578532885417340445_) <>  68_ or
19516        log2(                                        590295810358705651711_) <>  68_ or
19517        log2(                                        590295810358705651712_) <>  69_ or
19518        log2(                                       1136155050809416981452_) <>  69_ or
19519        log2(                                       1180591620717411303423_) <>  69_ or
19520        log2(                                       1180591620717411303424_) <>  70_ or
19521        log2(                                       1849581234482850435030_) <>  70_ or
19522        log2(                                       2361183241434822606847_) <>  70_ or
19523        log2(                                       2361183241434822606848_) <>  71_ or
19524        log2(                                       2466563261332588464698_) <>  71_ or
19525        log2(                                       4722366482869645213695_) <>  71_ or
19526        log2(                                       4722366482869645213696_) <>  72_ or
19527        log2(                                       4759141483948213242617_) <>  72_ or
19528        log2(                                       9444732965739290427391_) <>  72_ or
19529        log2(                                       9444732965739290427392_) <>  73_ or
19530        log2(                                      11052758577109118652948_) <>  73_ or
19531        log2(                                      18889465931478580854783_) <>  73_ or
19532        log2(                                      18889465931478580854784_) <>  74_ or
19533        log2(                                      19061171197188785512328_) <>  74_ or
19534        log2(                                      37778931862957161709567_) <>  74_ or
19535        log2(                                      37778931862957161709568_) <>  75_ or
19536        log2(                                      57064390930688831730520_) <>  75_ or
19537        log2(                                      75557863725914323419135_) <>  75_ or
19538        log2(                                      75557863725914323419136_) <>  76_ or
19539        log2(                                      87303085580230680432002_) <>  76_ or
19540        log2(                                     151115727451828646838271_) <>  76_ or
19541        log2(                                     151115727451828646838272_) <>  77_ or
19542        log2(                                     185299378305073226313224_) <>  77_ or
19543        log2(                                     302231454903657293676543_) <>  77_ or
19544        log2(                                     302231454903657293676544_) <>  78_ or
19545        log2(                                     540022868317819171280103_) <>  78_ or
19546        log2(                                     604462909807314587353087_) <>  78_ or
19547        log2(                                     604462909807314587353088_) <>  79_ or
19548        log2(                                    1075843057837755639054882_) <>  79_ or
19549        log2(                                    1208925819614629174706175_) <>  79_ or
19550        log2(                                    1208925819614629174706176_) <>  80_ or
19551        log2(                                    1339450810919048983508407_) <>  80_ or
19552        log2(                                    2417851639229258349412351_) <>  80_ or
19553        log2(                                    2417851639229258349412352_) <>  81_ or
19554        log2(                                    4050893481127968008941480_) <>  81_ or
19555        log2(                                    4835703278458516698824703_) <>  81_ or
19556        log2(                                    4835703278458516698824704_) <>  82_ or
19557        log2(                                    6187913012581674372460530_) <>  82_ or
19558        log2(                                    9671406556917033397649407_) <>  82_ or
19559        log2(                                    9671406556917033397649408_) <>  83_ or
19560        log2(                                   15004010135657222573962904_) <>  83_ or
19561        log2(                                   19342813113834066795298815_) <>  83_ or
19562        log2(                                   19342813113834066795298816_) <>  84_ or
19563        log2(                                   30499222896764264907834264_) <>  84_ or
19564        log2(                                   38685626227668133590597631_) <>  84_ or
19565        log2(                                   38685626227668133590597632_) <>  85_ or
19566        log2(                                   47837830723621707251046131_) <>  85_ or
19567        log2(                                   77371252455336267181195263_) <>  85_ or
19568        log2(                                   77371252455336267181195264_) <>  86_ or
19569        log2(                                  105705460996819200954380457_) <>  86_ or
19570        log2(                                  154742504910672534362390527_) <>  86_ or
19571        log2(                                  154742504910672534362390528_) <>  87_ or
19572        log2(                                  223444927983112313393451194_) <>  87_ or
19573        log2(                                  309485009821345068724781055_) <>  87_ or
19574        log2(                                  309485009821345068724781056_) <>  88_ or
19575        log2(                                  439741859063090683034138405_) <>  88_ or
19576        log2(                                  618970019642690137449562111_) <>  88_ or
19577        log2(                                  618970019642690137449562112_) <>  89_ or
19578        log2(                                  986709994308940538290791403_) <>  89_ or
19579        log2(                                 1237940039285380274899124223_) <>  89_ or
19580        log2(                                 1237940039285380274899124224_) <>  90_ or
19581        log2(                                 1400121857035053928370624268_) <>  90_ or
19582        log2(                                 2475880078570760549798248447_) <>  90_ or
19583        log2(                                 2475880078570760549798248448_) <>  91_ or
19584        log2(                                 2917917450786244489923907720_) <>  91_ or
19585        log2(                                 4951760157141521099596496895_) <>  91_ or
19586        log2(                                 4951760157141521099596496896_) <>  92_ or
19587        log2(                                 9872886914214264685677891678_) <>  92_ or
19588        log2(                                 9903520314283042199192993791_) <>  92_ or
19589        log2(                                 9903520314283042199192993792_) <>  93_ or
19590        log2(                                11123569913350357620125292175_) <>  93_ or
19591        log2(                                19807040628566084398385987583_) <>  93_ or
19592        log2(                                19807040628566084398385987584_) <>  94_ or
19593        log2(                                28952887174931033824330146587_) <>  94_ or
19594        log2(                                39614081257132168796771975167_) <>  94_ or
19595        log2(                                39614081257132168796771975168_) <>  95_ or
19596        log2(                                63360838644768982577744115202_) <>  95_ or
19597        log2(                                79228162514264337593543950335_) <>  95_ or
19598        log2(                                79228162514264337593543950336_) <>  96_ or
19599        log2(                                99492143889486050229577125699_) <>  96_ or
19600        log2(                               158456325028528675187087900671_) <>  96_ or
19601        log2(                               158456325028528675187087900672_) <>  97_ or
19602        log2(                               174556595263095641960418174333_) <>  97_ or
19603        log2(                               316912650057057350374175801343_) <>  97_ or
19604        log2(                               316912650057057350374175801344_) <>  98_ or
19605        log2(                               419944240879764684887781328642_) <>  98_ or
19606        log2(                               633825300114114700748351602687_) <>  98_ or
19607        log2(                               633825300114114700748351602688_) <>  99_ or
19608        log2(                               914883243216864028457791435732_) <>  99_ or
19609        log2(                              1267650600228229401496703205375_) <>  99_ or
19610        log2(                              1267650600228229401496703205376_) <> 100_ or
19611        log2(                              1500917277282758485643664600050_) <> 100_ or
19612        log2(                              2535301200456458802993406410751_) <> 100_ or
19613        log2(                              2535301200456458802993406410752_) <> 101_ or
19614        log2(                              4237978568429874089790949076827_) <> 101_ or
19615        log2(                              5070602400912917605986812821503_) <> 101_ or
19616        log2(                              5070602400912917605986812821504_) <> 102_ or
19617        log2(                              5323115315936629148257821179409_) <> 102_ or
19618        log2(                             10141204801825835211973625643007_) <> 102_ or
19619        log2(                             10141204801825835211973625643008_) <> 103_ or
19620        log2(                             20126591047625645386430115797011_) <> 103_ or
19621        log2(                             20282409603651670423947251286015_) <> 103_ or
19622        log2(                             20282409603651670423947251286016_) <> 104_ or
19623        log2(                             35892671598700364451738666990944_) <> 104_ or
19624        log2(                             40564819207303340847894502572031_) <> 104_ or
19625        log2(                             40564819207303340847894502572032_) <> 105_ or
19626        log2(                             77895140811155769804294276328954_) <> 105_ or
19627        log2(                             81129638414606681695789005144063_) <> 105_ or
19628        log2(                             81129638414606681695789005144064_) <> 106_ or
19629        log2(                            126010045406405613183497084430816_) <> 106_ or
19630        log2(                            162259276829213363391578010288127_) <> 106_ or
19631        log2(                            162259276829213363391578010288128_) <> 107_ or
19632        log2(                            281490977077698164777969969377553_) <> 107_ or
19633        log2(                            324518553658426726783156020576255_) <> 107_ or
19634        log2(                            324518553658426726783156020576256_) <> 108_ or
19635        log2(                            503852344780207454589251668542351_) <> 108_ or
19636        log2(                            649037107316853453566312041152511_) <> 108_ or
19637        log2(                            649037107316853453566312041152512_) <> 109_ or
19638        log2(                            955353425343165292753002491699545_) <> 109_ or
19639        log2(                           1298074214633706907132624082305023_) <> 109_ or
19640        log2(                           1298074214633706907132624082305024_) <> 110_ or
19641        log2(                           1960433544262484141714789210442350_) <> 110_ or
19642        log2(                           2596148429267413814265248164610047_) <> 110_ or
19643        log2(                           2596148429267413814265248164610048_) <> 111_ or
19644        log2(                           4492806818838454263755184674914000_) <> 111_ or
19645        log2(                           5192296858534827628530496329220095_) <> 111_ or
19646        log2(                           5192296858534827628530496329220096_) <> 112_ or
19647        log2(                           9850468235542305195157371137539710_) <> 112_ or
19648        log2(                          10384593717069655257060992658440191_) <> 112_ or
19649        log2(                          10384593717069655257060992658440192_) <> 113_ or
19650        log2(                          12841041707676676596309185015597431_) <> 113_ or
19651        log2(                          20769187434139310514121985316880383_) <> 113_ or
19652        log2(                          20769187434139310514121985316880384_) <> 114_ or
19653        log2(                          26445348609741133356130382671568829_) <> 114_ or
19654        log2(                          41538374868278621028243970633760767_) <> 114_ or
19655        log2(                          41538374868278621028243970633760768_) <> 115_ or
19656        log2(                          81817249321107173956885617924211023_) <> 115_ or
19657        log2(                          83076749736557242056487941267521535_) <> 115_ or
19658        log2(                          83076749736557242056487941267521536_) <> 116_ or
19659        log2(                          95879756420730031995818233993768492_) <> 116_ or
19660        log2(                         166153499473114484112975882535043071_) <> 116_ or
19661        log2(                         166153499473114484112975882535043072_) <> 117_ or
19662        log2(                         193248232197933058010440710874654294_) <> 117_ or
19663        log2(                         332306998946228968225951765070086143_) <> 117_ or
19664        log2(                         332306998946228968225951765070086144_) <> 118_ or
19665        log2(                         498537722029389656161379579462920651_) <> 118_ or
19666        log2(                         664613997892457936451903530140172287_) <> 118_ or
19667        log2(                         664613997892457936451903530140172288_) <> 119_ or
19668        log2(                         762517897477265549121345274992949389_) <> 119_ or
19669        log2(                        1329227995784915872903807060280344575_) <> 119_ or
19670        log2(                        1329227995784915872903807060280344576_) <> 120_ or
19671        log2(                        2148263334081524676838994729057997467_) <> 120_ or
19672        log2(                        2658455991569831745807614120560689151_) <> 120_ or
19673        log2(                        2658455991569831745807614120560689152_) <> 121_ or
19674        log2(                        3991160113177871580233273844757837812_) <> 121_ or
19675        log2(                        5316911983139663491615228241121378303_) <> 121_ or
19676        log2(                        5316911983139663491615228241121378304_) <> 122_ or
19677        log2(                       10278891984436566353669335096011204762_) <> 122_ or
19678        log2(                       10633823966279326983230456482242756607_) <> 122_ or
19679        log2(                       10633823966279326983230456482242756608_) <> 123_ or
19680        log2(                       17023775198187348921228770086903882892_) <> 123_ or
19681        log2(                       21267647932558653966460912964485513215_) <> 123_ or
19682        log2(                       21267647932558653966460912964485513216_) <> 124_ or
19683        log2(                       26884265587543726000190517755203627977_) <> 124_ or
19684        log2(                       42535295865117307932921825928971026431_) <> 124_ or
19685        log2(                       42535295865117307932921825928971026432_) <> 125_ or
19686        log2(                       45177275294101686092251737442525265491_) <> 125_ or
19687        log2(                       85070591730234615865843651857942052863_) <> 125_ or
19688        log2(                       85070591730234615865843651857942052864_) <> 126_ or
19689        log2(                      156973395968867682585885231577865870377_) <> 126_ or
19690        log2(                      170141183460469231731687303715884105727_) <> 126_ or
19691        log2(                      170141183460469231731687303715884105728_) <> 127_ or
19692        log2(                      277202035723150774568271929029601035594_) <> 127_ or
19693        log2(                      340282366920938463463374607431768211455_) <> 127_ or
19694        log2(                      340282366920938463463374607431768211456_) <> 128_ or
19695        log2(                      618539674199450151742631565743052143032_) <> 128_ or
19696        log2(                      680564733841876926926749214863536422911_) <> 128_ or
19697        log2(                      680564733841876926926749214863536422912_) <> 129_ or
19698        log2(                     1116885212127565265149486763887338261284_) <> 129_ or
19699        log2(                     1361129467683753853853498429727072845823_) <> 129_ or
19700        log2(                     1361129467683753853853498429727072845824_) <> 130_ or
19701        log2(                     2077685623994784774866191671593682202167_) <> 130_ or
19702        log2(                     2722258935367507707706996859454145691647_) <> 130_ or
19703        log2(                     2722258935367507707706996859454145691648_) <> 131_ or
19704        log2(                     5351226279809917572072824883894542689008_) <> 131_ or
19705        log2(                     5444517870735015415413993718908291383295_) <> 131_ or
19706        log2(                     5444517870735015415413993718908291383296_) <> 132_ or
19707        log2(                     7683557045926151920990481071372639168848_) <> 132_ or
19708        log2(                    10889035741470030830827987437816582766591_) <> 132_ or
19709        log2(                    10889035741470030830827987437816582766592_) <> 133_ or
19710        log2(                    15008351695720470924379897980464110633303_) <> 133_ or
19711        log2(                    21778071482940061661655974875633165533183_) <> 133_ or
19712        log2(                    21778071482940061661655974875633165533184_) <> 134_ or
19713        log2(                    41426060808038555508027135979292891097861_) <> 134_ or
19714        log2(                    43556142965880123323311949751266331066367_) <> 134_ or
19715        log2(                    43556142965880123323311949751266331066368_) <> 135_ or
19716        log2(                    80620192947341288577572686703601510377049_) <> 135_ or
19717        log2(                    87112285931760246646623899502532662132735_) <> 135_ or
19718        log2(                    87112285931760246646623899502532662132736_) <> 136_ or
19719        log2(                    89183478683073435221016648134251997049684_) <> 136_ or
19720        log2(                   174224571863520493293247799005065324265471_) <> 136_ or
19721        log2(                   174224571863520493293247799005065324265472_) <> 137_ or
19722        log2(                   242169928148159938557388409236077908333046_) <> 137_ or
19723        log2(                   348449143727040986586495598010130648530943_) <> 137_ or
19724        log2(                   348449143727040986586495598010130648530944_) <> 138_ or
19725        log2(                   625819853709160802741813479922377307292223_) <> 138_ or
19726        log2(                   696898287454081973172991196020261297061887_) <> 138_ or
19727        log2(                   696898287454081973172991196020261297061888_) <> 139_ or
19728        log2(                  1327734697200161329458205446372827937932335_) <> 139_ or
19729        log2(                  1393796574908163946345982392040522594123775_) <> 139_ or
19730        log2(                  1393796574908163946345982392040522594123776_) <> 140_ or
19731        log2(                  1476259908105438204537281933767331426932677_) <> 140_ or
19732        log2(                  2787593149816327892691964784081045188247551_) <> 140_ or
19733        log2(                  2787593149816327892691964784081045188247552_) <> 141_ or
19734        log2(                  4556716361964568059182256165898268455156994_) <> 141_ or
19735        log2(                  5575186299632655785383929568162090376495103_) <> 141_ or
19736        log2(                  5575186299632655785383929568162090376495104_) <> 142_ or
19737        log2(                 10568232085212509107226639835107504916984805_) <> 142_ or
19738        log2(                 11150372599265311570767859136324180752990207_) <> 142_ or
19739        log2(                 11150372599265311570767859136324180752990208_) <> 143_ or
19740        log2(                 18117499658843422457361740236031667595132016_) <> 143_ or
19741        log2(                 22300745198530623141535718272648361505980415_) <> 143_ or
19742        log2(                 22300745198530623141535718272648361505980416_) <> 144_ or
19743        log2(                 27204667956392791454323897945078076232111777_) <> 144_ or
19744        log2(                 44601490397061246283071436545296723011960831_) <> 144_ or
19745        log2(                 44601490397061246283071436545296723011960832_) <> 145_ or
19746        log2(                 82430695683723741533481543021236829506994809_) <> 145_ or
19747        log2(                 89202980794122492566142873090593446023921663_) <> 145_ or
19748        log2(                 89202980794122492566142873090593446023921664_) <> 146_ or
19749        log2(                172645359115106286012478109929171797021917176_) <> 146_ or
19750        log2(                178405961588244985132285746181186892047843327_) <> 146_ or
19751        log2(                178405961588244985132285746181186892047843328_) <> 147_ or
19752        log2(                208646506894687416003159039879330976829345565_) <> 147_ or
19753        log2(                356811923176489970264571492362373784095686655_) <> 147_ or
19754        log2(                356811923176489970264571492362373784095686656_) <> 148_ or
19755        log2(                636447490454780472988657758921539894484545513_) <> 148_ or
19756        log2(                713623846352979940529142984724747568191373311_) <> 148_ or
19757        log2(                713623846352979940529142984724747568191373312_) <> 149_ or
19758        log2(               1099237896621898812259317978850192917495603804_) <> 149_ or
19759        log2(               1427247692705959881058285969449495136382746623_) <> 149_ or
19760        log2(               1427247692705959881058285969449495136382746624_) <> 150_ or
19761        log2(               2845858584540191812585998330593170538298418806_) <> 150_ or
19762        log2(               2854495385411919762116571938898990272765493247_) <> 150_ or
19763        log2(               2854495385411919762116571938898990272765493248_) <> 151_ or
19764        log2(               5519497439624338462251212825651819036735110198_) <> 151_ or
19765        log2(               5708990770823839524233143877797980545530986495_) <> 151_ or
19766        log2(               5708990770823839524233143877797980545530986496_) <> 152_ or
19767        log2(              10547402984018567809078585653825836467374941085_) <> 152_ or
19768        log2(              11417981541647679048466287755595961091061972991_) <> 152_ or
19769        log2(              11417981541647679048466287755595961091061972992_) <> 153_ or
19770        log2(              20784070071443601335880660682105743139848543403_) <> 153_ or
19771        log2(              22835963083295358096932575511191922182123945983_) <> 153_ or
19772        log2(              22835963083295358096932575511191922182123945984_) <> 154_ or
19773        log2(              36229498850772974526002174269514690456197916512_) <> 154_ or
19774        log2(              45671926166590716193865151022383844364247891967_) <> 154_ or
19775        log2(              45671926166590716193865151022383844364247891968_) <> 155_ or
19776        log2(              62592679901421695545310705722210284569416565692_) <> 155_ or
19777        log2(              91343852333181432387730302044767688728495783935_) <> 155_ or
19778        log2(              91343852333181432387730302044767688728495783936_) <> 156_ or
19779        log2(             179799484504079420295809794143397198986122342846_) <> 156_ or
19780        log2(             182687704666362864775460604089535377456991567871_) <> 156_ or
19781        log2(             182687704666362864775460604089535377456991567872_) <> 157_ or
19782        log2(             273670096710578159775848046380861084125638357351_) <> 157_ or
19783        log2(             365375409332725729550921208179070754913983135743_) <> 157_ or
19784        log2(             365375409332725729550921208179070754913983135744_) <> 158_ or
19785        log2(             435548369002972882014956825866921455292705391286_) <> 158_ or
19786        log2(             730750818665451459101842416358141509827966271487_) <> 158_ or
19787        log2(             730750818665451459101842416358141509827966271488_) <> 159_ or
19788        log2(            1122153563196044284514360541661810756969379276205_) <> 159_ or
19789        log2(            1461501637330902918203684832716283019655932542975_) <> 159_ or
19790        log2(            1461501637330902918203684832716283019655932542976_) <> 160_ or
19791        log2(            2059454122439121605514984861494431480826610457162_) <> 160_ or
19792        log2(            2923003274661805836407369665432566039311865085951_) <> 160_ or
19793        log2(            2923003274661805836407369665432566039311865085952_) <> 161_ or
19794        log2(            5736615163268671779717520829911479048844830811117_) <> 161_ or
19795        log2(            5846006549323611672814739330865132078623730171903_) <> 161_ or
19796        log2(            5846006549323611672814739330865132078623730171904_) <> 162_ or
19797        log2(            6983309402308273190356573273947036642715609286395_) <> 162_ or
19798        log2(           11692013098647223345629478661730264157247460343807_) <> 162_ or
19799        log2(           11692013098647223345629478661730264157247460343808_) <> 163_ or
19800        log2(           16760799119369556540618151451022159484576169001844_) <> 163_ or
19801        log2(           23384026197294446691258957323460528314494920687615_) <> 163_ or
19802        log2(           23384026197294446691258957323460528314494920687616_) <> 164_ or
19803        log2(           32876831858626308636617583262527754807818426046808_) <> 164_ or
19804        log2(           46768052394588893382517914646921056628989841375231_) <> 164_ or
19805        log2(           46768052394588893382517914646921056628989841375232_) <> 165_ or
19806        log2(           75061679723195012956762653710208851318390864922791_) <> 165_ or
19807        log2(           93536104789177786765035829293842113257979682750463_) <> 165_ or
19808        log2(           93536104789177786765035829293842113257979682750464_) <> 166_ or
19809        log2(          182045136103535585117793137726949380041603320041825_) <> 166_ or
19810        log2(          187072209578355573530071658587684226515959365500927_) <> 166_ or
19811        log2(          187072209578355573530071658587684226515959365500928_) <> 167_ or
19812        log2(          209869289721703381759224890887774853888428586627974_) <> 167_ or
19813        log2(          374144419156711147060143317175368453031918731001855_) <> 167_ or
19814        log2(          374144419156711147060143317175368453031918731001856_) <> 168_ or
19815        log2(          676636471012013910934843664492060655965900666646294_) <> 168_ or
19816        log2(          748288838313422294120286634350736906063837462003711_) <> 168_ or
19817        log2(          748288838313422294120286634350736906063837462003712_) <> 169_ or
19818        log2(         1109550900297749937421940419193071022708564147274769_) <> 169_ or
19819        log2(         1496577676626844588240573268701473812127674924007423_) <> 169_ or
19820        log2(         1496577676626844588240573268701473812127674924007424_) <> 170_ or
19821        log2(         1702261544525085956699399452825268286320159557415543_) <> 170_ or
19822        log2(         2993155353253689176481146537402947624255349848014847_) <> 170_ or
19823        log2(         2993155353253689176481146537402947624255349848014848_) <> 171_ or
19824        log2(         3570624903796676770365917472456471603491276487817800_) <> 171_ or
19825        log2(         5986310706507378352962293074805895248510699696029695_) <> 171_ or
19826        log2(         5986310706507378352962293074805895248510699696029696_) <> 172_ or
19827        log2(        11959239603673616794478233996374166326873000762088324_) <> 172_ or
19828        log2(        11972621413014756705924586149611790497021399392059391_) <> 172_ or
19829        log2(        11972621413014756705924586149611790497021399392059392_) <> 173_ or
19830        log2(        17882062827027700142378176334537182573495050656667179_) <> 173_ or
19831        log2(        23945242826029513411849172299223580994042798784118783_) <> 173_ or
19832        log2(        23945242826029513411849172299223580994042798784118784_) <> 174_ or
19833        log2(        33316831242603831256653701739857852231089170620262973_) <> 174_ or
19834        log2(        47890485652059026823698344598447161988085597568237567_) <> 174_ or
19835        log2(        47890485652059026823698344598447161988085597568237568_) <> 175_ or
19836        log2(        82205133922338366433041973382790982075737627793659834_) <> 175_ or
19837        log2(        95780971304118053647396689196894323976171195136475135_) <> 175_ or
19838        log2(        95780971304118053647396689196894323976171195136475136_) <> 176_ or
19839        log2(       140605381794294949375805828092881783778102233040592546_) <> 176_ or
19840        log2(       191561942608236107294793378393788647952342390272950271_) <> 176_ or
19841        log2(       191561942608236107294793378393788647952342390272950272_) <> 177_ or
19842        log2(       352185378060557503439928211308540417926653506459385589_) <> 177_ or
19843        log2(       383123885216472214589586756787577295904684780545900543_) <> 177_ or
19844        log2(       383123885216472214589586756787577295904684780545900544_) <> 178_ or
19845        log2(       764837800625641221944668431695101147505526272558299315_) <> 178_ or
19846        log2(       766247770432944429179173513575154591809369561091801087_) <> 178_ or
19847        log2(       766247770432944429179173513575154591809369561091801088_) <> 179_ or
19848        log2(       803877552415655938033554797207350382588738424426351579_) <> 179_ or
19849        log2(      1532495540865888858358347027150309183618739122183602175_) <> 179_ or
19850        log2(      1532495540865888858358347027150309183618739122183602176_) <> 180_ or
19851        log2(      2959607695085215560608074500915392962078338722227533935_) <> 180_ or
19852        log2(      3064991081731777716716694054300618367237478244367204351_) <> 180_ or
19853        log2(      3064991081731777716716694054300618367237478244367204352_) <> 181_ or
19854        log2(      4933285648086305297440982524624705974827290239159975534_) <> 181_ or
19855        log2(      6129982163463555433433388108601236734474956488734408703_) <> 181_ or
19856        log2(      6129982163463555433433388108601236734474956488734408704_) <> 182_ or
19857        log2(      7491159912602688073021728142125872401272303004006276568_) <> 182_ or
19858        log2(     12259964326927110866866776217202473468949912977468817407_) <> 182_ or
19859        log2(     12259964326927110866866776217202473468949912977468817408_) <> 183_ or
19860        log2(     13698220839615323449039096568442545664951378147206534829_) <> 183_ or
19861        log2(     24519928653854221733733552434404946937899825954937634815_) <> 183_ or
19862        log2(     24519928653854221733733552434404946937899825954937634816_) <> 184_ or
19863        log2(     45009406731997473257255487943561230788323057878697142509_) <> 184_ or
19864        log2(     49039857307708443467467104868809893875799651909875269631_) <> 184_ or
19865        log2(     49039857307708443467467104868809893875799651909875269632_) <> 185_ or
19866        log2(     70774806041680542515758420202278055190009378036071945368_) <> 185_ or
19867        log2(     98079714615416886934934209737619787751599303819750539263_) <> 185_ or
19868        log2(     98079714615416886934934209737619787751599303819750539264_) <> 186_ or
19869        log2(    103254382364840822915539659801246811995055021091369540014_) <> 186_ or
19870        log2(    196159429230833773869868419475239575503198607639501078527_) <> 186_ or
19871        log2(    196159429230833773869868419475239575503198607639501078528_) <> 187_ or
19872        log2(    338607567124564544152680820179607337830015698868538996783_) <> 187_ or
19873        log2(    392318858461667547739736838950479151006397215279002157055_) <> 187_ or
19874        log2(    392318858461667547739736838950479151006397215279002157056_) <> 188_ or
19875        log2(    629714786205473920679132126608906616870884566317042937883_) <> 188_ or
19876        log2(    784637716923335095479473677900958302012794430558004314111_) <> 188_ or
19877        log2(    784637716923335095479473677900958302012794430558004314112_) <> 189_ or
19878        log2(   1074655756415238294575476249107244096075950747686626853234_) <> 189_ or
19879        log2(   1569275433846670190958947355801916604025588861116008628223_) <> 189_ or
19880        log2(   1569275433846670190958947355801916604025588861116008628224_) <> 190_ or
19881        log2(   2065749334023272757755236832423514177803908085373512543284_) <> 190_ or
19882        log2(   3138550867693340381917894711603833208051177722232017256447_) <> 190_ or
19883        log2(   3138550867693340381917894711603833208051177722232017256448_) <> 191_ or
19884        log2(   5956908671991835053163612838224825281153328121208780746849_) <> 191_ or
19885        log2(   6277101735386680763835789423207666416102355444464034512895_) <> 191_ or
19886        log2(   6277101735386680763835789423207666416102355444464034512896_) <> 192_ or
19887        log2(  11963496049743835991483449742521528920830762748328376307193_) <> 192_ or
19888        log2(  12554203470773361527671578846415332832204710888928069025791_) <> 192_ or
19889        log2(  12554203470773361527671578846415332832204710888928069025792_) <> 193_ or
19890        log2(  13929243107424649215418221690000462895945785554376849838240_) <> 193_ or
19891        log2(  25108406941546723055343157692830665664409421777856138051583_) <> 193_ or
19892        log2(  25108406941546723055343157692830665664409421777856138051584_) <> 194_ or
19893        log2(  36820990267934593948555560699091724299946925689076356986335_) <> 194_ or
19894        log2(  50216813883093446110686315385661331328818843555712276103167_) <> 194_ or
19895        log2(  50216813883093446110686315385661331328818843555712276103168_) <> 195_ or
19896        log2(  57491924879569000861701715204094500089896410997422985428408_) <> 195_ or
19897        log2( 100433627766186892221372630771322662657637687111424552206335_) <> 195_ or
19898        log2( 100433627766186892221372630771322662657637687111424552206336_) <> 196_ or
19899        log2( 165783065533429460923690472562622860930006673957435811129385_) <> 196_ or
19900        log2( 200867255532373784442745261542645325315275374222849104412671_) <> 196_ or
19901        log2( 200867255532373784442745261542645325315275374222849104412672_) <> 197_ or
19902        log2( 376210209990131389387321970646983807908459918488973440890162_) <> 197_ or
19903        log2( 401734511064747568885490523085290650630550748445698208825343_) <> 197_ or
19904        log2( 401734511064747568885490523085290650630550748445698208825344_) <> 198_ or
19905        log2( 433373781391585931936480337436200406877941425976199862658261_) <> 198_ or
19906        log2( 803469022129495137770981046170581301261101496891396417650687_) <> 198_ or
19907        log2( 803469022129495137770981046170581301261101496891396417650688_) <> 199_ or
19908        log2(1054824971866101254285226552589449185402231526744732025108240_) <> 199_ or
19909        log2(1606938044258990275541962092341162602522202993782792835301375_) <> 199_ or
19910        log2(1606938044258990275541962092341162602522202993782792835301376_) <> 200_ or
19911        log2(1828236661167998479746547920301995556315017882407621673118692_) <> 200_ then
19912      writeln("The bigInteger log2 function does not work correct.");
19913      okay := FALSE;
19914    end if;
19915
19916    if  log2(pred(1_ <<        255)) <>        254_ or
19917        log2(     1_ <<        255)  <>        255_ or
19918        log2(succ(1_ <<        255)) <>        255_ or
19919        log2(pred(1_ <<        256)) <>        255_ or
19920        log2(     1_ <<        256)  <>        256_ or
19921        log2(succ(1_ <<        256)) <>        256_ or
19922        log2(pred(1_ <<        257)) <>        256_ or
19923        log2(     1_ <<        257)  <>        257_ or
19924        log2(succ(1_ <<        257)) <>        257_ or
19925        log2(pred(1_ <<        511)) <>        510_ or
19926        log2(     1_ <<        511)  <>        511_ or
19927        log2(succ(1_ <<        511)) <>        511_ or
19928        log2(pred(1_ <<        512)) <>        511_ or
19929        log2(     1_ <<        512)  <>        512_ or
19930        log2(succ(1_ <<        512)) <>        512_ or
19931        log2(pred(1_ <<        513)) <>        512_ or
19932        log2(     1_ <<        513)  <>        513_ or
19933        log2(succ(1_ <<        513)) <>        513_ or
19934        log2(pred(1_ <<       1023)) <>       1022_ or
19935        log2(     1_ <<       1023)  <>       1023_ or
19936        log2(succ(1_ <<       1023)) <>       1023_ or
19937        log2(pred(1_ <<       1024)) <>       1023_ or
19938        log2(     1_ <<       1024)  <>       1024_ or
19939        log2(succ(1_ <<       1024)) <>       1024_ or
19940        log2(pred(1_ <<       1025)) <>       1024_ or
19941        log2(     1_ <<       1025)  <>       1025_ or
19942        log2(succ(1_ <<       1025)) <>       1025_ or
19943        log2(pred(1_ <<       2047)) <>       2046_ or
19944        log2(     1_ <<       2047)  <>       2047_ or
19945        log2(succ(1_ <<       2047)) <>       2047_ or
19946        log2(pred(1_ <<       2048)) <>       2047_ or
19947        log2(     1_ <<       2048)  <>       2048_ or
19948        log2(succ(1_ <<       2048)) <>       2048_ or
19949        log2(pred(1_ <<       2049)) <>       2048_ or
19950        log2(     1_ <<       2049)  <>       2049_ or
19951        log2(succ(1_ <<       2049)) <>       2049_ or
19952        log2(pred(1_ <<       4095)) <>       4094_ or
19953        log2(     1_ <<       4095)  <>       4095_ or
19954        log2(succ(1_ <<       4095)) <>       4095_ or
19955        log2(pred(1_ <<       4096)) <>       4095_ or
19956        log2(     1_ <<       4096)  <>       4096_ or
19957        log2(succ(1_ <<       4096)) <>       4096_ or
19958        log2(pred(1_ <<       4097)) <>       4096_ or
19959        log2(     1_ <<       4097)  <>       4097_ or
19960        log2(succ(1_ <<       4097)) <>       4097_ or
19961        log2(pred(1_ <<       8191)) <>       8190_ or
19962        log2(     1_ <<       8191)  <>       8191_ or
19963        log2(succ(1_ <<       8191)) <>       8191_ or
19964        log2(pred(1_ <<       8192)) <>       8191_ or
19965        log2(     1_ <<       8192)  <>       8192_ or
19966        log2(succ(1_ <<       8192)) <>       8192_ or
19967        log2(pred(1_ <<       8193)) <>       8192_ or
19968        log2(     1_ <<       8193)  <>       8193_ or
19969        log2(succ(1_ <<       8193)) <>       8193_ or
19970        log2(pred(1_ <<      16383)) <>      16382_ or
19971        log2(     1_ <<      16383)  <>      16383_ or
19972        log2(succ(1_ <<      16383)) <>      16383_ or
19973        log2(pred(1_ <<      16384)) <>      16383_ or
19974        log2(     1_ <<      16384)  <>      16384_ or
19975        log2(succ(1_ <<      16384)) <>      16384_ or
19976        log2(pred(1_ <<      16385)) <>      16384_ or
19977        log2(     1_ <<      16385)  <>      16385_ or
19978        log2(succ(1_ <<      16385)) <>      16385_ or
19979        log2(pred(1_ <<      32767)) <>      32766_ or
19980        log2(     1_ <<      32767)  <>      32767_ or
19981        log2(succ(1_ <<      32767)) <>      32767_ or
19982        log2(pred(1_ <<      32768)) <>      32767_ or
19983        log2(     1_ <<      32768)  <>      32768_ or
19984        log2(succ(1_ <<      32768)) <>      32768_ or
19985        log2(pred(1_ <<      32769)) <>      32768_ or
19986        log2(     1_ <<      32769)  <>      32769_ or
19987        log2(succ(1_ <<      32769)) <>      32769_ or
19988        log2(pred(1_ <<      65535)) <>      65534_ or
19989        log2(     1_ <<      65535)  <>      65535_ or
19990        log2(succ(1_ <<      65535)) <>      65535_ or
19991        log2(pred(1_ <<      65536)) <>      65535_ or
19992        log2(     1_ <<      65536)  <>      65536_ or
19993        log2(succ(1_ <<      65536)) <>      65536_ or
19994        log2(pred(1_ <<      65537)) <>      65536_ or
19995        log2(     1_ <<      65537)  <>      65537_ or
19996        log2(succ(1_ <<      65537)) <>      65537_ or
19997        log2(pred(1_ <<     131071)) <>     131070_ or
19998        log2(     1_ <<     131071)  <>     131071_ or
19999        log2(succ(1_ <<     131071)) <>     131071_ or
20000        log2(pred(1_ <<     131072)) <>     131071_ or
20001        log2(     1_ <<     131072)  <>     131072_ or
20002        log2(succ(1_ <<     131072)) <>     131072_ or
20003        log2(pred(1_ <<     131073)) <>     131072_ or
20004        log2(     1_ <<     131073)  <>     131073_ or
20005        log2(succ(1_ <<     131073)) <>     131073_ or
20006        log2(pred(1_ <<     262143)) <>     262142_ or
20007        log2(     1_ <<     262143)  <>     262143_ or
20008        log2(succ(1_ <<     262143)) <>     262143_ or
20009        log2(pred(1_ <<     262144)) <>     262143_ or
20010        log2(     1_ <<     262144)  <>     262144_ or
20011        log2(succ(1_ <<     262144)) <>     262144_ or
20012        log2(pred(1_ <<     262145)) <>     262144_ or
20013        log2(     1_ <<     262145)  <>     262145_ or
20014        log2(succ(1_ <<     262145)) <>     262145_ or
20015        log2(pred(1_ <<     524287)) <>     524286_ or
20016        log2(     1_ <<     524287)  <>     524287_ or
20017        log2(succ(1_ <<     524287)) <>     524287_ or
20018        log2(pred(1_ <<     524288)) <>     524287_ or
20019        log2(     1_ <<     524288)  <>     524288_ or
20020        log2(succ(1_ <<     524288)) <>     524288_ or
20021        log2(pred(1_ <<     524289)) <>     524288_ or
20022        log2(     1_ <<     524289)  <>     524289_ or
20023        log2(succ(1_ <<     524289)) <>     524289_ or
20024        log2(pred(1_ <<    1048575)) <>    1048574_ or
20025        log2(     1_ <<    1048575)  <>    1048575_ or
20026        log2(succ(1_ <<    1048575)) <>    1048575_ or
20027        log2(pred(1_ <<    1048576)) <>    1048575_ or
20028        log2(     1_ <<    1048576)  <>    1048576_ or
20029        log2(succ(1_ <<    1048576)) <>    1048576_ or
20030        log2(pred(1_ <<    1048577)) <>    1048576_ or
20031        log2(     1_ <<    1048577)  <>    1048577_ or
20032        log2(succ(1_ <<    1048577)) <>    1048577_ or
20033        log2(pred(1_ <<    2097151)) <>    2097150_ or
20034        log2(     1_ <<    2097151)  <>    2097151_ or
20035        log2(succ(1_ <<    2097151)) <>    2097151_ or
20036        log2(pred(1_ <<    2097152)) <>    2097151_ or
20037        log2(     1_ <<    2097152)  <>    2097152_ or
20038        log2(succ(1_ <<    2097152)) <>    2097152_ or
20039        log2(pred(1_ <<    2097153)) <>    2097152_ or
20040        log2(     1_ <<    2097153)  <>    2097153_ or
20041        log2(succ(1_ <<    2097153)) <>    2097153_ or
20042        log2(pred(1_ <<    4194303)) <>    4194302_ or
20043        log2(     1_ <<    4194303)  <>    4194303_ or
20044        log2(succ(1_ <<    4194303)) <>    4194303_ or
20045        log2(pred(1_ <<    4194304)) <>    4194303_ or
20046        log2(     1_ <<    4194304)  <>    4194304_ or
20047        log2(succ(1_ <<    4194304)) <>    4194304_ or
20048        log2(pred(1_ <<    4194305)) <>    4194304_ or
20049        log2(     1_ <<    4194305)  <>    4194305_ or
20050        log2(succ(1_ <<    4194305)) <>    4194305_ or
20051        log2(pred(1_ <<    8388607)) <>    8388606_ or
20052        log2(     1_ <<    8388607)  <>    8388607_ or
20053        log2(succ(1_ <<    8388607)) <>    8388607_ or
20054        log2(pred(1_ <<    8388608)) <>    8388607_ or
20055        log2(     1_ <<    8388608)  <>    8388608_ or
20056        log2(succ(1_ <<    8388608)) <>    8388608_ or
20057        log2(pred(1_ <<    8388609)) <>    8388608_ or
20058        log2(     1_ <<    8388609)  <>    8388609_ or
20059        log2(succ(1_ <<    8388609)) <>    8388609_ or
20060        log2(pred(1_ <<   16777215)) <>   16777214_ or
20061        log2(     1_ <<   16777215)  <>   16777215_ or
20062        log2(succ(1_ <<   16777215)) <>   16777215_ or
20063        log2(pred(1_ <<   16777216)) <>   16777215_ or
20064        log2(     1_ <<   16777216)  <>   16777216_ or
20065        log2(succ(1_ <<   16777216)) <>   16777216_ or
20066        log2(pred(1_ <<   16777217)) <>   16777216_ or
20067        log2(     1_ <<   16777217)  <>   16777217_ or
20068        log2(succ(1_ <<   16777217)) <>   16777217_ then
20069      writeln("The bigInteger log2 function does not work correct for big numbers.");
20070      okay := FALSE;
20071    end if;
20072
20073    if  not raisesNumericError(log2(           -18446744073709551616_ )) or
20074        not raisesNumericError(log2(           -18446744073709551615_ )) or
20075        not raisesNumericError(log2(            -9223372036854775808_ )) or
20076        not raisesNumericError(log2(            -9223372036854775807_ )) or
20077        not raisesNumericError(log2(                     -4294967296_ )) or
20078        not raisesNumericError(log2(                     -4294967295_ )) or
20079        not raisesNumericError(log2(                     -2147483648_ )) or
20080        not raisesNumericError(log2(                     -2147483647_ )) or
20081        not raisesNumericError(log2(                          -65536_ )) or
20082        not raisesNumericError(log2(                          -65535_ )) or
20083        not raisesNumericError(log2(                          -32768_ )) or
20084        not raisesNumericError(log2(                          -32767_ )) or
20085        not raisesNumericError(log2(                            -256_ )) or
20086        not raisesNumericError(log2(                            -255_ )) or
20087        not raisesNumericError(log2(                            -128_ )) or
20088        not raisesNumericError(log2(                            -127_ )) or
20089        not raisesNumericError(log2(                              -1_ )) or
20090        not raisesNumericError(log2(bigintExpr(-18446744073709551616_))) or
20091        not raisesNumericError(log2(bigintExpr(-18446744073709551615_))) or
20092        not raisesNumericError(log2(bigintExpr( -9223372036854775808_))) or
20093        not raisesNumericError(log2(bigintExpr( -9223372036854775807_))) or
20094        not raisesNumericError(log2(bigintExpr(          -4294967296_))) or
20095        not raisesNumericError(log2(bigintExpr(          -4294967295_))) or
20096        not raisesNumericError(log2(bigintExpr(          -2147483648_))) or
20097        not raisesNumericError(log2(bigintExpr(          -2147483647_))) or
20098        not raisesNumericError(log2(bigintExpr(               -65536_))) or
20099        not raisesNumericError(log2(bigintExpr(               -65535_))) or
20100        not raisesNumericError(log2(bigintExpr(               -32768_))) or
20101        not raisesNumericError(log2(bigintExpr(               -32767_))) or
20102        not raisesNumericError(log2(bigintExpr(                 -256_))) or
20103        not raisesNumericError(log2(bigintExpr(                 -255_))) or
20104        not raisesNumericError(log2(bigintExpr(                 -128_))) or
20105        not raisesNumericError(log2(bigintExpr(                 -127_))) or
20106        not raisesNumericError(log2(bigintExpr(                   -1_))) then
20107      writeln(" ***** The bigInteger log2 of negative number does not raise NUMERIC_ERROR.");
20108      okay := FALSE;
20109    end if;
20110
20111    if okay then
20112      writeln("The bigInteger log2 function works correct.");
20113    else
20114      writeln(" ***** The bigInteger log2 function does not work correct.");
20115      writeln;
20116    end if;
20117  end func;
20118
20119
20120const proc: chkLog10 is func
20121  local
20122    var boolean: okay is TRUE;
20123  begin
20124    if  log10(                                                            0_) <> -1_ or
20125        log10(                                                            1_) <>  0_ or
20126        log10(                                                            9_) <>  0_ or
20127        log10(                                                           10_) <>  1_ or
20128        log10(                                                           99_) <>  1_ or
20129        log10(                                                          100_) <>  2_ or
20130        log10(                                                          999_) <>  2_ or
20131        log10(                                                         1000_) <>  3_ or
20132        log10(                                                         9999_) <>  3_ or
20133        log10(                                                        10000_) <>  4_ or
20134        log10(                                                        99999_) <>  4_ or
20135        log10(                                                       100000_) <>  5_ or
20136        log10(                                                       999999_) <>  5_ or
20137        log10(                                                      1000000_) <>  6_ or
20138        log10(                                                      9999999_) <>  6_ or
20139        log10(                                                     10000000_) <>  7_ or
20140        log10(                                                     99999999_) <>  7_ or
20141        log10(                                                    100000000_) <>  8_ or
20142        log10(                                                    999999999_) <>  8_ or
20143        log10(                                                   1000000000_) <>  9_ or
20144        log10(                                                   9999999999_) <>  9_ or
20145        log10(                                                  10000000000_) <> 10_ or
20146        log10(                                                  99999999999_) <> 10_ or
20147        log10(                                                 100000000000_) <> 11_ or
20148        log10(                                                 999999999999_) <> 11_ or
20149        log10(                                                1000000000000_) <> 12_ or
20150        log10(                                                9999999999999_) <> 12_ or
20151        log10(                                               10000000000000_) <> 13_ or
20152        log10(                                               99999999999999_) <> 13_ or
20153        log10(                                              100000000000000_) <> 14_ or
20154        log10(                                              999999999999999_) <> 14_ or
20155        log10(                                             1000000000000000_) <> 15_ or
20156        log10(                                             9999999999999999_) <> 15_ or
20157        log10(                                            10000000000000000_) <> 16_ or
20158        log10(                                            99999999999999999_) <> 16_ or
20159        log10(                                           100000000000000000_) <> 17_ or
20160        log10(                                           999999999999999999_) <> 17_ or
20161        log10(                                          1000000000000000000_) <> 18_ or
20162        log10(                                          9999999999999999999_) <> 18_ or
20163        log10(                                         10000000000000000000_) <> 19_ or
20164        log10(                                         99999999999999999999_) <> 19_ or
20165        log10(                                        100000000000000000000_) <> 20_ or
20166        log10(                                        999999999999999999999_) <> 20_ or
20167        log10(                                       1000000000000000000000_) <> 21_ or
20168        log10(                                       9999999999999999999999_) <> 21_ or
20169        log10(                                      10000000000000000000000_) <> 22_ or
20170        log10(                                      99999999999999999999999_) <> 22_ or
20171        log10(                                     100000000000000000000000_) <> 23_ or
20172        log10(                                     999999999999999999999999_) <> 23_ or
20173        log10(                                    1000000000000000000000000_) <> 24_ or
20174        log10(                                    9999999999999999999999999_) <> 24_ or
20175        log10(                                   10000000000000000000000000_) <> 25_ or
20176        log10(                                   99999999999999999999999999_) <> 25_ or
20177        log10(                                  100000000000000000000000000_) <> 26_ or
20178        log10(                                  999999999999999999999999999_) <> 26_ or
20179        log10(                                 1000000000000000000000000000_) <> 27_ or
20180        log10(                                 9999999999999999999999999999_) <> 27_ or
20181        log10(                                10000000000000000000000000000_) <> 28_ or
20182        log10(                                99999999999999999999999999999_) <> 28_ or
20183        log10(                               100000000000000000000000000000_) <> 29_ or
20184        log10(                               999999999999999999999999999999_) <> 29_ or
20185        log10(                              1000000000000000000000000000000_) <> 30_ or
20186        log10(                              9999999999999999999999999999999_) <> 30_ or
20187        log10(                             10000000000000000000000000000000_) <> 31_ or
20188        log10(                             99999999999999999999999999999999_) <> 31_ or
20189        log10(                            100000000000000000000000000000000_) <> 32_ or
20190        log10(                            999999999999999999999999999999999_) <> 32_ or
20191        log10(                           1000000000000000000000000000000000_) <> 33_ or
20192        log10(                           9999999999999999999999999999999999_) <> 33_ or
20193        log10(                          10000000000000000000000000000000000_) <> 34_ or
20194        log10(                          99999999999999999999999999999999999_) <> 34_ or
20195        log10(                         100000000000000000000000000000000000_) <> 35_ or
20196        log10(                         999999999999999999999999999999999999_) <> 35_ or
20197        log10(                        1000000000000000000000000000000000000_) <> 36_ or
20198        log10(                        9999999999999999999999999999999999999_) <> 36_ or
20199        log10(                       10000000000000000000000000000000000000_) <> 37_ or
20200        log10(                       99999999999999999999999999999999999999_) <> 37_ or
20201        log10(                      100000000000000000000000000000000000000_) <> 38_ or
20202        log10(                      999999999999999999999999999999999999999_) <> 38_ or
20203        log10(                     1000000000000000000000000000000000000000_) <> 39_ or
20204        log10(                     9999999999999999999999999999999999999999_) <> 39_ or
20205        log10(                    10000000000000000000000000000000000000000_) <> 40_ or
20206        log10(                    99999999999999999999999999999999999999999_) <> 40_ or
20207        log10(                   100000000000000000000000000000000000000000_) <> 41_ or
20208        log10(                   999999999999999999999999999999999999999999_) <> 41_ or
20209        log10(                  1000000000000000000000000000000000000000000_) <> 42_ or
20210        log10(                  9999999999999999999999999999999999999999999_) <> 42_ or
20211        log10(                 10000000000000000000000000000000000000000000_) <> 43_ or
20212        log10(                 99999999999999999999999999999999999999999999_) <> 43_ or
20213        log10(                100000000000000000000000000000000000000000000_) <> 44_ or
20214        log10(                999999999999999999999999999999999999999999999_) <> 44_ or
20215        log10(               1000000000000000000000000000000000000000000000_) <> 45_ or
20216        log10(               9999999999999999999999999999999999999999999999_) <> 45_ or
20217        log10(              10000000000000000000000000000000000000000000000_) <> 46_ or
20218        log10(              99999999999999999999999999999999999999999999999_) <> 46_ or
20219        log10(             100000000000000000000000000000000000000000000000_) <> 47_ or
20220        log10(             999999999999999999999999999999999999999999999999_) <> 47_ or
20221        log10(            1000000000000000000000000000000000000000000000000_) <> 48_ or
20222        log10(            9999999999999999999999999999999999999999999999999_) <> 48_ or
20223        log10(           10000000000000000000000000000000000000000000000000_) <> 49_ or
20224        log10(           99999999999999999999999999999999999999999999999999_) <> 49_ or
20225        log10(          100000000000000000000000000000000000000000000000000_) <> 50_ or
20226        log10(          999999999999999999999999999999999999999999999999999_) <> 50_ or
20227        log10(         1000000000000000000000000000000000000000000000000000_) <> 51_ or
20228        log10(         9999999999999999999999999999999999999999999999999999_) <> 51_ or
20229        log10(        10000000000000000000000000000000000000000000000000000_) <> 52_ or
20230        log10(        99999999999999999999999999999999999999999999999999999_) <> 52_ or
20231        log10(       100000000000000000000000000000000000000000000000000000_) <> 53_ or
20232        log10(       999999999999999999999999999999999999999999999999999999_) <> 53_ or
20233        log10(      1000000000000000000000000000000000000000000000000000000_) <> 54_ or
20234        log10(      9999999999999999999999999999999999999999999999999999999_) <> 54_ or
20235        log10(     10000000000000000000000000000000000000000000000000000000_) <> 55_ or
20236        log10(     99999999999999999999999999999999999999999999999999999999_) <> 55_ or
20237        log10(    100000000000000000000000000000000000000000000000000000000_) <> 56_ or
20238        log10(    999999999999999999999999999999999999999999999999999999999_) <> 56_ or
20239        log10(   1000000000000000000000000000000000000000000000000000000000_) <> 57_ or
20240        log10(   9999999999999999999999999999999999999999999999999999999999_) <> 57_ or
20241        log10(  10000000000000000000000000000000000000000000000000000000000_) <> 58_ or
20242        log10(  99999999999999999999999999999999999999999999999999999999999_) <> 58_ or
20243        log10( 100000000000000000000000000000000000000000000000000000000000_) <> 59_ or
20244        log10( 999999999999999999999999999999999999999999999999999999999999_) <> 59_ or
20245        log10(1000000000000000000000000000000000000000000000000000000000000_) <> 60_ or
20246        log10(9999999999999999999999999999999999999999999999999999999999999_) <> 60_ then
20247      writeln("The bigInteger log10 function does not work correct.");
20248      okay := FALSE;
20249    end if;
20250
20251    if  log10(pred(10_ **    100)) <>     99_ or
20252        log10(     10_ **    100)  <>    100_ or
20253        log10(succ(10_ **    100)) <>    100_ or
20254        log10(pred(10_ **    200)) <>    199_ or
20255        log10(     10_ **    200)  <>    200_ or
20256        log10(succ(10_ **    200)) <>    200_ or
20257        log10(pred(10_ **    300)) <>    299_ or
20258        log10(     10_ **    300)  <>    300_ or
20259        log10(succ(10_ **    300)) <>    300_ or
20260        log10(pred(10_ **    400)) <>    399_ or
20261        log10(     10_ **    400)  <>    400_ or
20262        log10(succ(10_ **    400)) <>    400_ or
20263        log10(pred(10_ **    600)) <>    599_ or
20264        log10(     10_ **    600)  <>    600_ or
20265        log10(succ(10_ **    600)) <>    600_ or
20266        log10(pred(10_ **    800)) <>    799_ or
20267        log10(     10_ **    800)  <>    800_ or
20268        log10(succ(10_ **    800)) <>    800_ or
20269        log10(pred(10_ **   1000)) <>    999_ or
20270        log10(     10_ **   1000)  <>   1000_ or
20271        log10(succ(10_ **   1000)) <>   1000_ or
20272        log10(pred(10_ **   2000)) <>   1999_ or
20273        log10(     10_ **   2000)  <>   2000_ or
20274        log10(succ(10_ **   2000)) <>   2000_ or
20275        log10(pred(10_ **   3000)) <>   2999_ or
20276        log10(     10_ **   3000)  <>   3000_ or
20277        log10(succ(10_ **   3000)) <>   3000_ or
20278        log10(pred(10_ **   4000)) <>   3999_ or
20279        log10(     10_ **   4000)  <>   4000_ or
20280        log10(succ(10_ **   4000)) <>   4000_ or
20281        log10(pred(10_ **   6000)) <>   5999_ or
20282        log10(     10_ **   6000)  <>   6000_ or
20283        log10(succ(10_ **   6000)) <>   6000_ or
20284        log10(pred(10_ **   8000)) <>   7999_ or
20285        log10(     10_ **   8000)  <>   8000_ or
20286        log10(succ(10_ **   8000)) <>   8000_ or
20287        log10(pred(10_ **  10000)) <>   9999_ or
20288        log10(     10_ **  10000)  <>  10000_ or
20289        log10(succ(10_ **  10000)) <>  10000_ or
20290        log10(pred(10_ **  20000)) <>  19999_ or
20291        log10(     10_ **  20000)  <>  20000_ or
20292        log10(succ(10_ **  20000)) <>  20000_ or
20293        log10(pred(10_ **  30000)) <>  29999_ or
20294        log10(     10_ **  30000)  <>  30000_ or
20295        log10(succ(10_ **  30000)) <>  30000_ or
20296        log10(pred(10_ **  40000)) <>  39999_ or
20297        log10(     10_ **  40000)  <>  40000_ or
20298        log10(succ(10_ **  40000)) <>  40000_ or
20299        log10(pred(10_ **  60000)) <>  59999_ or
20300        log10(     10_ **  60000)  <>  60000_ or
20301        log10(succ(10_ **  60000)) <>  60000_ or
20302        log10(pred(10_ **  80000)) <>  79999_ or
20303        log10(     10_ **  80000)  <>  80000_ or
20304        log10(succ(10_ **  80000)) <>  80000_ then
20305      writeln("The bigInteger log10 function does not work correct for big numbers.");
20306      okay := FALSE;
20307    end if;
20308
20309    if  not raisesNumericError(log10(           -18446744073709551616_ )) or
20310        not raisesNumericError(log10(           -18446744073709551615_ )) or
20311        not raisesNumericError(log10(            -9223372036854775808_ )) or
20312        not raisesNumericError(log10(            -9223372036854775807_ )) or
20313        not raisesNumericError(log10(                     -4294967296_ )) or
20314        not raisesNumericError(log10(                     -4294967295_ )) or
20315        not raisesNumericError(log10(                     -2147483648_ )) or
20316        not raisesNumericError(log10(                     -2147483647_ )) or
20317        not raisesNumericError(log10(                          -65536_ )) or
20318        not raisesNumericError(log10(                          -65535_ )) or
20319        not raisesNumericError(log10(                          -32768_ )) or
20320        not raisesNumericError(log10(                          -32767_ )) or
20321        not raisesNumericError(log10(                            -256_ )) or
20322        not raisesNumericError(log10(                            -255_ )) or
20323        not raisesNumericError(log10(                            -128_ )) or
20324        not raisesNumericError(log10(                            -127_ )) or
20325        not raisesNumericError(log10(                              -1_ )) or
20326        not raisesNumericError(log10(bigintExpr(-18446744073709551616_))) or
20327        not raisesNumericError(log10(bigintExpr(-18446744073709551615_))) or
20328        not raisesNumericError(log10(bigintExpr( -9223372036854775808_))) or
20329        not raisesNumericError(log10(bigintExpr( -9223372036854775807_))) or
20330        not raisesNumericError(log10(bigintExpr(          -4294967296_))) or
20331        not raisesNumericError(log10(bigintExpr(          -4294967295_))) or
20332        not raisesNumericError(log10(bigintExpr(          -2147483648_))) or
20333        not raisesNumericError(log10(bigintExpr(          -2147483647_))) or
20334        not raisesNumericError(log10(bigintExpr(               -65536_))) or
20335        not raisesNumericError(log10(bigintExpr(               -65535_))) or
20336        not raisesNumericError(log10(bigintExpr(               -32768_))) or
20337        not raisesNumericError(log10(bigintExpr(               -32767_))) or
20338        not raisesNumericError(log10(bigintExpr(                 -256_))) or
20339        not raisesNumericError(log10(bigintExpr(                 -255_))) or
20340        not raisesNumericError(log10(bigintExpr(                 -128_))) or
20341        not raisesNumericError(log10(bigintExpr(                 -127_))) or
20342        not raisesNumericError(log10(bigintExpr(                   -1_))) then
20343      writeln(" ***** The bigInteger log10 of a negative number does not raise NUMERIC_ERROR.");
20344      okay := FALSE;
20345    end if;
20346
20347    if okay then
20348      writeln("The bigInteger log10 function works correct.");
20349    else
20350      writeln(" ***** The bigInteger log10 function does not work correct.");
20351      writeln;
20352    end if;
20353  end func;
20354
20355
20356const proc: chkBitLength is func
20357  local
20358    var boolean: okay is TRUE;
20359  begin
20360    if  bitLength(-340282366920938463463374607431768211457_) <> 129 or
20361        bitLength(-340282366920938463463374607431768211456_) <> 128 or
20362        bitLength(          -79228162514264337593543950337_) <>  97 or
20363        bitLength(          -79228162514264337593543950336_) <>  96 or
20364        bitLength(                   -18446744073709551617_) <>  65 or
20365        bitLength(                   -18446744073709551616_) <>  64 or
20366        bitLength(                        -281474976710657_) <>  49 or
20367        bitLength(                        -281474976710656_) <>  48 or
20368        bitLength(                             -8589934593_) <>  34 or
20369        bitLength(                             -8589934592_) <>  33 or
20370        bitLength(                             -4294967297_) <>  33 or
20371        bitLength(                             -4294967296_) <>  32 or
20372        bitLength(                             -2147483649_) <>  32 or
20373        bitLength(                             -2147483648_) <>  31 or
20374        bitLength(                             -1073741825_) <>  31 or
20375        bitLength(                             -1073741824_) <>  30 or
20376        bitLength(                                 -131073_) <>  18 or
20377        bitLength(                                 -131072_) <>  17 or
20378        bitLength(                                  -65537_) <>  17 or
20379        bitLength(                                  -65536_) <>  16 or
20380        bitLength(                                  -32769_) <>  16 or
20381        bitLength(                                  -32768_) <>  15 or
20382        bitLength(                                  -16385_) <>  15 or
20383        bitLength(                                  -16384_) <>  14 or
20384        bitLength(                                    -513_) <>  10 or
20385        bitLength(                                    -512_) <>   9 or
20386        bitLength(                                    -257_) <>   9 or
20387        bitLength(                                    -256_) <>   8 or
20388        bitLength(                                    -129_) <>   8 or
20389        bitLength(                                    -128_) <>   7 or
20390        bitLength(                                     -65_) <>   7 or
20391        bitLength(                                     -64_) <>   6 or
20392        bitLength(                                     -33_) <>   6 or
20393        bitLength(                                     -32_) <>   5 or
20394        bitLength(                                     -17_) <>   5 or
20395        bitLength(                                     -16_) <>   4 or
20396        bitLength(                                      -9_) <>   4 or
20397        bitLength(                                      -8_) <>   3 or
20398        bitLength(                                      -5_) <>   3 or
20399        bitLength(                                      -4_) <>   2 or
20400        bitLength(                                      -3_) <>   2 or
20401        bitLength(                                      -2_) <>   1 or
20402        bitLength(                                      -1_) <>   0 or
20403        bitLength(                                       0_) <>   0 or
20404        bitLength(                                       1_) <>   1 or
20405        bitLength(                                       2_) <>   2 or
20406        bitLength(                                       3_) <>   2 or
20407        bitLength(                                       4_) <>   3 or
20408        bitLength(                                       7_) <>   3 or
20409        bitLength(                                       8_) <>   4 or
20410        bitLength(                                      15_) <>   4 or
20411        bitLength(                                      16_) <>   5 or
20412        bitLength(                                      31_) <>   5 or
20413        bitLength(                                      32_) <>   6 or
20414        bitLength(                                      63_) <>   6 or
20415        bitLength(                                      64_) <>   7 or
20416        bitLength(                                     127_) <>   7 or
20417        bitLength(                                     128_) <>   8 or
20418        bitLength(                                     255_) <>   8 or
20419        bitLength(                                     256_) <>   9 or
20420        bitLength(                                     511_) <>   9 or
20421        bitLength(                                     512_) <>  10 or
20422        bitLength(                                   16383_) <>  14 or
20423        bitLength(                                   16384_) <>  15 or
20424        bitLength(                                   32767_) <>  15 or
20425        bitLength(                                   32768_) <>  16 or
20426        bitLength(                                   65535_) <>  16 or
20427        bitLength(                                   65536_) <>  17 or
20428        bitLength(                                  131071_) <>  17 or
20429        bitLength(                                  131072_) <>  18 or
20430        bitLength(                              1073741823_) <>  30 or
20431        bitLength(                              1073741824_) <>  31 or
20432        bitLength(                              2147483647_) <>  31 or
20433        bitLength(                              2147483648_) <>  32 or
20434        bitLength(                              4294967295_) <>  32 or
20435        bitLength(                              4294967296_) <>  33 or
20436        bitLength(                              8589934591_) <>  33 or
20437        bitLength(                              8589934592_) <>  34 or
20438        bitLength(                         281474976710655_) <>  48 or
20439        bitLength(                         281474976710656_) <>  49 or
20440        bitLength(                    18446744073709551615_) <>  64 or
20441        bitLength(                    18446744073709551616_) <>  65 or
20442        bitLength(           79228162514264337593543950335_) <>  96 or
20443        bitLength(           79228162514264337593543950336_) <>  97 or
20444        bitLength( 340282366920938463463374607431768211455_) <> 128 or
20445        bitLength( 340282366920938463463374607431768211456_) <> 129 then
20446      writeln("The bigInteger bitLength function does not work correct.");
20447      okay := FALSE;
20448    end if;
20449
20450    if okay then
20451      writeln("The bigInteger bitLength function works correct.");
20452    else
20453      writeln(" ***** The bigInteger bitLength function does not work correct.");
20454      writeln;
20455    end if;
20456  end func;
20457
20458
20459const proc: chkLowestSetBit is func
20460  local
20461    var boolean: okay is TRUE;
20462  begin
20463    if  lowestSetBit(-2_) <>  1 or
20464        lowestSetBit(-1_) <>  0 or
20465        lowestSetBit( 0_) <> -1 or
20466        lowestSetBit( 1_) <>  0 or
20467        lowestSetBit( 2_) <>  1 or
20468        lowestSetBit(bigintExpr(-2_)) <>  1 or
20469        lowestSetBit(bigintExpr(-1_)) <>  0 or
20470        lowestSetBit(bigintExpr( 0_)) <> -1 or
20471        lowestSetBit(bigintExpr( 1_)) <>  0 or
20472        lowestSetBit(bigintExpr( 2_)) <>  1 then
20473      writeln("The bigInteger lowestSetBit function does not work correct.");
20474      okay := FALSE;
20475    end if;
20476
20477    if  lowestSetBit(1606938044258990275541962092341162602522202993782792835301376_) <> 200 or
20478        lowestSetBit(1606938044258990275541962092341162602522202993782792835301377_) <>   0 or
20479        lowestSetBit(1606938044258990275541962092341162602522202993782792835301378_) <>   1 or
20480        lowestSetBit(1606938044258990275541962092341162602522202993782792835301380_) <>   2 or
20481        lowestSetBit(1606938044258990275541962092341162602522202993782792835301384_) <>   3 or
20482        lowestSetBit(1606938044258990275541962092341162602522202993782792835301392_) <>   4 or
20483        lowestSetBit(1606938044258990275541962092341162602522202993782792835301408_) <>   5 or
20484        lowestSetBit(1606938044258990275541962092341162602522202993782792835301440_) <>   6 or
20485        lowestSetBit(1606938044258990275541962092341162602522202993782792835301504_) <>   7 or
20486        lowestSetBit(1606938044258990275541962092341162602522202993782792835301632_) <>   8 or
20487        lowestSetBit(1606938044258990275541962092341162602522202993782792835301888_) <>   9 or
20488        lowestSetBit(1606938044258990275541962092341162602522202993782792835302400_) <>  10 or
20489        lowestSetBit(1606938044258990275541962092341162602522202993782792835303424_) <>  11 or
20490        lowestSetBit(1606938044258990275541962092341162602522202993782792835305472_) <>  12 or
20491        lowestSetBit(1606938044258990275541962092341162602522202993782792835309568_) <>  13 or
20492        lowestSetBit(1606938044258990275541962092341162602522202993782792835317760_) <>  14 or
20493        lowestSetBit(1606938044258990275541962092341162602522202993782792835334144_) <>  15 or
20494        lowestSetBit(1606938044258990275541962092341162602522202993782792835366912_) <>  16 or
20495        lowestSetBit(1606938044258990275541962092341162602522202993782792835432448_) <>  17 or
20496        lowestSetBit(1606938044258990275541962092341162602522202993782792835563520_) <>  18 or
20497        lowestSetBit(1606938044258990275541962092341162602522202993782792835825664_) <>  19 or
20498        lowestSetBit(1606938044258990275541962092341162602522202993782792836349952_) <>  20 or
20499        lowestSetBit(1606938044258990275541962092341162602522202993782792837398528_) <>  21 or
20500        lowestSetBit(1606938044258990275541962092341162602522202993782792839495680_) <>  22 or
20501        lowestSetBit(1606938044258990275541962092341162602522202993782792843689984_) <>  23 or
20502        lowestSetBit(1606938044258990275541962092341162602522202993782792852078592_) <>  24 or
20503        lowestSetBit(1606938044258990275541962092341162602522202993782792868855808_) <>  25 or
20504        lowestSetBit(1606938044258990275541962092341162602522202993782792902410240_) <>  26 or
20505        lowestSetBit(1606938044258990275541962092341162602522202993782792969519104_) <>  27 or
20506        lowestSetBit(1606938044258990275541962092341162602522202993782793103736832_) <>  28 or
20507        lowestSetBit(1606938044258990275541962092341162602522202993782793372172288_) <>  29 or
20508        lowestSetBit(1606938044258990275541962092341162602522202993782793909043200_) <>  30 or
20509        lowestSetBit(1606938044258990275541962092341162602522202993782794982785024_) <>  31 or
20510        lowestSetBit(1606938044258990275541962092341162602522202993782797130268672_) <>  32 or
20511        lowestSetBit(1606938044258990275541962092341162602522202993782801425235968_) <>  33 or
20512        lowestSetBit(1606938044258990275541962092341162602522202993782810015170560_) <>  34 or
20513        lowestSetBit(1606938044258990275541962092341162602522202993782827195039744_) <>  35 or
20514        lowestSetBit(1606938044258990275541962092341162602522202993782861554778112_) <>  36 or
20515        lowestSetBit(1606938044258990275541962092341162602522202993782930274254848_) <>  37 or
20516        lowestSetBit(1606938044258990275541962092341162602522202993783067713208320_) <>  38 or
20517        lowestSetBit(1606938044258990275541962092341162602522202993783342591115264_) <>  39 or
20518        lowestSetBit(1606938044258990275541962092341162602522202993783892346929152_) <>  40 or
20519        lowestSetBit(1606938044258990275541962092341162602522202993784991858556928_) <>  41 or
20520        lowestSetBit(1606938044258990275541962092341162602522202993787190881812480_) <>  42 or
20521        lowestSetBit(1606938044258990275541962092341162602522202993791588928323584_) <>  43 or
20522        lowestSetBit(1606938044258990275541962092341162602522202993800385021345792_) <>  44 or
20523        lowestSetBit(1606938044258990275541962092341162602522202993817977207390208_) <>  45 or
20524        lowestSetBit(1606938044258990275541962092341162602522202993853161579479040_) <>  46 or
20525        lowestSetBit(1606938044258990275541962092341162602522202993923530323656704_) <>  47 or
20526        lowestSetBit(1606938044258990275541962092341162602522202994064267812012032_) <>  48 or
20527        lowestSetBit(1606938044258990275541962092341162602522202994345742788722688_) <>  49 or
20528        lowestSetBit(1606938044258990275541962092341162602522202994908692742144000_) <>  50 or
20529        lowestSetBit(1606938044258990275541962092341162602522202996034592648986624_) <>  51 or
20530        lowestSetBit(1606938044258990275541962092341162602522202998286392462671872_) <>  52 or
20531        lowestSetBit(1606938044258990275541962092341162602522203002789992090042368_) <>  53 or
20532        lowestSetBit(1606938044258990275541962092341162602522203011797191344783360_) <>  54 or
20533        lowestSetBit(1606938044258990275541962092341162602522203029811589854265344_) <>  55 or
20534        lowestSetBit(1606938044258990275541962092341162602522203065840386873229312_) <>  56 or
20535        lowestSetBit(1606938044258990275541962092341162602522203137897980911157248_) <>  57 or
20536        lowestSetBit(1606938044258990275541962092341162602522203282013168987013120_) <>  58 or
20537        lowestSetBit(1606938044258990275541962092341162602522203570243545138724864_) <>  59 or
20538        lowestSetBit(1606938044258990275541962092341162602522204146704297442148352_) <>  60 or
20539        lowestSetBit(1606938044258990275541962092341162602522205299625802048995328_) <>  61 or
20540        lowestSetBit(1606938044258990275541962092341162602522207605468811262689280_) <>  62 or
20541        lowestSetBit(1606938044258990275541962092341162602522212217154829690077184_) <>  63 or
20542        lowestSetBit(1606938044258990275541962092341162602522221440526866544852992_) <>  64 or
20543        lowestSetBit(1606938044258990275541962092341162602522239887270940254404608_) <>  65 or
20544        lowestSetBit(1606938044258990275541962092341162602522276780759087673507840_) <>  66 or
20545        lowestSetBit(1606938044258990275541962092341162602522350567735382511714304_) <>  67 or
20546        lowestSetBit(1606938044258990275541962092341162602522498141687972188127232_) <>  68 or
20547        lowestSetBit(1606938044258990275541962092341162602522793289593151540953088_) <>  69 or
20548        lowestSetBit(1606938044258990275541962092341162602523383585403510246604800_) <>  70 or
20549        lowestSetBit(1606938044258990275541962092341162602524564177024227657908224_) <>  71 or
20550        lowestSetBit(1606938044258990275541962092341162602526925360265662480515072_) <>  72 or
20551        lowestSetBit(1606938044258990275541962092341162602531647726748532125728768_) <>  73 or
20552        lowestSetBit(1606938044258990275541962092341162602541092459714271416156160_) <>  74 or
20553        lowestSetBit(1606938044258990275541962092341162602559981925645749997010944_) <>  75 or
20554        lowestSetBit(1606938044258990275541962092341162602597760857508707158720512_) <>  76 or
20555        lowestSetBit(1606938044258990275541962092341162602673318721234621482139648_) <>  77 or
20556        lowestSetBit(1606938044258990275541962092341162602824434448686450128977920_) <>  78 or
20557        lowestSetBit(1606938044258990275541962092341162603126665903590107422654464_) <>  79 or
20558        lowestSetBit(1606938044258990275541962092341162603731128813397422010007552_) <>  80 or
20559        lowestSetBit(1606938044258990275541962092341162604940054633012051184713728_) <>  81 or
20560        lowestSetBit(1606938044258990275541962092341162607357906272241309534126080_) <>  82 or
20561        lowestSetBit(1606938044258990275541962092341162612193609550699826232950784_) <>  83 or
20562        lowestSetBit(1606938044258990275541962092341162621865016107616859630600192_) <>  84 or
20563        lowestSetBit(1606938044258990275541962092341162641207829221450926425899008_) <>  85 or
20564        lowestSetBit(1606938044258990275541962092341162679893455449119060016496640_) <>  86 or
20565        lowestSetBit(1606938044258990275541962092341162757264707904455327197691904_) <>  87 or
20566        lowestSetBit(1606938044258990275541962092341162912007212815127861560082432_) <>  88 or
20567        lowestSetBit(1606938044258990275541962092341163221492222636472930284863488_) <>  89 or
20568        lowestSetBit(1606938044258990275541962092341163840462242279163067734425600_) <>  90 or
20569        lowestSetBit(1606938044258990275541962092341165078402281564543342633549824_) <>  91 or
20570        lowestSetBit(1606938044258990275541962092341167554282360135303892431798272_) <>  92 or
20571        lowestSetBit(1606938044258990275541962092341172506042517276824992028295168_) <>  93 or
20572        lowestSetBit(1606938044258990275541962092341182409562831559867191221288960_) <>  94 or
20573        lowestSetBit(1606938044258990275541962092341202216603460125951589607276544_) <>  95 or
20574        lowestSetBit(1606938044258990275541962092341241830684717258120386379251712_) <>  96 or
20575        lowestSetBit(1606938044258990275541962092341321058847231522457979923202048_) <>  97 or
20576        lowestSetBit(1606938044258990275541962092341479515172260051133167011102720_) <>  98 or
20577        lowestSetBit(1606938044258990275541962092341796427822317108483541186904064_) <>  99 or
20578        lowestSetBit(1606938044258990275541962092342430253122431223184289538506752_) <> 100 or
20579        lowestSetBit(1606938044258990275541962092343697903722659452585786241712128_) <> 101 or
20580        lowestSetBit(1606938044258990275541962092346233204923115911388779648122880_) <> 102 or
20581        lowestSetBit(1606938044258990275541962092351303807324028828994766460944384_) <> 103 or
20582        lowestSetBit(1606938044258990275541962092361445012125854664206740086587392_) <> 104 or
20583        lowestSetBit(1606938044258990275541962092381727421729506334630687337873408_) <> 105 or
20584        lowestSetBit(1606938044258990275541962092422292240936809675478581840445440_) <> 106 or
20585        lowestSetBit(1606938044258990275541962092503421879351416357174370845589504_) <> 107 or
20586        lowestSetBit(1606938044258990275541962092665681156180629720565948855877632_) <> 108 or
20587        lowestSetBit(1606938044258990275541962092990199709839056447349104876453888_) <> 109 or
20588        lowestSetBit(1606938044258990275541962093639236817155909900915416917606400_) <> 110 or
20589        lowestSetBit(1606938044258990275541962094937311031789616808048040999911424_) <> 111 or
20590        lowestSetBit(1606938044258990275541962097533459461057030622313289164521472_) <> 112 or
20591        lowestSetBit(1606938044258990275541962102725756319591858250843785493741568_) <> 113 or
20592        lowestSetBit(1606938044258990275541962113110350036661513507904778152181760_) <> 114 or
20593        lowestSetBit(1606938044258990275541962133879537470800824022026763469062144_) <> 115 or
20594        lowestSetBit(1606938044258990275541962175417912339079445050270734102822912_) <> 116 or
20595        lowestSetBit(1606938044258990275541962258494662075636687106758675370344448_) <> 117 or
20596        lowestSetBit(1606938044258990275541962424648161548751171219734557905387520_) <> 118 or
20597        lowestSetBit(1606938044258990275541962756955160494980139445686322975473664_) <> 119 or
20598        lowestSetBit(1606938044258990275541963421569158387438075897589853115645952_) <> 120 or
20599        lowestSetBit(1606938044258990275541964750797154172353948801396913395990528_) <> 121 or
20600        lowestSetBit(1606938044258990275541967409253145742185694609011033956679680_) <> 122 or
20601        lowestSetBit(1606938044258990275541972726165128881849186224239275078057984_) <> 123 or
20602        lowestSetBit(1606938044258990275541983359989095161176169454695757320814592_) <> 124 or
20603        lowestSetBit(1606938044258990275542004627637027719830135915608721806327808_) <> 125 or
20604        lowestSetBit(1606938044258990275542047162932892837138068837434650777354240_) <> 126 or
20605        lowestSetBit(1606938044258990275542132233524623071753934681086508719407104_) <> 127 or
20606        lowestSetBit(1606938044258990275542302374708083540985666368390224603512832_) <> 128 or
20607        lowestSetBit(1606938044258990275542642657075004479449129742997656371724288_) <> 129 or
20608        lowestSetBit(1606938044258990275543323221808846356376056492212519908147200_) <> 130 or
20609        lowestSetBit(1606938044258990275544684351276530110229909990642246980993024_) <> 131 or
20610        lowestSetBit(1606938044258990275547406610211897617937616987501701126684672_) <> 132 or
20611        lowestSetBit(1606938044258990275552851128082632633353030981220609418067968_) <> 133 or
20612        lowestSetBit(1606938044258990275563740163824102664183858968658426000834560_) <> 134 or
20613        lowestSetBit(1606938044258990275585518235307042725845514943534059166367744_) <> 135 or
20614        lowestSetBit(1606938044258990275629074378272922849168826893285325497434112_) <> 136 or
20615        lowestSetBit(1606938044258990275716186664204683095815450792787858159566848_) <> 137 or
20616        lowestSetBit(1606938044258990275890411236068203589108698591792923483832320_) <> 138 or
20617        lowestSetBit(1606938044258990276238860379795244575695194189803054132363264_) <> 139 or
20618        lowestSetBit(1606938044258990276935758667249326548868185385823315429425152_) <> 140 or
20619        lowestSetBit(1606938044258990278329555242157490495214167777863838023548928_) <> 141 or
20620        lowestSetBit(1606938044258990281117148391973818387906132561944883211796480_) <> 142 or
20621        lowestSetBit(1606938044258990286692334691606474173290062130106973588291584_) <> 143 or
20622        lowestSetBit(1606938044258990297842707290871785744057921266431154341281792_) <> 144 or
20623        lowestSetBit(1606938044258990320143452489402408885593639539079515847262208_) <> 145 or
20624        lowestSetBit(1606938044258990364744942886463655168665076084376238859223040_) <> 146 or
20625        lowestSetBit(1606938044258990453947923680586147734807949174969684883144704_) <> 147 or
20626        lowestSetBit(1606938044258990632353885268831132867093695356156576930988032_) <> 148 or
20627        lowestSetBit(1606938044258990989165808445321103131665187718530361026674688_) <> 149 or
20628        lowestSetBit(1606938044258991702789654798301043660808172443277929218048000_) <> 150 or
20629        lowestSetBit(1606938044258993130037347504260924719094141892773065600794624_) <> 151 or
20630        lowestSetBit(1606938044258995984532732916180686835666080791763338366287872_) <> 152 or
20631        lowestSetBit(1606938044259001693523503740020211068809958589743883897274368_) <> 153 or
20632        lowestSetBit(1606938044259013111505045387699259535097714185704974959247360_) <> 154 or
20633        lowestSetBit(1606938044259035947468128683057356467673225377627157083193344_) <> 155 or
20634        lowestSetBit(1606938044259081619394295273773550332824247761471521331085312_) <> 156 or
20635        lowestSetBit(1606938044259172963246628455205938063126292529160249826869248_) <> 157 or
20636        lowestSetBit(1606938044259355650951294818070713523730382064537706818437120_) <> 158 or
20637        lowestSetBit(1606938044259721026360627543800264444938561135292620801572864_) <> 159 or
20638        lowestSetBit(1606938044260451777179292995259366287354919276802448767844352_) <> 160 or
20639        lowestSetBit(1606938044261913278816623898177569972187635559822104700387328_) <> 161 or
20640        lowestSetBit(1606938044264836282091285704013977341853068125861416565473280_) <> 162 or
20641        lowestSetBit(1606938044270682288640609315686792081183933257940040295645184_) <> 163 or
20642        lowestSetBit(1606938044282374301739256539032421559845663522097287755988992_) <> 164 or
20643        lowestSetBit(1606938044305758327936550985723680517169124050411782676676608_) <> 165 or
20644        lowestSetBit(1606938044352526380331139879106198431816045107040772518051840_) <> 166 or
20645        lowestSetBit(1606938044446062485120317665871234261109887220298752200802304_) <> 167 or
20646        lowestSetBit(1606938044633134694698673239401305919697571446814711566303232_) <> 168 or
20647        lowestSetBit(1606938045007279113855384386461449236872939899846630297305088_) <> 169 or
20648        lowestSetBit(1606938045755567952168806680581735871223676805910467759308800_) <> 170 or
20649        lowestSetBit(1606938047252145628795651268822309139925150618038142683316224_) <> 171 or
20650        lowestSetBit(1606938050245300982049340445303455677328098242293492531331072_) <> 172 or
20651        lowestSetBit(1606938056231611688556718798265748752133993490804192227360768_) <> 173 or
20652        lowestSetBit(1606938068204233101571475504190334901745783987825591619420160_) <> 174 or
20653        lowestSetBit(1606938092149475927600988916039507200969364981868390403538944_) <> 175 or
20654        lowestSetBit(1606938140039961579660015739737851799416526969953987971776512_) <> 176 or
20655        lowestSetBit(1606938235820932883778069387134540996310850946125183108251648_) <> 177 or
20656        lowestSetBit(1606938427382875492014176681927919390099498898467573381201920_) <> 178 or
20657        lowestSetBit(1606938810506760708486391271514676177676794803152353927102464_) <> 179 or
20658        lowestSetBit(1606939576754531141430820450688189752831386612521915018903552_) <> 180 or
20659        lowestSetBit(1606941109250072007319678809035216903140570231261037202505728_) <> 181 or
20660        lowestSetBit(1606944174241153739097395525729271203758937468739281569710080_) <> 182 or
20661        lowestSetBit(1606950304223317202652828959117379804995671943695770304118784_) <> 183 or
20662        lowestSetBit(1606962564187644129763695825893597007469140893608747772936192_) <> 184 or
20663        lowestSetBit(1606987084116297983985429559446031412416078793434702710571008_) <> 185 or
20664        lowestSetBit(1607036123973605692428897026550900222309954593086612585840640_) <> 186 or
20665        lowestSetBit(1607134203688221109315831960760637842097706192390432336379904_) <> 187 or
20666        lowestSetBit(1607330363117451943089701829180113081673209390998071837458432_) <> 188 or
20667        lowestSetBit(1607722681975913610637441566019063560824215788213350839615488_) <> 189 or
20668        lowestSetBit(1608507319692836945732921039696964519126228582643908843929600_) <> 190 or
20669        lowestSetBit(1610076595126683615923879987052766435730254171505024852557824_) <> 191 or
20670        lowestSetBit(1613215145994376956305797881764370268938305349227256869814272_) <> 192 or
20671        lowestSetBit(1619492247729763637069633671187577935354407704671720904327168_) <> 193 or
20672        lowestSetBit(1632046451200536998597305250033993268186612415560648973352960_) <> 194 or
20673        lowestSetBit(1657154858142083721652648407726823933851021837338505111404544_) <> 195 or
20674        lowestSetBit(1707371672025177167763334723112485265179840680894217387507712_) <> 196 or
20675        lowestSetBit(1807805299791364059984707353883807927837478368005641939714048_) <> 197 or
20676        lowestSetBit(2008672555323737844427452615426453253152753742228491044126720_) <> 198 or
20677        lowestSetBit(2410407066388485413312943138511743903783304490674189252952064_) <> 199 then
20678      writeln("The bigInteger lowestSetBit function does not work correct.");
20679      okay := FALSE;
20680    end if;
20681
20682    if okay then
20683      writeln("The bigInteger lowestSetBit function works correct.");
20684    else
20685      writeln(" ***** The bigInteger lowestSetBit function does not work correct.");
20686      writeln;
20687    end if;
20688  end func;
20689
20690
20691const func boolean: chkLShift (in bigInteger: big1, in integer: lshift,
20692    in bigInteger: checkValue) is func
20693  result
20694    var boolean: wrong is FALSE;
20695  local
20696    var bigInteger: bigVar is 0_;
20697  begin
20698    wrong := big1 <<  lshift <> checkValue or
20699             big1 >> -lshift <> checkValue or
20700             bigintExpr(big1) <<  lshift <> checkValue or
20701             bigintExpr(big1) >> -lshift <> checkValue;
20702    if not wrong then
20703      bigVar := big1;
20704      bigVar <<:= lshift;
20705      wrong := bigVar <> checkValue;
20706    end if;
20707    if not wrong then
20708      bigVar := big1;
20709      bigVar >>:= -lshift;
20710      wrong := bigVar <> checkValue;
20711    end if;
20712  end func;
20713
20714
20715const func boolean: chkLShift (in bigInteger: big1, in integer: lshift) is func
20716  result
20717    var boolean: wrong is FALSE;
20718  begin
20719    wrong := chkLShift(big1, lshift, big1 * 2_ ** lshift);
20720  end func;
20721
20722
20723const proc: chkLShift (in integer: lshift, inout boolean: okay) is func
20724  begin
20725    if  chkLShift( 18446744073709551616_, lshift) or
20726        chkLShift( 18446744073709551615_, lshift) or
20727        chkLShift( 10000000000000000000_, lshift) or
20728        chkLShift(  9223372036854775808_, lshift) or
20729        chkLShift(  9223372036854775807_, lshift) or
20730        chkLShift(  1000000000000000000_, lshift) or
20731        chkLShift(   100000000000000000_, lshift) or
20732        chkLShift(    10000000000000000_, lshift) or
20733        chkLShift(     1000000000000000_, lshift) or
20734        chkLShift(      100000000000000_, lshift) or
20735        chkLShift(       10000000000000_, lshift) or
20736        chkLShift(        1000000000000_, lshift) or
20737        chkLShift(         100000000000_, lshift) or
20738        chkLShift(          10000000000_, lshift) or
20739        chkLShift(           1234567890_, lshift) or
20740        chkLShift(           4294967296_, lshift) or
20741        chkLShift(           4294967295_, lshift) or
20742        chkLShift(           2147483648_, lshift) or
20743        chkLShift(           2147483647_, lshift) or
20744        chkLShift(           1000000000_, lshift) or
20745        chkLShift(            100000000_, lshift) or
20746        chkLShift(             10000000_, lshift) or
20747        chkLShift(              1000000_, lshift) or
20748        chkLShift(               100000_, lshift) or
20749        chkLShift(                65536_, lshift) or
20750        chkLShift(                65535_, lshift) or
20751        chkLShift(                32768_, lshift) or
20752        chkLShift(                32767_, lshift) or
20753        chkLShift(                10000_, lshift) or
20754        chkLShift(                 1000_, lshift) or
20755        chkLShift(                  256_, lshift) or
20756        chkLShift(                  255_, lshift) or
20757        chkLShift(                  128_, lshift) or
20758        chkLShift(                  127_, lshift) or
20759        chkLShift(                  100_, lshift) or
20760        chkLShift(                   10_, lshift) or
20761        chkLShift(                    1_, lshift) or
20762        chkLShift(                    0_, lshift) or
20763        chkLShift(                   -1_, lshift) or
20764        chkLShift(                  -10_, lshift) or
20765        chkLShift(                 -100_, lshift) or
20766        chkLShift(                 -128_, lshift) or
20767        chkLShift(                 -129_, lshift) or
20768        chkLShift(                 -256_, lshift) or
20769        chkLShift(                 -257_, lshift) or
20770        chkLShift(                -1000_, lshift) or
20771        chkLShift(               -10000_, lshift) or
20772        chkLShift(               -32768_, lshift) or
20773        chkLShift(               -32769_, lshift) or
20774        chkLShift(               -65536_, lshift) or
20775        chkLShift(               -65537_, lshift) or
20776        chkLShift(              -100000_, lshift) or
20777        chkLShift(             -1000000_, lshift) or
20778        chkLShift(            -10000000_, lshift) or
20779        chkLShift(           -100000000_, lshift) or
20780        chkLShift(          -1000000000_, lshift) or
20781        chkLShift(          -2147483648_, lshift) or
20782        chkLShift(          -2147483649_, lshift) or
20783        chkLShift(          -4294967296_, lshift) or
20784        chkLShift(          -4294967297_, lshift) or
20785        chkLShift(         -10000000000_, lshift) or
20786        chkLShift(        -100000000000_, lshift) or
20787        chkLShift(       -1000000000000_, lshift) or
20788        chkLShift(      -10000000000000_, lshift) or
20789        chkLShift(     -100000000000000_, lshift) or
20790        chkLShift(    -1000000000000000_, lshift) or
20791        chkLShift(   -10000000000000000_, lshift) or
20792        chkLShift(  -100000000000000000_, lshift) or
20793        chkLShift( -1000000000000000000_, lshift) or
20794        chkLShift( -9223372036854775808_, lshift) or
20795        chkLShift( -9223372036854775809_, lshift) or
20796        chkLShift(-10000000000000000000_, lshift) or
20797        chkLShift(-18446744073709551616_, lshift) or
20798        chkLShift(-18446744073709551617_, lshift) then
20799      writeln("The bigInteger << or <<:= with " <& lshift <& " does not work correct.");
20800      okay := FALSE;
20801    end if;
20802  end func;
20803
20804
20805const proc: chkLShift is func
20806  local
20807    var boolean: okay is TRUE;
20808    var integer: lshift is 0;
20809    var boolean: ok is TRUE;
20810    var bigInteger: num is 0_;
20811  begin
20812    for lshift range 0 to 70 do
20813      chkLShift(lshift, okay);
20814    end for;
20815
20816    if  chkLShift( 1690200800304305868662270940501_,   0,  1690200800304305868662270940501_) or
20817        chkLShift(  845100400152152934331135470250_,   1,  1690200800304305868662270940500_) or
20818        chkLShift(  422550200076076467165567735125_,   2,  1690200800304305868662270940500_) or
20819        chkLShift(  211275100038038233582783867562_,   3,  1690200800304305868662270940496_) or
20820        chkLShift(  105637550019019116791391933781_,   4,  1690200800304305868662270940496_) or
20821        chkLShift(   52818775009509558395695966890_,   5,  1690200800304305868662270940480_) or
20822        chkLShift(   26409387504754779197847983445_,   6,  1690200800304305868662270940480_) or
20823        chkLShift(   13204693752377389598923991722_,   7,  1690200800304305868662270940416_) or
20824        chkLShift(    6602346876188694799461995861_,   8,  1690200800304305868662270940416_) or
20825        chkLShift(    3301173438094347399730997930_,   9,  1690200800304305868662270940160_) or
20826        chkLShift(    1650586719047173699865498965_,  10,  1690200800304305868662270940160_) or
20827        chkLShift(     825293359523586849932749482_,  11,  1690200800304305868662270939136_) or
20828        chkLShift(     412646679761793424966374741_,  12,  1690200800304305868662270939136_) or
20829        chkLShift(     206323339880896712483187370_,  13,  1690200800304305868662270935040_) or
20830        chkLShift(     103161669940448356241593685_,  14,  1690200800304305868662270935040_) or
20831        chkLShift(      51580834970224178120796842_,  15,  1690200800304305868662270918656_) or
20832        chkLShift(      25790417485112089060398421_,  16,  1690200800304305868662270918656_) or
20833        chkLShift(      12895208742556044530199210_,  17,  1690200800304305868662270853120_) or
20834        chkLShift(       6447604371278022265099605_,  18,  1690200800304305868662270853120_) or
20835        chkLShift(       3223802185639011132549802_,  19,  1690200800304305868662270590976_) or
20836        chkLShift(       1611901092819505566274901_,  20,  1690200800304305868662270590976_) or
20837        chkLShift(        805950546409752783137450_,  21,  1690200800304305868662269542400_) or
20838        chkLShift(        402975273204876391568725_,  22,  1690200800304305868662269542400_) or
20839        chkLShift(        201487636602438195784362_,  23,  1690200800304305868662265348096_) or
20840        chkLShift(        100743818301219097892181_,  24,  1690200800304305868662265348096_) or
20841        chkLShift(         50371909150609548946090_,  25,  1690200800304305868662248570880_) or
20842        chkLShift(         25185954575304774473045_,  26,  1690200800304305868662248570880_) or
20843        chkLShift(         12592977287652387236522_,  27,  1690200800304305868662181462016_) or
20844        chkLShift(          6296488643826193618261_,  28,  1690200800304305868662181462016_) or
20845        chkLShift(          3148244321913096809130_,  29,  1690200800304305868661913026560_) or
20846        chkLShift(          1574122160956548404565_,  30,  1690200800304305868661913026560_) or
20847        chkLShift(           787061080478274202282_,  31,  1690200800304305868660839284736_) or
20848        chkLShift(           393530540239137101141_,  32,  1690200800304305868660839284736_) or
20849        chkLShift(           196765270119568550570_,  33,  1690200800304305868656544317440_) or
20850        chkLShift(            98382635059784275285_,  34,  1690200800304305868656544317440_) or
20851        chkLShift(            49191317529892137642_,  35,  1690200800304305868639364448256_) or
20852        chkLShift(            24595658764946068821_,  36,  1690200800304305868639364448256_) or
20853        chkLShift(            12297829382473034410_,  37,  1690200800304305868570644971520_) or
20854        chkLShift(             6148914691236517205_,  38,  1690200800304305868570644971520_) or
20855        chkLShift(             3074457345618258602_,  39,  1690200800304305868295767064576_) or
20856        chkLShift(             1537228672809129301_,  40,  1690200800304305868295767064576_) or
20857        chkLShift(              768614336404564650_,  41,  1690200800304305867196255436800_) or
20858        chkLShift(              384307168202282325_,  42,  1690200800304305867196255436800_) or
20859        chkLShift(              192153584101141162_,  43,  1690200800304305862798208925696_) or
20860        chkLShift(               96076792050570581_,  44,  1690200800304305862798208925696_) or
20861        chkLShift(               48038396025285290_,  45,  1690200800304305845206022881280_) or
20862        chkLShift(               24019198012642645_,  46,  1690200800304305845206022881280_) or
20863        chkLShift(               12009599006321322_,  47,  1690200800304305774837278703616_) or
20864        chkLShift(                6004799503160661_,  48,  1690200800304305774837278703616_) or
20865        chkLShift(                3002399751580330_,  49,  1690200800304305493362301992960_) or
20866        chkLShift(                1501199875790165_,  50,  1690200800304305493362301992960_) or
20867        chkLShift(                 750599937895082_,  51,  1690200800304304367462395150336_) or
20868        chkLShift(                 375299968947541_,  52,  1690200800304304367462395150336_) or
20869        chkLShift(                 187649984473770_,  53,  1690200800304299863862767779840_) or
20870        chkLShift(                  93824992236885_,  54,  1690200800304299863862767779840_) or
20871        chkLShift(                  46912496118442_,  55,  1690200800304281849464258297856_) or
20872        chkLShift(                  23456248059221_,  56,  1690200800304281849464258297856_) or
20873        chkLShift(                  11728124029610_,  57,  1690200800304209791870220369920_) or
20874        chkLShift(                   5864062014805_,  58,  1690200800304209791870220369920_) or
20875        chkLShift(                   2932031007402_,  59,  1690200800303921561494068658176_) or
20876        chkLShift(                   1466015503701_,  60,  1690200800303921561494068658176_) or
20877        chkLShift(                    733007751850_,  61,  1690200800302768639989461811200_) or
20878        chkLShift(                    366503875925_,  62,  1690200800302768639989461811200_) or
20879        chkLShift(                    183251937962_,  63,  1690200800298156953971034423296_) or
20880        chkLShift(                     91625968981_,  64,  1690200800298156953971034423296_) or
20881        chkLShift(                     45812984490_,  65,  1690200800279710209897324871680_) or
20882        chkLShift(                     22906492245_,  66,  1690200800279710209897324871680_) or
20883        chkLShift(                     11453246122_,  67,  1690200800205923233602486665216_) or
20884        chkLShift(                      5726623061_,  68,  1690200800205923233602486665216_) or
20885        chkLShift(                      2863311530_,  69,  1690200799910775328423133839360_) or
20886        chkLShift(                      1431655765_,  70,  1690200799910775328423133839360_) or
20887        chkLShift(                       715827882_,  71,  1690200798730183707705722535936_) or
20888        chkLShift(                       357913941_,  72,  1690200798730183707705722535936_) or
20889        chkLShift(                       178956970_,  73,  1690200794007817224836077322240_) or
20890        chkLShift(                        89478485_,  74,  1690200794007817224836077322240_) or
20891        chkLShift(                        44739242_,  75,  1690200775118351293357496467456_) or
20892        chkLShift(                        22369621_,  76,  1690200775118351293357496467456_) or
20893        chkLShift(                        11184810_,  77,  1690200699560487567443173048320_) or
20894        chkLShift(                         5592405_,  78,  1690200699560487567443173048320_) or
20895        chkLShift(                         2796202_,  79,  1690200397329032663785879371776_) or
20896        chkLShift(                         1398101_,  80,  1690200397329032663785879371776_) or
20897        chkLShift(                          699050_,  81,  1690199188403213049156704665600_) or
20898        chkLShift(                          349525_,  82,  1690199188403213049156704665600_) or
20899        chkLShift(                          174762_,  83,  1690194352699934590640005840896_) or
20900        chkLShift(                           87381_,  84,  1690194352699934590640005840896_) or
20901        chkLShift(                           43690_,  85,  1690175009886820756573210542080_) or
20902        chkLShift(                           21845_,  86,  1690175009886820756573210542080_) or
20903        chkLShift(                           10922_,  87,  1690097638634365420306029346816_) or
20904        chkLShift(                            5461_,  88,  1690097638634365420306029346816_) or
20905        chkLShift(                            2730_,  89,  1689788153624544075237304565760_) or
20906        chkLShift(                            1365_,  90,  1689788153624544075237304565760_) or
20907        chkLShift(                             682_,  91,  1688550213585258694962405441536_) or
20908        chkLShift(                             341_,  92,  1688550213585258694962405441536_) or
20909        chkLShift(                             170_,  93,  1683598453428117173862808944640_) or
20910        chkLShift(                              85_,  94,  1683598453428117173862808944640_) or
20911        chkLShift(                              42_,  95,  1663791412799551089464422957056_) or
20912        chkLShift(                              21_,  96,  1663791412799551089464422957056_) or
20913        chkLShift(                              10_,  97,  1584563250285286751870879006720_) or
20914        chkLShift(                               5_,  98,  1584563250285286751870879006720_) or
20915        chkLShift(                               2_,  99,  1267650600228229401496703205376_) or
20916        chkLShift(                               1_, 100,  1267650600228229401496703205376_) or
20917        chkLShift(                               0_, 101,                                0_) or
20918        chkLShift(                               0_, 102,                                0_) then
20919      writeln("The bigInteger << or <<:= does not work correct.");
20920      okay := FALSE;
20921    end if;
20922
20923    if  chkLShift(-1690200800304305868662270940501_,   0, -1690200800304305868662270940501_) or
20924        chkLShift( -845100400152152934331135470250_,   1, -1690200800304305868662270940500_) or
20925        chkLShift( -422550200076076467165567735125_,   2, -1690200800304305868662270940500_) or
20926        chkLShift( -211275100038038233582783867562_,   3, -1690200800304305868662270940496_) or
20927        chkLShift( -105637550019019116791391933781_,   4, -1690200800304305868662270940496_) or
20928        chkLShift(  -52818775009509558395695966890_,   5, -1690200800304305868662270940480_) or
20929        chkLShift(  -26409387504754779197847983445_,   6, -1690200800304305868662270940480_) or
20930        chkLShift(  -13204693752377389598923991722_,   7, -1690200800304305868662270940416_) or
20931        chkLShift(   -6602346876188694799461995861_,   8, -1690200800304305868662270940416_) or
20932        chkLShift(   -3301173438094347399730997930_,   9, -1690200800304305868662270940160_) or
20933        chkLShift(   -1650586719047173699865498965_,  10, -1690200800304305868662270940160_) or
20934        chkLShift(    -825293359523586849932749482_,  11, -1690200800304305868662270939136_) or
20935        chkLShift(    -412646679761793424966374741_,  12, -1690200800304305868662270939136_) or
20936        chkLShift(    -206323339880896712483187370_,  13, -1690200800304305868662270935040_) or
20937        chkLShift(    -103161669940448356241593685_,  14, -1690200800304305868662270935040_) or
20938        chkLShift(     -51580834970224178120796842_,  15, -1690200800304305868662270918656_) or
20939        chkLShift(     -25790417485112089060398421_,  16, -1690200800304305868662270918656_) or
20940        chkLShift(     -12895208742556044530199210_,  17, -1690200800304305868662270853120_) or
20941        chkLShift(      -6447604371278022265099605_,  18, -1690200800304305868662270853120_) or
20942        chkLShift(      -3223802185639011132549802_,  19, -1690200800304305868662270590976_) or
20943        chkLShift(      -1611901092819505566274901_,  20, -1690200800304305868662270590976_) or
20944        chkLShift(       -805950546409752783137450_,  21, -1690200800304305868662269542400_) or
20945        chkLShift(       -402975273204876391568725_,  22, -1690200800304305868662269542400_) or
20946        chkLShift(       -201487636602438195784362_,  23, -1690200800304305868662265348096_) or
20947        chkLShift(       -100743818301219097892181_,  24, -1690200800304305868662265348096_) or
20948        chkLShift(        -50371909150609548946090_,  25, -1690200800304305868662248570880_) or
20949        chkLShift(        -25185954575304774473045_,  26, -1690200800304305868662248570880_) or
20950        chkLShift(        -12592977287652387236522_,  27, -1690200800304305868662181462016_) or
20951        chkLShift(         -6296488643826193618261_,  28, -1690200800304305868662181462016_) or
20952        chkLShift(         -3148244321913096809130_,  29, -1690200800304305868661913026560_) or
20953        chkLShift(         -1574122160956548404565_,  30, -1690200800304305868661913026560_) or
20954        chkLShift(          -787061080478274202282_,  31, -1690200800304305868660839284736_) or
20955        chkLShift(          -393530540239137101141_,  32, -1690200800304305868660839284736_) or
20956        chkLShift(          -196765270119568550570_,  33, -1690200800304305868656544317440_) or
20957        chkLShift(           -98382635059784275285_,  34, -1690200800304305868656544317440_) or
20958        chkLShift(           -49191317529892137642_,  35, -1690200800304305868639364448256_) or
20959        chkLShift(           -24595658764946068821_,  36, -1690200800304305868639364448256_) or
20960        chkLShift(           -12297829382473034410_,  37, -1690200800304305868570644971520_) or
20961        chkLShift(            -6148914691236517205_,  38, -1690200800304305868570644971520_) or
20962        chkLShift(            -3074457345618258602_,  39, -1690200800304305868295767064576_) or
20963        chkLShift(            -1537228672809129301_,  40, -1690200800304305868295767064576_) or
20964        chkLShift(             -768614336404564650_,  41, -1690200800304305867196255436800_) or
20965        chkLShift(             -384307168202282325_,  42, -1690200800304305867196255436800_) or
20966        chkLShift(             -192153584101141162_,  43, -1690200800304305862798208925696_) or
20967        chkLShift(              -96076792050570581_,  44, -1690200800304305862798208925696_) or
20968        chkLShift(              -48038396025285290_,  45, -1690200800304305845206022881280_) or
20969        chkLShift(              -24019198012642645_,  46, -1690200800304305845206022881280_) or
20970        chkLShift(              -12009599006321322_,  47, -1690200800304305774837278703616_) or
20971        chkLShift(               -6004799503160661_,  48, -1690200800304305774837278703616_) or
20972        chkLShift(               -3002399751580330_,  49, -1690200800304305493362301992960_) or
20973        chkLShift(               -1501199875790165_,  50, -1690200800304305493362301992960_) or
20974        chkLShift(                -750599937895082_,  51, -1690200800304304367462395150336_) or
20975        chkLShift(                -375299968947541_,  52, -1690200800304304367462395150336_) or
20976        chkLShift(                -187649984473770_,  53, -1690200800304299863862767779840_) or
20977        chkLShift(                 -93824992236885_,  54, -1690200800304299863862767779840_) or
20978        chkLShift(                 -46912496118442_,  55, -1690200800304281849464258297856_) or
20979        chkLShift(                 -23456248059221_,  56, -1690200800304281849464258297856_) or
20980        chkLShift(                 -11728124029610_,  57, -1690200800304209791870220369920_) or
20981        chkLShift(                  -5864062014805_,  58, -1690200800304209791870220369920_) or
20982        chkLShift(                  -2932031007402_,  59, -1690200800303921561494068658176_) or
20983        chkLShift(                  -1466015503701_,  60, -1690200800303921561494068658176_) or
20984        chkLShift(                   -733007751850_,  61, -1690200800302768639989461811200_) or
20985        chkLShift(                   -366503875925_,  62, -1690200800302768639989461811200_) or
20986        chkLShift(                   -183251937962_,  63, -1690200800298156953971034423296_) or
20987        chkLShift(                    -91625968981_,  64, -1690200800298156953971034423296_) or
20988        chkLShift(                    -45812984490_,  65, -1690200800279710209897324871680_) or
20989        chkLShift(                    -22906492245_,  66, -1690200800279710209897324871680_) or
20990        chkLShift(                    -11453246122_,  67, -1690200800205923233602486665216_) or
20991        chkLShift(                     -5726623061_,  68, -1690200800205923233602486665216_) or
20992        chkLShift(                     -2863311530_,  69, -1690200799910775328423133839360_) or
20993        chkLShift(                     -1431655765_,  70, -1690200799910775328423133839360_) or
20994        chkLShift(                      -715827882_,  71, -1690200798730183707705722535936_) or
20995        chkLShift(                      -357913941_,  72, -1690200798730183707705722535936_) or
20996        chkLShift(                      -178956970_,  73, -1690200794007817224836077322240_) or
20997        chkLShift(                       -89478485_,  74, -1690200794007817224836077322240_) or
20998        chkLShift(                       -44739242_,  75, -1690200775118351293357496467456_) or
20999        chkLShift(                       -22369621_,  76, -1690200775118351293357496467456_) or
21000        chkLShift(                       -11184810_,  77, -1690200699560487567443173048320_) or
21001        chkLShift(                        -5592405_,  78, -1690200699560487567443173048320_) or
21002        chkLShift(                        -2796202_,  79, -1690200397329032663785879371776_) or
21003        chkLShift(                        -1398101_,  80, -1690200397329032663785879371776_) or
21004        chkLShift(                         -699050_,  81, -1690199188403213049156704665600_) or
21005        chkLShift(                         -349525_,  82, -1690199188403213049156704665600_) or
21006        chkLShift(                         -174762_,  83, -1690194352699934590640005840896_) or
21007        chkLShift(                          -87381_,  84, -1690194352699934590640005840896_) or
21008        chkLShift(                          -43690_,  85, -1690175009886820756573210542080_) or
21009        chkLShift(                          -21845_,  86, -1690175009886820756573210542080_) or
21010        chkLShift(                          -10922_,  87, -1690097638634365420306029346816_) or
21011        chkLShift(                           -5461_,  88, -1690097638634365420306029346816_) or
21012        chkLShift(                           -2730_,  89, -1689788153624544075237304565760_) or
21013        chkLShift(                           -1365_,  90, -1689788153624544075237304565760_) or
21014        chkLShift(                            -682_,  91, -1688550213585258694962405441536_) or
21015        chkLShift(                            -341_,  92, -1688550213585258694962405441536_) or
21016        chkLShift(                            -170_,  93, -1683598453428117173862808944640_) or
21017        chkLShift(                             -85_,  94, -1683598453428117173862808944640_) or
21018        chkLShift(                             -42_,  95, -1663791412799551089464422957056_) or
21019        chkLShift(                             -21_,  96, -1663791412799551089464422957056_) or
21020        chkLShift(                             -10_,  97, -1584563250285286751870879006720_) or
21021        chkLShift(                              -5_,  98, -1584563250285286751870879006720_) or
21022        chkLShift(                              -2_,  99, -1267650600228229401496703205376_) or
21023        chkLShift(                              -1_, 100, -1267650600228229401496703205376_) or
21024        chkLShift(                               0_, 101,                                0_) or
21025        chkLShift(                               0_, 102,                                0_) then
21026      writeln("The bigInteger << or <<:= does not work correct.");
21027      okay := FALSE;
21028    end if;
21029
21030    if                    -1_  <<         integer.first  <>        -1_ or
21031                          -1_  << intExpr(integer.first) <>        -1_ or
21032        bigintExpr(       -1_) <<         integer.first  <>        -1_ or
21033        bigintExpr(       -1_) << intExpr(integer.first) <>        -1_ or
21034                          -1_  <<                 -9876  <>        -1_ or
21035                          -1_  << intExpr(        -9876) <>        -1_ or
21036        bigintExpr(       -1_) <<                 -9876  <>        -1_ or
21037        bigintExpr(       -1_) << intExpr(        -9876) <>        -1_ or
21038                          -1_  <<                     0  <>        -1_ or
21039                          -1_  << intExpr(            0) <>        -1_ or
21040        bigintExpr(       -1_) <<                     0  <>        -1_ or
21041        bigintExpr(       -1_) << intExpr(            0) <>        -1_ or
21042                          -1_  <<                    25  <> -33554432_ or
21043                          -1_  << intExpr(           25) <> -33554432_ or
21044        bigintExpr(       -1_) <<                    25  <> -33554432_ or
21045        bigintExpr(       -1_) << intExpr(           25) <> -33554432_ or
21046                           0_  <<         integer.first  <>         0_ or
21047                           0_  << intExpr(integer.first) <>         0_ or
21048        bigintExpr(        0_) <<         integer.first  <>         0_ or
21049        bigintExpr(        0_) << intExpr(integer.first) <>         0_ or
21050                           0_  <<                 -9876  <>         0_ or
21051                           0_  << intExpr(        -9876) <>         0_ or
21052        bigintExpr(        0_) <<                 -9876  <>         0_ or
21053        bigintExpr(        0_) << intExpr(        -9876) <>         0_ or
21054                           0_  <<                     0  <>         0_ or
21055                           0_  << intExpr(            0) <>         0_ or
21056        bigintExpr(        0_) <<                     0  <>         0_ or
21057        bigintExpr(        0_) << intExpr(            0) <>         0_ or
21058                           0_  <<                 12345  <>         0_ or
21059                           0_  << intExpr(        12345) <>         0_ or
21060        bigintExpr(        0_) <<                 12345  <>         0_ or
21061        bigintExpr(        0_) << intExpr(        12345) <>         0_ or
21062                           0_  <<          integer.last  <>         0_ or
21063                           0_  << intExpr( integer.last) <>         0_ or
21064        bigintExpr(        0_) <<          integer.last  <>         0_ or
21065        bigintExpr(        0_) << intExpr( integer.last) <>         0_ or
21066                           1_  <<         integer.first  <>         0_ or
21067                           1_  << intExpr(integer.first) <>         0_ or
21068        bigintExpr(        1_) <<         integer.first  <>         0_ or
21069        bigintExpr(        1_) << intExpr(integer.first) <>         0_ or
21070                           1_  <<                 -9876  <>         0_ or
21071                           1_  << intExpr(        -9876) <>         0_ or
21072        bigintExpr(        1_) <<                 -9876  <>         0_ or
21073        bigintExpr(        1_) << intExpr(        -9876) <>         0_ or
21074                           1_  <<                     0  <>         1_ or
21075                           1_  << intExpr(            0) <>         1_ or
21076        bigintExpr(        1_) <<                     0  <>         1_ or
21077        bigintExpr(        1_) << intExpr(            0) <>         1_ or
21078                           1_  <<                    25  <>  33554432_ or
21079                           1_  << intExpr(           25) <>  33554432_ or
21080        bigintExpr(        1_) <<                    25  <>  33554432_ or
21081        bigintExpr(        1_) << intExpr(           25) <>  33554432_ or
21082                   123456789_  <<         integer.first  <>         0_ or
21083                   123456789_  << intExpr(integer.first) <>         0_ or
21084        bigintExpr(123456789_) <<         integer.first  <>         0_ or
21085        bigintExpr(123456789_) << intExpr(integer.first) <>         0_ or
21086                   123456789_  <<                     0  <> 123456789_ or
21087                   123456789_  << intExpr(            0) <> 123456789_ or
21088        bigintExpr(123456789_) <<                     0  <> 123456789_ or
21089        bigintExpr(123456789_) << intExpr(            0) <> 123456789_ then
21090      writeln("The bigInteger << does not work correct.");
21091      okay := FALSE;
21092    end if;
21093
21094    num := 123456789_; num <<:= 0; ok := ok and num = 123456789_;
21095    if not ok then
21096      writeln("The bigInteger <<:= does not work correct.");
21097      okay := FALSE;
21098    end if;
21099
21100    if okay then
21101      writeln("The bigInteger << and <<:= works correct.");
21102    else
21103      writeln(" ***** The bigInteger << or <<:= does not work correct.");
21104      writeln;
21105    end if;
21106  end func;
21107
21108
21109const func boolean: chkRShift (in bigInteger: big1, in integer: rshift,
21110    in bigInteger: checkValue) is func
21111  result
21112    var boolean: wrong is FALSE;
21113  local
21114    var bigInteger: bigVar is 0_;
21115  begin
21116    wrong := big1 >>  rshift <> checkValue or
21117             big1 << -rshift <> checkValue or
21118             bigintExpr(big1) >>  rshift <> checkValue or
21119             bigintExpr(big1) << -rshift <> checkValue;
21120    if not wrong then
21121      bigVar := big1;
21122      bigVar >>:= rshift;
21123      wrong := bigVar <> checkValue;
21124    end if;
21125    if not wrong then
21126      bigVar := big1;
21127      bigVar <<:= -rshift;
21128      wrong := bigVar <> checkValue;
21129    end if;
21130  end func;
21131
21132
21133const func boolean: chkRShift (in bigInteger: big1, in integer: rshift) is func
21134  result
21135    var boolean: wrong is FALSE;
21136  begin
21137    wrong := chkRShift(big1, rshift, big1 mdiv 2_ ** rshift);
21138  end func;
21139
21140
21141const proc: chkRShift (in integer: rshift, inout boolean: okay) is func
21142  begin
21143    if  chkRShift( 18446744073709551616_, rshift) or
21144        chkRShift( 18446744073709551615_, rshift) or
21145        chkRShift( 10000000000000000000_, rshift) or
21146        chkRShift(  9223372036854775808_, rshift) or
21147        chkRShift(  9223372036854775807_, rshift) or
21148        chkRShift(  1000000000000000000_, rshift) or
21149        chkRShift(   100000000000000000_, rshift) or
21150        chkRShift(    10000000000000000_, rshift) or
21151        chkRShift(     1000000000000000_, rshift) or
21152        chkRShift(      100000000000000_, rshift) or
21153        chkRShift(       10000000000000_, rshift) or
21154        chkRShift(        1000000000000_, rshift) or
21155        chkRShift(         100000000000_, rshift) or
21156        chkRShift(          10000000000_, rshift) or
21157        chkRShift(           1234567890_, rshift) or
21158        chkRShift(           4294967296_, rshift) or
21159        chkRShift(           4294967295_, rshift) or
21160        chkRShift(           2147483648_, rshift) or
21161        chkRShift(           2147483647_, rshift) or
21162        chkRShift(           1000000000_, rshift) or
21163        chkRShift(            100000000_, rshift) or
21164        chkRShift(             10000000_, rshift) or
21165        chkRShift(              1000000_, rshift) or
21166        chkRShift(               100000_, rshift) or
21167        chkRShift(                65536_, rshift) or
21168        chkRShift(                65535_, rshift) or
21169        chkRShift(                32768_, rshift) or
21170        chkRShift(                32767_, rshift) or
21171        chkRShift(                10000_, rshift) or
21172        chkRShift(                 1000_, rshift) or
21173        chkRShift(                  256_, rshift) or
21174        chkRShift(                  255_, rshift) or
21175        chkRShift(                  128_, rshift) or
21176        chkRShift(                  127_, rshift) or
21177        chkRShift(                  100_, rshift) or
21178        chkRShift(                   10_, rshift) or
21179        chkRShift(                    1_, rshift) or
21180        chkRShift(                    0_, rshift) or
21181        chkRShift(                   -1_, rshift) or
21182        chkRShift(                  -10_, rshift) or
21183        chkRShift(                 -100_, rshift) or
21184        chkRShift(                 -128_, rshift) or
21185        chkRShift(                 -129_, rshift) or
21186        chkRShift(                 -256_, rshift) or
21187        chkRShift(                 -257_, rshift) or
21188        chkRShift(                -1000_, rshift) or
21189        chkRShift(               -10000_, rshift) or
21190        chkRShift(               -32768_, rshift) or
21191        chkRShift(               -32769_, rshift) or
21192        chkRShift(               -65536_, rshift) or
21193        chkRShift(               -65537_, rshift) or
21194        chkRShift(              -100000_, rshift) or
21195        chkRShift(             -1000000_, rshift) or
21196        chkRShift(            -10000000_, rshift) or
21197        chkRShift(           -100000000_, rshift) or
21198        chkRShift(          -1000000000_, rshift) or
21199        chkRShift(          -2147483648_, rshift) or
21200        chkRShift(          -2147483649_, rshift) or
21201        chkRShift(          -4294967296_, rshift) or
21202        chkRShift(          -4294967297_, rshift) or
21203        chkRShift(         -10000000000_, rshift) or
21204        chkRShift(        -100000000000_, rshift) or
21205        chkRShift(       -1000000000000_, rshift) or
21206        chkRShift(      -10000000000000_, rshift) or
21207        chkRShift(     -100000000000000_, rshift) or
21208        chkRShift(    -1000000000000000_, rshift) or
21209        chkRShift(   -10000000000000000_, rshift) or
21210        chkRShift(  -100000000000000000_, rshift) or
21211        chkRShift( -1000000000000000000_, rshift) or
21212        chkRShift( -9223372036854775808_, rshift) or
21213        chkRShift( -9223372036854775809_, rshift) or
21214        chkRShift(-10000000000000000000_, rshift) or
21215        chkRShift(-18446744073709551616_, rshift) or
21216        chkRShift(-18446744073709551617_, rshift) then
21217      writeln("The bigInteger >> or >>:= with " <& rshift <& " does not work correct.");
21218      okay := FALSE;
21219    end if;
21220  end func;
21221
21222
21223const proc: chkRShift is func
21224  local
21225    var boolean: okay is TRUE;
21226    var integer: rshift is 0;
21227    var boolean: ok is TRUE;
21228    var bigInteger: num is 0_;
21229  begin
21230    for rshift range 0 to 70 do
21231      chkRShift(rshift, okay);
21232    end for;
21233
21234    if  chkRShift( 1690200800304305868662270940501_,   0,  1690200800304305868662270940501_) or
21235        chkRShift( 1690200800304305868662270940501_,   1,   845100400152152934331135470250_) or
21236        chkRShift( 1690200800304305868662270940501_,   2,   422550200076076467165567735125_) or
21237        chkRShift( 1690200800304305868662270940501_,   3,   211275100038038233582783867562_) or
21238        chkRShift( 1690200800304305868662270940501_,   4,   105637550019019116791391933781_) or
21239        chkRShift( 1690200800304305868662270940501_,   5,    52818775009509558395695966890_) or
21240        chkRShift( 1690200800304305868662270940501_,   6,    26409387504754779197847983445_) or
21241        chkRShift( 1690200800304305868662270940501_,   7,    13204693752377389598923991722_) or
21242        chkRShift( 1690200800304305868662270940501_,   8,     6602346876188694799461995861_) or
21243        chkRShift( 1690200800304305868662270940501_,   9,     3301173438094347399730997930_) or
21244        chkRShift( 1690200800304305868662270940501_,  10,     1650586719047173699865498965_) or
21245        chkRShift( 1690200800304305868662270940501_,  11,      825293359523586849932749482_) or
21246        chkRShift( 1690200800304305868662270940501_,  12,      412646679761793424966374741_) or
21247        chkRShift( 1690200800304305868662270940501_,  13,      206323339880896712483187370_) or
21248        chkRShift( 1690200800304305868662270940501_,  14,      103161669940448356241593685_) or
21249        chkRShift( 1690200800304305868662270940501_,  15,       51580834970224178120796842_) or
21250        chkRShift( 1690200800304305868662270940501_,  16,       25790417485112089060398421_) or
21251        chkRShift( 1690200800304305868662270940501_,  17,       12895208742556044530199210_) or
21252        chkRShift( 1690200800304305868662270940501_,  18,        6447604371278022265099605_) or
21253        chkRShift( 1690200800304305868662270940501_,  19,        3223802185639011132549802_) or
21254        chkRShift( 1690200800304305868662270940501_,  20,        1611901092819505566274901_) or
21255        chkRShift( 1690200800304305868662270940501_,  21,         805950546409752783137450_) or
21256        chkRShift( 1690200800304305868662270940501_,  22,         402975273204876391568725_) or
21257        chkRShift( 1690200800304305868662270940501_,  23,         201487636602438195784362_) or
21258        chkRShift( 1690200800304305868662270940501_,  24,         100743818301219097892181_) or
21259        chkRShift( 1690200800304305868662270940501_,  25,          50371909150609548946090_) or
21260        chkRShift( 1690200800304305868662270940501_,  26,          25185954575304774473045_) or
21261        chkRShift( 1690200800304305868662270940501_,  27,          12592977287652387236522_) or
21262        chkRShift( 1690200800304305868662270940501_,  28,           6296488643826193618261_) or
21263        chkRShift( 1690200800304305868662270940501_,  29,           3148244321913096809130_) or
21264        chkRShift( 1690200800304305868662270940501_,  30,           1574122160956548404565_) or
21265        chkRShift( 1690200800304305868662270940501_,  31,            787061080478274202282_) or
21266        chkRShift( 1690200800304305868662270940501_,  32,            393530540239137101141_) or
21267        chkRShift( 1690200800304305868662270940501_,  33,            196765270119568550570_) or
21268        chkRShift( 1690200800304305868662270940501_,  34,             98382635059784275285_) or
21269        chkRShift( 1690200800304305868662270940501_,  35,             49191317529892137642_) or
21270        chkRShift( 1690200800304305868662270940501_,  36,             24595658764946068821_) or
21271        chkRShift( 1690200800304305868662270940501_,  37,             12297829382473034410_) or
21272        chkRShift( 1690200800304305868662270940501_,  38,              6148914691236517205_) or
21273        chkRShift( 1690200800304305868662270940501_,  39,              3074457345618258602_) or
21274        chkRShift( 1690200800304305868662270940501_,  40,              1537228672809129301_) or
21275        chkRShift( 1690200800304305868662270940501_,  41,               768614336404564650_) or
21276        chkRShift( 1690200800304305868662270940501_,  42,               384307168202282325_) or
21277        chkRShift( 1690200800304305868662270940501_,  43,               192153584101141162_) or
21278        chkRShift( 1690200800304305868662270940501_,  44,                96076792050570581_) or
21279        chkRShift( 1690200800304305868662270940501_,  45,                48038396025285290_) or
21280        chkRShift( 1690200800304305868662270940501_,  46,                24019198012642645_) or
21281        chkRShift( 1690200800304305868662270940501_,  47,                12009599006321322_) or
21282        chkRShift( 1690200800304305868662270940501_,  48,                 6004799503160661_) or
21283        chkRShift( 1690200800304305868662270940501_,  49,                 3002399751580330_) or
21284        chkRShift( 1690200800304305868662270940501_,  50,                 1501199875790165_) or
21285        chkRShift( 1690200800304305868662270940501_,  51,                  750599937895082_) or
21286        chkRShift( 1690200800304305868662270940501_,  52,                  375299968947541_) or
21287        chkRShift( 1690200800304305868662270940501_,  53,                  187649984473770_) or
21288        chkRShift( 1690200800304305868662270940501_,  54,                   93824992236885_) or
21289        chkRShift( 1690200800304305868662270940501_,  55,                   46912496118442_) or
21290        chkRShift( 1690200800304305868662270940501_,  56,                   23456248059221_) or
21291        chkRShift( 1690200800304305868662270940501_,  57,                   11728124029610_) or
21292        chkRShift( 1690200800304305868662270940501_,  58,                    5864062014805_) or
21293        chkRShift( 1690200800304305868662270940501_,  59,                    2932031007402_) or
21294        chkRShift( 1690200800304305868662270940501_,  60,                    1466015503701_) or
21295        chkRShift( 1690200800304305868662270940501_,  61,                     733007751850_) or
21296        chkRShift( 1690200800304305868662270940501_,  62,                     366503875925_) or
21297        chkRShift( 1690200800304305868662270940501_,  63,                     183251937962_) or
21298        chkRShift( 1690200800304305868662270940501_,  64,                      91625968981_) or
21299        chkRShift( 1690200800304305868662270940501_,  65,                      45812984490_) or
21300        chkRShift( 1690200800304305868662270940501_,  66,                      22906492245_) or
21301        chkRShift( 1690200800304305868662270940501_,  67,                      11453246122_) or
21302        chkRShift( 1690200800304305868662270940501_,  68,                       5726623061_) or
21303        chkRShift( 1690200800304305868662270940501_,  69,                       2863311530_) or
21304        chkRShift( 1690200800304305868662270940501_,  70,                       1431655765_) or
21305        chkRShift( 1690200800304305868662270940501_,  71,                        715827882_) or
21306        chkRShift( 1690200800304305868662270940501_,  72,                        357913941_) or
21307        chkRShift( 1690200800304305868662270940501_,  73,                        178956970_) or
21308        chkRShift( 1690200800304305868662270940501_,  74,                         89478485_) or
21309        chkRShift( 1690200800304305868662270940501_,  75,                         44739242_) or
21310        chkRShift( 1690200800304305868662270940501_,  76,                         22369621_) or
21311        chkRShift( 1690200800304305868662270940501_,  77,                         11184810_) or
21312        chkRShift( 1690200800304305868662270940501_,  78,                          5592405_) or
21313        chkRShift( 1690200800304305868662270940501_,  79,                          2796202_) or
21314        chkRShift( 1690200800304305868662270940501_,  80,                          1398101_) or
21315        chkRShift( 1690200800304305868662270940501_,  81,                           699050_) or
21316        chkRShift( 1690200800304305868662270940501_,  82,                           349525_) or
21317        chkRShift( 1690200800304305868662270940501_,  83,                           174762_) or
21318        chkRShift( 1690200800304305868662270940501_,  84,                            87381_) or
21319        chkRShift( 1690200800304305868662270940501_,  85,                            43690_) or
21320        chkRShift( 1690200800304305868662270940501_,  86,                            21845_) or
21321        chkRShift( 1690200800304305868662270940501_,  87,                            10922_) or
21322        chkRShift( 1690200800304305868662270940501_,  88,                             5461_) or
21323        chkRShift( 1690200800304305868662270940501_,  89,                             2730_) or
21324        chkRShift( 1690200800304305868662270940501_,  90,                             1365_) or
21325        chkRShift( 1690200800304305868662270940501_,  91,                              682_) or
21326        chkRShift( 1690200800304305868662270940501_,  92,                              341_) or
21327        chkRShift( 1690200800304305868662270940501_,  93,                              170_) or
21328        chkRShift( 1690200800304305868662270940501_,  94,                               85_) or
21329        chkRShift( 1690200800304305868662270940501_,  95,                               42_) or
21330        chkRShift( 1690200800304305868662270940501_,  96,                               21_) or
21331        chkRShift( 1690200800304305868662270940501_,  97,                               10_) or
21332        chkRShift( 1690200800304305868662270940501_,  98,                                5_) or
21333        chkRShift( 1690200800304305868662270940501_,  99,                                2_) or
21334        chkRShift( 1690200800304305868662270940501_, 100,                                1_) or
21335        chkRShift( 1690200800304305868662270940501_, 101,                                0_) or
21336        chkRShift( 1690200800304305868662270940501_, 102,                                0_) then
21337      writeln("The bigInteger >> or >>:= does not work correct.");
21338      okay := FALSE;
21339    end if;
21340
21341    if  chkRShift(-1690200800304305868662270940502_,   0, -1690200800304305868662270940502_) or
21342        chkRShift(-1690200800304305868662270940502_,   1,  -845100400152152934331135470251_) or
21343        chkRShift(-1690200800304305868662270940502_,   2,  -422550200076076467165567735126_) or
21344        chkRShift(-1690200800304305868662270940502_,   3,  -211275100038038233582783867563_) or
21345        chkRShift(-1690200800304305868662270940502_,   4,  -105637550019019116791391933782_) or
21346        chkRShift(-1690200800304305868662270940502_,   5,   -52818775009509558395695966891_) or
21347        chkRShift(-1690200800304305868662270940502_,   6,   -26409387504754779197847983446_) or
21348        chkRShift(-1690200800304305868662270940502_,   7,   -13204693752377389598923991723_) or
21349        chkRShift(-1690200800304305868662270940502_,   8,    -6602346876188694799461995862_) or
21350        chkRShift(-1690200800304305868662270940502_,   9,    -3301173438094347399730997931_) or
21351        chkRShift(-1690200800304305868662270940502_,  10,    -1650586719047173699865498966_) or
21352        chkRShift(-1690200800304305868662270940502_,  11,     -825293359523586849932749483_) or
21353        chkRShift(-1690200800304305868662270940502_,  12,     -412646679761793424966374742_) or
21354        chkRShift(-1690200800304305868662270940502_,  13,     -206323339880896712483187371_) or
21355        chkRShift(-1690200800304305868662270940502_,  14,     -103161669940448356241593686_) or
21356        chkRShift(-1690200800304305868662270940502_,  15,      -51580834970224178120796843_) or
21357        chkRShift(-1690200800304305868662270940502_,  16,      -25790417485112089060398422_) or
21358        chkRShift(-1690200800304305868662270940502_,  17,      -12895208742556044530199211_) or
21359        chkRShift(-1690200800304305868662270940502_,  18,       -6447604371278022265099606_) or
21360        chkRShift(-1690200800304305868662270940502_,  19,       -3223802185639011132549803_) or
21361        chkRShift(-1690200800304305868662270940502_,  20,       -1611901092819505566274902_) or
21362        chkRShift(-1690200800304305868662270940502_,  21,        -805950546409752783137451_) or
21363        chkRShift(-1690200800304305868662270940502_,  22,        -402975273204876391568726_) or
21364        chkRShift(-1690200800304305868662270940502_,  23,        -201487636602438195784363_) or
21365        chkRShift(-1690200800304305868662270940502_,  24,        -100743818301219097892182_) or
21366        chkRShift(-1690200800304305868662270940502_,  25,         -50371909150609548946091_) or
21367        chkRShift(-1690200800304305868662270940502_,  26,         -25185954575304774473046_) or
21368        chkRShift(-1690200800304305868662270940502_,  27,         -12592977287652387236523_) or
21369        chkRShift(-1690200800304305868662270940502_,  28,          -6296488643826193618262_) or
21370        chkRShift(-1690200800304305868662270940502_,  29,          -3148244321913096809131_) or
21371        chkRShift(-1690200800304305868662270940502_,  30,          -1574122160956548404566_) or
21372        chkRShift(-1690200800304305868662270940502_,  31,           -787061080478274202283_) or
21373        chkRShift(-1690200800304305868662270940502_,  32,           -393530540239137101142_) or
21374        chkRShift(-1690200800304305868662270940502_,  33,           -196765270119568550571_) or
21375        chkRShift(-1690200800304305868662270940502_,  34,            -98382635059784275286_) or
21376        chkRShift(-1690200800304305868662270940502_,  35,            -49191317529892137643_) or
21377        chkRShift(-1690200800304305868662270940502_,  36,            -24595658764946068822_) or
21378        chkRShift(-1690200800304305868662270940502_,  37,            -12297829382473034411_) or
21379        chkRShift(-1690200800304305868662270940502_,  38,             -6148914691236517206_) or
21380        chkRShift(-1690200800304305868662270940502_,  39,             -3074457345618258603_) or
21381        chkRShift(-1690200800304305868662270940502_,  40,             -1537228672809129302_) or
21382        chkRShift(-1690200800304305868662270940502_,  41,              -768614336404564651_) or
21383        chkRShift(-1690200800304305868662270940502_,  42,              -384307168202282326_) or
21384        chkRShift(-1690200800304305868662270940502_,  43,              -192153584101141163_) or
21385        chkRShift(-1690200800304305868662270940502_,  44,               -96076792050570582_) or
21386        chkRShift(-1690200800304305868662270940502_,  45,               -48038396025285291_) or
21387        chkRShift(-1690200800304305868662270940502_,  46,               -24019198012642646_) or
21388        chkRShift(-1690200800304305868662270940502_,  47,               -12009599006321323_) or
21389        chkRShift(-1690200800304305868662270940502_,  48,                -6004799503160662_) or
21390        chkRShift(-1690200800304305868662270940502_,  49,                -3002399751580331_) or
21391        chkRShift(-1690200800304305868662270940502_,  50,                -1501199875790166_) or
21392        chkRShift(-1690200800304305868662270940502_,  51,                 -750599937895083_) or
21393        chkRShift(-1690200800304305868662270940502_,  52,                 -375299968947542_) or
21394        chkRShift(-1690200800304305868662270940502_,  53,                 -187649984473771_) or
21395        chkRShift(-1690200800304305868662270940502_,  54,                  -93824992236886_) or
21396        chkRShift(-1690200800304305868662270940502_,  55,                  -46912496118443_) or
21397        chkRShift(-1690200800304305868662270940502_,  56,                  -23456248059222_) or
21398        chkRShift(-1690200800304305868662270940502_,  57,                  -11728124029611_) or
21399        chkRShift(-1690200800304305868662270940502_,  58,                   -5864062014806_) or
21400        chkRShift(-1690200800304305868662270940502_,  59,                   -2932031007403_) or
21401        chkRShift(-1690200800304305868662270940502_,  60,                   -1466015503702_) or
21402        chkRShift(-1690200800304305868662270940502_,  61,                    -733007751851_) or
21403        chkRShift(-1690200800304305868662270940502_,  62,                    -366503875926_) or
21404        chkRShift(-1690200800304305868662270940502_,  63,                    -183251937963_) or
21405        chkRShift(-1690200800304305868662270940502_,  64,                     -91625968982_) or
21406        chkRShift(-1690200800304305868662270940502_,  65,                     -45812984491_) or
21407        chkRShift(-1690200800304305868662270940502_,  66,                     -22906492246_) or
21408        chkRShift(-1690200800304305868662270940502_,  67,                     -11453246123_) or
21409        chkRShift(-1690200800304305868662270940502_,  68,                      -5726623062_) or
21410        chkRShift(-1690200800304305868662270940502_,  69,                      -2863311531_) or
21411        chkRShift(-1690200800304305868662270940502_,  70,                      -1431655766_) or
21412        chkRShift(-1690200800304305868662270940502_,  71,                       -715827883_) or
21413        chkRShift(-1690200800304305868662270940502_,  72,                       -357913942_) or
21414        chkRShift(-1690200800304305868662270940502_,  73,                       -178956971_) or
21415        chkRShift(-1690200800304305868662270940502_,  74,                        -89478486_) or
21416        chkRShift(-1690200800304305868662270940502_,  75,                        -44739243_) or
21417        chkRShift(-1690200800304305868662270940502_,  76,                        -22369622_) or
21418        chkRShift(-1690200800304305868662270940502_,  77,                        -11184811_) or
21419        chkRShift(-1690200800304305868662270940502_,  78,                         -5592406_) or
21420        chkRShift(-1690200800304305868662270940502_,  79,                         -2796203_) or
21421        chkRShift(-1690200800304305868662270940502_,  80,                         -1398102_) or
21422        chkRShift(-1690200800304305868662270940502_,  81,                          -699051_) or
21423        chkRShift(-1690200800304305868662270940502_,  82,                          -349526_) or
21424        chkRShift(-1690200800304305868662270940502_,  83,                          -174763_) or
21425        chkRShift(-1690200800304305868662270940502_,  84,                           -87382_) or
21426        chkRShift(-1690200800304305868662270940502_,  85,                           -43691_) or
21427        chkRShift(-1690200800304305868662270940502_,  86,                           -21846_) or
21428        chkRShift(-1690200800304305868662270940502_,  87,                           -10923_) or
21429        chkRShift(-1690200800304305868662270940502_,  88,                            -5462_) or
21430        chkRShift(-1690200800304305868662270940502_,  89,                            -2731_) or
21431        chkRShift(-1690200800304305868662270940502_,  90,                            -1366_) or
21432        chkRShift(-1690200800304305868662270940502_,  91,                             -683_) or
21433        chkRShift(-1690200800304305868662270940502_,  92,                             -342_) or
21434        chkRShift(-1690200800304305868662270940502_,  93,                             -171_) or
21435        chkRShift(-1690200800304305868662270940502_,  94,                              -86_) or
21436        chkRShift(-1690200800304305868662270940502_,  95,                              -43_) or
21437        chkRShift(-1690200800304305868662270940502_,  96,                              -22_) or
21438        chkRShift(-1690200800304305868662270940502_,  97,                              -11_) or
21439        chkRShift(-1690200800304305868662270940502_,  98,                               -6_) or
21440        chkRShift(-1690200800304305868662270940502_,  99,                               -3_) or
21441        chkRShift(-1690200800304305868662270940502_, 100,                               -2_) or
21442        chkRShift(-1690200800304305868662270940502_, 101,                               -1_) or
21443        chkRShift(-1690200800304305868662270940502_, 102,                               -1_) then
21444      writeln("The bigInteger >> or >>:= does not work correct.");
21445      okay := FALSE;
21446    end if;
21447
21448    if                    -1_  >>                   -25  <> -33554432_ or
21449                          -1_  >> intExpr(          -25) <> -33554432_ or
21450        bigintExpr(       -1_) >>                   -25  <> -33554432_ or
21451        bigintExpr(       -1_) >> intExpr(          -25) <> -33554432_ or
21452                          -1_  >>                     0  <>        -1_ or
21453                          -1_  >> intExpr(            0) <>        -1_ or
21454        bigintExpr(       -1_) >>                     0  <>        -1_ or
21455        bigintExpr(       -1_) >> intExpr(            0) <>        -1_ or
21456                          -1_  >>                 12345  <>        -1_ or
21457                          -1_  >> intExpr(        12345) <>        -1_ or
21458        bigintExpr(       -1_) >>                 12345  <>        -1_ or
21459        bigintExpr(       -1_) >> intExpr(        12345) <>        -1_ or
21460                          -1_  >>          integer.last  <>        -1_ or
21461                          -1_  >> intExpr( integer.last) <>        -1_ or
21462        bigintExpr(       -1_) >>          integer.last  <>        -1_ or
21463        bigintExpr(       -1_) >> intExpr( integer.last) <>        -1_ or
21464                           0_  >>         integer.first  <>         0_ or
21465                           0_  >> intExpr(integer.first) <>         0_ or
21466        bigintExpr(        0_) >>         integer.first  <>         0_ or
21467        bigintExpr(        0_) >> intExpr(integer.first) <>         0_ or
21468                           0_  >>                 -9876  <>         0_ or
21469                           0_  >> intExpr(        -9876) <>         0_ or
21470        bigintExpr(        0_) >>                 -9876  <>         0_ or
21471        bigintExpr(        0_) >> intExpr(        -9876) <>         0_ or
21472                           0_  >>                     0  <>         0_ or
21473                           0_  >> intExpr(            0) <>         0_ or
21474        bigintExpr(        0_) >>                     0  <>         0_ or
21475        bigintExpr(        0_) >> intExpr(            0) <>         0_ or
21476                           0_  >>                 12345  <>         0_ or
21477                           0_  >> intExpr(        12345) <>         0_ or
21478        bigintExpr(        0_) >>                 12345  <>         0_ or
21479        bigintExpr(        0_) >> intExpr(        12345) <>         0_ or
21480                           0_  >>          integer.last  <>         0_ or
21481                           0_  >> intExpr( integer.last) <>         0_ or
21482        bigintExpr(        0_) >>          integer.last  <>         0_ or
21483        bigintExpr(        0_) >> intExpr( integer.last) <>         0_ or
21484                           1_  >>                   -25  <>  33554432_ or
21485                           1_  >> intExpr(          -25) <>  33554432_ or
21486        bigintExpr(        1_) >>                   -25  <>  33554432_ or
21487        bigintExpr(        1_) >> intExpr(          -25) <>  33554432_ or
21488                           1_  >>                     0  <>         1_ or
21489                           1_  >> intExpr(            0) <>         1_ or
21490        bigintExpr(        1_) >>                     0  <>         1_ or
21491        bigintExpr(        1_) >> intExpr(            0) <>         1_ or
21492                           1_  >>                 12345  <>         0_ or
21493                           1_  >> intExpr(        12345) <>         0_ or
21494        bigintExpr(        1_) >>                 12345  <>         0_ or
21495        bigintExpr(        1_) >> intExpr(        12345) <>         0_ or
21496                           1_  >>          integer.last  <>         0_ or
21497                           1_  >> intExpr( integer.last) <>         0_ or
21498        bigintExpr(        1_) >>          integer.last  <>         0_ or
21499        bigintExpr(        1_) >> intExpr( integer.last) <>         0_ or
21500                   123456789_  >>                     0  <> 123456789_ or
21501                   123456789_  >> intExpr(            0) <> 123456789_ or
21502        bigintExpr(123456789_) >>                     0  <> 123456789_ or
21503        bigintExpr(123456789_) >> intExpr(            0) <> 123456789_ or
21504                   123456789_  >>          integer.last  <>         0_ or
21505                   123456789_  >> intExpr( integer.last) <>         0_ or
21506        bigintExpr(123456789_) >>          integer.last  <>         0_ or
21507        bigintExpr(123456789_) >> intExpr( integer.last) <>         0_ then
21508      writeln("The bigInteger >> does not work correct.");
21509      okay := FALSE;
21510    end if;
21511
21512    num := 123456789_; num >>:= 0; ok := ok and num = 123456789_;
21513    if not ok then
21514      writeln("The bigInteger >>:= does not work correct.");
21515      okay := FALSE;
21516    end if;
21517
21518    if okay then
21519      writeln("The bigInteger >> and >>:= works correct.");
21520    else
21521      writeln(" ***** The bigInteger >> or >>:= does not work correct.");
21522      writeln;
21523    end if;
21524  end func;
21525
21526
21527const proc: chkSqrt is func
21528  local
21529    var boolean: okay is TRUE;
21530    var integer: rshift is 0;
21531  begin
21532    if  sqrt(                   0_) <>          0_ or
21533        sqrt(                   1_) <>          1_ or
21534        sqrt(                   2_) <>          1_ or
21535        sqrt(                   3_) <>          1_ or
21536        sqrt(                   4_) <>          2_ or
21537        sqrt(                   5_) <>          2_ or
21538        sqrt(                   8_) <>          2_ or
21539        sqrt(                   9_) <>          3_ or
21540        sqrt(                  15_) <>          3_ or
21541        sqrt(                  16_) <>          4_ or
21542        sqrt(                  24_) <>          4_ or
21543        sqrt(                  25_) <>          5_ or
21544        sqrt(                  35_) <>          5_ or
21545        sqrt(                  36_) <>          6_ or
21546        sqrt(                  48_) <>          6_ or
21547        sqrt(                  49_) <>          7_ or
21548        sqrt(                  63_) <>          7_ or
21549        sqrt(                  64_) <>          8_ or
21550        sqrt(                  80_) <>          8_ or
21551        sqrt(                  81_) <>          9_ or
21552        sqrt(                 128_) <>         11_ or
21553        sqrt(                 129_) <>         11_ or
21554        sqrt(                 255_) <>         15_ or
21555        sqrt(                 256_) <>         16_ or
21556        sqrt(                 257_) <>         16_ or
21557        sqrt(                1000_) <>         31_ or
21558        sqrt(               10000_) <>        100_ or
21559        sqrt(               32767_) <>        181_ or
21560        sqrt(               32768_) <>        181_ or
21561        sqrt(               32769_) <>        181_ or
21562        sqrt(               65535_) <>        255_ or
21563        sqrt(               65536_) <>        256_ or
21564        sqrt(               65537_) <>        256_ or
21565        sqrt(              100000_) <>        316_ or
21566        sqrt(             1000000_) <>       1000_ or
21567        sqrt(            10000000_) <>       3162_ or
21568        sqrt(           100000000_) <>      10000_ or
21569        sqrt(          1000000000_) <>      31622_ or
21570        sqrt(          2147483647_) <>      46340_ or
21571        sqrt(          2147483648_) <>      46340_ or
21572        sqrt(          2147483649_) <>      46340_ or
21573        sqrt(          4294967295_) <>      65535_ or
21574        sqrt(          4294967296_) <>      65536_ or
21575        sqrt(          4294967297_) <>      65536_ or
21576        sqrt(         10000000000_) <>     100000_ or
21577        sqrt(        100000000000_) <>     316227_ or
21578        sqrt(       1000000000000_) <>    1000000_ or
21579        sqrt(      10000000000000_) <>    3162277_ or
21580        sqrt(     100000000000000_) <>   10000000_ or
21581        sqrt(    1000000000000000_) <>   31622776_ or
21582        sqrt(   10000000000000000_) <>  100000000_ or
21583        sqrt(  100000000000000000_) <>  316227766_ or
21584        sqrt( 1000000000000000000_) <> 1000000000_ or
21585        sqrt( 9223372030926249000_) <> 3037000498_ or
21586        sqrt( 9223372030926249001_) <> 3037000499_ or
21587        sqrt( 9223372036854775808_) <> 3037000499_ or
21588        sqrt( 9223372036854775809_) <> 3037000499_ or
21589        sqrt(10000000000000000000_) <> 3162277660_ or
21590        sqrt(18446744073709551615_) <> 4294967295_ or
21591        sqrt(18446744073709551616_) <> 4294967296_ or
21592        sqrt(18446744073709551617_) <> 4294967296_ then
21593      writeln("The bigInteger square root does not work correct.");
21594      okay := FALSE;
21595    end if;
21596
21597    if  not raisesNumericError(sqrt(                   -1_)) or
21598        not raisesNumericError(sqrt(                   -2_)) or
21599        not raisesNumericError(sqrt(                   -3_)) or
21600        not raisesNumericError(sqrt(                   -4_)) or
21601        not raisesNumericError(sqrt(                   -5_)) or
21602        not raisesNumericError(sqrt(                   -8_)) or
21603        not raisesNumericError(sqrt(                   -9_)) or
21604        not raisesNumericError(sqrt(                  -15_)) or
21605        not raisesNumericError(sqrt(                  -16_)) or
21606        not raisesNumericError(sqrt(                  -24_)) or
21607        not raisesNumericError(sqrt(                  -25_)) or
21608        not raisesNumericError(sqrt(                  -35_)) or
21609        not raisesNumericError(sqrt(                  -36_)) or
21610        not raisesNumericError(sqrt(                  -48_)) or
21611        not raisesNumericError(sqrt(                  -49_)) or
21612        not raisesNumericError(sqrt(                  -63_)) or
21613        not raisesNumericError(sqrt(                  -64_)) or
21614        not raisesNumericError(sqrt(                  -80_)) or
21615        not raisesNumericError(sqrt(                  -81_)) or
21616        not raisesNumericError(sqrt(                 -128_)) or
21617        not raisesNumericError(sqrt(                 -129_)) or
21618        not raisesNumericError(sqrt(                 -255_)) or
21619        not raisesNumericError(sqrt(                 -256_)) or
21620        not raisesNumericError(sqrt(                 -257_)) or
21621        not raisesNumericError(sqrt(                -1000_)) or
21622        not raisesNumericError(sqrt(               -10000_)) or
21623        not raisesNumericError(sqrt(               -32767_)) or
21624        not raisesNumericError(sqrt(               -32768_)) or
21625        not raisesNumericError(sqrt(               -32769_)) or
21626        not raisesNumericError(sqrt(               -65535_)) or
21627        not raisesNumericError(sqrt(               -65536_)) or
21628        not raisesNumericError(sqrt(               -65537_)) or
21629        not raisesNumericError(sqrt(              -100000_)) or
21630        not raisesNumericError(sqrt(             -1000000_)) or
21631        not raisesNumericError(sqrt(            -10000000_)) or
21632        not raisesNumericError(sqrt(           -100000000_)) or
21633        not raisesNumericError(sqrt(          -1000000000_)) or
21634        not raisesNumericError(sqrt(          -2147483647_)) or
21635        not raisesNumericError(sqrt(          -2147483648_)) or
21636        not raisesNumericError(sqrt(          -2147483649_)) or
21637        not raisesNumericError(sqrt(          -4294967295_)) or
21638        not raisesNumericError(sqrt(          -4294967296_)) or
21639        not raisesNumericError(sqrt(          -4294967297_)) or
21640        not raisesNumericError(sqrt(         -10000000000_)) or
21641        not raisesNumericError(sqrt(        -100000000000_)) or
21642        not raisesNumericError(sqrt(       -1000000000000_)) or
21643        not raisesNumericError(sqrt(      -10000000000000_)) or
21644        not raisesNumericError(sqrt(     -100000000000000_)) or
21645        not raisesNumericError(sqrt(    -1000000000000000_)) or
21646        not raisesNumericError(sqrt(   -10000000000000000_)) or
21647        not raisesNumericError(sqrt(  -100000000000000000_)) or
21648        not raisesNumericError(sqrt( -1000000000000000000_)) or
21649        not raisesNumericError(sqrt( -9223372030926249000_)) or
21650        not raisesNumericError(sqrt( -9223372030926249001_)) or
21651        not raisesNumericError(sqrt( -9223372036854775808_)) or
21652        not raisesNumericError(sqrt( -9223372036854775809_)) or
21653        not raisesNumericError(sqrt(-10000000000000000000_)) or
21654        not raisesNumericError(sqrt(-18446744073709551615_)) or
21655        not raisesNumericError(sqrt(-18446744073709551616_)) or
21656        not raisesNumericError(sqrt(-18446744073709551617_)) then
21657      writeln(" ***** The bigInteger square root of a negative number does not raise NUMERIC_ERROR.");
21658      okay := FALSE;
21659    end if;
21660
21661    if okay then
21662      writeln("The bigInteger square root works correct.");
21663    else
21664      writeln(" ***** The bigInteger square root does not work correct.");
21665      writeln;
21666    end if;
21667  end func;
21668
21669
21670const proc: chkConstants is func
21671  local
21672    var boolean: okay is TRUE;
21673    const bigInteger: big0      is      0_;
21674    const bigInteger: big1      is      1_;
21675    const bigInteger: big2      is      2_;
21676    const bigInteger: big127    is    127_;
21677    const bigInteger: big128    is    128_;
21678    const bigInteger: big129    is    129_;
21679    const bigInteger: big255    is    255_;
21680    const bigInteger: big256    is    256_;
21681    const bigInteger: big257    is    257_;
21682    const bigInteger: big65535  is  65535_;
21683    const bigInteger: big65536  is  65537_;
21684    const bigInteger: big65537  is  65538_;
21685    const bigInteger: big1m     is     -1_;
21686    const bigInteger: big2m     is     -2_;
21687    const bigInteger: big127m   is   -127_;
21688    const bigInteger: big128m   is   -128_;
21689    const bigInteger: big129m   is   -129_;
21690    const bigInteger: big255m   is   -255_;
21691    const bigInteger: big256m   is   -256_;
21692    const bigInteger: big257m   is   -257_;
21693    const bigInteger: big65535m is -65535_;
21694    const bigInteger: big65536m is -65536_;
21695    const bigInteger: big65537m is -65537_;
21696  begin
21697    if  big0      <>      0_ or
21698        big1      <>      1_ or
21699        big2      <>      2_ or
21700        big127    <>    127_ or
21701        big128    <>    128_ or
21702        big129    <>    129_ or
21703        big255    <>    255_ or
21704        big256    <>    256_ or
21705        big257    <>    257_ or
21706        big65535  <>  65535_ or
21707        big65536  <>  65537_ or
21708        big65537  <>  65538_ or
21709        big1m     <>     -1_ or
21710        big2m     <>     -2_ or
21711        big127m   <>   -127_ or
21712        big128m   <>   -128_ or
21713        big129m   <>   -129_ or
21714        big255m   <>   -255_ or
21715        big256m   <>   -256_ or
21716        big257m   <>   -257_ or
21717        big65535m <> -65535_ or
21718        big65536m <> -65536_ or
21719        big65537m <> -65537_ then
21720      writeln("The bigInteger constants do not work correct.");
21721      okay := FALSE;
21722    end if;
21723
21724    if  compare(bigintExpr(-2_), big2m) <>  0 or
21725        compare(bigintExpr(-1_), big2m) <>  1 or
21726        compare(bigintExpr( 0_), big2m) <>  1 or
21727        compare(bigintExpr( 2_), big2m) <>  1 or
21728        compare(bigintExpr( 2_), big2m) <>  1 or
21729        compare(bigintExpr(-2_), big1m) <> -1 or
21730        compare(bigintExpr(-1_), big1m) <>  0 or
21731        compare(bigintExpr( 0_), big1m) <>  1 or
21732        compare(bigintExpr( 1_), big1m) <>  1 or
21733        compare(bigintExpr( 2_), big1m) <>  1 or
21734        compare(bigintExpr(-2_), big0)  <> -1 or
21735        compare(bigintExpr(-1_), big0)  <> -1 or
21736        compare(bigintExpr( 0_), big0)  <>  0 or
21737        compare(bigintExpr( 1_), big0)  <>  1 or
21738        compare(bigintExpr( 2_), big0)  <>  1 or
21739        compare(bigintExpr(-2_), big1)  <> -1 or
21740        compare(bigintExpr(-1_), big1)  <> -1 or
21741        compare(bigintExpr( 0_), big1)  <> -1 or
21742        compare(bigintExpr( 1_), big1)  <>  0 or
21743        compare(bigintExpr( 2_), big1)  <>  1 or
21744        compare(bigintExpr(-2_), big2)  <> -1 or
21745        compare(bigintExpr(-1_), big2)  <> -1 or
21746        compare(bigintExpr( 0_), big2)  <> -1 or
21747        compare(bigintExpr( 1_), big2)  <> -1 or
21748        compare(bigintExpr( 2_), big2)  <>  0 then
21749      writeln("The bigInteger constant comparisons do not work correct.");
21750      okay := FALSE;
21751    end if;
21752
21753
21754    if okay then
21755      writeln("The bigInteger constants work correct.");
21756    else
21757      writeln(" ***** The bigInteger constants do not work correct.");
21758      writeln;
21759    end if;
21760  end func;
21761
21762
21763(**
21764 *  Test the case where source and destination of an assignment
21765 *  are identical.
21766 *)
21767const proc: do_assign (inout bigInteger: dest, ref bigInteger: source) is func
21768  begin
21769    dest := source;
21770  end func;
21771
21772
21773const proc: chkAssign is func
21774  local
21775    var boolean: okay is TRUE;
21776    var bigInteger: number is 1_;
21777  begin
21778    okay := TRUE;
21779    number := 2_;
21780    if number <> 2_ then
21781      writeln(" ***** 'number := 2_' does not work correct.");
21782      okay := FALSE;
21783    end if;
21784    number := number;
21785    if number <> 2_ then
21786      writeln(" ***** bigInteger 'number := number' does not work correct.");
21787      okay := FALSE;
21788    end if;
21789    do_assign(number, number);
21790    if number <> 2_ then
21791      writeln(" ***** bigInteger 'number := number' does not work correct.");
21792      okay := FALSE;
21793    end if;
21794    if okay then
21795      writeln("BigInteger assignment works correct.");
21796    end if;
21797  end func;
21798
21799
21800const proc: checkTernary is func
21801  local
21802    var boolean: okay is TRUE;
21803    var boolean: ok is TRUE;
21804    var bigInteger: big1 is 0_;
21805  begin
21806    if  ( TRUE ?  1_ : 2_) <> 1_ or
21807        (FALSE ?  1_ : 2_) <> 2_ or
21808        ( TRUE ?  1_ : bigintExpr(2_)) <> 1_ or
21809        (FALSE ?  1_ : bigintExpr(2_)) <> 2_ or
21810        ( TRUE ?  bigintExpr(1_) : 2_) <> 1_ or
21811        (FALSE ?  bigintExpr(1_) : 2_) <> 2_ or
21812        ( TRUE ?  bigintExpr(1_) : bigintExpr(2_)) <> 1_ or
21813        (FALSE ?  bigintExpr(1_) : bigintExpr(2_)) <> 2_ or
21814        (boolExpr( TRUE) ?  1_ : 2_) <> 1_ or
21815        (boolExpr(FALSE) ?  1_ : 2_) <> 2_ or
21816        (boolExpr( TRUE) ?  1_ : bigintExpr(2_)) <> 1_ or
21817        (boolExpr(FALSE) ?  1_ : bigintExpr(2_)) <> 2_ or
21818        (boolExpr( TRUE) ?  bigintExpr(1_) : 2_) <> 1_ or
21819        (boolExpr(FALSE) ?  bigintExpr(1_) : 2_) <> 2_ or
21820        (boolExpr( TRUE) ?  bigintExpr(1_) : bigintExpr(2_)) <> 1_ or
21821        (boolExpr(FALSE) ?  bigintExpr(1_) : bigintExpr(2_)) <> 2_ then
21822      writeln(" ***** The ternary operator ? : does not work correct. (1)");
21823      okay := FALSE;
21824    end if;
21825
21826    big1 :=  TRUE ?  1_ : 2_; ok := ok and big1 = 1_;
21827    big1 := FALSE ?  1_ : 2_; ok := ok and big1 = 2_;
21828    big1 :=  TRUE ?  1_ : bigintExpr(2_); ok := ok and big1 = 1_;
21829    big1 := FALSE ?  1_ : bigintExpr(2_); ok := ok and big1 = 2_;
21830    big1 :=  TRUE ?  bigintExpr(1_) : 2_; ok := ok and big1 = 1_;
21831    big1 := FALSE ?  bigintExpr(1_) : 2_; ok := ok and big1 = 2_;
21832    big1 :=  TRUE ?  bigintExpr(1_) : bigintExpr(2_); ok := ok and big1 = 1_;
21833    big1 := FALSE ?  bigintExpr(1_) : bigintExpr(2_); ok := ok and big1 = 2_;
21834    big1 := boolExpr( TRUE) ?  1_ : 2_; ok := ok and big1 = 1_;
21835    big1 := boolExpr(FALSE) ?  1_ : 2_; ok := ok and big1 = 2_;
21836    big1 := boolExpr( TRUE) ?  1_ : bigintExpr(2_); ok := ok and big1 = 1_;
21837    big1 := boolExpr(FALSE) ?  1_ : bigintExpr(2_); ok := ok and big1 = 2_;
21838    big1 := boolExpr( TRUE) ?  bigintExpr(1_) : 2_; ok := ok and big1 = 1_;
21839    big1 := boolExpr(FALSE) ?  bigintExpr(1_) : 2_; ok := ok and big1 = 2_;
21840    big1 := boolExpr( TRUE) ?  bigintExpr(1_) : bigintExpr(2_); ok := ok and big1 = 1_;
21841    big1 := boolExpr(FALSE) ?  bigintExpr(1_) : bigintExpr(2_); ok := ok and big1 = 2_;
21842    if not ok then
21843      writeln(" ***** The ternary operator ? : does not work correct. (2)");
21844      okay := FALSE;
21845    end if;
21846
21847    if okay then
21848      writeln("The ternary operator ? : works correct for bigInteger.");
21849    else
21850      writeln(" ***** The ternary operator ? : does not work correct.");
21851    end if;
21852  end func;
21853
21854
21855const func string: randDigitStri (in integer: length) is func
21856  result
21857    var string: digitStri is "";
21858  local
21859    var integer: pos is 0;
21860  begin
21861    digitStri := " " mult length;
21862    digitStri @:= [1] rand('1', '9');
21863    for pos range 2 to length do
21864      digitStri @:= [pos] rand('0', '9');
21865    end for;
21866  end func;
21867
21868
21869const proc: testConversion (in integer: length, in integer: count) is func
21870  local
21871    var integer: number is 0;
21872    var string: stri is "";
21873  begin
21874    if rand(FALSE, TRUE) then
21875      stri := randDigitStri(length);
21876    else
21877      stri := "-" & randDigitStri(length);
21878    end if;
21879    for number range 1 to count do
21880      # ignore(bigInteger parse stri);
21881      if str(bigInteger parse stri) <> stri then
21882        writeln(" **** Conversion error with " <& stri);
21883      end if;
21884    end for;
21885  end func;
21886
21887
21888const proc: testConversion (in integer: count) is func
21889  local
21890    var integer: length is 0;
21891  begin
21892    for length range 9990 to 10000 do
21893      testConversion (length, count);
21894      # writeln(length);
21895    end for;
21896  end func;
21897
21898
21899const proc: main is func
21900  begin
21901    writeln;
21902    chkLiteral;
21903    chkStringConv;
21904    chkRadix;
21905    chkOrd;
21906    chkBigOrdWithBigMod;
21907    chkConv;
21908    chkBytesBe;
21909    chkBytesLe;
21910    chkBytesBe2BigInt;
21911    chkBytesLe2BigInt;
21912    chkNegate;
21913    chkPlus;
21914    chkSucc;
21915    chkPred;
21916    chkIncr;
21917    chkDecr;
21918    chkAddition;
21919    chkAddAssign;
21920    chkSubtraction;
21921    chkSubtractAssign;
21922    chkMultiplication;
21923    chkMultAssign;
21924    chkDivision;
21925    chkRemainder;
21926    chkDivRem;
21927    chkModDivision;
21928    chkModulo;
21929    chkPower;
21930    chkFactorial;
21931    chkBinom;
21932    chkCompare;
21933    chkAbs;
21934    chkOdd;
21935    chkLog2;
21936    chkLog10;
21937    chkBitLength;
21938    chkLowestSetBit;
21939    chkLShift;
21940    chkRShift;
21941    chkSqrt;
21942    chkConstants;
21943    chkAssign;
21944    checkTernary;
21945    # testConversion(10);
21946  end func;
21947