From d396753de4fe56e44416cac5fb9f15d6fd122267 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Remko=20Tron=C3=A7on?= Date: Thu, 2 Jun 2022 22:18:10 +0200 Subject: [PATCH] WITHIN --- src/waforth.wat | 62 +++-- .../forth2012-test-suite/coreexttest.fth | 260 +++++++++--------- 2 files changed, 172 insertions(+), 150 deletions(-) diff --git a/src/waforth.wat b/src/waforth.wat index f2cef7f..b13b2d3 100644 --- a/src/waforth.wat +++ b/src/waforth.wat @@ -64,7 +64,7 @@ ;; COMPILE_EXECUTE_INDEX := 5 ;; PUSH_INDIRECT_INDEX := 6 ;; END_DO_INDEX := 9 - (table (export "table") 0xb0 funcref) + (table (export "table") 0xb1 funcref) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -1861,6 +1861,28 @@ (data (i32.const 0x20958) "\44\09\02\00" "\85" (; F_IMMEDIATE ;) "WHILE " "\a7\00\00\00") (elem (i32.const 0xa7) $WHILE) + ;; [6.2.2440](https://forth-standard.org/standard/core/WITHIN) + (func $WITHIN (param $tos i32) (result i32) + (local $bbtos i32) + (local $bbbtos i32) + (local $min i32) + (i32.store (local.tee $bbbtos (i32.sub (local.get $tos) (i32.const 12))) + (if (result i32) (i32.lt_u + (i32.sub + (i32.load (local.get $bbbtos)) + (local.tee $min + (i32.load (local.tee $bbtos (i32.sub (local.get $tos) (i32.const 8)))))) + (i32.sub + (i32.load (i32.sub (local.get $tos) (i32.const 4))) + (local.get $min))) + (then + (i32.const -1)) + (else + (i32.const 0)))) + (local.get $bbtos)) + (data (i32.const 0x20968) "\58\09\02\00" "\06" "WITHIN " "\a8\00\00\00") + (elem (i32.const 0xa8) $WITHIN) + ;; [6.1.2450](https://forth-standard.org/standard/core/WORD) (func $WORD (param $tos i32) (result i32) (local $wordBase i32) @@ -1879,8 +1901,8 @@ (local.get $len)) (i32.store8 (local.get $wordBase) (local.get $len)) (call $push (local.get $wordBase))) - (data (i32.const 0x20968) "\58\09\02\00" "\04" "WORD " "\a8\00\00\00") - (elem (i32.const 0xa8) $WORD) + (data (i32.const 0x20978) "\68\09\02\00" "\04" "WORD " "\a9\00\00\00") + (elem (i32.const 0xa9) $WORD) ;; 15.6.1.2465 (func $WORDS (param $tos i32) (result i32) @@ -1901,8 +1923,8 @@ (local.set $entryP (i32.load (local.get $entryP))) (br_if $loop (local.get $entryP))) (local.get $tos)) - (data (i32.const 0x20978) "\68\09\02\00" "\05" "WORDS " "\a9\00\00\00") - (elem (i32.const 0xa9) $WORDS) + (data (i32.const 0x20988) "\78\09\02\00" "\05" "WORDS " "\aa\00\00\00") + (elem (i32.const 0xaa) $WORDS) ;; [6.1.2490](https://forth-standard.org/standard/core/XOR) (func $XOR (param $tos i32) (result i32) @@ -1912,16 +1934,16 @@ (i32.xor (i32.load (local.tee $btos (i32.sub (local.get $tos) (i32.const 4)))) (i32.load (local.get $bbtos)))) (local.get $btos)) - (data (i32.const 0x20988) "\78\09\02\00" "\03" "XOR" "\aa\00\00\00") - (elem (i32.const 0xaa) $XOR) + (data (i32.const 0x20998) "\88\09\02\00" "\03" "XOR" "\ab\00\00\00") + (elem (i32.const 0xab) $XOR) ;; [6.1.2500](https://forth-standard.org/standard/core/Bracket) (func $left-bracket (param $tos i32) (result i32) (local.get $tos) (call $ensureCompiling) (i32.store (i32.const 0x20870 (; = body(STATE) ;)) (i32.const 0))) - (data (i32.const 0x20994) "\88\09\02\00" "\81" (; F_IMMEDIATE ;) "[ " "\ab\00\00\00") - (elem (i32.const 0xab) $left-bracket) + (data (i32.const 0x209a4) "\98\09\02\00" "\81" (; F_IMMEDIATE ;) "[ " "\ac\00\00\00") + (elem (i32.const 0xac) $left-bracket) ;; [6.1.2510](https://forth-standard.org/standard/core/BracketTick) (func $bracket-tick (param $tos i32) (result i32) @@ -1929,8 +1951,8 @@ (call $ensureCompiling) (call $') (call $compilePushConst (call $pop))) - (data (i32.const 0x209a0) "\94\09\02\00" "\83" (; F_IMMEDIATE ;) "[']" "\ac\00\00\00") - (elem (i32.const 0xac) $bracket-tick) + (data (i32.const 0x209b0) "\a4\09\02\00" "\83" (; F_IMMEDIATE ;) "[']" "\ad\00\00\00") + (elem (i32.const 0xad) $bracket-tick) ;; [6.1.2520](https://forth-standard.org/standard/core/BracketCHAR) (func $bracket-char (param $tos i32) (result i32) @@ -1938,22 +1960,22 @@ (call $ensureCompiling) (call $CHAR) (call $compilePushConst (call $pop))) - (data (i32.const 0x209ac) "\a0\09\02\00" "\86" (; F_IMMEDIATE ;) "[CHAR] " "\ad\00\00\00") - (elem (i32.const 0xad) $bracket-char) + (data (i32.const 0x209bc) "\b0\09\02\00" "\86" (; F_IMMEDIATE ;) "[CHAR] " "\ae\00\00\00") + (elem (i32.const 0xae) $bracket-char) ;; [6.2.2535](https://forth-standard.org/standard/core/bs) (func $\ (param $tos i32) (result i32) (drop (drop (call $parse (i32.const 0x0a (; '\n' ;))))) (local.get $tos)) - (data (i32.const 0x209bc) "\ac\09\02\00" "\81" (; F_IMMEDIATE ;) "\5c " "\ae\00\00\00") - (elem (i32.const 0xae) $\) + (data (i32.const 0x209cc) "\bc\09\02\00" "\81" (; F_IMMEDIATE ;) "\5c " "\af\00\00\00") + (elem (i32.const 0xaf) $\) ;; [6.1.2540](https://forth-standard.org/standard/right-bracket) (func $right-bracket (param $tos i32) (result i32) (i32.store (i32.const 0x20870 (; = body(STATE) ;)) (i32.const 1)) (local.get $tos)) - (data (i32.const 0x209c8) "\bc\09\02\00" "\01" "] " "\af\00\00\00") - (elem (i32.const 0xaf) $right-bracket) + (data (i32.const 0x209d8) "\cc\09\02\00" "\01" "] " "\b0\00\00\00") + (elem (i32.const 0xb0) $right-bracket) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; @@ -2067,9 +2089,9 @@ (global $sourceID (mut i32) (i32.const 0)) ;; Dictionary pointers - (global $latest (mut i32) (i32.const 0x209c8)) - (global $here (mut i32) (i32.const 0x209d4)) - (global $nextTableIndex (mut i32) (i32.const 0xb0)) + (global $latest (mut i32) (i32.const 0x209d8)) + (global $here (mut i32) (i32.const 0x209e4)) + (global $nextTableIndex (mut i32) (i32.const 0xb1)) ;; Pictured output pointer (global $po (mut i32) (i32.const -1)) diff --git a/src/web/tests/forth2012-test-suite/coreexttest.fth b/src/web/tests/forth2012-test-suite/coreexttest.fth index 0fba27d..aeb8d30 100644 --- a/src/web/tests/forth2012-test-suite/coreexttest.fth +++ b/src/web/tests/forth2012-test-suite/coreexttest.fth @@ -171,138 +171,138 @@ TESTING HEX (contributed by James Bowman) T{ BASE @ HEX BASE @ DECIMAL BASE @ - SWAP BASE ! -> 6 }T -\ \ ----------------------------------------------------------------------------- -\ TESTING WITHIN (contributed by James Bowman) +\ ----------------------------------------------------------------------------- +TESTING WITHIN (contributed by James Bowman) -\ T{ 0 0 0 WITHIN -> FALSE }T -\ T{ 0 0 MID-UINT WITHIN -> TRUE }T -\ T{ 0 0 MID-UINT+1 WITHIN -> TRUE }T -\ T{ 0 0 MAX-UINT WITHIN -> TRUE }T -\ T{ 0 MID-UINT 0 WITHIN -> FALSE }T -\ T{ 0 MID-UINT MID-UINT WITHIN -> FALSE }T -\ T{ 0 MID-UINT MID-UINT+1 WITHIN -> FALSE }T -\ T{ 0 MID-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ 0 MID-UINT+1 0 WITHIN -> FALSE }T -\ T{ 0 MID-UINT+1 MID-UINT WITHIN -> TRUE }T -\ T{ 0 MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T -\ T{ 0 MID-UINT+1 MAX-UINT WITHIN -> FALSE }T -\ T{ 0 MAX-UINT 0 WITHIN -> FALSE }T -\ T{ 0 MAX-UINT MID-UINT WITHIN -> TRUE }T -\ T{ 0 MAX-UINT MID-UINT+1 WITHIN -> TRUE }T -\ T{ 0 MAX-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ MID-UINT 0 0 WITHIN -> FALSE }T -\ T{ MID-UINT 0 MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT 0 MID-UINT+1 WITHIN -> TRUE }T -\ T{ MID-UINT 0 MAX-UINT WITHIN -> TRUE }T -\ T{ MID-UINT MID-UINT 0 WITHIN -> TRUE }T -\ T{ MID-UINT MID-UINT MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT MID-UINT MID-UINT+1 WITHIN -> TRUE }T -\ T{ MID-UINT MID-UINT MAX-UINT WITHIN -> TRUE }T -\ T{ MID-UINT MID-UINT+1 0 WITHIN -> FALSE }T -\ T{ MID-UINT MID-UINT+1 MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T -\ T{ MID-UINT MID-UINT+1 MAX-UINT WITHIN -> FALSE }T -\ T{ MID-UINT MAX-UINT 0 WITHIN -> FALSE }T -\ T{ MID-UINT MAX-UINT MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT MAX-UINT MID-UINT+1 WITHIN -> TRUE }T -\ T{ MID-UINT MAX-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ MID-UINT+1 0 0 WITHIN -> FALSE }T -\ T{ MID-UINT+1 0 MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT+1 0 MID-UINT+1 WITHIN -> FALSE }T -\ T{ MID-UINT+1 0 MAX-UINT WITHIN -> TRUE }T -\ T{ MID-UINT+1 MID-UINT 0 WITHIN -> TRUE }T -\ T{ MID-UINT+1 MID-UINT MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT+1 MID-UINT MID-UINT+1 WITHIN -> FALSE }T -\ T{ MID-UINT+1 MID-UINT MAX-UINT WITHIN -> TRUE }T -\ T{ MID-UINT+1 MID-UINT+1 0 WITHIN -> TRUE }T -\ T{ MID-UINT+1 MID-UINT+1 MID-UINT WITHIN -> TRUE }T -\ T{ MID-UINT+1 MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T -\ T{ MID-UINT+1 MID-UINT+1 MAX-UINT WITHIN -> TRUE }T -\ T{ MID-UINT+1 MAX-UINT 0 WITHIN -> FALSE }T -\ T{ MID-UINT+1 MAX-UINT MID-UINT WITHIN -> FALSE }T -\ T{ MID-UINT+1 MAX-UINT MID-UINT+1 WITHIN -> FALSE }T -\ T{ MID-UINT+1 MAX-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT 0 0 WITHIN -> FALSE }T -\ T{ MAX-UINT 0 MID-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT 0 MID-UINT+1 WITHIN -> FALSE }T -\ T{ MAX-UINT 0 MAX-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT MID-UINT 0 WITHIN -> TRUE }T -\ T{ MAX-UINT MID-UINT MID-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT MID-UINT MID-UINT+1 WITHIN -> FALSE }T -\ T{ MAX-UINT MID-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT MID-UINT+1 0 WITHIN -> TRUE }T -\ T{ MAX-UINT MID-UINT+1 MID-UINT WITHIN -> TRUE }T -\ T{ MAX-UINT MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T -\ T{ MAX-UINT MID-UINT+1 MAX-UINT WITHIN -> FALSE }T -\ T{ MAX-UINT MAX-UINT 0 WITHIN -> TRUE }T -\ T{ MAX-UINT MAX-UINT MID-UINT WITHIN -> TRUE }T -\ T{ MAX-UINT MAX-UINT MID-UINT+1 WITHIN -> TRUE }T -\ T{ MAX-UINT MAX-UINT MAX-UINT WITHIN -> FALSE }T +T{ 0 0 0 WITHIN -> FALSE }T +T{ 0 0 MID-UINT WITHIN -> TRUE }T +T{ 0 0 MID-UINT+1 WITHIN -> TRUE }T +T{ 0 0 MAX-UINT WITHIN -> TRUE }T +T{ 0 MID-UINT 0 WITHIN -> FALSE }T +T{ 0 MID-UINT MID-UINT WITHIN -> FALSE }T +T{ 0 MID-UINT MID-UINT+1 WITHIN -> FALSE }T +T{ 0 MID-UINT MAX-UINT WITHIN -> FALSE }T +T{ 0 MID-UINT+1 0 WITHIN -> FALSE }T +T{ 0 MID-UINT+1 MID-UINT WITHIN -> TRUE }T +T{ 0 MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T +T{ 0 MID-UINT+1 MAX-UINT WITHIN -> FALSE }T +T{ 0 MAX-UINT 0 WITHIN -> FALSE }T +T{ 0 MAX-UINT MID-UINT WITHIN -> TRUE }T +T{ 0 MAX-UINT MID-UINT+1 WITHIN -> TRUE }T +T{ 0 MAX-UINT MAX-UINT WITHIN -> FALSE }T +T{ MID-UINT 0 0 WITHIN -> FALSE }T +T{ MID-UINT 0 MID-UINT WITHIN -> FALSE }T +T{ MID-UINT 0 MID-UINT+1 WITHIN -> TRUE }T +T{ MID-UINT 0 MAX-UINT WITHIN -> TRUE }T +T{ MID-UINT MID-UINT 0 WITHIN -> TRUE }T +T{ MID-UINT MID-UINT MID-UINT WITHIN -> FALSE }T +T{ MID-UINT MID-UINT MID-UINT+1 WITHIN -> TRUE }T +T{ MID-UINT MID-UINT MAX-UINT WITHIN -> TRUE }T +T{ MID-UINT MID-UINT+1 0 WITHIN -> FALSE }T +T{ MID-UINT MID-UINT+1 MID-UINT WITHIN -> FALSE }T +T{ MID-UINT MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T +T{ MID-UINT MID-UINT+1 MAX-UINT WITHIN -> FALSE }T +T{ MID-UINT MAX-UINT 0 WITHIN -> FALSE }T +T{ MID-UINT MAX-UINT MID-UINT WITHIN -> FALSE }T +T{ MID-UINT MAX-UINT MID-UINT+1 WITHIN -> TRUE }T +T{ MID-UINT MAX-UINT MAX-UINT WITHIN -> FALSE }T +T{ MID-UINT+1 0 0 WITHIN -> FALSE }T +T{ MID-UINT+1 0 MID-UINT WITHIN -> FALSE }T +T{ MID-UINT+1 0 MID-UINT+1 WITHIN -> FALSE }T +T{ MID-UINT+1 0 MAX-UINT WITHIN -> TRUE }T +T{ MID-UINT+1 MID-UINT 0 WITHIN -> TRUE }T +T{ MID-UINT+1 MID-UINT MID-UINT WITHIN -> FALSE }T +T{ MID-UINT+1 MID-UINT MID-UINT+1 WITHIN -> FALSE }T +T{ MID-UINT+1 MID-UINT MAX-UINT WITHIN -> TRUE }T +T{ MID-UINT+1 MID-UINT+1 0 WITHIN -> TRUE }T +T{ MID-UINT+1 MID-UINT+1 MID-UINT WITHIN -> TRUE }T +T{ MID-UINT+1 MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T +T{ MID-UINT+1 MID-UINT+1 MAX-UINT WITHIN -> TRUE }T +T{ MID-UINT+1 MAX-UINT 0 WITHIN -> FALSE }T +T{ MID-UINT+1 MAX-UINT MID-UINT WITHIN -> FALSE }T +T{ MID-UINT+1 MAX-UINT MID-UINT+1 WITHIN -> FALSE }T +T{ MID-UINT+1 MAX-UINT MAX-UINT WITHIN -> FALSE }T +T{ MAX-UINT 0 0 WITHIN -> FALSE }T +T{ MAX-UINT 0 MID-UINT WITHIN -> FALSE }T +T{ MAX-UINT 0 MID-UINT+1 WITHIN -> FALSE }T +T{ MAX-UINT 0 MAX-UINT WITHIN -> FALSE }T +T{ MAX-UINT MID-UINT 0 WITHIN -> TRUE }T +T{ MAX-UINT MID-UINT MID-UINT WITHIN -> FALSE }T +T{ MAX-UINT MID-UINT MID-UINT+1 WITHIN -> FALSE }T +T{ MAX-UINT MID-UINT MAX-UINT WITHIN -> FALSE }T +T{ MAX-UINT MID-UINT+1 0 WITHIN -> TRUE }T +T{ MAX-UINT MID-UINT+1 MID-UINT WITHIN -> TRUE }T +T{ MAX-UINT MID-UINT+1 MID-UINT+1 WITHIN -> FALSE }T +T{ MAX-UINT MID-UINT+1 MAX-UINT WITHIN -> FALSE }T +T{ MAX-UINT MAX-UINT 0 WITHIN -> TRUE }T +T{ MAX-UINT MAX-UINT MID-UINT WITHIN -> TRUE }T +T{ MAX-UINT MAX-UINT MID-UINT+1 WITHIN -> TRUE }T +T{ MAX-UINT MAX-UINT MAX-UINT WITHIN -> FALSE }T -\ T{ MIN-INT MIN-INT MIN-INT WITHIN -> FALSE }T -\ T{ MIN-INT MIN-INT 0 WITHIN -> TRUE }T -\ T{ MIN-INT MIN-INT 1 WITHIN -> TRUE }T -\ T{ MIN-INT MIN-INT MAX-INT WITHIN -> TRUE }T -\ T{ MIN-INT 0 MIN-INT WITHIN -> FALSE }T -\ T{ MIN-INT 0 0 WITHIN -> FALSE }T -\ T{ MIN-INT 0 1 WITHIN -> FALSE }T -\ T{ MIN-INT 0 MAX-INT WITHIN -> FALSE }T -\ T{ MIN-INT 1 MIN-INT WITHIN -> FALSE }T -\ T{ MIN-INT 1 0 WITHIN -> TRUE }T -\ T{ MIN-INT 1 1 WITHIN -> FALSE }T -\ T{ MIN-INT 1 MAX-INT WITHIN -> FALSE }T -\ T{ MIN-INT MAX-INT MIN-INT WITHIN -> FALSE }T -\ T{ MIN-INT MAX-INT 0 WITHIN -> TRUE }T -\ T{ MIN-INT MAX-INT 1 WITHIN -> TRUE }T -\ T{ MIN-INT MAX-INT MAX-INT WITHIN -> FALSE }T -\ T{ 0 MIN-INT MIN-INT WITHIN -> FALSE }T -\ T{ 0 MIN-INT 0 WITHIN -> FALSE }T -\ T{ 0 MIN-INT 1 WITHIN -> TRUE }T -\ T{ 0 MIN-INT MAX-INT WITHIN -> TRUE }T -\ T{ 0 0 MIN-INT WITHIN -> TRUE }T -\ T{ 0 0 0 WITHIN -> FALSE }T -\ T{ 0 0 1 WITHIN -> TRUE }T -\ T{ 0 0 MAX-INT WITHIN -> TRUE }T -\ T{ 0 1 MIN-INT WITHIN -> FALSE }T -\ T{ 0 1 0 WITHIN -> FALSE }T -\ T{ 0 1 1 WITHIN -> FALSE }T -\ T{ 0 1 MAX-INT WITHIN -> FALSE }T -\ T{ 0 MAX-INT MIN-INT WITHIN -> FALSE }T -\ T{ 0 MAX-INT 0 WITHIN -> FALSE }T -\ T{ 0 MAX-INT 1 WITHIN -> TRUE }T -\ T{ 0 MAX-INT MAX-INT WITHIN -> FALSE }T -\ T{ 1 MIN-INT MIN-INT WITHIN -> FALSE }T -\ T{ 1 MIN-INT 0 WITHIN -> FALSE }T -\ T{ 1 MIN-INT 1 WITHIN -> FALSE }T -\ T{ 1 MIN-INT MAX-INT WITHIN -> TRUE }T -\ T{ 1 0 MIN-INT WITHIN -> TRUE }T -\ T{ 1 0 0 WITHIN -> FALSE }T -\ T{ 1 0 1 WITHIN -> FALSE }T -\ T{ 1 0 MAX-INT WITHIN -> TRUE }T -\ T{ 1 1 MIN-INT WITHIN -> TRUE }T -\ T{ 1 1 0 WITHIN -> TRUE }T -\ T{ 1 1 1 WITHIN -> FALSE }T -\ T{ 1 1 MAX-INT WITHIN -> TRUE }T -\ T{ 1 MAX-INT MIN-INT WITHIN -> FALSE }T -\ T{ 1 MAX-INT 0 WITHIN -> FALSE }T -\ T{ 1 MAX-INT 1 WITHIN -> FALSE }T -\ T{ 1 MAX-INT MAX-INT WITHIN -> FALSE }T -\ T{ MAX-INT MIN-INT MIN-INT WITHIN -> FALSE }T -\ T{ MAX-INT MIN-INT 0 WITHIN -> FALSE }T -\ T{ MAX-INT MIN-INT 1 WITHIN -> FALSE }T -\ T{ MAX-INT MIN-INT MAX-INT WITHIN -> FALSE }T -\ T{ MAX-INT 0 MIN-INT WITHIN -> TRUE }T -\ T{ MAX-INT 0 0 WITHIN -> FALSE }T -\ T{ MAX-INT 0 1 WITHIN -> FALSE }T -\ T{ MAX-INT 0 MAX-INT WITHIN -> FALSE }T -\ T{ MAX-INT 1 MIN-INT WITHIN -> TRUE }T -\ T{ MAX-INT 1 0 WITHIN -> TRUE }T -\ T{ MAX-INT 1 1 WITHIN -> FALSE }T -\ T{ MAX-INT 1 MAX-INT WITHIN -> FALSE }T -\ T{ MAX-INT MAX-INT MIN-INT WITHIN -> TRUE }T -\ T{ MAX-INT MAX-INT 0 WITHIN -> TRUE }T -\ T{ MAX-INT MAX-INT 1 WITHIN -> TRUE }T -\ T{ MAX-INT MAX-INT MAX-INT WITHIN -> FALSE }T +T{ MIN-INT MIN-INT MIN-INT WITHIN -> FALSE }T +T{ MIN-INT MIN-INT 0 WITHIN -> TRUE }T +T{ MIN-INT MIN-INT 1 WITHIN -> TRUE }T +T{ MIN-INT MIN-INT MAX-INT WITHIN -> TRUE }T +T{ MIN-INT 0 MIN-INT WITHIN -> FALSE }T +T{ MIN-INT 0 0 WITHIN -> FALSE }T +T{ MIN-INT 0 1 WITHIN -> FALSE }T +T{ MIN-INT 0 MAX-INT WITHIN -> FALSE }T +T{ MIN-INT 1 MIN-INT WITHIN -> FALSE }T +T{ MIN-INT 1 0 WITHIN -> TRUE }T +T{ MIN-INT 1 1 WITHIN -> FALSE }T +T{ MIN-INT 1 MAX-INT WITHIN -> FALSE }T +T{ MIN-INT MAX-INT MIN-INT WITHIN -> FALSE }T +T{ MIN-INT MAX-INT 0 WITHIN -> TRUE }T +T{ MIN-INT MAX-INT 1 WITHIN -> TRUE }T +T{ MIN-INT MAX-INT MAX-INT WITHIN -> FALSE }T +T{ 0 MIN-INT MIN-INT WITHIN -> FALSE }T +T{ 0 MIN-INT 0 WITHIN -> FALSE }T +T{ 0 MIN-INT 1 WITHIN -> TRUE }T +T{ 0 MIN-INT MAX-INT WITHIN -> TRUE }T +T{ 0 0 MIN-INT WITHIN -> TRUE }T +T{ 0 0 0 WITHIN -> FALSE }T +T{ 0 0 1 WITHIN -> TRUE }T +T{ 0 0 MAX-INT WITHIN -> TRUE }T +T{ 0 1 MIN-INT WITHIN -> FALSE }T +T{ 0 1 0 WITHIN -> FALSE }T +T{ 0 1 1 WITHIN -> FALSE }T +T{ 0 1 MAX-INT WITHIN -> FALSE }T +T{ 0 MAX-INT MIN-INT WITHIN -> FALSE }T +T{ 0 MAX-INT 0 WITHIN -> FALSE }T +T{ 0 MAX-INT 1 WITHIN -> TRUE }T +T{ 0 MAX-INT MAX-INT WITHIN -> FALSE }T +T{ 1 MIN-INT MIN-INT WITHIN -> FALSE }T +T{ 1 MIN-INT 0 WITHIN -> FALSE }T +T{ 1 MIN-INT 1 WITHIN -> FALSE }T +T{ 1 MIN-INT MAX-INT WITHIN -> TRUE }T +T{ 1 0 MIN-INT WITHIN -> TRUE }T +T{ 1 0 0 WITHIN -> FALSE }T +T{ 1 0 1 WITHIN -> FALSE }T +T{ 1 0 MAX-INT WITHIN -> TRUE }T +T{ 1 1 MIN-INT WITHIN -> TRUE }T +T{ 1 1 0 WITHIN -> TRUE }T +T{ 1 1 1 WITHIN -> FALSE }T +T{ 1 1 MAX-INT WITHIN -> TRUE }T +T{ 1 MAX-INT MIN-INT WITHIN -> FALSE }T +T{ 1 MAX-INT 0 WITHIN -> FALSE }T +T{ 1 MAX-INT 1 WITHIN -> FALSE }T +T{ 1 MAX-INT MAX-INT WITHIN -> FALSE }T +T{ MAX-INT MIN-INT MIN-INT WITHIN -> FALSE }T +T{ MAX-INT MIN-INT 0 WITHIN -> FALSE }T +T{ MAX-INT MIN-INT 1 WITHIN -> FALSE }T +T{ MAX-INT MIN-INT MAX-INT WITHIN -> FALSE }T +T{ MAX-INT 0 MIN-INT WITHIN -> TRUE }T +T{ MAX-INT 0 0 WITHIN -> FALSE }T +T{ MAX-INT 0 1 WITHIN -> FALSE }T +T{ MAX-INT 0 MAX-INT WITHIN -> FALSE }T +T{ MAX-INT 1 MIN-INT WITHIN -> TRUE }T +T{ MAX-INT 1 0 WITHIN -> TRUE }T +T{ MAX-INT 1 1 WITHIN -> FALSE }T +T{ MAX-INT 1 MAX-INT WITHIN -> FALSE }T +T{ MAX-INT MAX-INT MIN-INT WITHIN -> TRUE }T +T{ MAX-INT MAX-INT 0 WITHIN -> TRUE }T +T{ MAX-INT MAX-INT 1 WITHIN -> TRUE }T +T{ MAX-INT MAX-INT MAX-INT WITHIN -> FALSE }T \ \ ----------------------------------------------------------------------------- \ TESTING UNUSED (contributed by James Bowman & Peter Knaggs)