#!/bin/bash result=0 ##################################################################### # last 'smallnum' value: # sbcl calculates (expt 2 59) => 576460752303423488 expected='576460752303423488' output=`target/psse 2>/dev/null < (expt 2 59): " if [ "${expected}" = "${actual}" ] then echo "OK" else echo "Fail: expected '${expected}', got '${actual}'" result=`echo "${result} + 1" | bc` fi ##################################################################### # first 'bignum' value (right on the boundary): # sbcl calculates (expt 2 60) => 1152921504606846976 expected='1152921504606846976' output=`target/psse 2>/dev/null < (expt 2 60): " if [ "${expected}" = "${actual}" ] then echo "OK" else echo "Fail: expected '${expected}', got '${actual}'" result=`echo "${result} + 1" | bc` fi ##################################################################### # second 'bignum' value (definitely a bignum): # sbcl calculates (expt 2 61) => 2305843009213693952 expected='2305843009213693952' output=`target/psse 2>/dev/null < (expt 2 61): " if [ "${expected}" = "${actual}" ] then echo "OK" else echo "Fail: expected '${expected}', got '${actual}'" result=`echo "${result} + 1" | bc` fi # sbcl calculates (expt 2 64) => 18446744073709551616 expected='18446744073709551616' output=`target/psse 2>/dev/null < (expt 2 64): " if [ "${expected}" = "${actual}" ] then echo "OK" else echo "Fail: expected '${expected}', got '${actual}'" result=`echo "${result} + 1" | bc` fi # sbcl calculates (expt 2 65) => 36893488147419103232 expected='36893488147419103232' output=`target/psse 2>/dev/null < (expt 2 65): " if [ "${expected}" = "${actual}" ] then echo "OK" else echo "Fail: expected '${expected}', got '${actual}'" result=`echo "${result} + 1" | bc` fi exit ${result}