From 084022970bf50b1ad3873ae6ac45c702308212d6 Mon Sep 17 00:00:00 2001 From: Aaron Taylor Date: Wed, 31 Jul 2019 21:38:00 -0700 Subject: [PATCH] Added tests for `xor` subroutine from stdlib. --- stdlib_tests/3006_xor.pvvs | 37 +++++++++++++++++++++++++++++++++++++ stdlib_tests/vv_test.py | 1 + 2 files changed, 38 insertions(+) create mode 100644 stdlib_tests/3006_xor.pvvs diff --git a/stdlib_tests/3006_xor.pvvs b/stdlib_tests/3006_xor.pvvs new file mode 100644 index 0000000..68a72d1 --- /dev/null +++ b/stdlib_tests/3006_xor.pvvs @@ -0,0 +1,37 @@ +@ Test 0 xor 0 = 0 +SSSSN | PUSH 0 +SSSSN | PUSH 0 +NSTTSTSTTN | JSR > 101110 (xor) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 0 xor 1 = 1 +SSSSN | PUSH 0 +SSSTN | PUSH +1 +NSTTSTSTTN | JSR > 101110 (xor) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1 xor 1 = 0 +SSSTN | PUSH +1 +SSSTN | PUSH +1 +NSTTSTSTTN | JSR > 101110 (xor) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1 xor 1...1 = 1...10 +SSSTN | PUSH +1 +SSTTN | PUSH -1 +NSTTSTSTTN | JSR > 101110 (xor) +NSTTSSTN | JSR > 1001 (print number from stack) + +@ Test 1010...1010 xor 0101...0101 = 1...1 +@ 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 +SSSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTN | PUSH +6148914691236517205 +NSTTSTSTTN | JSR > 101110 (xor) +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 2674b03..368a166 100755 --- a/stdlib_tests/vv_test.py +++ b/stdlib_tests/vv_test.py @@ -35,6 +35,7 @@ tests = [ ['3003_rshift', '', '+1+1+1-4611686018427387903-576460752303423478-1-1'], ['3004_and', '', '+0+0+1+1+42'], ['3005_or', '', '+0+1+1-1-1'], + ['3006_xor', '', '+0+1+0-2-1'], ] for test in tests: -- 2.20.1