From 36c8fa87e113a578cc5e8abfd5a8b96b7c688e43 Mon Sep 17 00:00:00 2001 From: Aaron Taylor Date: Wed, 31 Jul 2019 19:26:08 -0700 Subject: [PATCH] Added tests for `and` subroutine from stdlib. --- stdlib_tests/3004_and.pvvs | 37 +++++++++++++++++++++++++++++++++++++ stdlib_tests/vv_test.py | 1 + 2 files changed, 38 insertions(+) create mode 100644 stdlib_tests/3004_and.pvvs diff --git a/stdlib_tests/3004_and.pvvs b/stdlib_tests/3004_and.pvvs new file mode 100644 index 0000000..a468c82 --- /dev/null +++ b/stdlib_tests/3004_and.pvvs @@ -0,0 +1,37 @@ +@ Test 0 ^ 0 = 0 +SSSSN | PUSH 0 +SSSSN | PUSH 0 +NSTTSTSSTN | JSR > 101001 (and) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 0 ^ 1 = 0 +SSSSN | PUSH 0 +SSSTN | PUSH +1 +NSTTSTSSTN | JSR > 101001 (and) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1 ^ 1 = 1 +SSSTN | PUSH +1 +SSSTN | PUSH +1 +NSTTSTSSTN | JSR > 101001 (and) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1 ^ 1...1 = 1 +SSSTN | PUSH +1 +SSTTN | PUSH -1 +NSTTSTSSTN | JSR > 101001 (and) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1010...1010 ^ 111111 = 101010 +@ Note that -6148914691236517206 = 1010...1010 in twos-complement but we +@ enter it in sign magnitude format so the bit pattern appears different. +SSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTTSN | PUSH -6148914691236517206 +SSSTTTTTTN | PUSH +63 +NSTTSTSSTN | JSR > 101001 (and) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ All done. +NNN | DIE + +#include +#include diff --git a/stdlib_tests/vv_test.py b/stdlib_tests/vv_test.py index aa5bda0..7ac408c 100755 --- a/stdlib_tests/vv_test.py +++ b/stdlib_tests/vv_test.py @@ -33,6 +33,7 @@ tests = [ ['3001_not', '', '-1+0-6148914691236517206+6148914691236517205'], ['3002_lshift', '', '+1+2+4611686018427387904-9223372036854775808-9223372036854775808+0'], ['3003_rshift', '', '+1+1+1-4611686018427387903-576460752303423478-1-1'], + ['3004_and', '', '+0+0+1+1+42'], ] for test in tests: -- 2.20.1