@pragma entry main @pragma implicit off @include "tap.inc"; @global g_calls = 0; function tick (v) { g_calls = g_calls + 1; return v; } function main () { @local i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z; i = 0; j = 0; k = 0; l = 0; m = 0; n = 0; o = 0; p = 0; q = 0; r = 0; while (0) { i = i + 1; } while (@false) { j = j + 1; } while ((0)) { k = k + 1; } while ((@false)) { l = l + 1; } tap_ensure(i, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(j, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(k, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(l, 0, @SCRIPTNAME, @SCRIPTLINE); if ((1, 0)) m = 1; else m = 2; if (((0, "", 5))) n = 1; else n = 2; if (((1, 2, @false))) o = 1; else o = 2; if ((((1, 2), (3, 4), 0))) p = 1; else p = 2; while ((1, 0)) { q = q + 1; } while ((((1, 2), (3, 4), 0))) { r = r + 1; } tap_ensure(m, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(n, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(o, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(p, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(q, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(r, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 ^ 10, 1024, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 ^ -3, 0.125, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(7.5 \ 2, 3, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(8.5 / 2, 4.25, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(17 % 5, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(17.5 % 5, 2.5, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(6 & 3, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(6 ^^ 3, 5, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(6 | 3, 7, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(3 << 4, 48, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(48 >> 4, 3, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(6.9 & 3, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(8 >> 1.9, 4, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 == 2.0, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 != 2.0, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 < 2.5, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2.5 >= 2, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 === 2.0, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(2 !== 2.0, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!@true === @false, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!@false === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!@nil === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!"" === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!"x" === @false, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!@b"" === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!@b"x" === @false, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!((1, 0)) === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!((1, 2, "x")) === @false, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; if ((tick(1), 0)) m = 10; else m = 20; tap_ensure(m, 20, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; if ((((1, tick(0))), 1)) n = 10; else n = 20; tap_ensure(n, 10, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; while ((tick(1), 0)) { o = o + 1; } tap_ensure(o, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(!(tick(1), 0) === @true, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); if ((!0 && (1 || 0))) s = 1; else s = 2; if ((!1 || (0 && 1))) t = 1; else t = 2; if (!(0 || (1 && 0))) u = 1; else u = 2; v = 0; w = 0; x = 0; while ((!1 || (1 && 0))) { v = v + 1; } while ((1 && (1 || 0) && 0)) { w = w + 1; } while (!(0 || 1 || 0)) { x = x + 1; } tap_ensure(s, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(t, 2, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(u, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(v, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(w, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(x, 0, @SCRIPTNAME, @SCRIPTLINE); y = ((!0 && (1 || 0)) ? 10 : 20); z = ((!1 || (0 && 1)) ? 10 : 20); tap_ensure(y, 10, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(z, 20, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; y = ((!0 && (1 || 0)) ? tick(10) : tick(20)); tap_ensure(y, 10, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; z = ((!1 || (0 && 1)) ? tick(10) : tick(20)); tap_ensure(z, 20, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(0 && 1, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(1 && 9, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(0 || 0 || 1 || 0, 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(1 && 1 && 0 && 1, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!0 && (1 || 0), 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(!1 || (0 && 1), 0, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(0 && tick(1), 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 0, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(1 || tick(1), 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 0, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(1 && tick(1), 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(0 || tick(1), 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 1, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(0 && tick(1) && tick(2), 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 0, @SCRIPTNAME, @SCRIPTLINE); g_calls = 0; tap_ensure(1 || tick(1) || tick(2), 1, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(g_calls, 0, @SCRIPTNAME, @SCRIPTLINE); tap_ensure("A" %% "B" %% "C", "ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure('A' %% "BC", "ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure("AB" %% 'C', "ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure('A' %% 'B' %% "C", "ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure(hawk::type('A' %% "B"), hawk::VAL_STR, @SCRIPTNAME, @SCRIPTLINE); tap_ensure(@b"A" %% @b"B" %% @b"C", @b"ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure(@b'A' %% @b"BC", @b"ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure(@b"AB" %% @b'C', @b"ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure(@b'A' %% @b'B' %% @b"C", @b"ABC", @SCRIPTNAME, @SCRIPTLINE); tap_ensure(hawk::type(@b'A' %% @b"B"), hawk::VAL_MBS, @SCRIPTNAME, @SCRIPTLINE); tap_end (); }