From 7de6cf5a0c91036ab5c4c45e390397363f00d189 Mon Sep 17 00:00:00 2001 From: Jesse McDonald Date: Sat, 24 Oct 2020 15:15:40 -0500 Subject: [PATCH] add tests for numeric literal parsing --- test/numeric-literals.4th | 24 ++++++++++++++++++++++++ test/numeric-literals.exp | 10 ++++++++++ 2 files changed, 34 insertions(+) create mode 100644 test/numeric-literals.4th create mode 100644 test/numeric-literals.exp diff --git a/test/numeric-literals.4th b/test/numeric-literals.4th new file mode 100644 index 0000000..e0c4912 --- /dev/null +++ b/test/numeric-literals.4th @@ -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 diff --git a/test/numeric-literals.exp b/test/numeric-literals.exp new file mode 100644 index 0000000..598fee3 --- /dev/null +++ b/test/numeric-literals.exp @@ -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