add tests for numeric literal parsing

This commit is contained in:
Jesse D. McDonald 2020-10-24 15:15:40 -05:00
parent 59ed031ca4
commit 7de6cf5a0c
2 changed files with 34 additions and 0 deletions

24
test/numeric-literals.4th Normal file
View File

@ -0,0 +1,24 @@
: INSPECT ( c-addr u -- ) "\"" TYPE TYPE-ESCAPED "\"" TYPE ;
: REPORT ( c-addr1 u1 c-addr2 u2 xt -- )
-ROT 2>R >R 2DUP INSPECT " ( " TYPE EVALUATE DUP R@ EXECUTE " ) ⇔ " TYPE
R> SWAP 2R> ROT >R ROT >R
2DUP INSPECT " ( " TYPE EVALUATE DUP R> EXECUTE " ) " TYPE
R> = IF " ✓\n" ELSE " ✗\n" THEN TYPE ;
: SREPORT ['] . REPORT ;
: UREPORT ['] U. REPORT ;
: TEST
"0" "0 DUP -" SREPORT
"4294967295" "0xFFFFFFFF" UREPORT
"-1" "0 1-" SREPORT
"-2147483648" "1 31 LSHIFT" SREPORT
"0177" "127" SREPORT
"0b1101101" "6 16 * 13 +" SREPORT
"0B1011110" "5 16 * 14 +" SREPORT
"0x5aa5a55a" "1520805210" SREPORT
"0Xa55a5aa5" "1520805210 INVERT" SREPORT
;
TEST

10
test/numeric-literals.exp Normal file
View File

@ -0,0 +1,10 @@
"0" ( 0 ) ⇔ "0 DUP -" ( 0 ) ✓
"4294967295" ( 4294967295 ) ⇔ "0xFFFFFFFF" ( 4294967295 ) ✓
"-1" ( -1 ) ⇔ "0 1-" ( -1 ) ✓
"-2147483648" ( -2147483648 ) ⇔ "1 31 LSHIFT" ( -2147483648 ) ✓
"0177" ( 127 ) ⇔ "127" ( 127 ) ✓
"0b1101101" ( 109 ) ⇔ "6 16 * 13 +" ( 109 ) ✓
"0B1011110" ( 94 ) ⇔ "5 16 * 14 +" ( 94 ) ✓
"0x5aa5a55a" ( 1520805210 ) ⇔ "1520805210" ( 1520805210 ) ✓
"0Xa55a5aa5" ( -1520805211 ) ⇔ "1520805210 INVERT" ( -1520805211 ) ✓
exit-code: 0