Enable testing 'Natural' type in TEST=arith011
[ghc.git] / testsuite / tests / numeric / should_run / arith011.stdout
1 --------------------------------
2 --Testing Int
3 --------------------------------
4 testBounded
5 (2147483647,-2147483648,-2147483647)
6 (2147483646,2147483647,-2147483648)
7 testEnum
8 [0,1,2,3,4,5,6,7,8,9]
9 [0,2,4,6,8,10,12,14,16,18]
10 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
11 [0,2,4,6,8,10,12,14,16,18,20]
12 testReadShow
13 [-3,-2,-1,0,1,2,3]
14 [-3,-2,-1,0,1,2,3]
15 testEq
16 -3 == -3 = True
17 -3 == -2 = False
18 -3 == -1 = False
19 -3 == 0 = False
20 -3 == 1 = False
21 -3 == 2 = False
22 -3 == 3 = False
23  
24 -2 == -3 = False
25 -2 == -2 = True
26 -2 == -1 = False
27 -2 == 0 = False
28 -2 == 1 = False
29 -2 == 2 = False
30 -2 == 3 = False
31  
32 -1 == -3 = False
33 -1 == -2 = False
34 -1 == -1 = True
35 -1 == 0 = False
36 -1 == 1 = False
37 -1 == 2 = False
38 -1 == 3 = False
39  
40 0 == -3 = False
41 0 == -2 = False
42 0 == -1 = False
43 0 == 0 = True
44 0 == 1 = False
45 0 == 2 = False
46 0 == 3 = False
47  
48 1 == -3 = False
49 1 == -2 = False
50 1 == -1 = False
51 1 == 0 = False
52 1 == 1 = True
53 1 == 2 = False
54 1 == 3 = False
55  
56 2 == -3 = False
57 2 == -2 = False
58 2 == -1 = False
59 2 == 0 = False
60 2 == 1 = False
61 2 == 2 = True
62 2 == 3 = False
63  
64 3 == -3 = False
65 3 == -2 = False
66 3 == -1 = False
67 3 == 0 = False
68 3 == 1 = False
69 3 == 2 = False
70 3 == 3 = True
71  
72 #
73 -3 /= -3 = False
74 -3 /= -2 = True
75 -3 /= -1 = True
76 -3 /= 0 = True
77 -3 /= 1 = True
78 -3 /= 2 = True
79 -3 /= 3 = True
80  
81 -2 /= -3 = True
82 -2 /= -2 = False
83 -2 /= -1 = True
84 -2 /= 0 = True
85 -2 /= 1 = True
86 -2 /= 2 = True
87 -2 /= 3 = True
88  
89 -1 /= -3 = True
90 -1 /= -2 = True
91 -1 /= -1 = False
92 -1 /= 0 = True
93 -1 /= 1 = True
94 -1 /= 2 = True
95 -1 /= 3 = True
96  
97 0 /= -3 = True
98 0 /= -2 = True
99 0 /= -1 = True
100 0 /= 0 = False
101 0 /= 1 = True
102 0 /= 2 = True
103 0 /= 3 = True
104  
105 1 /= -3 = True
106 1 /= -2 = True
107 1 /= -1 = True
108 1 /= 0 = True
109 1 /= 1 = False
110 1 /= 2 = True
111 1 /= 3 = True
112  
113 2 /= -3 = True
114 2 /= -2 = True
115 2 /= -1 = True
116 2 /= 0 = True
117 2 /= 1 = True
118 2 /= 2 = False
119 2 /= 3 = True
120  
121 3 /= -3 = True
122 3 /= -2 = True
123 3 /= -1 = True
124 3 /= 0 = True
125 3 /= 1 = True
126 3 /= 2 = True
127 3 /= 3 = False
128  
129 #
130 testOrd
131 -3 <= -3 = True
132 -3 <= -2 = True
133 -3 <= -1 = True
134 -3 <= 0 = True
135 -3 <= 1 = True
136 -3 <= 2 = True
137 -3 <= 3 = True
138  
139 -2 <= -3 = False
140 -2 <= -2 = True
141 -2 <= -1 = True
142 -2 <= 0 = True
143 -2 <= 1 = True
144 -2 <= 2 = True
145 -2 <= 3 = True
146  
147 -1 <= -3 = False
148 -1 <= -2 = False
149 -1 <= -1 = True
150 -1 <= 0 = True
151 -1 <= 1 = True
152 -1 <= 2 = True
153 -1 <= 3 = True
154  
155 0 <= -3 = False
156 0 <= -2 = False
157 0 <= -1 = False
158 0 <= 0 = True
159 0 <= 1 = True
160 0 <= 2 = True
161 0 <= 3 = True
162  
163 1 <= -3 = False
164 1 <= -2 = False
165 1 <= -1 = False
166 1 <= 0 = False
167 1 <= 1 = True
168 1 <= 2 = True
169 1 <= 3 = True
170  
171 2 <= -3 = False
172 2 <= -2 = False
173 2 <= -1 = False
174 2 <= 0 = False
175 2 <= 1 = False
176 2 <= 2 = True
177 2 <= 3 = True
178  
179 3 <= -3 = False
180 3 <= -2 = False
181 3 <= -1 = False
182 3 <= 0 = False
183 3 <= 1 = False
184 3 <= 2 = False
185 3 <= 3 = True
186  
187 #
188 -3 <  -3 = False
189 -3 <  -2 = True
190 -3 <  -1 = True
191 -3 <  0 = True
192 -3 <  1 = True
193 -3 <  2 = True
194 -3 <  3 = True
195  
196 -2 <  -3 = False
197 -2 <  -2 = False
198 -2 <  -1 = True
199 -2 <  0 = True
200 -2 <  1 = True
201 -2 <  2 = True
202 -2 <  3 = True
203  
204 -1 <  -3 = False
205 -1 <  -2 = False
206 -1 <  -1 = False
207 -1 <  0 = True
208 -1 <  1 = True
209 -1 <  2 = True
210 -1 <  3 = True
211  
212 0 <  -3 = False
213 0 <  -2 = False
214 0 <  -1 = False
215 0 <  0 = False
216 0 <  1 = True
217 0 <  2 = True
218 0 <  3 = True
219  
220 1 <  -3 = False
221 1 <  -2 = False
222 1 <  -1 = False
223 1 <  0 = False
224 1 <  1 = False
225 1 <  2 = True
226 1 <  3 = True
227  
228 2 <  -3 = False
229 2 <  -2 = False
230 2 <  -1 = False
231 2 <  0 = False
232 2 <  1 = False
233 2 <  2 = False
234 2 <  3 = True
235  
236 3 <  -3 = False
237 3 <  -2 = False
238 3 <  -1 = False
239 3 <  0 = False
240 3 <  1 = False
241 3 <  2 = False
242 3 <  3 = False
243  
244 #
245 -3 >  -3 = False
246 -3 >  -2 = False
247 -3 >  -1 = False
248 -3 >  0 = False
249 -3 >  1 = False
250 -3 >  2 = False
251 -3 >  3 = False
252  
253 -2 >  -3 = True
254 -2 >  -2 = False
255 -2 >  -1 = False
256 -2 >  0 = False
257 -2 >  1 = False
258 -2 >  2 = False
259 -2 >  3 = False
260  
261 -1 >  -3 = True
262 -1 >  -2 = True
263 -1 >  -1 = False
264 -1 >  0 = False
265 -1 >  1 = False
266 -1 >  2 = False
267 -1 >  3 = False
268  
269 0 >  -3 = True
270 0 >  -2 = True
271 0 >  -1 = True
272 0 >  0 = False
273 0 >  1 = False
274 0 >  2 = False
275 0 >  3 = False
276  
277 1 >  -3 = True
278 1 >  -2 = True
279 1 >  -1 = True
280 1 >  0 = True
281 1 >  1 = False
282 1 >  2 = False
283 1 >  3 = False
284  
285 2 >  -3 = True
286 2 >  -2 = True
287 2 >  -1 = True
288 2 >  0 = True
289 2 >  1 = True
290 2 >  2 = False
291 2 >  3 = False
292  
293 3 >  -3 = True
294 3 >  -2 = True
295 3 >  -1 = True
296 3 >  0 = True
297 3 >  1 = True
298 3 >  2 = True
299 3 >  3 = False
300  
301 #
302 -3 >= -3 = True
303 -3 >= -2 = False
304 -3 >= -1 = False
305 -3 >= 0 = False
306 -3 >= 1 = False
307 -3 >= 2 = False
308 -3 >= 3 = False
309  
310 -2 >= -3 = True
311 -2 >= -2 = True
312 -2 >= -1 = False
313 -2 >= 0 = False
314 -2 >= 1 = False
315 -2 >= 2 = False
316 -2 >= 3 = False
317  
318 -1 >= -3 = True
319 -1 >= -2 = True
320 -1 >= -1 = True
321 -1 >= 0 = False
322 -1 >= 1 = False
323 -1 >= 2 = False
324 -1 >= 3 = False
325  
326 0 >= -3 = True
327 0 >= -2 = True
328 0 >= -1 = True
329 0 >= 0 = True
330 0 >= 1 = False
331 0 >= 2 = False
332 0 >= 3 = False
333  
334 1 >= -3 = True
335 1 >= -2 = True
336 1 >= -1 = True
337 1 >= 0 = True
338 1 >= 1 = True
339 1 >= 2 = False
340 1 >= 3 = False
341  
342 2 >= -3 = True
343 2 >= -2 = True
344 2 >= -1 = True
345 2 >= 0 = True
346 2 >= 1 = True
347 2 >= 2 = True
348 2 >= 3 = False
349  
350 3 >= -3 = True
351 3 >= -2 = True
352 3 >= -1 = True
353 3 >= 0 = True
354 3 >= 1 = True
355 3 >= 2 = True
356 3 >= 3 = True
357  
358 #
359 -3 `compare` -3 = EQ
360 -3 `compare` -2 = LT
361 -3 `compare` -1 = LT
362 -3 `compare` 0 = LT
363 -3 `compare` 1 = LT
364 -3 `compare` 2 = LT
365 -3 `compare` 3 = LT
366  
367 -2 `compare` -3 = GT
368 -2 `compare` -2 = EQ
369 -2 `compare` -1 = LT
370 -2 `compare` 0 = LT
371 -2 `compare` 1 = LT
372 -2 `compare` 2 = LT
373 -2 `compare` 3 = LT
374  
375 -1 `compare` -3 = GT
376 -1 `compare` -2 = GT
377 -1 `compare` -1 = EQ
378 -1 `compare` 0 = LT
379 -1 `compare` 1 = LT
380 -1 `compare` 2 = LT
381 -1 `compare` 3 = LT
382  
383 0 `compare` -3 = GT
384 0 `compare` -2 = GT
385 0 `compare` -1 = GT
386 0 `compare` 0 = EQ
387 0 `compare` 1 = LT
388 0 `compare` 2 = LT
389 0 `compare` 3 = LT
390  
391 1 `compare` -3 = GT
392 1 `compare` -2 = GT
393 1 `compare` -1 = GT
394 1 `compare` 0 = GT
395 1 `compare` 1 = EQ
396 1 `compare` 2 = LT
397 1 `compare` 3 = LT
398  
399 2 `compare` -3 = GT
400 2 `compare` -2 = GT
401 2 `compare` -1 = GT
402 2 `compare` 0 = GT
403 2 `compare` 1 = GT
404 2 `compare` 2 = EQ
405 2 `compare` 3 = LT
406  
407 3 `compare` -3 = GT
408 3 `compare` -2 = GT
409 3 `compare` -1 = GT
410 3 `compare` 0 = GT
411 3 `compare` 1 = GT
412 3 `compare` 2 = GT
413 3 `compare` 3 = EQ
414  
415 #
416 testNum
417 -3 + -3 = -6
418 -3 + -2 = -5
419 -3 + -1 = -4
420 -3 + 0 = -3
421 -3 + 1 = -2
422 -3 + 2 = -1
423 -3 + 3 = 0
424  
425 -2 + -3 = -5
426 -2 + -2 = -4
427 -2 + -1 = -3
428 -2 + 0 = -2
429 -2 + 1 = -1
430 -2 + 2 = 0
431 -2 + 3 = 1
432  
433 -1 + -3 = -4
434 -1 + -2 = -3
435 -1 + -1 = -2
436 -1 + 0 = -1
437 -1 + 1 = 0
438 -1 + 2 = 1
439 -1 + 3 = 2
440  
441 0 + -3 = -3
442 0 + -2 = -2
443 0 + -1 = -1
444 0 + 0 = 0
445 0 + 1 = 1
446 0 + 2 = 2
447 0 + 3 = 3
448  
449 1 + -3 = -2
450 1 + -2 = -1
451 1 + -1 = 0
452 1 + 0 = 1
453 1 + 1 = 2
454 1 + 2 = 3
455 1 + 3 = 4
456  
457 2 + -3 = -1
458 2 + -2 = 0
459 2 + -1 = 1
460 2 + 0 = 2
461 2 + 1 = 3
462 2 + 2 = 4
463 2 + 3 = 5
464  
465 3 + -3 = 0
466 3 + -2 = 1
467 3 + -1 = 2
468 3 + 0 = 3
469 3 + 1 = 4
470 3 + 2 = 5
471 3 + 3 = 6
472  
473 #
474 -3 - -3 = 0
475 -3 - -2 = -1
476 -3 - -1 = -2
477 -3 - 0 = -3
478 -3 - 1 = -4
479 -3 - 2 = -5
480 -3 - 3 = -6
481  
482 -2 - -3 = 1
483 -2 - -2 = 0
484 -2 - -1 = -1
485 -2 - 0 = -2
486 -2 - 1 = -3
487 -2 - 2 = -4
488 -2 - 3 = -5
489  
490 -1 - -3 = 2
491 -1 - -2 = 1
492 -1 - -1 = 0
493 -1 - 0 = -1
494 -1 - 1 = -2
495 -1 - 2 = -3
496 -1 - 3 = -4
497  
498 0 - -3 = 3
499 0 - -2 = 2
500 0 - -1 = 1
501 0 - 0 = 0
502 0 - 1 = -1
503 0 - 2 = -2
504 0 - 3 = -3
505  
506 1 - -3 = 4
507 1 - -2 = 3
508 1 - -1 = 2
509 1 - 0 = 1
510 1 - 1 = 0
511 1 - 2 = -1
512 1 - 3 = -2
513  
514 2 - -3 = 5
515 2 - -2 = 4
516 2 - -1 = 3
517 2 - 0 = 2
518 2 - 1 = 1
519 2 - 2 = 0
520 2 - 3 = -1
521  
522 3 - -3 = 6
523 3 - -2 = 5
524 3 - -1 = 4
525 3 - 0 = 3
526 3 - 1 = 2
527 3 - 2 = 1
528 3 - 3 = 0
529  
530 #
531 -3 * -3 = 9
532 -3 * -2 = 6
533 -3 * -1 = 3
534 -3 * 0 = 0
535 -3 * 1 = -3
536 -3 * 2 = -6
537 -3 * 3 = -9
538  
539 -2 * -3 = 6
540 -2 * -2 = 4
541 -2 * -1 = 2
542 -2 * 0 = 0
543 -2 * 1 = -2
544 -2 * 2 = -4
545 -2 * 3 = -6
546  
547 -1 * -3 = 3
548 -1 * -2 = 2
549 -1 * -1 = 1
550 -1 * 0 = 0
551 -1 * 1 = -1
552 -1 * 2 = -2
553 -1 * 3 = -3
554  
555 0 * -3 = 0
556 0 * -2 = 0
557 0 * -1 = 0
558 0 * 0 = 0
559 0 * 1 = 0
560 0 * 2 = 0
561 0 * 3 = 0
562  
563 1 * -3 = -3
564 1 * -2 = -2
565 1 * -1 = -1
566 1 * 0 = 0
567 1 * 1 = 1
568 1 * 2 = 2
569 1 * 3 = 3
570  
571 2 * -3 = -6
572 2 * -2 = -4
573 2 * -1 = -2
574 2 * 0 = 0
575 2 * 1 = 2
576 2 * 2 = 4
577 2 * 3 = 6
578  
579 3 * -3 = -9
580 3 * -2 = -6
581 3 * -1 = -3
582 3 * 0 = 0
583 3 * 1 = 3
584 3 * 2 = 6
585 3 * 3 = 9
586  
587 #
588 negate -3 = 3
589 negate -2 = 2
590 negate -1 = 1
591 negate 0 = 0
592 negate 1 = -1
593 negate 2 = -2
594 negate 3 = -3
595 #
596 testReal
597 toRational -3 = (-3) % 1
598 toRational -2 = (-2) % 1
599 toRational -1 = (-1) % 1
600 toRational 0 = 0 % 1
601 toRational 1 = 1 % 1
602 toRational 2 = 2 % 1
603 toRational 3 = 3 % 1
604 #
605 testIntegral
606 -3 `divMod`  -3 = (1,0)
607 -3 `divMod`  -2 = (1,-1)
608 -3 `divMod`  -1 = (3,0)
609 -3 `divMod`  0 = divide by zero
610 -3 `divMod`  1 = (-3,0)
611 -3 `divMod`  2 = (-2,1)
612 -3 `divMod`  3 = (-1,0)
613  
614 -2 `divMod`  -3 = (0,-2)
615 -2 `divMod`  -2 = (1,0)
616 -2 `divMod`  -1 = (2,0)
617 -2 `divMod`  0 = divide by zero
618 -2 `divMod`  1 = (-2,0)
619 -2 `divMod`  2 = (-1,0)
620 -2 `divMod`  3 = (-1,1)
621  
622 -1 `divMod`  -3 = (0,-1)
623 -1 `divMod`  -2 = (0,-1)
624 -1 `divMod`  -1 = (1,0)
625 -1 `divMod`  0 = divide by zero
626 -1 `divMod`  1 = (-1,0)
627 -1 `divMod`  2 = (-1,1)
628 -1 `divMod`  3 = (-1,2)
629  
630 0 `divMod`  -3 = (0,0)
631 0 `divMod`  -2 = (0,0)
632 0 `divMod`  -1 = (0,0)
633 0 `divMod`  0 = divide by zero
634 0 `divMod`  1 = (0,0)
635 0 `divMod`  2 = (0,0)
636 0 `divMod`  3 = (0,0)
637  
638 1 `divMod`  -3 = (-1,-2)
639 1 `divMod`  -2 = (-1,-1)
640 1 `divMod`  -1 = (-1,0)
641 1 `divMod`  0 = divide by zero
642 1 `divMod`  1 = (1,0)
643 1 `divMod`  2 = (0,1)
644 1 `divMod`  3 = (0,1)
645  
646 2 `divMod`  -3 = (-1,-1)
647 2 `divMod`  -2 = (-1,0)
648 2 `divMod`  -1 = (-2,0)
649 2 `divMod`  0 = divide by zero
650 2 `divMod`  1 = (2,0)
651 2 `divMod`  2 = (1,0)
652 2 `divMod`  3 = (0,2)
653  
654 3 `divMod`  -3 = (-1,0)
655 3 `divMod`  -2 = (-2,-1)
656 3 `divMod`  -1 = (-3,0)
657 3 `divMod`  0 = divide by zero
658 3 `divMod`  1 = (3,0)
659 3 `divMod`  2 = (1,1)
660 3 `divMod`  3 = (1,0)
661  
662 #
663 -3 `div`     -3 = 1
664 -3 `div`     -2 = 1
665 -3 `div`     -1 = 3
666 -3 `div`     0 = divide by zero
667 -3 `div`     1 = -3
668 -3 `div`     2 = -2
669 -3 `div`     3 = -1
670  
671 -2 `div`     -3 = 0
672 -2 `div`     -2 = 1
673 -2 `div`     -1 = 2
674 -2 `div`     0 = divide by zero
675 -2 `div`     1 = -2
676 -2 `div`     2 = -1
677 -2 `div`     3 = -1
678  
679 -1 `div`     -3 = 0
680 -1 `div`     -2 = 0
681 -1 `div`     -1 = 1
682 -1 `div`     0 = divide by zero
683 -1 `div`     1 = -1
684 -1 `div`     2 = -1
685 -1 `div`     3 = -1
686  
687 0 `div`     -3 = 0
688 0 `div`     -2 = 0
689 0 `div`     -1 = 0
690 0 `div`     0 = divide by zero
691 0 `div`     1 = 0
692 0 `div`     2 = 0
693 0 `div`     3 = 0
694  
695 1 `div`     -3 = -1
696 1 `div`     -2 = -1
697 1 `div`     -1 = -1
698 1 `div`     0 = divide by zero
699 1 `div`     1 = 1
700 1 `div`     2 = 0
701 1 `div`     3 = 0
702  
703 2 `div`     -3 = -1
704 2 `div`     -2 = -1
705 2 `div`     -1 = -2
706 2 `div`     0 = divide by zero
707 2 `div`     1 = 2
708 2 `div`     2 = 1
709 2 `div`     3 = 0
710  
711 3 `div`     -3 = -1
712 3 `div`     -2 = -2
713 3 `div`     -1 = -3
714 3 `div`     0 = divide by zero
715 3 `div`     1 = 3
716 3 `div`     2 = 1
717 3 `div`     3 = 1
718  
719 #
720 -3 `mod`     -3 = 0
721 -3 `mod`     -2 = -1
722 -3 `mod`     -1 = 0
723 -3 `mod`     0 = divide by zero
724 -3 `mod`     1 = 0
725 -3 `mod`     2 = 1
726 -3 `mod`     3 = 0
727  
728 -2 `mod`     -3 = -2
729 -2 `mod`     -2 = 0
730 -2 `mod`     -1 = 0
731 -2 `mod`     0 = divide by zero
732 -2 `mod`     1 = 0
733 -2 `mod`     2 = 0
734 -2 `mod`     3 = 1
735  
736 -1 `mod`     -3 = -1
737 -1 `mod`     -2 = -1
738 -1 `mod`     -1 = 0
739 -1 `mod`     0 = divide by zero
740 -1 `mod`     1 = 0
741 -1 `mod`     2 = 1
742 -1 `mod`     3 = 2
743  
744 0 `mod`     -3 = 0
745 0 `mod`     -2 = 0
746 0 `mod`     -1 = 0
747 0 `mod`     0 = divide by zero
748 0 `mod`     1 = 0
749 0 `mod`     2 = 0
750 0 `mod`     3 = 0
751  
752 1 `mod`     -3 = -2
753 1 `mod`     -2 = -1
754 1 `mod`     -1 = 0
755 1 `mod`     0 = divide by zero
756 1 `mod`     1 = 0
757 1 `mod`     2 = 1
758 1 `mod`     3 = 1
759  
760 2 `mod`     -3 = -1
761 2 `mod`     -2 = 0
762 2 `mod`     -1 = 0
763 2 `mod`     0 = divide by zero
764 2 `mod`     1 = 0
765 2 `mod`     2 = 0
766 2 `mod`     3 = 2
767  
768 3 `mod`     -3 = 0
769 3 `mod`     -2 = -1
770 3 `mod`     -1 = 0
771 3 `mod`     0 = divide by zero
772 3 `mod`     1 = 0
773 3 `mod`     2 = 1
774 3 `mod`     3 = 0
775  
776 #
777 -3 `quotRem` -3 = (1,0)
778 -3 `quotRem` -2 = (1,-1)
779 -3 `quotRem` -1 = (3,0)
780 -3 `quotRem` 0 = divide by zero
781 -3 `quotRem` 1 = (-3,0)
782 -3 `quotRem` 2 = (-1,-1)
783 -3 `quotRem` 3 = (-1,0)
784  
785 -2 `quotRem` -3 = (0,-2)
786 -2 `quotRem` -2 = (1,0)
787 -2 `quotRem` -1 = (2,0)
788 -2 `quotRem` 0 = divide by zero
789 -2 `quotRem` 1 = (-2,0)
790 -2 `quotRem` 2 = (-1,0)
791 -2 `quotRem` 3 = (0,-2)
792  
793 -1 `quotRem` -3 = (0,-1)
794 -1 `quotRem` -2 = (0,-1)
795 -1 `quotRem` -1 = (1,0)
796 -1 `quotRem` 0 = divide by zero
797 -1 `quotRem` 1 = (-1,0)
798 -1 `quotRem` 2 = (0,-1)
799 -1 `quotRem` 3 = (0,-1)
800  
801 0 `quotRem` -3 = (0,0)
802 0 `quotRem` -2 = (0,0)
803 0 `quotRem` -1 = (0,0)
804 0 `quotRem` 0 = divide by zero
805 0 `quotRem` 1 = (0,0)
806 0 `quotRem` 2 = (0,0)
807 0 `quotRem` 3 = (0,0)
808  
809 1 `quotRem` -3 = (0,1)
810 1 `quotRem` -2 = (0,1)
811 1 `quotRem` -1 = (-1,0)
812 1 `quotRem` 0 = divide by zero
813 1 `quotRem` 1 = (1,0)
814 1 `quotRem` 2 = (0,1)
815 1 `quotRem` 3 = (0,1)
816  
817 2 `quotRem` -3 = (0,2)
818 2 `quotRem` -2 = (-1,0)
819 2 `quotRem` -1 = (-2,0)
820 2 `quotRem` 0 = divide by zero
821 2 `quotRem` 1 = (2,0)
822 2 `quotRem` 2 = (1,0)
823 2 `quotRem` 3 = (0,2)
824  
825 3 `quotRem` -3 = (-1,0)
826 3 `quotRem` -2 = (-1,1)
827 3 `quotRem` -1 = (-3,0)
828 3 `quotRem` 0 = divide by zero
829 3 `quotRem` 1 = (3,0)
830 3 `quotRem` 2 = (1,1)
831 3 `quotRem` 3 = (1,0)
832  
833 #
834 -3 `quot`    -3 = 1
835 -3 `quot`    -2 = 1
836 -3 `quot`    -1 = 3
837 -3 `quot`    0 = divide by zero
838 -3 `quot`    1 = -3
839 -3 `quot`    2 = -1
840 -3 `quot`    3 = -1
841  
842 -2 `quot`    -3 = 0
843 -2 `quot`    -2 = 1
844 -2 `quot`    -1 = 2
845 -2 `quot`    0 = divide by zero
846 -2 `quot`    1 = -2
847 -2 `quot`    2 = -1
848 -2 `quot`    3 = 0
849  
850 -1 `quot`    -3 = 0
851 -1 `quot`    -2 = 0
852 -1 `quot`    -1 = 1
853 -1 `quot`    0 = divide by zero
854 -1 `quot`    1 = -1
855 -1 `quot`    2 = 0
856 -1 `quot`    3 = 0
857  
858 0 `quot`    -3 = 0
859 0 `quot`    -2 = 0
860 0 `quot`    -1 = 0
861 0 `quot`    0 = divide by zero
862 0 `quot`    1 = 0
863 0 `quot`    2 = 0
864 0 `quot`    3 = 0
865  
866 1 `quot`    -3 = 0
867 1 `quot`    -2 = 0
868 1 `quot`    -1 = -1
869 1 `quot`    0 = divide by zero
870 1 `quot`    1 = 1
871 1 `quot`    2 = 0
872 1 `quot`    3 = 0
873  
874 2 `quot`    -3 = 0
875 2 `quot`    -2 = -1
876 2 `quot`    -1 = -2
877 2 `quot`    0 = divide by zero
878 2 `quot`    1 = 2
879 2 `quot`    2 = 1
880 2 `quot`    3 = 0
881  
882 3 `quot`    -3 = -1
883 3 `quot`    -2 = -1
884 3 `quot`    -1 = -3
885 3 `quot`    0 = divide by zero
886 3 `quot`    1 = 3
887 3 `quot`    2 = 1
888 3 `quot`    3 = 1
889  
890 #
891 -3 `rem`     -3 = 0
892 -3 `rem`     -2 = -1
893 -3 `rem`     -1 = 0
894 -3 `rem`     0 = divide by zero
895 -3 `rem`     1 = 0
896 -3 `rem`     2 = -1
897 -3 `rem`     3 = 0
898  
899 -2 `rem`     -3 = -2
900 -2 `rem`     -2 = 0
901 -2 `rem`     -1 = 0
902 -2 `rem`     0 = divide by zero
903 -2 `rem`     1 = 0
904 -2 `rem`     2 = 0
905 -2 `rem`     3 = -2
906  
907 -1 `rem`     -3 = -1
908 -1 `rem`     -2 = -1
909 -1 `rem`     -1 = 0
910 -1 `rem`     0 = divide by zero
911 -1 `rem`     1 = 0
912 -1 `rem`     2 = -1
913 -1 `rem`     3 = -1
914  
915 0 `rem`     -3 = 0
916 0 `rem`     -2 = 0
917 0 `rem`     -1 = 0
918 0 `rem`     0 = divide by zero
919 0 `rem`     1 = 0
920 0 `rem`     2 = 0
921 0 `rem`     3 = 0
922  
923 1 `rem`     -3 = 1
924 1 `rem`     -2 = 1
925 1 `rem`     -1 = 0
926 1 `rem`     0 = divide by zero
927 1 `rem`     1 = 0
928 1 `rem`     2 = 1
929 1 `rem`     3 = 1
930  
931 2 `rem`     -3 = 2
932 2 `rem`     -2 = 0
933 2 `rem`     -1 = 0
934 2 `rem`     0 = divide by zero
935 2 `rem`     1 = 0
936 2 `rem`     2 = 0
937 2 `rem`     3 = 2
938  
939 3 `rem`     -3 = 0
940 3 `rem`     -2 = 1
941 3 `rem`     -1 = 0
942 3 `rem`     0 = divide by zero
943 3 `rem`     1 = 0
944 3 `rem`     2 = 1
945 3 `rem`     3 = 0
946  
947 #
948 testConversions
949 Integer : [-2147483648,0,2147483647]
950 Int     : [-2147483648,0,2147483647]
951 Int8    : [0,0,-1]
952 Int16   : [0,0,-1]
953 Int32   : [-2147483648,0,2147483647]
954 Int64   : [-2147483648,0,2147483647]
955 Word8   : [0,0,255]
956 Word16  : [0,0,65535]
957 Word32  : [2147483648,0,2147483647]
958 Word64  : [18446744071562067968,0,2147483647]
959 testBits
960 -3 .&.   -3 = -3
961 -3 .&.   -2 = -4
962 -3 .&.   -1 = -3
963 -3 .&.   0 = 0
964 -3 .&.   1 = 1
965 -3 .&.   2 = 0
966 -3 .&.   3 = 1
967  
968 -2 .&.   -3 = -4
969 -2 .&.   -2 = -2
970 -2 .&.   -1 = -2
971 -2 .&.   0 = 0
972 -2 .&.   1 = 0
973 -2 .&.   2 = 2
974 -2 .&.   3 = 2
975  
976 -1 .&.   -3 = -3
977 -1 .&.   -2 = -2
978 -1 .&.   -1 = -1
979 -1 .&.   0 = 0
980 -1 .&.   1 = 1
981 -1 .&.   2 = 2
982 -1 .&.   3 = 3
983  
984 0 .&.   -3 = 0
985 0 .&.   -2 = 0
986 0 .&.   -1 = 0
987 0 .&.   0 = 0
988 0 .&.   1 = 0
989 0 .&.   2 = 0
990 0 .&.   3 = 0
991  
992 1 .&.   -3 = 1
993 1 .&.   -2 = 0
994 1 .&.   -1 = 1
995 1 .&.   0 = 0
996 1 .&.   1 = 1
997 1 .&.   2 = 0
998 1 .&.   3 = 1
999  
1000 2 .&.   -3 = 0
1001 2 .&.   -2 = 2
1002 2 .&.   -1 = 2
1003 2 .&.   0 = 0
1004 2 .&.   1 = 0
1005 2 .&.   2 = 2
1006 2 .&.   3 = 2
1007  
1008 3 .&.   -3 = 1
1009 3 .&.   -2 = 2
1010 3 .&.   -1 = 3
1011 3 .&.   0 = 0
1012 3 .&.   1 = 1
1013 3 .&.   2 = 2
1014 3 .&.   3 = 3
1015  
1016 #
1017 -3 .|.   -3 = -3
1018 -3 .|.   -2 = -1
1019 -3 .|.   -1 = -1
1020 -3 .|.   0 = -3
1021 -3 .|.   1 = -3
1022 -3 .|.   2 = -1
1023 -3 .|.   3 = -1
1024  
1025 -2 .|.   -3 = -1
1026 -2 .|.   -2 = -2
1027 -2 .|.   -1 = -1
1028 -2 .|.   0 = -2
1029 -2 .|.   1 = -1
1030 -2 .|.   2 = -2
1031 -2 .|.   3 = -1
1032  
1033 -1 .|.   -3 = -1
1034 -1 .|.   -2 = -1
1035 -1 .|.   -1 = -1
1036 -1 .|.   0 = -1
1037 -1 .|.   1 = -1
1038 -1 .|.   2 = -1
1039 -1 .|.   3 = -1
1040  
1041 0 .|.   -3 = -3
1042 0 .|.   -2 = -2
1043 0 .|.   -1 = -1
1044 0 .|.   0 = 0
1045 0 .|.   1 = 1
1046 0 .|.   2 = 2
1047 0 .|.   3 = 3
1048  
1049 1 .|.   -3 = -3
1050 1 .|.   -2 = -1
1051 1 .|.   -1 = -1
1052 1 .|.   0 = 1
1053 1 .|.   1 = 1
1054 1 .|.   2 = 3
1055 1 .|.   3 = 3
1056  
1057 2 .|.   -3 = -1
1058 2 .|.   -2 = -2
1059 2 .|.   -1 = -1
1060 2 .|.   0 = 2
1061 2 .|.   1 = 3
1062 2 .|.   2 = 2
1063 2 .|.   3 = 3
1064  
1065 3 .|.   -3 = -1
1066 3 .|.   -2 = -1
1067 3 .|.   -1 = -1
1068 3 .|.   0 = 3
1069 3 .|.   1 = 3
1070 3 .|.   2 = 3
1071 3 .|.   3 = 3
1072  
1073 #
1074 -3 `xor` -3 = 0
1075 -3 `xor` -2 = 3
1076 -3 `xor` -1 = 2
1077 -3 `xor` 0 = -3
1078 -3 `xor` 1 = -4
1079 -3 `xor` 2 = -1
1080 -3 `xor` 3 = -2
1081  
1082 -2 `xor` -3 = 3
1083 -2 `xor` -2 = 0
1084 -2 `xor` -1 = 1
1085 -2 `xor` 0 = -2
1086 -2 `xor` 1 = -1
1087 -2 `xor` 2 = -4
1088 -2 `xor` 3 = -3
1089  
1090 -1 `xor` -3 = 2
1091 -1 `xor` -2 = 1
1092 -1 `xor` -1 = 0
1093 -1 `xor` 0 = -1
1094 -1 `xor` 1 = -2
1095 -1 `xor` 2 = -3
1096 -1 `xor` 3 = -4
1097  
1098 0 `xor` -3 = -3
1099 0 `xor` -2 = -2
1100 0 `xor` -1 = -1
1101 0 `xor` 0 = 0
1102 0 `xor` 1 = 1
1103 0 `xor` 2 = 2
1104 0 `xor` 3 = 3
1105  
1106 1 `xor` -3 = -4
1107 1 `xor` -2 = -1
1108 1 `xor` -1 = -2
1109 1 `xor` 0 = 1
1110 1 `xor` 1 = 0
1111 1 `xor` 2 = 3
1112 1 `xor` 3 = 2
1113  
1114 2 `xor` -3 = -1
1115 2 `xor` -2 = -4
1116 2 `xor` -1 = -3
1117 2 `xor` 0 = 2
1118 2 `xor` 1 = 3
1119 2 `xor` 2 = 0
1120 2 `xor` 3 = 1
1121  
1122 3 `xor` -3 = -2
1123 3 `xor` -2 = -3
1124 3 `xor` -1 = -4
1125 3 `xor` 0 = 3
1126 3 `xor` 1 = 2
1127 3 `xor` 2 = 1
1128 3 `xor` 3 = 0
1129  
1130 #
1131 complement -3 = 2
1132 complement -2 = 1
1133 complement -1 = 0
1134 complement 0 = -1
1135 complement 1 = -2
1136 complement 2 = -3
1137 complement 3 = -4
1138 #
1139 -3 `shiftL` 0 = -3
1140 -3 `shiftL` 1 = -6
1141 -3 `shiftL` 2 = -12
1142 -3 `shiftL` 3 = -24
1143 -3 `shiftL` 32 = 0
1144 -3 `shiftL` 64 = 0
1145  
1146 -2 `shiftL` 0 = -2
1147 -2 `shiftL` 1 = -4
1148 -2 `shiftL` 2 = -8
1149 -2 `shiftL` 3 = -16
1150 -2 `shiftL` 32 = 0
1151 -2 `shiftL` 64 = 0
1152  
1153 -1 `shiftL` 0 = -1
1154 -1 `shiftL` 1 = -2
1155 -1 `shiftL` 2 = -4
1156 -1 `shiftL` 3 = -8
1157 -1 `shiftL` 32 = 0
1158 -1 `shiftL` 64 = 0
1159  
1160 0 `shiftL` 0 = 0
1161 0 `shiftL` 1 = 0
1162 0 `shiftL` 2 = 0
1163 0 `shiftL` 3 = 0
1164 0 `shiftL` 32 = 0
1165 0 `shiftL` 64 = 0
1166  
1167 1 `shiftL` 0 = 1
1168 1 `shiftL` 1 = 2
1169 1 `shiftL` 2 = 4
1170 1 `shiftL` 3 = 8
1171 1 `shiftL` 32 = 0
1172 1 `shiftL` 64 = 0
1173  
1174 2 `shiftL` 0 = 2
1175 2 `shiftL` 1 = 4
1176 2 `shiftL` 2 = 8
1177 2 `shiftL` 3 = 16
1178 2 `shiftL` 32 = 0
1179 2 `shiftL` 64 = 0
1180  
1181 3 `shiftL` 0 = 3
1182 3 `shiftL` 1 = 6
1183 3 `shiftL` 2 = 12
1184 3 `shiftL` 3 = 24
1185 3 `shiftL` 32 = 0
1186 3 `shiftL` 64 = 0
1187  
1188 #
1189 -3 `shiftR` 0 = -3
1190 -3 `shiftR` 1 = -2
1191 -3 `shiftR` 2 = -1
1192 -3 `shiftR` 3 = -1
1193 -3 `shiftR` 32 = -1
1194 -3 `shiftR` 64 = -1
1195  
1196 -2 `shiftR` 0 = -2
1197 -2 `shiftR` 1 = -1
1198 -2 `shiftR` 2 = -1
1199 -2 `shiftR` 3 = -1
1200 -2 `shiftR` 32 = -1
1201 -2 `shiftR` 64 = -1
1202  
1203 -1 `shiftR` 0 = -1
1204 -1 `shiftR` 1 = -1
1205 -1 `shiftR` 2 = -1
1206 -1 `shiftR` 3 = -1
1207 -1 `shiftR` 32 = -1
1208 -1 `shiftR` 64 = -1
1209  
1210 0 `shiftR` 0 = 0
1211 0 `shiftR` 1 = 0
1212 0 `shiftR` 2 = 0
1213 0 `shiftR` 3 = 0
1214 0 `shiftR` 32 = 0
1215 0 `shiftR` 64 = 0
1216  
1217 1 `shiftR` 0 = 1
1218 1 `shiftR` 1 = 0
1219 1 `shiftR` 2 = 0
1220 1 `shiftR` 3 = 0
1221 1 `shiftR` 32 = 0
1222 1 `shiftR` 64 = 0
1223  
1224 2 `shiftR` 0 = 2
1225 2 `shiftR` 1 = 1
1226 2 `shiftR` 2 = 0
1227 2 `shiftR` 3 = 0
1228 2 `shiftR` 32 = 0
1229 2 `shiftR` 64 = 0
1230  
1231 3 `shiftR` 0 = 3
1232 3 `shiftR` 1 = 1
1233 3 `shiftR` 2 = 0
1234 3 `shiftR` 3 = 0
1235 3 `shiftR` 32 = 0
1236 3 `shiftR` 64 = 0
1237  
1238 #
1239 -3 `rotate` -3 = -1073741825
1240 -3 `rotate` -2 = 2147483647
1241 -3 `rotate` -1 = -2
1242 -3 `rotate` 0 = -3
1243 -3 `rotate` 1 = -5
1244 -3 `rotate` 2 = -9
1245 -3 `rotate` 3 = -17
1246 -3 `rotate` -64 = -3
1247 -3 `rotate` -32 = -3
1248 -3 `rotate` 32 = -3
1249 -3 `rotate` 64 = -3
1250  
1251 -2 `rotate` -3 = -536870913
1252 -2 `rotate` -2 = -1073741825
1253 -2 `rotate` -1 = 2147483647
1254 -2 `rotate` 0 = -2
1255 -2 `rotate` 1 = -3
1256 -2 `rotate` 2 = -5
1257 -2 `rotate` 3 = -9
1258 -2 `rotate` -64 = -2
1259 -2 `rotate` -32 = -2
1260 -2 `rotate` 32 = -2
1261 -2 `rotate` 64 = -2
1262  
1263 -1 `rotate` -3 = -1
1264 -1 `rotate` -2 = -1
1265 -1 `rotate` -1 = -1
1266 -1 `rotate` 0 = -1
1267 -1 `rotate` 1 = -1
1268 -1 `rotate` 2 = -1
1269 -1 `rotate` 3 = -1
1270 -1 `rotate` -64 = -1
1271 -1 `rotate` -32 = -1
1272 -1 `rotate` 32 = -1
1273 -1 `rotate` 64 = -1
1274  
1275 0 `rotate` -3 = 0
1276 0 `rotate` -2 = 0
1277 0 `rotate` -1 = 0
1278 0 `rotate` 0 = 0
1279 0 `rotate` 1 = 0
1280 0 `rotate` 2 = 0
1281 0 `rotate` 3 = 0
1282 0 `rotate` -64 = 0
1283 0 `rotate` -32 = 0
1284 0 `rotate` 32 = 0
1285 0 `rotate` 64 = 0
1286  
1287 1 `rotate` -3 = 536870912
1288 1 `rotate` -2 = 1073741824
1289 1 `rotate` -1 = -2147483648
1290 1 `rotate` 0 = 1
1291 1 `rotate` 1 = 2
1292 1 `rotate` 2 = 4
1293 1 `rotate` 3 = 8
1294 1 `rotate` -64 = 1
1295 1 `rotate` -32 = 1
1296 1 `rotate` 32 = 1
1297 1 `rotate` 64 = 1
1298  
1299 2 `rotate` -3 = 1073741824
1300 2 `rotate` -2 = -2147483648
1301 2 `rotate` -1 = 1
1302 2 `rotate` 0 = 2
1303 2 `rotate` 1 = 4
1304 2 `rotate` 2 = 8
1305 2 `rotate` 3 = 16
1306 2 `rotate` -64 = 2
1307 2 `rotate` -32 = 2
1308 2 `rotate` 32 = 2
1309 2 `rotate` 64 = 2
1310  
1311 3 `rotate` -3 = 1610612736
1312 3 `rotate` -2 = -1073741824
1313 3 `rotate` -1 = -2147483647
1314 3 `rotate` 0 = 3
1315 3 `rotate` 1 = 6
1316 3 `rotate` 2 = 12
1317 3 `rotate` 3 = 24
1318 3 `rotate` -64 = 3
1319 3 `rotate` -32 = 3
1320 3 `rotate` 32 = 3
1321 3 `rotate` 64 = 3
1322  
1323 #
1324 bit 0 = 1
1325 bit 1 = 2
1326 bit 2 = 4
1327 bit 3 = 8
1328 #
1329 -3 `setBit` 0 = -3
1330 -3 `setBit` 1 = -1
1331 -3 `setBit` 2 = -3
1332 -3 `setBit` 3 = -3
1333 -3 `setBit` 32 = -3
1334 -3 `setBit` 64 = -3
1335  
1336 -2 `setBit` 0 = -1
1337 -2 `setBit` 1 = -2
1338 -2 `setBit` 2 = -2
1339 -2 `setBit` 3 = -2
1340 -2 `setBit` 32 = -2
1341 -2 `setBit` 64 = -2
1342  
1343 -1 `setBit` 0 = -1
1344 -1 `setBit` 1 = -1
1345 -1 `setBit` 2 = -1
1346 -1 `setBit` 3 = -1
1347 -1 `setBit` 32 = -1
1348 -1 `setBit` 64 = -1
1349  
1350 0 `setBit` 0 = 1
1351 0 `setBit` 1 = 2
1352 0 `setBit` 2 = 4
1353 0 `setBit` 3 = 8
1354 0 `setBit` 32 = 0
1355 0 `setBit` 64 = 0
1356  
1357 1 `setBit` 0 = 1
1358 1 `setBit` 1 = 3
1359 1 `setBit` 2 = 5
1360 1 `setBit` 3 = 9
1361 1 `setBit` 32 = 1
1362 1 `setBit` 64 = 1
1363  
1364 2 `setBit` 0 = 3
1365 2 `setBit` 1 = 2
1366 2 `setBit` 2 = 6
1367 2 `setBit` 3 = 10
1368 2 `setBit` 32 = 2
1369 2 `setBit` 64 = 2
1370  
1371 3 `setBit` 0 = 3
1372 3 `setBit` 1 = 3
1373 3 `setBit` 2 = 7
1374 3 `setBit` 3 = 11
1375 3 `setBit` 32 = 3
1376 3 `setBit` 64 = 3
1377  
1378 #
1379 -3 `clearBit` 0 = -4
1380 -3 `clearBit` 1 = -3
1381 -3 `clearBit` 2 = -7
1382 -3 `clearBit` 3 = -11
1383 -3 `clearBit` 32 = -3
1384 -3 `clearBit` 64 = -3
1385  
1386 -2 `clearBit` 0 = -2
1387 -2 `clearBit` 1 = -4
1388 -2 `clearBit` 2 = -6
1389 -2 `clearBit` 3 = -10
1390 -2 `clearBit` 32 = -2
1391 -2 `clearBit` 64 = -2
1392  
1393 -1 `clearBit` 0 = -2
1394 -1 `clearBit` 1 = -3
1395 -1 `clearBit` 2 = -5
1396 -1 `clearBit` 3 = -9
1397 -1 `clearBit` 32 = -1
1398 -1 `clearBit` 64 = -1
1399  
1400 0 `clearBit` 0 = 0
1401 0 `clearBit` 1 = 0
1402 0 `clearBit` 2 = 0
1403 0 `clearBit` 3 = 0
1404 0 `clearBit` 32 = 0
1405 0 `clearBit` 64 = 0
1406  
1407 1 `clearBit` 0 = 0
1408 1 `clearBit` 1 = 1
1409 1 `clearBit` 2 = 1
1410 1 `clearBit` 3 = 1
1411 1 `clearBit` 32 = 1
1412 1 `clearBit` 64 = 1
1413  
1414 2 `clearBit` 0 = 2
1415 2 `clearBit` 1 = 0
1416 2 `clearBit` 2 = 2
1417 2 `clearBit` 3 = 2
1418 2 `clearBit` 32 = 2
1419 2 `clearBit` 64 = 2
1420  
1421 3 `clearBit` 0 = 2
1422 3 `clearBit` 1 = 1
1423 3 `clearBit` 2 = 3
1424 3 `clearBit` 3 = 3
1425 3 `clearBit` 32 = 3
1426 3 `clearBit` 64 = 3
1427  
1428 #
1429 -3 `complementBit` 0 = -4
1430 -3 `complementBit` 1 = -1
1431 -3 `complementBit` 2 = -7
1432 -3 `complementBit` 3 = -11
1433 -3 `complementBit` 32 = -3
1434 -3 `complementBit` 64 = -3
1435  
1436 -2 `complementBit` 0 = -1
1437 -2 `complementBit` 1 = -4
1438 -2 `complementBit` 2 = -6
1439 -2 `complementBit` 3 = -10
1440 -2 `complementBit` 32 = -2
1441 -2 `complementBit` 64 = -2
1442  
1443 -1 `complementBit` 0 = -2
1444 -1 `complementBit` 1 = -3
1445 -1 `complementBit` 2 = -5
1446 -1 `complementBit` 3 = -9
1447 -1 `complementBit` 32 = -1
1448 -1 `complementBit` 64 = -1
1449  
1450 0 `complementBit` 0 = 1
1451 0 `complementBit` 1 = 2
1452 0 `complementBit` 2 = 4
1453 0 `complementBit` 3 = 8
1454 0 `complementBit` 32 = 0
1455 0 `complementBit` 64 = 0
1456  
1457 1 `complementBit` 0 = 0
1458 1 `complementBit` 1 = 3
1459 1 `complementBit` 2 = 5
1460 1 `complementBit` 3 = 9
1461 1 `complementBit` 32 = 1
1462 1 `complementBit` 64 = 1
1463  
1464 2 `complementBit` 0 = 3
1465 2 `complementBit` 1 = 0
1466 2 `complementBit` 2 = 6
1467 2 `complementBit` 3 = 10
1468 2 `complementBit` 32 = 2
1469 2 `complementBit` 64 = 2
1470  
1471 3 `complementBit` 0 = 2
1472 3 `complementBit` 1 = 1
1473 3 `complementBit` 2 = 7
1474 3 `complementBit` 3 = 11
1475 3 `complementBit` 32 = 3
1476 3 `complementBit` 64 = 3
1477  
1478 #
1479 -3 `testBit` 0 = True
1480 -3 `testBit` 1 = False
1481 -3 `testBit` 2 = True
1482 -3 `testBit` 3 = True
1483 -3 `testBit` 32 = False
1484 -3 `testBit` 64 = False
1485  
1486 -2 `testBit` 0 = False
1487 -2 `testBit` 1 = True
1488 -2 `testBit` 2 = True
1489 -2 `testBit` 3 = True
1490 -2 `testBit` 32 = False
1491 -2 `testBit` 64 = False
1492  
1493 -1 `testBit` 0 = True
1494 -1 `testBit` 1 = True
1495 -1 `testBit` 2 = True
1496 -1 `testBit` 3 = True
1497 -1 `testBit` 32 = False
1498 -1 `testBit` 64 = False
1499  
1500 0 `testBit` 0 = False
1501 0 `testBit` 1 = False
1502 0 `testBit` 2 = False
1503 0 `testBit` 3 = False
1504 0 `testBit` 32 = False
1505 0 `testBit` 64 = False
1506  
1507 1 `testBit` 0 = True
1508 1 `testBit` 1 = False
1509 1 `testBit` 2 = False
1510 1 `testBit` 3 = False
1511 1 `testBit` 32 = False
1512 1 `testBit` 64 = False
1513  
1514 2 `testBit` 0 = False
1515 2 `testBit` 1 = True
1516 2 `testBit` 2 = False
1517 2 `testBit` 3 = False
1518 2 `testBit` 32 = False
1519 2 `testBit` 64 = False
1520  
1521 3 `testBit` 0 = True
1522 3 `testBit` 1 = True
1523 3 `testBit` 2 = False
1524 3 `testBit` 3 = False
1525 3 `testBit` 32 = False
1526 3 `testBit` 64 = False
1527  
1528 #
1529 bitSize -3 = 32
1530 bitSize -2 = 32
1531 bitSize -1 = 32
1532 bitSize 0 = 32
1533 bitSize 1 = 32
1534 bitSize 2 = 32
1535 bitSize 3 = 32
1536 #
1537 isSigned -3 = True
1538 isSigned -2 = True
1539 isSigned -1 = True
1540 isSigned 0 = True
1541 isSigned 1 = True
1542 isSigned 2 = True
1543 isSigned 3 = True
1544 #
1545 --------------------------------
1546 --Testing Int8
1547 --------------------------------
1548 testBounded
1549 (127,-128,-127)
1550 (126,127,-128)
1551 testEnum
1552 [0,1,2,3,4,5,6,7,8,9]
1553 [0,2,4,6,8,10,12,14,16,18]
1554 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
1555 [0,2,4,6,8,10,12,14,16,18,20]
1556 testReadShow
1557 [-3,-2,-1,0,1,2,3]
1558 [-3,-2,-1,0,1,2,3]
1559 testEq
1560 -3 == -3 = True
1561 -3 == -2 = False
1562 -3 == -1 = False
1563 -3 == 0 = False
1564 -3 == 1 = False
1565 -3 == 2 = False
1566 -3 == 3 = False
1567  
1568 -2 == -3 = False
1569 -2 == -2 = True
1570 -2 == -1 = False
1571 -2 == 0 = False
1572 -2 == 1 = False
1573 -2 == 2 = False
1574 -2 == 3 = False
1575  
1576 -1 == -3 = False
1577 -1 == -2 = False
1578 -1 == -1 = True
1579 -1 == 0 = False
1580 -1 == 1 = False
1581 -1 == 2 = False
1582 -1 == 3 = False
1583  
1584 0 == -3 = False
1585 0 == -2 = False
1586 0 == -1 = False
1587 0 == 0 = True
1588 0 == 1 = False
1589 0 == 2 = False
1590 0 == 3 = False
1591  
1592 1 == -3 = False
1593 1 == -2 = False
1594 1 == -1 = False
1595 1 == 0 = False
1596 1 == 1 = True
1597 1 == 2 = False
1598 1 == 3 = False
1599  
1600 2 == -3 = False
1601 2 == -2 = False
1602 2 == -1 = False
1603 2 == 0 = False
1604 2 == 1 = False
1605 2 == 2 = True
1606 2 == 3 = False
1607  
1608 3 == -3 = False
1609 3 == -2 = False
1610 3 == -1 = False
1611 3 == 0 = False
1612 3 == 1 = False
1613 3 == 2 = False
1614 3 == 3 = True
1615  
1616 #
1617 -3 /= -3 = False
1618 -3 /= -2 = True
1619 -3 /= -1 = True
1620 -3 /= 0 = True
1621 -3 /= 1 = True
1622 -3 /= 2 = True
1623 -3 /= 3 = True
1624  
1625 -2 /= -3 = True
1626 -2 /= -2 = False
1627 -2 /= -1 = True
1628 -2 /= 0 = True
1629 -2 /= 1 = True
1630 -2 /= 2 = True
1631 -2 /= 3 = True
1632  
1633 -1 /= -3 = True
1634 -1 /= -2 = True
1635 -1 /= -1 = False
1636 -1 /= 0 = True
1637 -1 /= 1 = True
1638 -1 /= 2 = True
1639 -1 /= 3 = True
1640  
1641 0 /= -3 = True
1642 0 /= -2 = True
1643 0 /= -1 = True
1644 0 /= 0 = False
1645 0 /= 1 = True
1646 0 /= 2 = True
1647 0 /= 3 = True
1648  
1649 1 /= -3 = True
1650 1 /= -2 = True
1651 1 /= -1 = True
1652 1 /= 0 = True
1653 1 /= 1 = False
1654 1 /= 2 = True
1655 1 /= 3 = True
1656  
1657 2 /= -3 = True
1658 2 /= -2 = True
1659 2 /= -1 = True
1660 2 /= 0 = True
1661 2 /= 1 = True
1662 2 /= 2 = False
1663 2 /= 3 = True
1664  
1665 3 /= -3 = True
1666 3 /= -2 = True
1667 3 /= -1 = True
1668 3 /= 0 = True
1669 3 /= 1 = True
1670 3 /= 2 = True
1671 3 /= 3 = False
1672  
1673 #
1674 testOrd
1675 -3 <= -3 = True
1676 -3 <= -2 = True
1677 -3 <= -1 = True
1678 -3 <= 0 = True
1679 -3 <= 1 = True
1680 -3 <= 2 = True
1681 -3 <= 3 = True
1682  
1683 -2 <= -3 = False
1684 -2 <= -2 = True
1685 -2 <= -1 = True
1686 -2 <= 0 = True
1687 -2 <= 1 = True
1688 -2 <= 2 = True
1689 -2 <= 3 = True
1690  
1691 -1 <= -3 = False
1692 -1 <= -2 = False
1693 -1 <= -1 = True
1694 -1 <= 0 = True
1695 -1 <= 1 = True
1696 -1 <= 2 = True
1697 -1 <= 3 = True
1698  
1699 0 <= -3 = False
1700 0 <= -2 = False
1701 0 <= -1 = False
1702 0 <= 0 = True
1703 0 <= 1 = True
1704 0 <= 2 = True
1705 0 <= 3 = True
1706  
1707 1 <= -3 = False
1708 1 <= -2 = False
1709 1 <= -1 = False
1710 1 <= 0 = False
1711 1 <= 1 = True
1712 1 <= 2 = True
1713 1 <= 3 = True
1714  
1715 2 <= -3 = False
1716 2 <= -2 = False
1717 2 <= -1 = False
1718 2 <= 0 = False
1719 2 <= 1 = False
1720 2 <= 2 = True
1721 2 <= 3 = True
1722  
1723 3 <= -3 = False
1724 3 <= -2 = False
1725 3 <= -1 = False
1726 3 <= 0 = False
1727 3 <= 1 = False
1728 3 <= 2 = False
1729 3 <= 3 = True
1730  
1731 #
1732 -3 <  -3 = False
1733 -3 <  -2 = True
1734 -3 <  -1 = True
1735 -3 <  0 = True
1736 -3 <  1 = True
1737 -3 <  2 = True
1738 -3 <  3 = True
1739  
1740 -2 <  -3 = False
1741 -2 <  -2 = False
1742 -2 <  -1 = True
1743 -2 <  0 = True
1744 -2 <  1 = True
1745 -2 <  2 = True
1746 -2 <  3 = True
1747  
1748 -1 <  -3 = False
1749 -1 <  -2 = False
1750 -1 <  -1 = False
1751 -1 <  0 = True
1752 -1 <  1 = True
1753 -1 <  2 = True
1754 -1 <  3 = True
1755  
1756 0 <  -3 = False
1757 0 <  -2 = False
1758 0 <  -1 = False
1759 0 <  0 = False
1760 0 <  1 = True
1761 0 <  2 = True
1762 0 <  3 = True
1763  
1764 1 <  -3 = False
1765 1 <  -2 = False
1766 1 <  -1 = False
1767 1 <  0 = False
1768 1 <  1 = False
1769 1 <  2 = True
1770 1 <  3 = True
1771  
1772 2 <  -3 = False
1773 2 <  -2 = False
1774 2 <  -1 = False
1775 2 <  0 = False
1776 2 <  1 = False
1777 2 <  2 = False
1778 2 <  3 = True
1779  
1780 3 <  -3 = False
1781 3 <  -2 = False
1782 3 <  -1 = False
1783 3 <  0 = False
1784 3 <  1 = False
1785 3 <  2 = False
1786 3 <  3 = False
1787  
1788 #
1789 -3 >  -3 = False
1790 -3 >  -2 = False
1791 -3 >  -1 = False
1792 -3 >  0 = False
1793 -3 >  1 = False
1794 -3 >  2 = False
1795 -3 >  3 = False
1796  
1797 -2 >  -3 = True
1798 -2 >  -2 = False
1799 -2 >  -1 = False
1800 -2 >  0 = False
1801 -2 >  1 = False
1802 -2 >  2 = False
1803 -2 >  3 = False
1804  
1805 -1 >  -3 = True
1806 -1 >  -2 = True
1807 -1 >  -1 = False
1808 -1 >  0 = False
1809 -1 >  1 = False
1810 -1 >  2 = False
1811 -1 >  3 = False
1812  
1813 0 >  -3 = True
1814 0 >  -2 = True
1815 0 >  -1 = True
1816 0 >  0 = False
1817 0 >  1 = False
1818 0 >  2 = False
1819 0 >  3 = False
1820  
1821 1 >  -3 = True
1822 1 >  -2 = True
1823 1 >  -1 = True
1824 1 >  0 = True
1825 1 >  1 = False
1826 1 >  2 = False
1827 1 >  3 = False
1828  
1829 2 >  -3 = True
1830 2 >  -2 = True
1831 2 >  -1 = True
1832 2 >  0 = True
1833 2 >  1 = True
1834 2 >  2 = False
1835 2 >  3 = False
1836  
1837 3 >  -3 = True
1838 3 >  -2 = True
1839 3 >  -1 = True
1840 3 >  0 = True
1841 3 >  1 = True
1842 3 >  2 = True
1843 3 >  3 = False
1844  
1845 #
1846 -3 >= -3 = True
1847 -3 >= -2 = False
1848 -3 >= -1 = False
1849 -3 >= 0 = False
1850 -3 >= 1 = False
1851 -3 >= 2 = False
1852 -3 >= 3 = False
1853  
1854 -2 >= -3 = True
1855 -2 >= -2 = True
1856 -2 >= -1 = False
1857 -2 >= 0 = False
1858 -2 >= 1 = False
1859 -2 >= 2 = False
1860 -2 >= 3 = False
1861  
1862 -1 >= -3 = True
1863 -1 >= -2 = True
1864 -1 >= -1 = True
1865 -1 >= 0 = False
1866 -1 >= 1 = False
1867 -1 >= 2 = False
1868 -1 >= 3 = False
1869  
1870 0 >= -3 = True
1871 0 >= -2 = True
1872 0 >= -1 = True
1873 0 >= 0 = True
1874 0 >= 1 = False
1875 0 >= 2 = False
1876 0 >= 3 = False
1877  
1878 1 >= -3 = True
1879 1 >= -2 = True
1880 1 >= -1 = True
1881 1 >= 0 = True
1882 1 >= 1 = True
1883 1 >= 2 = False
1884 1 >= 3 = False
1885  
1886 2 >= -3 = True
1887 2 >= -2 = True
1888 2 >= -1 = True
1889 2 >= 0 = True
1890 2 >= 1 = True
1891 2 >= 2 = True
1892 2 >= 3 = False
1893  
1894 3 >= -3 = True
1895 3 >= -2 = True
1896 3 >= -1 = True
1897 3 >= 0 = True
1898 3 >= 1 = True
1899 3 >= 2 = True
1900 3 >= 3 = True
1901  
1902 #
1903 -3 `compare` -3 = EQ
1904 -3 `compare` -2 = LT
1905 -3 `compare` -1 = LT
1906 -3 `compare` 0 = LT
1907 -3 `compare` 1 = LT
1908 -3 `compare` 2 = LT
1909 -3 `compare` 3 = LT
1910  
1911 -2 `compare` -3 = GT
1912 -2 `compare` -2 = EQ
1913 -2 `compare` -1 = LT
1914 -2 `compare` 0 = LT
1915 -2 `compare` 1 = LT
1916 -2 `compare` 2 = LT
1917 -2 `compare` 3 = LT
1918  
1919 -1 `compare` -3 = GT
1920 -1 `compare` -2 = GT
1921 -1 `compare` -1 = EQ
1922 -1 `compare` 0 = LT
1923 -1 `compare` 1 = LT
1924 -1 `compare` 2 = LT
1925 -1 `compare` 3 = LT
1926  
1927 0 `compare` -3 = GT
1928 0 `compare` -2 = GT
1929 0 `compare` -1 = GT
1930 0 `compare` 0 = EQ
1931 0 `compare` 1 = LT
1932 0 `compare` 2 = LT
1933 0 `compare` 3 = LT
1934  
1935 1 `compare` -3 = GT
1936 1 `compare` -2 = GT
1937 1 `compare` -1 = GT
1938 1 `compare` 0 = GT
1939 1 `compare` 1 = EQ
1940 1 `compare` 2 = LT
1941 1 `compare` 3 = LT
1942  
1943 2 `compare` -3 = GT
1944 2 `compare` -2 = GT
1945 2 `compare` -1 = GT
1946 2 `compare` 0 = GT
1947 2 `compare` 1 = GT
1948 2 `compare` 2 = EQ
1949 2 `compare` 3 = LT
1950  
1951 3 `compare` -3 = GT
1952 3 `compare` -2 = GT
1953 3 `compare` -1 = GT
1954 3 `compare` 0 = GT
1955 3 `compare` 1 = GT
1956 3 `compare` 2 = GT
1957 3 `compare` 3 = EQ
1958  
1959 #
1960 testNum
1961 -3 + -3 = -6
1962 -3 + -2 = -5
1963 -3 + -1 = -4
1964 -3 + 0 = -3
1965 -3 + 1 = -2
1966 -3 + 2 = -1
1967 -3 + 3 = 0
1968  
1969 -2 + -3 = -5
1970 -2 + -2 = -4
1971 -2 + -1 = -3
1972 -2 + 0 = -2
1973 -2 + 1 = -1
1974 -2 + 2 = 0
1975 -2 + 3 = 1
1976  
1977 -1 + -3 = -4
1978 -1 + -2 = -3
1979 -1 + -1 = -2
1980 -1 + 0 = -1
1981 -1 + 1 = 0
1982 -1 + 2 = 1
1983 -1 + 3 = 2
1984  
1985 0 + -3 = -3
1986 0 + -2 = -2
1987 0 + -1 = -1
1988 0 + 0 = 0
1989 0 + 1 = 1
1990 0 + 2 = 2
1991 0 + 3 = 3
1992  
1993 1 + -3 = -2
1994 1 + -2 = -1
1995 1 + -1 = 0
1996 1 + 0 = 1
1997 1 + 1 = 2
1998 1 + 2 = 3
1999 1 + 3 = 4
2000  
2001 2 + -3 = -1
2002 2 + -2 = 0
2003 2 + -1 = 1
2004 2 + 0 = 2
2005 2 + 1 = 3
2006 2 + 2 = 4
2007 2 + 3 = 5
2008  
2009 3 + -3 = 0
2010 3 + -2 = 1
2011 3 + -1 = 2
2012 3 + 0 = 3
2013 3 + 1 = 4
2014 3 + 2 = 5
2015 3 + 3 = 6
2016  
2017 #
2018 -3 - -3 = 0
2019 -3 - -2 = -1
2020 -3 - -1 = -2
2021 -3 - 0 = -3
2022 -3 - 1 = -4
2023 -3 - 2 = -5
2024 -3 - 3 = -6
2025  
2026 -2 - -3 = 1
2027 -2 - -2 = 0
2028 -2 - -1 = -1
2029 -2 - 0 = -2
2030 -2 - 1 = -3
2031 -2 - 2 = -4
2032 -2 - 3 = -5
2033  
2034 -1 - -3 = 2
2035 -1 - -2 = 1
2036 -1 - -1 = 0
2037 -1 - 0 = -1
2038 -1 - 1 = -2
2039 -1 - 2 = -3
2040 -1 - 3 = -4
2041  
2042 0 - -3 = 3
2043 0 - -2 = 2
2044 0 - -1 = 1
2045 0 - 0 = 0
2046 0 - 1 = -1
2047 0 - 2 = -2
2048 0 - 3 = -3
2049  
2050 1 - -3 = 4
2051 1 - -2 = 3
2052 1 - -1 = 2
2053 1 - 0 = 1
2054 1 - 1 = 0
2055 1 - 2 = -1
2056 1 - 3 = -2
2057  
2058 2 - -3 = 5
2059 2 - -2 = 4
2060 2 - -1 = 3
2061 2 - 0 = 2
2062 2 - 1 = 1
2063 2 - 2 = 0
2064 2 - 3 = -1
2065  
2066 3 - -3 = 6
2067 3 - -2 = 5
2068 3 - -1 = 4
2069 3 - 0 = 3
2070 3 - 1 = 2
2071 3 - 2 = 1
2072 3 - 3 = 0
2073  
2074 #
2075 -3 * -3 = 9
2076 -3 * -2 = 6
2077 -3 * -1 = 3
2078 -3 * 0 = 0
2079 -3 * 1 = -3
2080 -3 * 2 = -6
2081 -3 * 3 = -9
2082  
2083 -2 * -3 = 6
2084 -2 * -2 = 4
2085 -2 * -1 = 2
2086 -2 * 0 = 0
2087 -2 * 1 = -2
2088 -2 * 2 = -4
2089 -2 * 3 = -6
2090  
2091 -1 * -3 = 3
2092 -1 * -2 = 2
2093 -1 * -1 = 1
2094 -1 * 0 = 0
2095 -1 * 1 = -1
2096 -1 * 2 = -2
2097 -1 * 3 = -3
2098  
2099 0 * -3 = 0
2100 0 * -2 = 0
2101 0 * -1 = 0
2102 0 * 0 = 0
2103 0 * 1 = 0
2104 0 * 2 = 0
2105 0 * 3 = 0
2106  
2107 1 * -3 = -3
2108 1 * -2 = -2
2109 1 * -1 = -1
2110 1 * 0 = 0
2111 1 * 1 = 1
2112 1 * 2 = 2
2113 1 * 3 = 3
2114  
2115 2 * -3 = -6
2116 2 * -2 = -4
2117 2 * -1 = -2
2118 2 * 0 = 0
2119 2 * 1 = 2
2120 2 * 2 = 4
2121 2 * 3 = 6
2122  
2123 3 * -3 = -9
2124 3 * -2 = -6
2125 3 * -1 = -3
2126 3 * 0 = 0
2127 3 * 1 = 3
2128 3 * 2 = 6
2129 3 * 3 = 9
2130  
2131 #
2132 negate -3 = 3
2133 negate -2 = 2
2134 negate -1 = 1
2135 negate 0 = 0
2136 negate 1 = -1
2137 negate 2 = -2
2138 negate 3 = -3
2139 #
2140 testReal
2141 toRational -3 = (-3) % 1
2142 toRational -2 = (-2) % 1
2143 toRational -1 = (-1) % 1
2144 toRational 0 = 0 % 1
2145 toRational 1 = 1 % 1
2146 toRational 2 = 2 % 1
2147 toRational 3 = 3 % 1
2148 #
2149 testIntegral
2150 -3 `divMod`  -3 = (1,0)
2151 -3 `divMod`  -2 = (1,-1)
2152 -3 `divMod`  -1 = (3,0)
2153 -3 `divMod`  0 = divide by zero
2154 -3 `divMod`  1 = (-3,0)
2155 -3 `divMod`  2 = (-2,1)
2156 -3 `divMod`  3 = (-1,0)
2157  
2158 -2 `divMod`  -3 = (0,-2)
2159 -2 `divMod`  -2 = (1,0)
2160 -2 `divMod`  -1 = (2,0)
2161 -2 `divMod`  0 = divide by zero
2162 -2 `divMod`  1 = (-2,0)
2163 -2 `divMod`  2 = (-1,0)
2164 -2 `divMod`  3 = (-1,1)
2165  
2166 -1 `divMod`  -3 = (0,-1)
2167 -1 `divMod`  -2 = (0,-1)
2168 -1 `divMod`  -1 = (1,0)
2169 -1 `divMod`  0 = divide by zero
2170 -1 `divMod`  1 = (-1,0)
2171 -1 `divMod`  2 = (-1,1)
2172 -1 `divMod`  3 = (-1,2)
2173  
2174 0 `divMod`  -3 = (0,0)
2175 0 `divMod`  -2 = (0,0)
2176 0 `divMod`  -1 = (0,0)
2177 0 `divMod`  0 = divide by zero
2178 0 `divMod`  1 = (0,0)
2179 0 `divMod`  2 = (0,0)
2180 0 `divMod`  3 = (0,0)
2181  
2182 1 `divMod`  -3 = (-1,-2)
2183 1 `divMod`  -2 = (-1,-1)
2184 1 `divMod`  -1 = (-1,0)
2185 1 `divMod`  0 = divide by zero
2186 1 `divMod`  1 = (1,0)
2187 1 `divMod`  2 = (0,1)
2188 1 `divMod`  3 = (0,1)
2189  
2190 2 `divMod`  -3 = (-1,-1)
2191 2 `divMod`  -2 = (-1,0)
2192 2 `divMod`  -1 = (-2,0)
2193 2 `divMod`  0 = divide by zero
2194 2 `divMod`  1 = (2,0)
2195 2 `divMod`  2 = (1,0)
2196 2 `divMod`  3 = (0,2)
2197  
2198 3 `divMod`  -3 = (-1,0)
2199 3 `divMod`  -2 = (-2,-1)
2200 3 `divMod`  -1 = (-3,0)
2201 3 `divMod`  0 = divide by zero
2202 3 `divMod`  1 = (3,0)
2203 3 `divMod`  2 = (1,1)
2204 3 `divMod`  3 = (1,0)
2205  
2206 #
2207 -3 `div`     -3 = 1
2208 -3 `div`     -2 = 1
2209 -3 `div`     -1 = 3
2210 -3 `div`     0 = divide by zero
2211 -3 `div`     1 = -3
2212 -3 `div`     2 = -2
2213 -3 `div`     3 = -1
2214  
2215 -2 `div`     -3 = 0
2216 -2 `div`     -2 = 1
2217 -2 `div`     -1 = 2
2218 -2 `div`     0 = divide by zero
2219 -2 `div`     1 = -2
2220 -2 `div`     2 = -1
2221 -2 `div`     3 = -1
2222  
2223 -1 `div`     -3 = 0
2224 -1 `div`     -2 = 0
2225 -1 `div`     -1 = 1
2226 -1 `div`     0 = divide by zero
2227 -1 `div`     1 = -1
2228 -1 `div`     2 = -1
2229 -1 `div`     3 = -1
2230  
2231 0 `div`     -3 = 0
2232 0 `div`     -2 = 0
2233 0 `div`     -1 = 0
2234 0 `div`     0 = divide by zero
2235 0 `div`     1 = 0
2236 0 `div`     2 = 0
2237 0 `div`     3 = 0
2238  
2239 1 `div`     -3 = -1
2240 1 `div`     -2 = -1
2241 1 `div`     -1 = -1
2242 1 `div`     0 = divide by zero
2243 1 `div`     1 = 1
2244 1 `div`     2 = 0
2245 1 `div`     3 = 0
2246  
2247 2 `div`     -3 = -1
2248 2 `div`     -2 = -1
2249 2 `div`     -1 = -2
2250 2 `div`     0 = divide by zero
2251 2 `div`     1 = 2
2252 2 `div`     2 = 1
2253 2 `div`     3 = 0
2254  
2255 3 `div`     -3 = -1
2256 3 `div`     -2 = -2
2257 3 `div`     -1 = -3
2258 3 `div`     0 = divide by zero
2259 3 `div`     1 = 3
2260 3 `div`     2 = 1
2261 3 `div`     3 = 1
2262  
2263 #
2264 -3 `mod`     -3 = 0
2265 -3 `mod`     -2 = -1
2266 -3 `mod`     -1 = 0
2267 -3 `mod`     0 = divide by zero
2268 -3 `mod`     1 = 0
2269 -3 `mod`     2 = 1
2270 -3 `mod`     3 = 0
2271  
2272 -2 `mod`     -3 = -2
2273 -2 `mod`     -2 = 0
2274 -2 `mod`     -1 = 0
2275 -2 `mod`     0 = divide by zero
2276 -2 `mod`     1 = 0
2277 -2 `mod`     2 = 0
2278 -2 `mod`     3 = 1
2279  
2280 -1 `mod`     -3 = -1
2281 -1 `mod`     -2 = -1
2282 -1 `mod`     -1 = 0
2283 -1 `mod`     0 = divide by zero
2284 -1 `mod`     1 = 0
2285 -1 `mod`     2 = 1
2286 -1 `mod`     3 = 2
2287  
2288 0 `mod`     -3 = 0
2289 0 `mod`     -2 = 0
2290 0 `mod`     -1 = 0
2291 0 `mod`     0 = divide by zero
2292 0 `mod`     1 = 0
2293 0 `mod`     2 = 0
2294 0 `mod`     3 = 0
2295  
2296 1 `mod`     -3 = -2
2297 1 `mod`     -2 = -1
2298 1 `mod`     -1 = 0
2299 1 `mod`     0 = divide by zero
2300 1 `mod`     1 = 0
2301 1 `mod`     2 = 1
2302 1 `mod`     3 = 1
2303  
2304 2 `mod`     -3 = -1
2305 2 `mod`     -2 = 0
2306 2 `mod`     -1 = 0
2307 2 `mod`     0 = divide by zero
2308 2 `mod`     1 = 0
2309 2 `mod`     2 = 0
2310 2 `mod`     3 = 2
2311  
2312 3 `mod`     -3 = 0
2313 3 `mod`     -2 = -1
2314 3 `mod`     -1 = 0
2315 3 `mod`     0 = divide by zero
2316 3 `mod`     1 = 0
2317 3 `mod`     2 = 1
2318 3 `mod`     3 = 0
2319  
2320 #
2321 -3 `quotRem` -3 = (1,0)
2322 -3 `quotRem` -2 = (1,-1)
2323 -3 `quotRem` -1 = (3,0)
2324 -3 `quotRem` 0 = divide by zero
2325 -3 `quotRem` 1 = (-3,0)
2326 -3 `quotRem` 2 = (-1,-1)
2327 -3 `quotRem` 3 = (-1,0)
2328  
2329 -2 `quotRem` -3 = (0,-2)
2330 -2 `quotRem` -2 = (1,0)
2331 -2 `quotRem` -1 = (2,0)
2332 -2 `quotRem` 0 = divide by zero
2333 -2 `quotRem` 1 = (-2,0)
2334 -2 `quotRem` 2 = (-1,0)
2335 -2 `quotRem` 3 = (0,-2)
2336  
2337 -1 `quotRem` -3 = (0,-1)
2338 -1 `quotRem` -2 = (0,-1)
2339 -1 `quotRem` -1 = (1,0)
2340 -1 `quotRem` 0 = divide by zero
2341 -1 `quotRem` 1 = (-1,0)
2342 -1 `quotRem` 2 = (0,-1)
2343 -1 `quotRem` 3 = (0,-1)
2344  
2345 0 `quotRem` -3 = (0,0)
2346 0 `quotRem` -2 = (0,0)
2347 0 `quotRem` -1 = (0,0)
2348 0 `quotRem` 0 = divide by zero
2349 0 `quotRem` 1 = (0,0)
2350 0 `quotRem` 2 = (0,0)
2351 0 `quotRem` 3 = (0,0)
2352  
2353 1 `quotRem` -3 = (0,1)
2354 1 `quotRem` -2 = (0,1)
2355 1 `quotRem` -1 = (-1,0)
2356 1 `quotRem` 0 = divide by zero
2357 1 `quotRem` 1 = (1,0)
2358 1 `quotRem` 2 = (0,1)
2359 1 `quotRem` 3 = (0,1)
2360  
2361 2 `quotRem` -3 = (0,2)
2362 2 `quotRem` -2 = (-1,0)
2363 2 `quotRem` -1 = (-2,0)
2364 2 `quotRem` 0 = divide by zero
2365 2 `quotRem` 1 = (2,0)
2366 2 `quotRem` 2 = (1,0)
2367 2 `quotRem` 3 = (0,2)
2368  
2369 3 `quotRem` -3 = (-1,0)
2370 3 `quotRem` -2 = (-1,1)
2371 3 `quotRem` -1 = (-3,0)
2372 3 `quotRem` 0 = divide by zero
2373 3 `quotRem` 1 = (3,0)
2374 3 `quotRem` 2 = (1,1)
2375 3 `quotRem` 3 = (1,0)
2376  
2377 #
2378 -3 `quot`    -3 = 1
2379 -3 `quot`    -2 = 1
2380 -3 `quot`    -1 = 3
2381 -3 `quot`    0 = divide by zero
2382 -3 `quot`    1 = -3
2383 -3 `quot`    2 = -1
2384 -3 `quot`    3 = -1
2385  
2386 -2 `quot`    -3 = 0
2387 -2 `quot`    -2 = 1
2388 -2 `quot`    -1 = 2
2389 -2 `quot`    0 = divide by zero
2390 -2 `quot`    1 = -2
2391 -2 `quot`    2 = -1
2392 -2 `quot`    3 = 0
2393  
2394 -1 `quot`    -3 = 0
2395 -1 `quot`    -2 = 0
2396 -1 `quot`    -1 = 1
2397 -1 `quot`    0 = divide by zero
2398 -1 `quot`    1 = -1
2399 -1 `quot`    2 = 0
2400 -1 `quot`    3 = 0
2401  
2402 0 `quot`    -3 = 0
2403 0 `quot`    -2 = 0
2404 0 `quot`    -1 = 0
2405 0 `quot`    0 = divide by zero
2406 0 `quot`    1 = 0
2407 0 `quot`    2 = 0
2408 0 `quot`    3 = 0
2409  
2410 1 `quot`    -3 = 0
2411 1 `quot`    -2 = 0
2412 1 `quot`    -1 = -1
2413 1 `quot`    0 = divide by zero
2414 1 `quot`    1 = 1
2415 1 `quot`    2 = 0
2416 1 `quot`    3 = 0
2417  
2418 2 `quot`    -3 = 0
2419 2 `quot`    -2 = -1
2420 2 `quot`    -1 = -2
2421 2 `quot`    0 = divide by zero
2422 2 `quot`    1 = 2
2423 2 `quot`    2 = 1
2424 2 `quot`    3 = 0
2425  
2426 3 `quot`    -3 = -1
2427 3 `quot`    -2 = -1
2428 3 `quot`    -1 = -3
2429 3 `quot`    0 = divide by zero
2430 3 `quot`    1 = 3
2431 3 `quot`    2 = 1
2432 3 `quot`    3 = 1
2433  
2434 #
2435 -3 `rem`     -3 = 0
2436 -3 `rem`     -2 = -1
2437 -3 `rem`     -1 = 0
2438 -3 `rem`     0 = divide by zero
2439 -3 `rem`     1 = 0
2440 -3 `rem`     2 = -1
2441 -3 `rem`     3 = 0
2442  
2443 -2 `rem`     -3 = -2
2444 -2 `rem`     -2 = 0
2445 -2 `rem`     -1 = 0
2446 -2 `rem`     0 = divide by zero
2447 -2 `rem`     1 = 0
2448 -2 `rem`     2 = 0
2449 -2 `rem`     3 = -2
2450  
2451 -1 `rem`     -3 = -1
2452 -1 `rem`     -2 = -1
2453 -1 `rem`     -1 = 0
2454 -1 `rem`     0 = divide by zero
2455 -1 `rem`     1 = 0
2456 -1 `rem`     2 = -1
2457 -1 `rem`     3 = -1
2458  
2459 0 `rem`     -3 = 0
2460 0 `rem`     -2 = 0
2461 0 `rem`     -1 = 0
2462 0 `rem`     0 = divide by zero
2463 0 `rem`     1 = 0
2464 0 `rem`     2 = 0
2465 0 `rem`     3 = 0
2466  
2467 1 `rem`     -3 = 1
2468 1 `rem`     -2 = 1
2469 1 `rem`     -1 = 0
2470 1 `rem`     0 = divide by zero
2471 1 `rem`     1 = 0
2472 1 `rem`     2 = 1
2473 1 `rem`     3 = 1
2474  
2475 2 `rem`     -3 = 2
2476 2 `rem`     -2 = 0
2477 2 `rem`     -1 = 0
2478 2 `rem`     0 = divide by zero
2479 2 `rem`     1 = 0
2480 2 `rem`     2 = 0
2481 2 `rem`     3 = 2
2482  
2483 3 `rem`     -3 = 0
2484 3 `rem`     -2 = 1
2485 3 `rem`     -1 = 0
2486 3 `rem`     0 = divide by zero
2487 3 `rem`     1 = 0
2488 3 `rem`     2 = 1
2489 3 `rem`     3 = 0
2490  
2491 #
2492 testConversions
2493 Integer : [-128,0,127]
2494 Int     : [-128,0,127]
2495 Int8    : [-128,0,127]
2496 Int16   : [-128,0,127]
2497 Int32   : [-128,0,127]
2498 Int64   : [-128,0,127]
2499 Word8   : [128,0,127]
2500 Word16  : [65408,0,127]
2501 Word32  : [4294967168,0,127]
2502 Word64  : [18446744073709551488,0,127]
2503 testBits
2504 -3 .&.   -3 = -3
2505 -3 .&.   -2 = -4
2506 -3 .&.   -1 = -3
2507 -3 .&.   0 = 0
2508 -3 .&.   1 = 1
2509 -3 .&.   2 = 0
2510 -3 .&.   3 = 1
2511  
2512 -2 .&.   -3 = -4
2513 -2 .&.   -2 = -2
2514 -2 .&.   -1 = -2
2515 -2 .&.   0 = 0
2516 -2 .&.   1 = 0
2517 -2 .&.   2 = 2
2518 -2 .&.   3 = 2
2519  
2520 -1 .&.   -3 = -3
2521 -1 .&.   -2 = -2
2522 -1 .&.   -1 = -1
2523 -1 .&.   0 = 0
2524 -1 .&.   1 = 1
2525 -1 .&.   2 = 2
2526 -1 .&.   3 = 3
2527  
2528 0 .&.   -3 = 0
2529 0 .&.   -2 = 0
2530 0 .&.   -1 = 0
2531 0 .&.   0 = 0
2532 0 .&.   1 = 0
2533 0 .&.   2 = 0
2534 0 .&.   3 = 0
2535  
2536 1 .&.   -3 = 1
2537 1 .&.   -2 = 0
2538 1 .&.   -1 = 1
2539 1 .&.   0 = 0
2540 1 .&.   1 = 1
2541 1 .&.   2 = 0
2542 1 .&.   3 = 1
2543  
2544 2 .&.   -3 = 0
2545 2 .&.   -2 = 2
2546 2 .&.   -1 = 2
2547 2 .&.   0 = 0
2548 2 .&.   1 = 0
2549 2 .&.   2 = 2
2550 2 .&.   3 = 2
2551  
2552 3 .&.   -3 = 1
2553 3 .&.   -2 = 2
2554 3 .&.   -1 = 3
2555 3 .&.   0 = 0
2556 3 .&.   1 = 1
2557 3 .&.   2 = 2
2558 3 .&.   3 = 3
2559  
2560 #
2561 -3 .|.   -3 = -3
2562 -3 .|.   -2 = -1
2563 -3 .|.   -1 = -1
2564 -3 .|.   0 = -3
2565 -3 .|.   1 = -3
2566 -3 .|.   2 = -1
2567 -3 .|.   3 = -1
2568  
2569 -2 .|.   -3 = -1
2570 -2 .|.   -2 = -2
2571 -2 .|.   -1 = -1
2572 -2 .|.   0 = -2
2573 -2 .|.   1 = -1
2574 -2 .|.   2 = -2
2575 -2 .|.   3 = -1
2576  
2577 -1 .|.   -3 = -1
2578 -1 .|.   -2 = -1
2579 -1 .|.   -1 = -1
2580 -1 .|.   0 = -1
2581 -1 .|.   1 = -1
2582 -1 .|.   2 = -1
2583 -1 .|.   3 = -1
2584  
2585 0 .|.   -3 = -3
2586 0 .|.   -2 = -2
2587 0 .|.   -1 = -1
2588 0 .|.   0 = 0
2589 0 .|.   1 = 1
2590 0 .|.   2 = 2
2591 0 .|.   3 = 3
2592  
2593 1 .|.   -3 = -3
2594 1 .|.   -2 = -1
2595 1 .|.   -1 = -1
2596 1 .|.   0 = 1
2597 1 .|.   1 = 1
2598 1 .|.   2 = 3
2599 1 .|.   3 = 3
2600  
2601 2 .|.   -3 = -1
2602 2 .|.   -2 = -2
2603 2 .|.   -1 = -1
2604 2 .|.   0 = 2
2605 2 .|.   1 = 3
2606 2 .|.   2 = 2
2607 2 .|.   3 = 3
2608  
2609 3 .|.   -3 = -1
2610 3 .|.   -2 = -1
2611 3 .|.   -1 = -1
2612 3 .|.   0 = 3
2613 3 .|.   1 = 3
2614 3 .|.   2 = 3
2615 3 .|.   3 = 3
2616  
2617 #
2618 -3 `xor` -3 = 0
2619 -3 `xor` -2 = 3
2620 -3 `xor` -1 = 2
2621 -3 `xor` 0 = -3
2622 -3 `xor` 1 = -4
2623 -3 `xor` 2 = -1
2624 -3 `xor` 3 = -2
2625  
2626 -2 `xor` -3 = 3
2627 -2 `xor` -2 = 0
2628 -2 `xor` -1 = 1
2629 -2 `xor` 0 = -2
2630 -2 `xor` 1 = -1
2631 -2 `xor` 2 = -4
2632 -2 `xor` 3 = -3
2633  
2634 -1 `xor` -3 = 2
2635 -1 `xor` -2 = 1
2636 -1 `xor` -1 = 0
2637 -1 `xor` 0 = -1
2638 -1 `xor` 1 = -2
2639 -1 `xor` 2 = -3
2640 -1 `xor` 3 = -4
2641  
2642 0 `xor` -3 = -3
2643 0 `xor` -2 = -2
2644 0 `xor` -1 = -1
2645 0 `xor` 0 = 0
2646 0 `xor` 1 = 1
2647 0 `xor` 2 = 2
2648 0 `xor` 3 = 3
2649  
2650 1 `xor` -3 = -4
2651 1 `xor` -2 = -1
2652 1 `xor` -1 = -2
2653 1 `xor` 0 = 1
2654 1 `xor` 1 = 0
2655 1 `xor` 2 = 3
2656 1 `xor` 3 = 2
2657  
2658 2 `xor` -3 = -1
2659 2 `xor` -2 = -4
2660 2 `xor` -1 = -3
2661 2 `xor` 0 = 2
2662 2 `xor` 1 = 3
2663 2 `xor` 2 = 0
2664 2 `xor` 3 = 1
2665  
2666 3 `xor` -3 = -2
2667 3 `xor` -2 = -3
2668 3 `xor` -1 = -4
2669 3 `xor` 0 = 3
2670 3 `xor` 1 = 2
2671 3 `xor` 2 = 1
2672 3 `xor` 3 = 0
2673  
2674 #
2675 complement -3 = 2
2676 complement -2 = 1
2677 complement -1 = 0
2678 complement 0 = -1
2679 complement 1 = -2
2680 complement 2 = -3
2681 complement 3 = -4
2682 #
2683 -3 `shiftL` 0 = -3
2684 -3 `shiftL` 1 = -6
2685 -3 `shiftL` 2 = -12
2686 -3 `shiftL` 3 = -24
2687 -3 `shiftL` 32 = 0
2688 -3 `shiftL` 64 = 0
2689  
2690 -2 `shiftL` 0 = -2
2691 -2 `shiftL` 1 = -4
2692 -2 `shiftL` 2 = -8
2693 -2 `shiftL` 3 = -16
2694 -2 `shiftL` 32 = 0
2695 -2 `shiftL` 64 = 0
2696  
2697 -1 `shiftL` 0 = -1
2698 -1 `shiftL` 1 = -2
2699 -1 `shiftL` 2 = -4
2700 -1 `shiftL` 3 = -8
2701 -1 `shiftL` 32 = 0
2702 -1 `shiftL` 64 = 0
2703  
2704 0 `shiftL` 0 = 0
2705 0 `shiftL` 1 = 0
2706 0 `shiftL` 2 = 0
2707 0 `shiftL` 3 = 0
2708 0 `shiftL` 32 = 0
2709 0 `shiftL` 64 = 0
2710  
2711 1 `shiftL` 0 = 1
2712 1 `shiftL` 1 = 2
2713 1 `shiftL` 2 = 4
2714 1 `shiftL` 3 = 8
2715 1 `shiftL` 32 = 0
2716 1 `shiftL` 64 = 0
2717  
2718 2 `shiftL` 0 = 2
2719 2 `shiftL` 1 = 4
2720 2 `shiftL` 2 = 8
2721 2 `shiftL` 3 = 16
2722 2 `shiftL` 32 = 0
2723 2 `shiftL` 64 = 0
2724  
2725 3 `shiftL` 0 = 3
2726 3 `shiftL` 1 = 6
2727 3 `shiftL` 2 = 12
2728 3 `shiftL` 3 = 24
2729 3 `shiftL` 32 = 0
2730 3 `shiftL` 64 = 0
2731  
2732 #
2733 -3 `shiftR` 0 = -3
2734 -3 `shiftR` 1 = -2
2735 -3 `shiftR` 2 = -1
2736 -3 `shiftR` 3 = -1
2737 -3 `shiftR` 32 = -1
2738 -3 `shiftR` 64 = -1
2739  
2740 -2 `shiftR` 0 = -2
2741 -2 `shiftR` 1 = -1
2742 -2 `shiftR` 2 = -1
2743 -2 `shiftR` 3 = -1
2744 -2 `shiftR` 32 = -1
2745 -2 `shiftR` 64 = -1
2746  
2747 -1 `shiftR` 0 = -1
2748 -1 `shiftR` 1 = -1
2749 -1 `shiftR` 2 = -1
2750 -1 `shiftR` 3 = -1
2751 -1 `shiftR` 32 = -1
2752 -1 `shiftR` 64 = -1
2753  
2754 0 `shiftR` 0 = 0
2755 0 `shiftR` 1 = 0
2756 0 `shiftR` 2 = 0
2757 0 `shiftR` 3 = 0
2758 0 `shiftR` 32 = 0
2759 0 `shiftR` 64 = 0
2760  
2761 1 `shiftR` 0 = 1
2762 1 `shiftR` 1 = 0
2763 1 `shiftR` 2 = 0
2764 1 `shiftR` 3 = 0
2765 1 `shiftR` 32 = 0
2766 1 `shiftR` 64 = 0
2767  
2768 2 `shiftR` 0 = 2
2769 2 `shiftR` 1 = 1
2770 2 `shiftR` 2 = 0
2771 2 `shiftR` 3 = 0
2772 2 `shiftR` 32 = 0
2773 2 `shiftR` 64 = 0
2774  
2775 3 `shiftR` 0 = 3
2776 3 `shiftR` 1 = 1
2777 3 `shiftR` 2 = 0
2778 3 `shiftR` 3 = 0
2779 3 `shiftR` 32 = 0
2780 3 `shiftR` 64 = 0
2781  
2782 #
2783 -3 `rotate` -3 = -65
2784 -3 `rotate` -2 = 127
2785 -3 `rotate` -1 = -2
2786 -3 `rotate` 0 = -3
2787 -3 `rotate` 1 = -5
2788 -3 `rotate` 2 = -9
2789 -3 `rotate` 3 = -17
2790 -3 `rotate` -64 = -3
2791 -3 `rotate` -32 = -3
2792 -3 `rotate` 32 = -3
2793 -3 `rotate` 64 = -3
2794  
2795 -2 `rotate` -3 = -33
2796 -2 `rotate` -2 = -65
2797 -2 `rotate` -1 = 127
2798 -2 `rotate` 0 = -2
2799 -2 `rotate` 1 = -3
2800 -2 `rotate` 2 = -5
2801 -2 `rotate` 3 = -9
2802 -2 `rotate` -64 = -2
2803 -2 `rotate` -32 = -2
2804 -2 `rotate` 32 = -2
2805 -2 `rotate` 64 = -2
2806  
2807 -1 `rotate` -3 = -1
2808 -1 `rotate` -2 = -1
2809 -1 `rotate` -1 = -1
2810 -1 `rotate` 0 = -1
2811 -1 `rotate` 1 = -1
2812 -1 `rotate` 2 = -1
2813 -1 `rotate` 3 = -1
2814 -1 `rotate` -64 = -1
2815 -1 `rotate` -32 = -1
2816 -1 `rotate` 32 = -1
2817 -1 `rotate` 64 = -1
2818  
2819 0 `rotate` -3 = 0
2820 0 `rotate` -2 = 0
2821 0 `rotate` -1 = 0
2822 0 `rotate` 0 = 0
2823 0 `rotate` 1 = 0
2824 0 `rotate` 2 = 0
2825 0 `rotate` 3 = 0
2826 0 `rotate` -64 = 0
2827 0 `rotate` -32 = 0
2828 0 `rotate` 32 = 0
2829 0 `rotate` 64 = 0
2830  
2831 1 `rotate` -3 = 32
2832 1 `rotate` -2 = 64
2833 1 `rotate` -1 = -128
2834 1 `rotate` 0 = 1
2835 1 `rotate` 1 = 2
2836 1 `rotate` 2 = 4
2837 1 `rotate` 3 = 8
2838 1 `rotate` -64 = 1
2839 1 `rotate` -32 = 1
2840 1 `rotate` 32 = 1
2841 1 `rotate` 64 = 1
2842  
2843 2 `rotate` -3 = 64
2844 2 `rotate` -2 = -128
2845 2 `rotate` -1 = 1
2846 2 `rotate` 0 = 2
2847 2 `rotate` 1 = 4
2848 2 `rotate` 2 = 8
2849 2 `rotate` 3 = 16
2850 2 `rotate` -64 = 2
2851 2 `rotate` -32 = 2
2852 2 `rotate` 32 = 2
2853 2 `rotate` 64 = 2
2854  
2855 3 `rotate` -3 = 96
2856 3 `rotate` -2 = -64
2857 3 `rotate` -1 = -127
2858 3 `rotate` 0 = 3
2859 3 `rotate` 1 = 6
2860 3 `rotate` 2 = 12
2861 3 `rotate` 3 = 24
2862 3 `rotate` -64 = 3
2863 3 `rotate` -32 = 3
2864 3 `rotate` 32 = 3
2865 3 `rotate` 64 = 3
2866  
2867 #
2868 bit 0 = 1
2869 bit 1 = 2
2870 bit 2 = 4
2871 bit 3 = 8
2872 #
2873 -3 `setBit` 0 = -3
2874 -3 `setBit` 1 = -1
2875 -3 `setBit` 2 = -3
2876 -3 `setBit` 3 = -3
2877 -3 `setBit` 32 = -3
2878 -3 `setBit` 64 = -3
2879  
2880 -2 `setBit` 0 = -1
2881 -2 `setBit` 1 = -2
2882 -2 `setBit` 2 = -2
2883 -2 `setBit` 3 = -2
2884 -2 `setBit` 32 = -2
2885 -2 `setBit` 64 = -2
2886  
2887 -1 `setBit` 0 = -1
2888 -1 `setBit` 1 = -1
2889 -1 `setBit` 2 = -1
2890 -1 `setBit` 3 = -1
2891 -1 `setBit` 32 = -1
2892 -1 `setBit` 64 = -1
2893  
2894 0 `setBit` 0 = 1
2895 0 `setBit` 1 = 2
2896 0 `setBit` 2 = 4
2897 0 `setBit` 3 = 8
2898 0 `setBit` 32 = 0
2899 0 `setBit` 64 = 0
2900  
2901 1 `setBit` 0 = 1
2902 1 `setBit` 1 = 3
2903 1 `setBit` 2 = 5
2904 1 `setBit` 3 = 9
2905 1 `setBit` 32 = 1
2906 1 `setBit` 64 = 1
2907  
2908 2 `setBit` 0 = 3
2909 2 `setBit` 1 = 2
2910 2 `setBit` 2 = 6
2911 2 `setBit` 3 = 10
2912 2 `setBit` 32 = 2
2913 2 `setBit` 64 = 2
2914  
2915 3 `setBit` 0 = 3
2916 3 `setBit` 1 = 3
2917 3 `setBit` 2 = 7
2918 3 `setBit` 3 = 11
2919 3 `setBit` 32 = 3
2920 3 `setBit` 64 = 3
2921  
2922 #
2923 -3 `clearBit` 0 = -4
2924 -3 `clearBit` 1 = -3
2925 -3 `clearBit` 2 = -7
2926 -3 `clearBit` 3 = -11
2927 -3 `clearBit` 32 = -3
2928 -3 `clearBit` 64 = -3
2929  
2930 -2 `clearBit` 0 = -2
2931 -2 `clearBit` 1 = -4
2932 -2 `clearBit` 2 = -6
2933 -2 `clearBit` 3 = -10
2934 -2 `clearBit` 32 = -2
2935 -2 `clearBit` 64 = -2
2936  
2937 -1 `clearBit` 0 = -2
2938 -1 `clearBit` 1 = -3
2939 -1 `clearBit` 2 = -5
2940 -1 `clearBit` 3 = -9
2941 -1 `clearBit` 32 = -1
2942 -1 `clearBit` 64 = -1
2943  
2944 0 `clearBit` 0 = 0
2945 0 `clearBit` 1 = 0
2946 0 `clearBit` 2 = 0
2947 0 `clearBit` 3 = 0
2948 0 `clearBit` 32 = 0
2949 0 `clearBit` 64 = 0
2950  
2951 1 `clearBit` 0 = 0
2952 1 `clearBit` 1 = 1
2953 1 `clearBit` 2 = 1
2954 1 `clearBit` 3 = 1
2955 1 `clearBit` 32 = 1
2956 1 `clearBit` 64 = 1
2957  
2958 2 `clearBit` 0 = 2
2959 2 `clearBit` 1 = 0
2960 2 `clearBit` 2 = 2
2961 2 `clearBit` 3 = 2
2962 2 `clearBit` 32 = 2
2963 2 `clearBit` 64 = 2
2964  
2965 3 `clearBit` 0 = 2
2966 3 `clearBit` 1 = 1
2967 3 `clearBit` 2 = 3
2968 3 `clearBit` 3 = 3
2969 3 `clearBit` 32 = 3
2970 3 `clearBit` 64 = 3
2971  
2972 #
2973 -3 `complementBit` 0 = -4
2974 -3 `complementBit` 1 = -1
2975 -3 `complementBit` 2 = -7
2976 -3 `complementBit` 3 = -11
2977 -3 `complementBit` 32 = -3
2978 -3 `complementBit` 64 = -3
2979  
2980 -2 `complementBit` 0 = -1
2981 -2 `complementBit` 1 = -4
2982 -2 `complementBit` 2 = -6
2983 -2 `complementBit` 3 = -10
2984 -2 `complementBit` 32 = -2
2985 -2 `complementBit` 64 = -2
2986  
2987 -1 `complementBit` 0 = -2
2988 -1 `complementBit` 1 = -3
2989 -1 `complementBit` 2 = -5
2990 -1 `complementBit` 3 = -9
2991 -1 `complementBit` 32 = -1
2992 -1 `complementBit` 64 = -1
2993  
2994 0 `complementBit` 0 = 1
2995 0 `complementBit` 1 = 2
2996 0 `complementBit` 2 = 4
2997 0 `complementBit` 3 = 8
2998 0 `complementBit` 32 = 0
2999 0 `complementBit` 64 = 0
3000  
3001 1 `complementBit` 0 = 0
3002 1 `complementBit` 1 = 3
3003 1 `complementBit` 2 = 5
3004 1 `complementBit` 3 = 9
3005 1 `complementBit` 32 = 1
3006 1 `complementBit` 64 = 1
3007  
3008 2 `complementBit` 0 = 3
3009 2 `complementBit` 1 = 0
3010 2 `complementBit` 2 = 6
3011 2 `complementBit` 3 = 10
3012 2 `complementBit` 32 = 2
3013 2 `complementBit` 64 = 2
3014  
3015 3 `complementBit` 0 = 2
3016 3 `complementBit` 1 = 1
3017 3 `complementBit` 2 = 7
3018 3 `complementBit` 3 = 11
3019 3 `complementBit` 32 = 3
3020 3 `complementBit` 64 = 3
3021  
3022 #
3023 -3 `testBit` 0 = True
3024 -3 `testBit` 1 = False
3025 -3 `testBit` 2 = True
3026 -3 `testBit` 3 = True
3027 -3 `testBit` 32 = False
3028 -3 `testBit` 64 = False
3029  
3030 -2 `testBit` 0 = False
3031 -2 `testBit` 1 = True
3032 -2 `testBit` 2 = True
3033 -2 `testBit` 3 = True
3034 -2 `testBit` 32 = False
3035 -2 `testBit` 64 = False
3036  
3037 -1 `testBit` 0 = True
3038 -1 `testBit` 1 = True
3039 -1 `testBit` 2 = True
3040 -1 `testBit` 3 = True
3041 -1 `testBit` 32 = False
3042 -1 `testBit` 64 = False
3043  
3044 0 `testBit` 0 = False
3045 0 `testBit` 1 = False
3046 0 `testBit` 2 = False
3047 0 `testBit` 3 = False
3048 0 `testBit` 32 = False
3049 0 `testBit` 64 = False
3050  
3051 1 `testBit` 0 = True
3052 1 `testBit` 1 = False
3053 1 `testBit` 2 = False
3054 1 `testBit` 3 = False
3055 1 `testBit` 32 = False
3056 1 `testBit` 64 = False
3057  
3058 2 `testBit` 0 = False
3059 2 `testBit` 1 = True
3060 2 `testBit` 2 = False
3061 2 `testBit` 3 = False
3062 2 `testBit` 32 = False
3063 2 `testBit` 64 = False
3064  
3065 3 `testBit` 0 = True
3066 3 `testBit` 1 = True
3067 3 `testBit` 2 = False
3068 3 `testBit` 3 = False
3069 3 `testBit` 32 = False
3070 3 `testBit` 64 = False
3071  
3072 #
3073 bitSize -3 = 8
3074 bitSize -2 = 8
3075 bitSize -1 = 8
3076 bitSize 0 = 8
3077 bitSize 1 = 8
3078 bitSize 2 = 8
3079 bitSize 3 = 8
3080 #
3081 isSigned -3 = True
3082 isSigned -2 = True
3083 isSigned -1 = True
3084 isSigned 0 = True
3085 isSigned 1 = True
3086 isSigned 2 = True
3087 isSigned 3 = True
3088 #
3089 --------------------------------
3090 --Testing Int16
3091 --------------------------------
3092 testBounded
3093 (32767,-32768,-32767)
3094 (32766,32767,-32768)
3095 testEnum
3096 [0,1,2,3,4,5,6,7,8,9]
3097 [0,2,4,6,8,10,12,14,16,18]
3098 [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
3099 [0,2,4,6,8,10,12,14,16,18,20]
3100 testReadShow
3101 [-3,-2,-1,0,1,2,3]
3102 [-3,-2,-1,0,1,2,3]
3103 testEq
3104 -3 == -3 = True
3105 -3 == -2 = False
3106 -3 == -1 = False
3107 -3 == 0 = False
3108 -3 == 1 = False
3109 -3 == 2 = False
3110 -3 == 3 = False
3111  
3112 -2 == -3 = False
3113 -2 == -2 = True
3114 -2 == -1 = False
3115 -2 == 0 = False
3116 -2 == 1 = False
3117 -2 == 2 = False
3118 -2 == 3 = False
3119  
3120 -1 == -3 = False
3121 -1 == -2 = False
3122 -1 == -1 = True
3123 -1 == 0 = False
3124 -1 == 1 = False
3125 -1 == 2 = False
3126 -1 == 3 = False
3127  
3128 0 == -3 = False
3129 0 == -2 = False
3130 0 == -1 = False
3131 0 == 0 = True
3132 0 == 1 = False
3133 0 == 2 = False
3134 0 == 3 = False
3135  
3136 1 == -3 = False
3137 1 == -2 = False
3138 1 == -1 = False
3139 1 == 0 = False
3140 1 == 1 = True
3141 1 == 2 = False
3142 1 == 3 = False
3143  
3144 2 == -3 = False
3145 2 == -2 = False
3146 2 == -1 = False
3147 2 == 0 = False
3148 2 == 1 = False
3149 2 == 2 = True
3150 2 == 3 = False
3151  
3152 3 == -3 = False
3153 3 == -2 = False
3154 3 == -1 = False
3155 3 == 0 = False
3156 3 == 1 = False
3157 3 == 2 = False
3158 3 == 3 = True
3159  
3160 #
3161 -3 /= -3 = False
3162 -3 /= -2 = True
3163 -3 /= -1 = True
3164 -3 /= 0 = True
3165 -3 /= 1 = True
3166 -3 /= 2 = True
3167 -3 /= 3 = True
3168  
3169 -2 /= -3 = True
3170 -2 /= -2 = False
3171 -2 /= -1 = True
3172 -2 /= 0 = True
3173 -2 /= 1 = True
3174 -2 /= 2 = True
3175 -2 /= 3 = True
3176  
3177 -1 /= -3 = True
3178 -1 /= -2 = True
3179 -1 /= -1 = False
3180 -1 /= 0 = True
3181 -1 /= 1 = True
3182 -1 /= 2 = True
3183 -1 /= 3 = True
3184  
3185 0 /= -3 = True
3186 0 /= -2 = True
3187 0 /= -1 = True
3188 0 /= 0 = False
3189 0 /= 1 = True
3190 0 /= 2 = True
3191 0 /= 3 = True
3192  
3193 1 /= -3 = True
3194 1 /= -2 = True
3195 1 /= -1 = True
3196 1 /= 0 = True
3197 1 /= 1 = False
3198 1 /= 2 = True
3199 1 /= 3 = True
3200  
3201 2 /= -3 = True
3202 2 /= -2 = True
3203 2 /= -1 = True
3204 2 /= 0 = True
3205 2 /= 1 = True
3206 2 /= 2 = False
3207 2 /= 3 = True
3208  
3209 3 /= -3 = True
3210 3 /= -2 = True
3211 3 /= -1 = True
3212 3 /= 0 = True
3213 3 /= 1 = True
3214 3 /= 2 = True
3215 3 /= 3 = False
3216  
3217 #
3218 testOrd
3219 -3 <= -3 = True
3220 -3 <= -2 = True
3221 -3 <= -1 = True
3222 -3 <= 0 = True
3223 -3 <= 1 = True
3224 -3 <= 2 = True
3225 -3 <= 3 = True
3226  
3227 -2 <= -3 = False
3228 -2 <= -2 = True
3229 -2 <= -1 = True
3230 -2 <= 0 = True
3231 -2 <= 1 = True
3232 -2 <= 2 = True
3233 -2 <= 3 = True
3234  
3235 -1 <= -3 = False
3236 -1 <= -2 = False
3237 -1 <= -1 = True
3238 -1 <= 0 = True
3239 -1 <= 1 = True
3240 -1 <= 2 = True
3241 -1 <= 3 = True
3242  
3243 0 <= -3 = False
3244 0 <= -2 = False
3245 0 <= -1 = False
3246 0 <= 0 = True
3247 0 <= 1 = True
3248 0 <= 2 = True
3249 0 <= 3 = True
3250  
3251 1 <= -3 = False
3252 1 <= -2 = False
3253 1 <= -1 = False
3254 1 <= 0 = False
3255 1 <= 1 = True
3256 1 <= 2 = True
3257 1 <= 3 = True
3258  
3259 2 <= -3 = False
3260 2 <= -2 = False
3261 2 <= -1 = False
3262 2 <= 0 = False
3263 2 <= 1 = False
3264 2 <= 2 = True
3265 2 <= 3 = True
3266  
3267 3 <= -3 = False
3268 3 <= -2 = False
3269 3 <= -1 = False
3270 3 <= 0 = False
3271 3 <= 1 = False
3272 3 <= 2 = False
3273 3 <= 3 = True
3274  
3275 #
3276 -3 <  -3 = False
3277 -3 <  -2 = True
3278 -3 <  -1 = True
3279 -3 <  0 = True
3280 -3 <  1 = True
3281 -3 <  2 = True
3282 -3 <  3 = True
3283  
3284 -2 <  -3 = False
3285 -2 <  -2 = False
3286 -2 <  -1 = True
3287 -2 <  0 = True
3288 -2 <  1 = True
3289 -2 <  2 = True
3290 -2 <  3 = True
3291  
3292 -1 <  -3 = False
3293 -1 <  -2 = False
3294 -1 <  -1 = False
3295 -1 <  0 = True
3296 -1 <  1 = True
3297 -1 <  2 = True
3298 -1 <  3 = True
3299  
3300 0 <  -3 = False
3301 0 <  -2 = False
3302 0 <  -1 = False
3303 0 <  0 = False
3304 0 <  1 = True
3305 0 <  2 = True
3306 0 <  3 = True
3307  
3308 1 <  -3 = False
3309 1 <  -2 = False
3310 1 <  -1 = False
3311 1 <  0 = False
3312 1 <  1 = False
3313 1 <  2 = True
3314 1 <  3 = True
3315  
3316 2 <  -3 = False
3317 2 <  -2 = False
3318 2 <  -1 = False
3319 2 <  0 = False
3320 2 <  1 = False
3321 2 <  2 = False
3322 2 <  3 = True
3323  
3324 3 <  -3 = False
3325 3 <  -2 = False
3326 3 <  -1 = False
3327 3 <  0 = False
3328 3 <  1 = False
3329 3 <  2 = False
3330 3 <  3 = False
3331  
3332 #
3333 -3 >  -3 = False
3334 -3 >  -2 = False
3335 -3 >  -1 = False
3336 -3 >  0 = False
3337 -3 >  1 = False
3338 -3 >  2 = False
3339 -3 >  3 = False
3340  
3341 -2 >  -3 = True
3342 -2 >  -2 = False
3343 -2 >  -1 = False
3344 -2 >  0 = False
3345 -2 >  1 = False
3346 -2 >  2 = False
3347 -2 >  3 = False
3348  
3349 -1 >  -3 = True
3350 -1 >  -2 = True
3351 -1 >  -1 = False
3352 -1 >  0 = False
3353 -1 >  1 = False
3354 -1 >  2 = False
3355 -1 >  3 = False
3356  
3357 0 >  -3 = True
3358 0 >  -2 = True
3359 0 >  -1 = True
3360 0 >  0 = False
3361 0 >  1 = False
3362 0 >  2 = False
3363 0 >  3 = False
3364  
3365 1 >  -3 = True
3366 1 >  -2 = True
3367 1 >  -1 = True
3368 1 >  0 = True
3369 1 >  1 = False
3370 1 >  2 = False
3371 1 >  3 = False
3372  
3373 2 >  -3 = True
3374 2 >  -2 = True
3375 2 >  -1 = True
3376 2 >  0 = True
3377 2 >  1 = True
3378 2 >  2 = False
3379 2 >  3 = False
3380  
3381 3 >  -3 = True
3382 3 >  -2 = True
3383 3 >  -1 = True
3384 3 >  0 = True
3385 3 >  1 = True
3386 3 >  2 = True
3387 3 >  3 = False
3388  
3389 #
3390 -3 >= -3 = True
3391 -3 >= -2 = False
3392 -3 >= -1 = False
3393 -3 >= 0 = False
3394 -3 >= 1 = False
3395 -3 >= 2 = False
3396 -3 >= 3 = False
3397  
3398 -2 >= -3 = True
3399 -2 >= -2 = True
3400 -2 >= -1 = False
3401 -2 >= 0 = False
3402 -2 >= 1 = False
3403 -2 >= 2 = False
3404 -2 >= 3 = False
3405  
3406 -1 >= -3 = True
3407 -1 >= -2 = True
3408 -1 >= -1 = True
3409 -1 >= 0 = False
3410 -1 >= 1 = False
3411 -1 >= 2 = False
3412 -1 >= 3 = False
3413  
3414 0 >= -3 = True
3415 0 >= -2 = True
3416 0 >= -1 = True
3417 0 >= 0 = True
3418 0 >= 1 = False
3419 0 >= 2 = False
3420 0 >= 3 = False
3421  
3422 1 >= -3 = True
3423 1 >= -2 = True
3424 1 >= -1 = True
3425 1 >= 0 = True
3426 1 >= 1 = True
3427 1 >= 2 = False
3428 1 >= 3 = False
3429  
3430 2 >= -3 = True
3431 2 >= -2 = True
3432 2 >= -1 = True
3433 2 >= 0 = True
3434 2 >= 1 = True
3435 2 >= 2 = True
3436 2 >= 3 = False
3437  
3438 3 >= -3 = True
3439 3 >= -2 = True
3440 3 >= -1 = True
3441 3 >= 0 = True
3442 3 >= 1 = True
3443 3 >= 2 = True
3444 3 >= 3 = True
3445  
3446 #
3447 -3 `compare` -3 = EQ
3448 -3 `compare` -2 = LT
3449 -3 `compare` -1 = LT
3450 -3 `compare` 0 = LT
3451 -3 `compare` 1 = LT
3452 -3 `compare` 2 = LT
3453 -3 `compare` 3 = LT
3454  
3455 -2 `compare` -3 = GT
3456 -2 `compare` -2 = EQ
3457 -2 `compare` -1 = LT
3458 -2 `compare` 0 = LT
3459 -2 `compare` 1 = LT
3460 -2 `compare` 2 = LT
3461 -2 `compare` 3 = LT
3462  
3463 -1 `compare` -3 = GT
3464 -1 `compare` -2 = GT
3465 -1 `compare` -1 = EQ
3466 -1 `compare` 0 = LT
3467 -1 `compare` 1 = LT
3468 -1 `compare` 2 = LT
3469 -1 `compare` 3 = LT
3470  
3471 0 `compare` -3 = GT
3472 0 `compare` -2 = GT
3473 0 `compare` -1 = GT
3474 0 `compare` 0 = EQ
3475 0 `compare` 1 = LT
3476 0 `compare` 2 = LT
3477 0 `compare` 3 = LT
3478  
3479 1 `compare` -3 = GT
3480 1 `compare` -2 = GT
3481 1 `compare` -1 = GT
3482 1 `compare` 0 = GT
3483 1 `compare` 1 = EQ
3484 1 `compare` 2 = LT
3485 1 `compare` 3 = LT
3486  
3487 2 `compare` -3 = GT
3488 2 `compare` -2 = GT
3489 2 `compare` -1 = GT
3490 2 `compare` 0 = GT
3491 2 `compare` 1 = GT
3492 2 `compare` 2 = EQ
3493 2 `compare` 3 = LT
3494  
3495 3 `compare` -3 = GT
3496 3 `compare` -2 = GT
3497 3 `compare` -1 = GT
3498 3 `compare` 0 = GT
3499 3 `compare` 1 = GT
3500 3 `compare` 2 = GT
3501 3 `compare` 3 = EQ
3502  
3503 #
3504 testNum
3505 -3 + -3 = -6
3506 -3 + -2 = -5
3507 -3 + -1 = -4
3508 -3 + 0 = -3
3509 -3 + 1 = -2
3510 -3 + 2 = -1
3511 -3 + 3 = 0
3512  
3513 -2 + -3 = -5
3514 -2 + -2 = -4
3515 -2 + -1 = -3
3516 -2 + 0 = -2
3517 -2 + 1 = -1
3518 -2 + 2 = 0
3519 -2 + 3 = 1
3520  
3521 -1 + -3 = -4
3522 -1 + -2 = -3
3523 -1 + -1 = -2
3524 -1 + 0 = -1
3525 -1 + 1 = 0
3526 -1 + 2 = 1
3527 -1 + 3 = 2
3528  
3529 0 + -3 = -3
3530 0 + -2 = -2
3531 0 + -1 = -1
3532 0 + 0 = 0
3533 0 + 1 = 1
3534 0 + 2 = 2
3535 0 + 3 = 3
3536  
3537 1 + -3 = -2
3538 1 + -2 = -1
3539 1 + -1 = 0
3540 1 + 0 = 1
3541 1 + 1 = 2
3542 1 + 2 = 3
3543 1 + 3 = 4
3544  
3545 2 + -3 = -1
3546 2 + -2 = 0
3547 2 + -1 = 1
3548 2 + 0 = 2
3549 2 + 1 = 3
3550 2 + 2 = 4
3551 2 + 3 = 5
3552  
3553 3 + -3 = 0
3554 3 + -2 = 1
3555 3 + -1 = 2
3556 3 + 0 = 3
3557 3 + 1 = 4
3558 3 + 2 = 5
3559 3 + 3 = 6
3560  
3561 #
3562 -3 - -3 = 0
3563 -3 - -2 = -1
3564 -3 - -1 = -2
3565 -3 - 0 = -3
3566 -3 - 1 = -4
3567 -3 - 2 = -5
3568 -3 - 3 = -6
3569  
3570 -2 - -3 = 1
3571 -2 - -2 = 0
3572 -2 - -1 = -1
3573 -2 - 0 = -2
3574 -2 - 1 = -3
3575 -2 - 2 = -4
3576 -2 - 3 = -5
3577  
3578 -1 - -3 = 2
3579 -1 - -2 = 1
3580 -1 - -1 = 0
3581 -1 - 0 = -1
3582 -1 - 1 = -2
3583 -1 - 2 = -3
3584 -1 - 3 = -4
3585  
3586 0 - -3 = 3
3587 0 - -2 = 2
3588 0 - -1 = 1
3589 0 - 0 = 0
3590 0 - 1 = -1
3591 0 - 2 = -2
3592 0 - 3 = -3
3593  
3594 1 - -3 = 4
3595 1 - -2 = 3
3596 1 - -1 = 2
3597 1 - 0 = 1
3598 1 - 1 = 0
3599 1 - 2 = -1
3600 1 - 3 = -2
3601  
3602 2 - -3 = 5
3603 2 - -2 = 4
3604 2 - -1 = 3
3605 2 - 0 = 2
3606 2 - 1 = 1
3607 2 - 2 = 0
3608 2 - 3 = -1
3609  
3610 3 - -3 = 6
3611 3 - -2 = 5
3612 3 - -1 = 4
3613 3 - 0 = 3
3614 3 - 1 = 2
3615 3 - 2 = 1
3616 3 - 3 = 0
3617  
3618 #
3619 -3 * -3 = 9
3620 -3 * -2 = 6
3621 -3 * -1 = 3
3622 -3 * 0 = 0
3623 -3 * 1 = -3
3624 -3 * 2 = -6
3625 -3 * 3 = -9
3626  
3627 -2 * -3 = 6
3628 -2 * -2 = 4
3629 -2 * -1 = 2
3630 -2 * 0 = 0
3631 -2 * 1 = -2
3632 -2 * 2 = -4
3633 -2 * 3 = -6
3634  
3635 -1 * -3 = 3
3636 -1 * -2 = 2
3637 -1 * -1 = 1
3638 -1 * 0 = 0
3639 -1 * 1 = -1
3640 -1 * 2 = -2
3641 -1 * 3 = -3
3642  
3643 0 * -3 = 0
3644 0 * -2 = 0
3645 0 * -1 = 0
3646 0 * 0 = 0
3647 0 * 1 = 0
3648 0 * 2 = 0
3649 0 * 3 = 0
3650  
3651 1 * -3 = -3
3652 1 * -2 = -2
3653 1 * -1 = -1
3654 1 * 0 = 0
3655 1 * 1 = 1
3656 1 * 2 = 2
3657 1 * 3 = 3
3658  
3659 2 * -3 = -6
3660 2 * -2 = -4
3661 2 * -1 = -2
3662 2 * 0 = 0
3663 2 * 1 = 2
3664 2 * 2 = 4
3665 2 * 3 = 6
3666  
3667 3 * -3 = -9
3668 3 * -2 = -6
3669 3 * -1 = -3
3670 3 * 0 = 0
3671 3 * 1 = 3
3672 3 * 2 = 6
3673 3 * 3 = 9
3674  
3675 #
3676 negate -3 = 3
3677 negate -2 = 2
3678 negate -1 = 1
3679 negate 0 = 0
3680 negate 1 = -1
3681 negate 2 = -2
3682 negate 3 = -3
3683 #
3684 testReal
3685 toRational -3 = (-3) % 1
3686 toRational -2 = (-2) % 1
3687 toRational -1 = (-1) % 1
3688 toRational 0 = 0 % 1
3689 toRational 1 = 1 % 1
3690 toRational 2 = 2 % 1
3691 toRational 3 = 3 % 1
3692 #
3693 testIntegral
3694 -3 `divMod`  -3 = (1,0)
3695 -3 `divMod`  -2 = (1,-1)
3696 -3 `divMod`  -1 = (3,0)
3697 -3 `divMod`  0 = divide by zero
3698 -3 `divMod`  1 = (-3,0)
3699 -3 `divMod`  2 = (-2,1)
3700 -3 `divMod`  3 = (-1,0)
3701  
3702 -2 `divMod`  -3 = (0,-2)
3703 -2 `divMod`  -2 = (1,0)
3704 -2 `divMod`  -1 = (2,0)
3705 -2 `divMod`  0 = divide by zero
3706 -2 `divMod`  1 = (-2,0)
3707 -2 `divMod`  2 = (-1,0)
3708 -2 `divMod`  3 = (-1,1)
3709  
3710 -1 `divMod`  -3 = (0,-1)
3711 -1 `divMod`  -2 = (0,-1)
3712 -1 `divMod`  -1 = (1,0)
3713 -1 `divMod`  0 = divide by zero
3714 -1 `divMod`  1 = (-1,0)
3715 -1 `divMod`  2 = (-1,1)
3716 -1 `divMod`  3 = (-1,2)
3717  
3718 0 `divMod`  -3 = (0,0)
3719 0 `divMod`  -2 = (0,0)
3720 0 `divMod`  -1 = (0,0)
3721 0 `divMod`  0 = divide by zero
3722 0 `divMod`  1 = (0,0)
3723 0 `divMod`  2 = (0,0)
3724 0 `divMod`  3 = (0,0)
3725  
3726 1 `divMod`  -3 = (-1,-2)
3727 1 `divMod`  -2 = (-1,-1)
3728 1 `divMod`  -1 = (-1,0)
3729 1 `divMod`  0 = divide by zero
3730 1 `divMod`  1 = (1,0)
3731 1 `divMod`  2 = (0,1)
3732 1 `divMod`  3 = (0,1)
3733  
3734 2 `divMod`  -3 = (-1,-1)
3735 2 `divMod`  -2 = (-1,0)
3736 2 `divMod`  -1 = (-2,0)
3737 2 `divMod`  0 = divide by zero
3738 2 `divMod`  1 = (2,0)
3739 2 `divMod`  2 = (1,0)
3740 2 `divMod`  3 = (0,2)
3741  
3742 3 `divMod`  -3 = (-1,0)
3743 3 `divMod`  -2 = (-2,-1)
3744 3 `divMod`  -1 = (-3,0)
3745 3 `divMod`  0 = divide by zero
3746 3 `divMod`  1 = (3,0)
3747 3 `divMod`  2 = (1,1)
3748 3 `divMod`  3 = (1,0)
3749  
3750 #
3751 -3 `div`     -3 = 1
3752 -3 `div`     -2 = 1
3753 -3 `div`     -1 = 3
3754 -3 `div`     0 = divide by zero
3755 -3 `div`     1 = -3
3756 -3 `div`     2 = -2
3757 -3 `div`     3 = -1
3758  
3759 -2 `div`     -3 = 0
3760 -2 `div`     -2 = 1
3761 -2 `div`     -1 = 2
3762 -2 `div`     0 = divide by zero
3763 -2 `div`     1 = -2
3764 -2 `div`     2 = -1
3765 -2 `div`     3 = -1
3766  
3767 -1 `div`     -3 = 0
3768 -1 `div`     -2 = 0
3769 -1 `div`     -1 = 1
3770 -1 `div`     0 = divide by zero
3771 -1 `div`     1 = -1
3772 -1 `div`     2 = -1
3773 -1 `div`     3 = -1
3774  
3775 0 `div`     -3 = 0
3776 0 `div`     -2 = 0
3777 0 `div`     -1 = 0
3778 0 `div`     0 = divide by zero
3779 0 `div`     1 = 0
3780 0 `div`     2 = 0
3781 0 `div`     3 = 0
3782  
3783 1 `div`     -3 = -1
3784 1 `div`     -2 = -1
3785 1 `div`     -1 = -1
3786 1 `div`     0 = divide by zero
3787 1 `div`     1 = 1
3788 1 `div`     2 = 0
3789 1 `div`     3 = 0
3790  
3791 2 `div`     -3 = -1
3792 2 `div`     -2 = -1
3793 2 `div`     -1 = -2
3794 2 `div`     0 = divide by zero
3795 2 `div`     1 = 2
3796 2 `div`     2 = 1
3797 2 `div`     3 = 0
3798  
3799 3 `div`     -3 = -1
3800 3 `div`     -2 = -2
3801 3 `div`     -1 = -3
3802 3 `div`     0 = divide by zero
3803 3 `div`     1 = 3
3804 3 `div`     2 = 1
3805 3 `div`     3 = 1
3806  
3807 #
3808 -3 `mod`     -3 = 0
3809 -3 `mod`     -2 = -1
3810 -3 `mod`     -1 = 0
3811 -3 `mod`     0 = divide by zero
3812 -3 `mod`     1 = 0
3813 -3 `mod`     2 = 1
3814 -3 `mod`     3 = 0
3815  
3816 -2 `mod`     -3 = -2
3817 -2 `mod`     -2 = 0
3818 -2 `mod`     -1 = 0
3819 -2 `mod`     0 = divide by zero
3820 -2 `mod`     1 = 0
3821 -2 `mod`     2 = 0
3822 -2 `mod`     3 = 1
3823  
3824 -1 `mod`     -3 = -1
3825 -1 `mod`     -2 = -1
3826 -1 `mod`     -1 = 0
3827 -1 `mod`     0 = divide by zero
3828 -1 `mod`     1 = 0
3829 -1 `mod`     2 = 1
3830 -1 `mod`     3 = 2
3831  
3832 0 `mod`     -3 = 0
3833 0 `mod`     -2 = 0
3834 0 `mod`     -1 = 0
3835 0 `mod`     0 = divide by zero
3836 0 `mod`     1 = 0
3837 0 `mod`     2 = 0
3838 0 `mod`     3 = 0
3839  
3840 1 `mod`     -3 = -2
3841 1 `mod`     -2 = -1
3842 1 `mod`     -1 = 0
3843 1 `mod`     0 = divide by zero
3844 1 `mod`     1 = 0
3845 1 `mod`     2 = 1
3846 1 `mod`     3 = 1
3847  
3848 2 `mod`     -3 = -1
3849 2 `mod`     -2 = 0
3850 2 `mod`     -1 = 0
3851 2 `mod`     0 = divide by zero
3852 2 `mod`     1 = 0
3853 2 `mod`     2 = 0
3854 2 `mod`     3 = 2
3855  
3856 3 `mod`     -3 = 0
3857 3 `mod`     -2 = -1
3858 3 `mod`     -1 = 0
3859 3 `mod`     0 = divide by zero
3860 3 `mod`     1 = 0
3861 3 `mod`     2 = 1
3862 3 `mod`     3 = 0
3863  
3864 #
3865 -3 `quotRem` -3 = (1,0)
3866 -3 `quotRem` -2 = (1,-1)
3867 -3 `quotRem` -1 = (3,0)
3868 -3 `quotRem` 0 = divide by zero
3869 -3 `quotRem` 1 = (-3,0)
3870 -3 `quotRem` 2 = (-1,-1)
3871 -3 `quotRem` 3 = (-1,0)
3872  
3873 -2 `quotRem` -3 = (0,-2)
3874 -2 `quotRem` -2 = (1,0)
3875 -2 `quotRem` -1 = (2,0)
3876 -2 `quotRem` 0 = divide by zero
3877 -2 `quotRem` 1 = (-2,0)
3878 -2 `quotRem` 2 = (-1,0)
3879 -2 `quotRem` 3 = (0,-2)
3880  
3881 -1 `quotRem` -3 = (0,-1)
3882 -1 `quotRem` -2 = (0,-1)
3883 -1 `quotRem` -1 = (1,0)
3884 -1 `quotRem` 0 = divide by zero
3885 -1 `quotRem` 1 = (-1,0)
3886 -1 `quotRem` 2 = (0,-1)
3887 -1 `quotRem` 3 = (0,-1)
3888  
3889 0 `quotRem` -3 = (0,0)
3890 0 `quotRem` -2 = (0,0)
3891 0 `quotRem` -1 = (0,0)
3892 0 `quotRem` 0 = divide by zero
3893 0 `quotRem` 1 = (0,0)
3894 0 `quotRem` 2 = (0,0)
3895 0 `quotRem` 3 = (0,0)
3896  
3897 1 `quotRem` -3 = (0,1)
3898 1 `quotRem` -2 = (0,1)
3899 1 `quotRem` -1 = (-1,0)
3900 1 `quotRem` 0 = divide by zero
3901 1 `quotRem` 1 = (1,0)
3902 1 `quotRem` 2 = (0,1)
3903 1 `quotRem` 3 = (0,1)
3904  
3905 2 `quotRem` -3 = (0,2)
3906 2 `quotRem` -2 = (-1,0)
3907 2 `quotRem` -1 = (-2,0)
3908 2 `quotRem` 0 = divide by zero
3909 2 `quotRem` 1 = (2,0)
3910 2 `quotRem` 2 = (1,0)
3911 2 `quotRem` 3 = (0,2)
3912  
3913 3 `quotRem` -3 = (-1,0)
3914 3 `quotRem` -2 = (-1,1)
3915 3 `quotRem` -1 = (-3,0)
3916 3 `quotRem` 0 = divide by zero
3917 3 `quotRem` 1 = (3,0)
3918 3 `quotRem` 2 = (1,1)
3919 3 `quotRem` 3 = (1,0)
3920  
3921 #
3922 -3 `quot`    -3 = 1
3923 -3 `quot`    -2 = 1
3924 -3 `quot`    -1 = 3
3925 -3 `quot`    0 = divide by zero
3926 -3 `quot`    1 = -3
3927 -3 `quot`    2 = -1
3928 -3 `quot`    3 = -1
3929  
3930 -2 `quot`    -3 = 0
3931 -2 `quot`    -2 = 1
3932 -2 `quot`    -1 = 2
3933 -2 `quot`    0 = divide by zero
3934 -2 `quot`    1 = -2
3935 -2 `quot`    2 = -1
3936 -2 `quot`    3 = 0
3937  
3938 -1 `quot`    -3 = 0
3939 -1 `quot`    -2 = 0
3940 -1 `quot`    -1 = 1
3941 -1 `quot`    0 = divide by zero
3942 -1 `quot`    1 = -1
3943 -1 `quot`    2 = 0
3944 -1 `quot`    3 = 0
3945  
3946 0 `quot`    -3 = 0
3947 0 `quot`    -2 = 0
3948 0 `quot`    -1 = 0
3949 0 `quot`    0 = divide by zero
3950 0 `quot`    1 = 0
3951 0 `quot`    2 = 0
3952 0 `quot`    3 = 0
3953  
3954 1 `quot`    -3 = 0
3955 1 `quot`    -2 = 0
3956 1 `quot`    -1 = -1
3957 1 `quot`    0 = divide by zero
3958 1 `quot`    1 = 1
3959 1 `quot`    2 = 0
3960 1 `quot`    3 = 0
3961  
3962 2 `quot`    -3 = 0
3963 2 `quot`    -2 = -1
3964 2 `quot`    -1 = -2
3965 2 `quot`    0 = divide by zero
3966 2 `quot`    1 = 2
3967 2 `quot`    2 = 1
3968 2 `quot`    3 = 0
3969  
3970 3 `quot`    -3 = -1
3971 3 `quot`    -2 = -1
3972 3 `quot`    -1 = -3
3973 3 `quot`    0 = divide by zero
3974 3 `quot`    1 = 3
3975 3 `quot`    2 = 1
3976 3 `quot`    3 = 1
3977  
3978 #
3979 -3 `rem`     -3 = 0
3980 -3 `rem`     -2 = -1
3981 -3 `rem`     -1 = 0
3982 -3 `rem`     0 = divide by zero
3983 -3 `rem`     1 = 0
3984 -3 `rem`     2 = -1
3985 -3 `rem`     3 = 0
3986  
3987 -2 `rem`     -3 = -2
3988 -2 `rem`     -2 = 0
3989 -2 `rem`     -1 = 0
3990 -2 `rem`     0 = divide by zero
3991 -2 `rem`     1 = 0
3992 -2 `rem`     2 = 0
3993 -2 `rem`     3 = -2
3994  
3995 -1 `rem`     -3 = -1
3996 -1 `rem`     -2 = -1
3997 -1 `rem`     -1 = 0
3998 -1 `rem`     0 = divide by zero
3999 -1 `rem`     1 = 0
4000 -1 `rem`     2 = -1
4001 -1 `rem`     3 = -1
4002  
4003 0 `rem`     -3 = 0
4004 0 `rem`     -2 = 0
4005 0 `rem`     -1 = 0
4006 0 `rem`     0 = divide by zero
4007 0 `rem`     1 = 0
4008 0 `rem`     2 = 0
4009 0 `rem`     3 = 0
4010  
4011 1 `rem`     -3 = 1
4012 1 `rem`     -2 = 1
4013 1 `rem`     -1 = 0
4014 1 `rem`     0 = divide by zero
4015 1 `rem`     1 = 0
4016 1 `rem`     2 = 1
4017 1 `rem`     3 = 1
4018  
4019 2 `rem`     -3 = 2
4020 2 `rem`     -2 = 0
4021 2 `rem`     -1 = 0
4022 2 `rem`     0 = divide by zero
4023 2 `rem`     1 = 0
4024 2 `rem`     2 = 0
4025 2 `rem`     3 = 2
4026  
4027 3 `rem`     -3 = 0
4028 3 `rem`     -2 = 1
4029 3 `rem`     -1 = 0
4030 3 `rem`     0 = divide by zero
4031 3 `rem`     1 = 0
4032 3 `rem`     2 = 1
4033 3 `rem`     3 = 0
4034  
4035 #
4036 testConversions
4037 Integer : [-32768,0,32767]
4038 Int     : [-32768,0,32767]
4039 Int8    : [0,0,-1]
4040 Int16   : [-32768,0,32767]
4041 Int32   : [-32768,0,32767]
4042 Int64   : [-32768,0,32767]
4043 Word8   : [0,0,255]
4044 Word16  : [32768,0,32767]
4045 Word32  : [4294934528,0,32767]
4046 Word64  : [18446744073709518848,0,32767]
4047 testBits
4048 -3 .&.   -3 = -3
4049 -3 .&.   -2 = -4
4050 -3 .&.   -1 = -3
4051 -3 .&.   0 = 0
4052 -3 .&.   1 = 1
4053 -3 .&.   2 = 0
4054 -3 .&.   3 = 1
4055  
4056 -2 .&.   -3 = -4
4057 -2 .&.   -2 = -2
4058 -2 .&.   -1 = -2
4059 -2 .&.   0 = 0
4060 -2 .&.   1 = 0
4061 -2 .&.   2 = 2
4062 -2 .&.   3 = 2
4063  
4064 -1 .&.   -3 = -3
4065 -1 .&.   -2 = -2
4066 -1 .&.   -1 = -1
4067 -1 .&.   0 = 0
4068 -1 .&.   1 = 1
4069 -1 .&.   2 = 2
4070 -1 .&.   3 = 3
4071  
4072 0 .&.   -3 = 0
4073 0 .&.   -2 = 0
4074 0 .&.   -1 = 0
4075 0 .&.   0 = 0
4076 0 .&.   1 = 0
4077 0 .&.   2 = 0
4078 0 .&.   3 = 0
4079  
4080 1 .&.   -3 = 1
4081 1 .&.   -2 = 0
4082 1 .&.   -1 = 1
4083 1 .&.   0 = 0
4084 1 .&.   1 = 1
4085 1 .&.   2 = 0
4086 1 .&.   3 = 1
4087  
4088 2 .&.   -3 = 0
4089 2 .&.   -2 = 2
4090 2 .&.   -1 = 2
4091 2 .&.   0 = 0
4092 2 .&.   1 = 0
4093 2 .&.   2 = 2
4094 2 .&.   3 = 2
4095  
4096 3 .&.   -3 = 1
4097 3 .&.   -2 = 2
4098 3 .&.   -1 = 3
4099 3 .&.   0 = 0
4100 3 .&.   1 = 1
4101 3 .&.   2 = 2
4102 3 .&.   3 = 3
4103  
4104 #
4105 -3 .|.   -3 = -3
4106 -3 .|.   -2 = -1
4107 -3 .|.   -1 = -1
4108 -3 .|.   0 = -3
4109 -3 .|.   1 = -3
4110 -3 .|.   2 = -1
4111 -3 .|.   3 = -1
4112  
4113 -2 .|.   -3 = -1
4114 -2 .|.   -2 = -2
4115 -2 .|.   -1 = -1
4116 -2 .|.   0 = -2
4117 -2 .|.   1 = -1
4118 -2 .|.   2 = -2
4119 -2 .|.   3 = -1
4120  
4121 -1 .|.   -3 = -1
4122 -1 .|.   -2 = -1
4123 -1 .|.   -1 = -1
4124 -1 .|.   0 = -1
4125 -1 .|.   1 = -1
4126 -1 .|.   2 = -1
4127 -1 .|.   3 = -1
4128  
4129 0 .|.   -3 = -3
4130 0 .|.   -2 = -2
4131 0 .|.   -1 = -1
4132 0 .|.   0 = 0
4133 0 .|.   1 = 1
4134 0 .|.   2 = 2
4135 0 .|.   3 = 3
4136  
4137 1 .|.   -3 = -3
4138 1 .|.   -2 = -1
4139 1 .|.   -1 = -1
4140 1 .|.   0 = 1
4141 1 .|.   1 = 1
4142 1 .|.   2 = 3
4143 1 .|.   3 = 3
4144  
4145 2 .|.   -3 = -1
4146 2 .|.   -2 = -2
4147 2 .|.   -1 = -1
4148 2 .|.   0 = 2
4149 2 .|.   1 = 3
4150 2 .|.   2 = 2
4151 2 .|.   3 = 3
4152  
4153 3 .|.   -3 = -1
4154 3 .|.   -2 = -1
4155 3 .|.   -1 = -1
4156 3 .|.   0 = 3
4157 3 .|.   1 = 3
4158 3 .|.   2 = 3
4159 3 .|.   3 = 3
4160  
4161 #
4162 -3 `xor` -3 = 0
4163 -3 `xor` -2 = 3
4164 -3 `xor` -1 = 2
4165 -3 `xor` 0 = -3
4166 -3 `xor` 1 = -4
4167 -3 `xor` 2 = -1
4168 -3 `xor` 3 = -2
4169  
4170 -2 `xor` -3 = 3
4171 -2 `xor` -2 = 0
4172 -2 `xor` -1 = 1
4173 -2 `xor` 0 = -2
4174 -2 `xor` 1 = -1
4175 -2 `xor` 2 = -4
4176 -2 `xor` 3 = -3
4177  
4178 -1 `xor` -3 = 2
4179 -1 `xor` -2 = 1
4180 -1 `xor` -1 = 0
4181 -1 `xor` 0 = -1
4182 -1 `xor` 1 = -2
4183 -1 `xor` 2 = -3
4184 -1 `xor` 3 = -4
4185  
4186 0 `xor` -3 = -3
4187 0 `xor` -2 = -2
4188 0 `xor` -1 = -1
4189 0 `xor` 0 = 0
4190 0 `xor` 1 = 1
4191 0 `xor` 2 = 2
4192 0 `xor` 3 = 3
4193  
4194 1 `xor` -3 = -4
4195 1 `xor` -2 = -1
4196 1 `xor` -1 = -2
4197 1 `xor` 0 = 1
4198 1 `xor` 1 = 0
4199 1 `xor` 2 = 3
4200 1 `xor` 3 = 2
4201  
4202 2 `xor` -3 = -1
4203 2 `xor` -2 = -4
4204 2 `xor` -1 = -3
4205 2 `xor` 0 = 2
4206 2 `xor` 1 = 3
4207 2 `xor` 2 = 0
4208 2 `xor` 3 = 1
4209  
4210 3 `xor` -3 = -2
4211 3 `xor` -2 = -3
4212 3 `xor` -1 = -4
4213 3 `xor` 0 = 3
4214 3 `xor` 1 = 2
4215 3 `xor` 2 = 1
4216 3 `xor` 3 = 0
4217  
4218 #
4219 complement -3 = 2
4220 complement -2 = 1
4221 complement -1 = 0
4222 complement 0 = -1
4223 complement 1 = -2
4224 complement 2 = -3
4225 complement 3 = -4
4226 #
4227 -3 `shiftL` 0 = -3
4228 -3 `shiftL` 1 = -6
4229 -3 `shiftL` 2 = -12
4230 -3 `shiftL` 3 = -24
4231 -3 `shiftL` 32 = 0
4232 -3 `shiftL` 64 = 0
4233  
4234 -2 `shiftL` 0 = -2
4235 -2 `shiftL` 1 = -4
4236 -2 `shiftL` 2 = -8
4237 -2 `shiftL` 3 = -16
4238 -2 `shiftL` 32 = 0
4239 -2 `shiftL` 64 = 0
4240  
4241 -1 `shiftL` 0 = -1
4242 -1 `shiftL` 1 = -2
4243 -1 `shiftL` 2 = -4
4244 -1 `shiftL` 3 = -8
4245 -1 `shiftL` 32 = 0
4246 -1 `shiftL` 64 = 0
4247  
4248 0 `shiftL` 0 = 0
4249 0 `shiftL` 1 = 0
4250 0 `shiftL` 2 = 0
4251 0 `shiftL` 3 = 0
4252 0 `shiftL` 32 = 0
4253 0 `shiftL` 64 = 0
4254  
4255 1 `shiftL` 0 = 1
4256 1 `shiftL` 1 = 2
4257 1 `shiftL` 2 = 4
4258 1 `shiftL` 3 = 8
4259 1 `shiftL` 32 = 0
4260 1 `shiftL` 64 = 0
4261  
4262 2 `shiftL` 0 = 2
4263 2 `shiftL` 1 = 4
4264 2 `shiftL` 2 = 8
4265 2 `shiftL` 3 = 16
4266 2 `shiftL` 32 = 0
4267 2 `shiftL` 64 = 0
4268  
4269 3 `shiftL` 0 = 3
4270 3 `shiftL` 1 = 6
4271 3 `shiftL` 2 = 12
4272 3 `shiftL` 3 = 24
4273 3 `shiftL` 32 = 0
4274 3 `shiftL` 64 = 0
4275  
4276 #
4277 -3 `shiftR` 0 = -3
4278 -3 `shiftR` 1 = -2
4279 -3 `shiftR` 2 = -1
4280 -3 `shiftR` 3 = -1
4281 -3 `shiftR` 32 = -1
4282 -3 `shiftR` 64 = -1
4283  
4284 -2 `shiftR` 0 = -2
4285 -2 `shiftR` 1 = -1
4286 -2 `shiftR` 2 = -1
4287 -2 `shiftR` 3 = -1
4288 -2 `shiftR` 32 = -1
4289 -2 `shiftR` 64 = -1
4290  
4291 -1 `shiftR` 0 = -1
4292 -1 `shiftR` 1 = -1
4293 -1 `shiftR` 2 = -1
4294 -1 `shiftR` 3 = -1
4295 -1 `shiftR` 32 = -1
4296 -1 `shiftR` 64 = -1
4297  
4298 0 `shiftR` 0 = 0
4299 0 `shiftR` 1 = 0
4300 0 `shiftR` 2 = 0
4301 0 `shiftR` 3 = 0
4302 0 `shiftR` 32 = 0
4303 0 `shiftR` 64 = 0
4304  
4305 1 `shiftR` 0 = 1
4306 1 `shiftR` 1 = 0
4307 1 `shiftR` 2 = 0
4308 1 `shiftR` 3 = 0
4309 1 `shiftR` 32 = 0
4310 1 `shiftR` 64 = 0
4311  
4312 2 `shiftR` 0 = 2
4313 2 `shiftR` 1 = 1
4314 2 `shiftR` 2 = 0
4315 2 `shiftR` 3 = 0
4316 2 `shiftR` 32 = 0
4317 2 `shiftR` 64 = 0
4318  
4319 3 `shiftR` 0 = 3
4320 3 `shiftR` 1 = 1
4321 3 `shiftR` 2 = 0
4322 3 `shiftR` 3 = 0
4323 3 `shiftR` 32 = 0
4324 3 `shiftR` 64 = 0
4325  
4326 #
4327 -3 `rotate` -3 = -16385
4328 -3 `rotate` -2 = 32767
4329 -3 `rotate` -1 = -2
4330 -3 `rotate` 0 = -3
4331 -3 `rotate` 1 = -5
4332 -3 `rotate` 2 = -9
4333 -3 `rotate` 3 = -17
4334 -3 `rotate` -64 = -3
4335 -3 `rotate` -32 = -3
4336 -3 `rotate` 32 = -3
4337 -3 `rotate` 64 = -3
4338  
4339 -2 `rotate` -3 = -8193
4340 -2 `rotate` -2 = -16385
4341 -2 `rotate` -1 = 32767
4342 -2 `rotate` 0 = -2
4343 -2 `rotate` 1 = -3
4344 -2 `rotate` 2 = -5
4345 -2 `rotate` 3 = -9
4346 -2 `rotate` -64 = -2
4347 -2 `rotate` -32 = -2
4348 -2 `rotate` 32 = -2
4349 -2 `rotate` 64 = -2
4350  
4351 -1 `rotate` -3 = -1
4352 -1 `rotate` -2 = -1
4353 -1 `rotate` -1 = -1
4354 -1 `rotate` 0 = -1
4355 -1 `rotate` 1 = -1
4356 -1 `rotate` 2 = -1
4357 -1 `rotate` 3 = -1
4358 -1 `rotate` -64 = -1
4359 -1 `rotate` -32 = -1
4360 -1 `rotate` 32 = -1
4361 -1 `rotate` 64 = -1
4362  
4363 0 `rotate` -3 = 0
4364 0 `rotate` -2 = 0
4365 0 `rotate` -1 = 0
4366 0 `rotate` 0 = 0
4367 0 `rotate` 1 = 0
4368 0 `rotate` 2 = 0
4369 0 `rotate` 3 = 0
4370 0 `rotate` -64 = 0
4371 0 `rotate` -32 = 0
4372 0 `rotate` 32 = 0
4373 0 `rotate` 64 = 0
4374  
4375 1 `rotate` -3 = 8192
4376 1 `rotate` -2 = 16384
4377 1 `rotate` -1 = -32768
4378 1 `rotate` 0 = 1
4379 1 `rotate` 1 = 2
4380 1 `rotate` 2 = 4
4381 1 `rotate` 3 = 8
4382 1 `rotate` -64 = 1
4383 1 `rotate` -32 = 1
4384 1 `rotate` 32 = 1
4385 1 `rotate` 64 = 1
4386  
4387 2 `rotate` -3 = 16384
4388 2 `rotate` -2 = -32768
4389 2 `rotate` -1 = 1
4390 2 `rotate` 0 = 2
4391 2 `rotate` 1 = 4
4392 2 `rotate` 2 = 8
4393 2 `rotate` 3 = 16
4394 2 `rotate` -64 = 2
4395 2 `rotate` -32 = 2
4396 2 `rotate` 32 = 2
4397 2 `rotate` 64 = 2
4398  
4399 3 `rotate` -3 = 24576
4400 3 `rotate` -2 = -16384
4401 3 `rotate` -1 = -32767
4402 3 `rotate` 0 = 3
4403 3 `rotate` 1 = 6
4404 3 `rotate` 2 = 12
4405 3 `rotate` 3 = 24
4406 3 `rotate` -64 = 3
4407 3 `rotate` -32 = 3
4408 3 `rotate` 32 = 3
4409 3 `rotate` 64 = 3
4410  
4411 #
4412 bit 0 = 1
4413 bit 1 = 2
4414 bit 2 = 4
4415 bit 3 = 8
4416 #
4417 -3 `setBit` 0 = -3
4418 -3 `setBit` 1 = -1
4419 -3 `setBit` 2 = -3
4420 -3 `setBit` 3 = -3
4421 -3 `setBit` 32 = -3
4422 -3 `setBit` 64 = -3
4423  
4424 -2 `setBit` 0 = -1
4425 -2 `setBit` 1 = -2
4426 -2 `setBit` 2 = -2
4427 -2 `setBit` 3 = -2
4428 -2 `setBit` 32 = -2
4429 -2 `setBit` 64 = -2
4430  
4431 -1 `setBit` 0 = -1
4432 -1 `setBit` 1 = -1
4433 -1 `setBit` 2 = -1
4434 -1 `setBit` 3 = -1
4435 -1 `setBit` 32 = -1
4436 -1 `setBit` 64 = -1
4437  
4438 0 `setBit` 0 = 1
4439 0 `setBit` 1 = 2