| Switches xv5; | |
| Release 1; | |
| [ Main; | |
| print "^Division Tester -- release 1 -- Andrew Plotkin -- this program is public domain^^"; | |
| print "This program tests signed multiplication, division, and modulo operations on the \ | |
| Z-machine. All these operations are supposed to be signed. (The Z-spec 0.2 erroneously \ | |
| says they are unsigned; see the Z-machine newsletter #1 for the correction.)^^"; | |
| print "I am assuming the convention that division always rounds towards zero (not towards \ | |
| negative infinity), and (A % B) always has the same sign as A. These conventions seem \ | |
| to be common among existing C/C++ compilers. (But they are not guaranteed by the C and C++ \ | |
| standards. Those only require that (A/B)*B + (A%B) == A, for all A and all nonzero B.)^^"; | |
| TestDiv(); | |
| print "^Hit any key to exit.^"; | |
| Pause(); | |
| quit; | |
| ]; | |
| [ Pause dummy; | |
| @read_char 1 dummy; | |
| return dummy; | |
| ]; | |
| [ TestOneLine str answer correct; | |
| print (string) str, " = ", answer; | |
| if (answer == correct) | |
| print " (ok)^"; | |
| else | |
| print " (should be ", correct, "!)^"; | |
| ]; | |
| [ TestDiv x y z; | |
| x = 13; y = 5; z = x * y; | |
| TestOneLine("13 * 5", z, 65); | |
| x = 13; y = -5; z = x * y; | |
| TestOneLine("13 * -5", z, -65); | |
| x = -13; y = 5; z = x * y; | |
| TestOneLine("-13 * 5", z, -65); | |
| x = -13; y = -5; z = x * y; | |
| TestOneLine("-13 * -5", z, 65); | |
| x = 13; y = 5; z = x / y; | |
| TestOneLine("13 / 5", z, 2); | |
| x = 13; y = -5; z = x / y; | |
| TestOneLine("13 / -5", z, -2); | |
| x = -13; y = 5; z = x / y; | |
| TestOneLine("-13 / 5", z, -2); | |
| x = -13; y = -5; z = x / y; | |
| TestOneLine("-13 / -5", z, 2); | |
| x = 13; y = 5; z = x % y; | |
| TestOneLine("13 % 5", z, 3); | |
| x = 13; y = -5; z = x % y; | |
| TestOneLine("13 % -5", z, 3); | |
| x = -13; y = 5; z = x % y; | |
| TestOneLine("-13 % 5", z, -3); | |
| x = -13; y = -5; z = x % y; | |
| TestOneLine("-13 % -5", z, -3); | |
| ]; | |
Xet Storage Details
- Size:
- 1.79 kB
- Xet hash:
- 9b763a07c1bcf09fc05ae564f1255431925a247eefcbbdd1f0c9b95eab7db614
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.